summaryrefslogtreecommitdiff
path: root/src/cpl.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-08-04 20:27:32 +0200
committerCarl Hetherington <cth@carlh.net>2021-08-04 20:27:32 +0200
commit9bc5ced02a09010b7ed4fd3a62a3d3e0a03665da (patch)
tree0718b91e628bcef7019d301131d48a50df9e6532 /src/cpl.cc
parent7cbb0cd253c483644d237ec6874032e72d2ed9d4 (diff)
Add support for writing CPL metadata about sign language video tracks (DoM #2062).
Diffstat (limited to 'src/cpl.cc')
-rw-r--r--src/cpl.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/cpl.cc b/src/cpl.cc
index e52f8b34..1f20d13e 100644
--- a/src/cpl.cc
+++ b/src/cpl.cc
@@ -312,6 +312,23 @@ CPL::read_composition_metadata_asset (cxml::ConstNodePtr node)
_additional_subtitle_languages.push_back (sll_split[i]);
}
}
+
+ auto eml = node->optional_node_child ("ExtensionMetadataList");
+ if (eml) {
+ for (auto i: eml->node_children("ExtensionMetadata")) {
+ auto name = i->optional_string_child("Name");
+ if (name && *name == "Sign Language Video") {
+ auto property_list = i->node_child("PropertyList");
+ for (auto j: property_list->node_children("Property")) {
+ auto name = j->optional_string_child("Name");
+ auto value = j->optional_string_child("Value");
+ if (name && value && *name == "Language Tag") {
+ _sign_language_video_language = *value;
+ }
+ }
+ }
+ }
+ }
}
@@ -433,6 +450,10 @@ CPL::maybe_write_composition_metadata_asset (xmlpp::Element* node) const
/* SMPTE Bv2.1 8.6.3 */
add_extension_metadata ("http://isdcf.com/ns/cplmd/app", "Application", "DCP Constraints Profile", "SMPTE-RDD-52:2020-Bv2.1");
+ if (_sign_language_video_language) {
+ add_extension_metadata ("http://isdcf.com/2017/10/SignLanguageVideo", "Sign Language Video", "Language Tag", *_sign_language_video_language);
+ }
+
if (_reels.front()->main_sound()) {
auto asset = _reels.front()->main_sound()->asset();
if (asset) {