diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-11-20 00:40:35 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-11-20 00:40:35 +0100 |
| commit | f614b4526cd06a4d28b46bd2d98a55d56b97b14f (patch) | |
| tree | 1eaf03b5e145a0cb7d8a42a37c1b8e6240c6ac23 /src/reel_subtitle_asset.cc | |
| parent | d989a83517fd77aa241c1423ac00cfed62d567fe (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.cc | 15 |
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(); +} + |
