summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-10-01 22:36:13 +0200
committerCarl Hetherington <cth@carlh.net>2025-10-01 22:36:13 +0200
commit925c56b4f9326343d7e85927305f038b54bcd052 (patch)
tree95e15365bebc45298d1cf939f709bdedff539e26 /src/lib
parentbd789d5481930642c849551cd3aef7dc34b77269 (diff)
Trim the parameters to pass_texts().
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/dcp_decoder.cc19
-rw-r--r--src/lib/dcp_decoder.h7
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
);