summaryrefslogtreecommitdiff
path: root/src/lib/film.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-03-01 01:26:49 +0100
committerCarl Hetherington <cth@carlh.net>2023-03-03 01:49:55 +0100
commit34b2b0fe412332505e3d543358c9741bd068602d (patch)
treef83f2dad55f17a9b03c6fb105995dd045e8a5d4c /src/lib/film.cc
parent03d6d6a8e7bcb7b2bfa920841ac7421f08dcc9b6 (diff)
Add option to limit DCP output to the "Bv2.0 profile" (#2470).v2.16.45
I'm far from convinced about the point/sense of all these "profiles" (rather than just implementing or at least tolerating the standard) but lots of people are having problems with "QC" processes failing their DCPs with complaints related to MCASubDescriptors. It seems to make sense to have an option to turn them off - at least for now, until either the "QC" situation settles down or any bugs in DCP-o-matic are found and fixed.
Diffstat (limited to 'src/lib/film.cc')
-rw-r--r--src/lib/film.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 69d55c7c4..25a135488 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -166,6 +166,7 @@ Film::Film (optional<boost::filesystem::path> dir)
, _three_d (false)
, _sequence (true)
, _interop (Config::instance()->default_interop ())
+ , _limit_to_smpte_bv20(false)
, _audio_processor (0)
, _reel_type (ReelType::SINGLE)
, _reel_length (2000000000)
@@ -269,6 +270,11 @@ Film::video_identifier () const
s += "_I";
} else {
s += "_S";
+ if (_limit_to_smpte_bv20) {
+ s += "_L20";
+ } else {
+ s += "_L21";
+ }
}
if (_three_d) {
@@ -416,6 +422,7 @@ Film::metadata (bool with_content_paths) const
root->add_child("ThreeD")->add_child_text (_three_d ? "1" : "0");
root->add_child("Sequence")->add_child_text (_sequence ? "1" : "0");
root->add_child("Interop")->add_child_text (_interop ? "1" : "0");
+ root->add_child("LimitToSMPTEBv20")->add_child_text(_limit_to_smpte_bv20 ? "1" : "0");
root->add_child("Encrypted")->add_child_text (_encrypted ? "1" : "0");
root->add_child("Key")->add_child_text (_key.hex ());
root->add_child("ContextID")->add_child_text (_context_id);
@@ -586,6 +593,7 @@ Film::read_metadata (optional<boost::filesystem::path> path)
_three_d = f.bool_child ("ThreeD");
_interop = f.bool_child ("Interop");
+ _limit_to_smpte_bv20 = f.optional_bool_child("LimitToSMPTEBv20").get_value_or(false);
_key = dcp::Key (f.string_child ("Key"));
_context_id = f.optional_string_child("ContextID").get_value_or (dcp::make_uuid ());
@@ -1179,6 +1187,15 @@ Film::set_interop (bool i)
_interop = i;
}
+
+void
+Film::set_limit_to_smpte_bv20(bool limit)
+{
+ FilmChangeSignaller ch(this, Property::LIMIT_TO_SMPTE_BV20);
+ _limit_to_smpte_bv20 = limit;
+}
+
+
void
Film::set_audio_processor (AudioProcessor const * processor)
{