X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Freel_subtitle_asset.cc;h=e3ca20065150c88f8f804aa216f48ba7e9b1f53b;hb=488e3d1bd5e6b17d49f6db4df14c64f4b64db89b;hp=9c683caad63e6c4cef5dc1bfd23e957232c7fadf;hpb=51ae14c7e304d4fbc8d7524d584f3f4762d51f67;p=libdcp.git diff --git a/src/reel_subtitle_asset.cc b/src/reel_subtitle_asset.cc index 9c683caa..e3ca2006 100644 --- a/src/reel_subtitle_asset.cc +++ b/src/reel_subtitle_asset.cc @@ -52,7 +52,14 @@ using namespace dcp; ReelSubtitleAsset::ReelSubtitleAsset (std::shared_ptr asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point) - : ReelFileAsset (asset, asset->id(), edit_rate, intrinsic_duration, entry_point) + : ReelFileAsset ( + asset, + dynamic_pointer_cast(asset) ? dynamic_pointer_cast(asset)->key_id() : boost::none, + asset->id(), + edit_rate, + intrinsic_duration, + entry_point + ) { } @@ -85,11 +92,22 @@ ReelSubtitleAsset::equals (shared_ptr other, EqualityOp if (!asset_equals (other, opt, note)) { return false; } - - if (_asset_ref.resolved() && other->_asset_ref.resolved()) { - return _asset_ref->equals (other->_asset_ref.asset(), opt, note); + if (!file_asset_equals (other, opt, note)) { + return false; } return true; } + +xmlpp::Node * +ReelSubtitleAsset::write_to_cpl (xmlpp::Node* node, Standard standard) const +{ + auto asset = ReelFileAsset::write_to_cpl (node, standard); + if (_language) { + asset->add_child("Language")->add_child_text(*_language); + } + return asset; +} + +