reader->ReadTimedTextResource (_raw_xml);
xml->read_string (_raw_xml);
parse_xml (xml);
- read_mxf_descriptor (reader, make_shared<DecryptionContext>(optional<Key>(), Standard::SMPTE));
+ read_mxf_descriptor (reader);
+ read_mxf_resources (reader, make_shared<DecryptionContext>(optional<Key>(), Standard::SMPTE));
+ } else {
+ read_mxf_descriptor (reader);
}
} else {
/* Plain XML */
void
-SMPTESubtitleAsset::read_mxf_descriptor (shared_ptr<ASDCP::TimedText::MXFReader> reader, shared_ptr<DecryptionContext> dec)
+SMPTESubtitleAsset::read_mxf_resources (shared_ptr<ASDCP::TimedText::MXFReader> reader, shared_ptr<DecryptionContext> dec)
{
ASDCP::TimedText::TimedTextDescriptor descriptor;
reader->FillTimedTextDescriptor (descriptor);
break;
}
}
+}
+
+
+void
+SMPTESubtitleAsset::read_mxf_descriptor (shared_ptr<ASDCP::TimedText::MXFReader> reader)
+{
+ ASDCP::TimedText::TimedTextDescriptor descriptor;
+ reader->FillTimedTextDescriptor (descriptor);
_intrinsic_duration = descriptor.ContainerDuration;
/* The thing which is called AssetID in the descriptor is also known as the
auto xml = make_shared<cxml::Document>("SubtitleReel");
xml->read_string (_raw_xml);
parse_xml (xml);
- read_mxf_descriptor (reader, dec);
+ read_mxf_resources (reader, dec);
}
return _xml_id;
}
- /** @return ResourceID read from the MXF, if there was one */
+ /** @return ResourceID read from any MXF that was read */
boost::optional<std::string> resource_id () const {
return _resource_id;
}
void read_fonts (std::shared_ptr<ASDCP::TimedText::MXFReader>);
void parse_xml (std::shared_ptr<cxml::Document> xml);
- void read_mxf_descriptor (std::shared_ptr<ASDCP::TimedText::MXFReader> reader, std::shared_ptr<DecryptionContext> dec);
+ void read_mxf_descriptor (std::shared_ptr<ASDCP::TimedText::MXFReader> reader);
+ void read_mxf_resources (std::shared_ptr<ASDCP::TimedText::MXFReader> reader, std::shared_ptr<DecryptionContext> dec);
/** The total length of this content in video frames. The amount of
* content presented may be less than this.