2 Copyright (C) 2022 Carl Hetherington <cth@carlh.net>
4 This file is part of DCP-o-matic.
6 DCP-o-matic is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 DCP-o-matic is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
22 #include "dcpomatic_log.h"
23 #include "video_filter_graph.h"
24 #include "video_filter_graph_set.h"
29 using std::make_shared;
30 using std::shared_ptr;
33 shared_ptr<VideoFilterGraph>
34 VideoFilterGraphSet::get(dcp::Size size, AVPixelFormat format)
36 auto graph = std::find_if(
39 [size, format](shared_ptr<VideoFilterGraph> g) {
40 return g->can_process(size, format);
43 if (graph != _graphs.end()) {
47 auto new_graph = make_shared<VideoFilterGraph>(size, format, _frame_rate);
48 new_graph->setup(_filters);
49 _graphs.push_back(new_graph);
51 LOG_GENERAL(N_("New graph for %1x%2, pixel format %3"), size.width, size.height, static_cast<int>(format));
58 VideoFilterGraphSet::clear()