Re-read MXF descriptor after adding a key to a SMPTE subtitle asset (DoM #2660).
[libdcp.git] / src / smpte_subtitle_asset.cc
index ea1d74269da2184c456d1c01f6b5b6c6423f6566..0ff1d7ef5048996e7861e2bd7c02e453e68d66de 100644 (file)
@@ -306,10 +306,11 @@ SMPTESubtitleAsset::set_key (Key key)
           have read that file.
        */
        auto const had_key = static_cast<bool>(_key);
+       auto const had_key_id = static_cast<bool>(_key_id);
 
        MXF::set_key (key);
 
-       if (!_key_id || !_file || had_key) {
+       if (!had_key_id || !_file || had_key) {
                /* Either we don't have any data to read, it wasn't
                   encrypted, or we've already read it, so we don't
                   need to do anything else.
@@ -336,6 +337,7 @@ SMPTESubtitleAsset::set_key (Key key)
        auto xml = make_shared<cxml::Document>("SubtitleReel");
        xml->read_string (xml_string);
        parse_xml (xml);
+       read_mxf_descriptor(reader);
        read_mxf_resources (reader, dec);
 }