diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-05-27 11:45:11 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-27 11:45:11 +0200 |
| commit | c1d32ccfc586d0292ca4ec35a03fb403c3c45a07 (patch) | |
| tree | cc9d6f45d6c6d8d76197486d1aa3eca7e72986c5 /src/smpte_subtitle_asset.cc | |
| parent | 3e866abeee4de737a04719ff8ab6c6bf46bb4d74 (diff) | |
Read the bits we can from the MXF header even when it is encrypted.
Diffstat (limited to 'src/smpte_subtitle_asset.cc')
| -rw-r--r-- | src/smpte_subtitle_asset.cc | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/smpte_subtitle_asset.cc b/src/smpte_subtitle_asset.cc index 0fa315b9..dc8acf51 100644 --- a/src/smpte_subtitle_asset.cc +++ b/src/smpte_subtitle_asset.cc @@ -106,7 +106,10 @@ SMPTESubtitleAsset::SMPTESubtitleAsset (boost::filesystem::path file) 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 */ @@ -202,7 +205,7 @@ SMPTESubtitleAsset::parse_xml (shared_ptr<cxml::Document> 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); @@ -253,6 +256,14 @@ SMPTESubtitleAsset::read_mxf_descriptor (shared_ptr<ASDCP::TimedText::MXFReader> 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 @@ -300,7 +311,7 @@ SMPTESubtitleAsset::set_key (Key key) 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); } |
