diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-10-01 22:36:13 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-10-01 22:36:13 +0200 |
| commit | 925c56b4f9326343d7e85927305f038b54bcd052 (patch) | |
| tree | 95e15365bebc45298d1cf939f709bdedff539e26 /src/lib | |
| parent | bd789d5481930642c849551cd3aef7dc34b77269 (diff) | |
Trim the parameters to pass_texts().
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/dcp_decoder.cc | 19 | ||||
| -rw-r--r-- | src/lib/dcp_decoder.h | 7 |
2 files changed, 10 insertions, 16 deletions
diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc index 9513274b3..eda410564 100644 --- a/src/lib/dcp_decoder.cc +++ b/src/lib/dcp_decoder.cc @@ -296,35 +296,28 @@ DCPDecoder::pass_texts(ContentTime next, dcp::Size size) } if ((*_reel)->main_subtitle()) { - pass_texts( - next, - (*_reel)->main_subtitle()->asset(), - _dcp_content->reference_text(TextType::OPEN_SUBTITLE), - (*_reel)->main_subtitle()->entry_point().get_value_or(0), - *decoder, - size - ); + pass_texts(next, (*_reel)->main_subtitle(), TextType::OPEN_SUBTITLE, *decoder, size); ++decoder; } for (auto i: (*_reel)->closed_captions()) { - pass_texts( - next, i->asset(), _dcp_content->reference_text(TextType::CLOSED_CAPTION), i->entry_point().get_value_or(0), *decoder, size - ); + pass_texts(next, i, TextType::CLOSED_CAPTION, *decoder, size); ++decoder; } } void DCPDecoder::pass_texts( - ContentTime next, shared_ptr<dcp::TextAsset> asset, bool reference, int64_t entry_point, shared_ptr<TextDecoder> decoder, dcp::Size size + ContentTime next, shared_ptr<dcp::ReelTextAsset> reel_asset, TextType type, shared_ptr<TextDecoder> decoder, dcp::Size size ) { auto const vfr = _dcp_content->active_video_frame_rate(film()); /* Frame within the (played part of the) reel that is coming up next */ auto const frame = next.frames_round(vfr); + auto const asset = reel_asset->asset(); + auto const entry_point = reel_asset->entry_point().get_value_or(0); - if (_decode_referenced || !reference) { + if (_decode_referenced || !_dcp_content->reference_text(type)) { auto subs = asset->texts_during( dcp::Time(entry_point + frame, vfr, vfr), dcp::Time(entry_point + frame + 1, vfr, vfr), diff --git a/src/lib/dcp_decoder.h b/src/lib/dcp_decoder.h index 304ebd33e..c85b7c126 100644 --- a/src/lib/dcp_decoder.h +++ b/src/lib/dcp_decoder.h @@ -27,6 +27,7 @@ #include "atmos_metadata.h" #include "decoder.h" #include "font_id_allocator.h" +#include "text_type.h" #include <dcp/mono_j2k_picture_asset_reader.h> #include <dcp/stereo_j2k_picture_asset_reader.h> #include <dcp/mono_mpeg2_picture_asset_reader.h> @@ -37,6 +38,7 @@ namespace dcp { class Reel; + class ReelTextAsset; } class DCPContent; @@ -79,9 +81,8 @@ private: void pass_texts(dcpomatic::ContentTime next, dcp::Size size); void pass_texts( dcpomatic::ContentTime next, - std::shared_ptr<dcp::TextAsset> asset, - bool reference, - int64_t entry_point, + std::shared_ptr<dcp::ReelTextAsset> reel_asset, + TextType type, std::shared_ptr<TextDecoder> decoder, dcp::Size size ); |
