Write MCA tags based on the specified sound field.
[libdcp.git] / src / reel_closed_caption_asset.cc
index 3369fdd961f7a1ab8cdbbf78b646f6756ca757a6..1cb97cb01c64df8a34498c249baf0b0622620c8e 100644 (file)
@@ -55,7 +55,7 @@ using namespace dcp;
 
 ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point)
        : ReelAsset (asset->id(), edit_rate, intrinsic_duration, entry_point)
-       , ReelMXF (asset, dynamic_pointer_cast<SMPTESubtitleAsset>(asset) ? dynamic_pointer_cast<SMPTESubtitleAsset>(asset)->key_id() : optional<string>())
+       , ReelFileAsset (asset, dynamic_pointer_cast<SMPTESubtitleAsset>(asset) ? dynamic_pointer_cast<SMPTESubtitleAsset>(asset)->key_id() : optional<string>())
 {
 
 }
@@ -63,7 +63,7 @@ ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr<SubtitleAsset> a
 
 ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr<const cxml::Node> node)
        : ReelAsset (node)
-       , ReelMXF (node)
+       , ReelFileAsset (node)
 {
        _language = node->optional_string_child ("Language");
        node->done ();
@@ -112,7 +112,14 @@ ReelClosedCaptionAsset::write_to_cpl (xmlpp::Node* node, Standard standard) cons
        write_to_cpl_mxf (asset);
 
        if (_language) {
-               asset->add_child("Language", "tt")->add_child_text(*_language);
+               switch (standard) {
+               case Standard::INTEROP:
+                       asset->add_child("Language")->add_child_text(*_language);
+                       break;
+               case Standard::SMPTE:
+                       asset->add_child("Language", "tt")->add_child_text(*_language);
+                       break;
+               }
        }
 
        return asset;