summaryrefslogtreecommitdiff
path: root/src/reel_subtitle_asset.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-11-20 00:40:35 +0100
committerCarl Hetherington <cth@carlh.net>2020-11-20 00:40:35 +0100
commitf614b4526cd06a4d28b46bd2d98a55d56b97b14f (patch)
tree1eaf03b5e145a0cb7d8a42a37c1b8e6240c6ac23 /src/reel_subtitle_asset.cc
parentd989a83517fd77aa241c1423ac00cfed62d567fe (diff)
Tidy up handling of language metadata for subtitles.
Tried to normalise the idea that subtitle languages are stored as strings but set as LanguageTags. This may be too defensive; perhaps SMPTE language metadata is always right, or perhaps even if it isn't we should throw errors.
Diffstat (limited to 'src/reel_subtitle_asset.cc')
-rw-r--r--src/reel_subtitle_asset.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/reel_subtitle_asset.cc b/src/reel_subtitle_asset.cc
index f7df36f8..00c694a1 100644
--- a/src/reel_subtitle_asset.cc
+++ b/src/reel_subtitle_asset.cc
@@ -58,10 +58,7 @@ ReelSubtitleAsset::ReelSubtitleAsset (boost::shared_ptr<const cxml::Node> node)
: ReelAsset (node)
, ReelMXF (node)
{
- optional<string> const language = node->optional_string_child("Language");
- if (language) {
- _language = dcp::LanguageTag(*language);
- }
+ _language = node->optional_string_child("Language");
node->done ();
}
@@ -83,7 +80,7 @@ ReelSubtitleAsset::write_to_cpl (xmlpp::Node* node, Standard standard) const
xmlpp::Node* asset = write_to_cpl_asset (node, standard, hash());
write_to_cpl_mxf (asset);
if (_language) {
- asset->add_child("Language")->add_child_text(_language->to_string());
+ asset->add_child("Language")->add_child_text(*_language);
}
return asset;
}
@@ -100,3 +97,11 @@ ReelSubtitleAsset::equals (shared_ptr<const ReelSubtitleAsset> other, EqualityOp
return true;
}
+
+
+void
+ReelSubtitleAsset::set_language (dcp::LanguageTag language)
+{
+ _language = language.to_string();
+}
+