summaryrefslogtreecommitdiff
path: root/src/lib/dcp_content.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-03-28 01:21:28 +0100
committerCarl Hetherington <cth@carlh.net>2025-03-28 01:21:28 +0100
commit034d7176177043dc4cb4518ae6a946efe401b809 (patch)
treeae7187d3d5751b3d23c300118aeaf70e8b163d49 /src/lib/dcp_content.cc
parent66b8fe87f90e812672d213387fe08d734464ac9f (diff)
Copy audio language when setting up a project from a DCP (#3009).
Diffstat (limited to 'src/lib/dcp_content.cc')
-rw-r--r--src/lib/dcp_content.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc
index 32b97b06f..885cbad93 100644
--- a/src/lib/dcp_content.cc
+++ b/src/lib/dcp_content.cc
@@ -168,6 +168,9 @@ DCPContent::DCPContent(cxml::ConstNodePtr node, boost::optional<boost::filesyste
}
_active_audio_channels = node->optional_number_child<int>("ActiveAudioChannels");
+ if (auto lang = node->optional_string_child("AudioLanguage")) {
+ _audio_language = dcp::LanguageTag(*lang);
+ }
for (auto non_zero: node->node_children("HasNonZeroEntryPoint")) {
try {
@@ -273,6 +276,7 @@ DCPContent::examine(shared_ptr<const Film> film, shared_ptr<Job> job, bool toler
as->set_mapping (m);
_active_audio_channels = examiner->active_audio_channels();
+ _audio_language = examiner->audio_language();
}
if (examiner->has_atmos()) {
@@ -458,6 +462,10 @@ DCPContent::as_xml(xmlpp::Element* element, bool with_paths, PathBehaviour path_
cxml::add_text_child(element, "ActiveAudioChannels", fmt::to_string(*_active_audio_channels));
}
+ if (_audio_language) {
+ cxml::add_text_child(element, "AudioLanguage", _audio_language->as_string());
+ }
+
for (auto i = 0; i < static_cast<int>(TextType::COUNT); ++i) {
if (_has_non_zero_entry_point[i]) {
auto has = cxml::add_child(element, "HasNonZeroEntryPoint");