diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-06-30 23:53:57 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-06-30 23:53:57 +0200 |
| commit | 71acc01a622ce33abb18f541925e8ec42c834859 (patch) | |
| tree | 7bbfe1d2a517a3b2ca04aa5bb7c4c770ebca7652 /src/lib | |
| parent | d21efc88c0c5549160a55cd25d6bc2098752cf75 (diff) | |
Add channel_is_mapped().
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/film_util.cc | 34 | ||||
| -rw-r--r-- | src/lib/film_util.h | 28 | ||||
| -rw-r--r-- | src/lib/reel_writer.cc | 6 | ||||
| -rw-r--r-- | src/lib/wscript | 1 |
4 files changed, 66 insertions, 3 deletions
diff --git a/src/lib/film_util.cc b/src/lib/film_util.cc new file mode 100644 index 000000000..34f48d5a3 --- /dev/null +++ b/src/lib/film_util.cc @@ -0,0 +1,34 @@ +/* + Copyright (C) 2023 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "film.h" +#include "film_util.h" + + +using std::shared_ptr; + + +bool +channel_is_mapped(shared_ptr<const Film> film, dcp::Channel channel) +{ + auto const mapped = film->mapped_audio_channels(); + return std::find(mapped.begin(), mapped.end(), static_cast<int>(channel)) != mapped.end(); +} diff --git a/src/lib/film_util.h b/src/lib/film_util.h new file mode 100644 index 000000000..f5b91f1f5 --- /dev/null +++ b/src/lib/film_util.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2023 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include <dcp/types.h> + + +class Film; + + +bool channel_is_mapped(std::shared_ptr<const Film> film, dcp::Channel channel); diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index fc78740bb..e8db82fbb 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -27,6 +27,7 @@ #include "dcpomatic_log.h" #include "digester.h" #include "film.h" +#include "film_util.h" #include "image.h" #include "image_png.h" #include "job.h" @@ -192,10 +193,9 @@ ReelWriter::ReelWriter ( DCPOMATIC_ASSERT (film()->directory()); - auto mapped = film()->mapped_audio_channels(); std::vector<dcp::Channel> extra_active_channels; - auto add_if_mapped = [mapped, &extra_active_channels](dcp::Channel channel) { - if (std::find(mapped.begin(), mapped.end(), static_cast<int>(channel)) != mapped.end()) { + auto add_if_mapped = [this, &extra_active_channels](dcp::Channel channel) { + if (channel_is_mapped(film(), channel)) { extra_active_channels.push_back(channel); } }; diff --git a/src/lib/wscript b/src/lib/wscript index 00b6b7ed8..251f09cf7 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -115,6 +115,7 @@ sources = """ ffmpeg_subtitle_stream.cc ffmpeg_wrapper.cc film.cc + film_util.cc filter.cc font.cc font_config.cc |
