diff options
| author | jhurst <jhurst@cinecert.com> | 2021-11-10 12:47:34 -0800 |
|---|---|---|
| committer | jhurst <jhurst@cinecert.com> | 2021-11-10 12:47:34 -0800 |
| commit | ee09ede57c1469d6b926a33e166add3855aedee4 (patch) | |
| tree | b7695e07ef719f659452e2cd4a19e17ddcbdd865 /src | |
| parent | 03aebe66dcfaa1142a095bccc2c618fd922a0cb9 (diff) | |
Added recognition of IAB files
Diffstat (limited to 'src')
| -rw-r--r-- | src/as-02-info.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/as-02-info.cpp b/src/as-02-info.cpp index 79fe41b..b9b281c 100644 --- a/src/as-02-info.cpp +++ b/src/as-02-info.cpp @@ -553,6 +553,33 @@ class MyAudioDescriptor : public PCM::AudioDescriptor } }; +struct IabDescriptor +{ + int ContainerDuration; + IabDescriptor() : ContainerDuration(0) {} +}; + +class MyIabDescriptor : public IabDescriptor +{ + public: + void FillDescriptor(AS_02::IAB::MXFReader& reader) { + const Dictionary& Dict = DefaultCompositeDict(); + IABEssenceDescriptor *essence_descriptor_mxf = 0; + + std::list<MXF::InterchangeObject*> object_list; + reader.OP1aHeader().GetMDObjectsByType(DefaultSMPTEDict().ul(MDD_IABEssenceDescriptor), object_list); + + if ( ! object_list.empty() ) + { + essence_descriptor_mxf = dynamic_cast<MXF::IABEssenceDescriptor*>(object_list.back()); + assert(essence_descriptor_mxf); + ContainerDuration = (int)essence_descriptor_mxf->ContainerDuration.get(); + } + } + void Dump(FILE* stream) {} + void MyDump(FILE* stream) {} +}; + class MyTextDescriptor : public TimedText::TimedTextDescriptor { public: @@ -927,6 +954,11 @@ show_file_info(CommandOptions& Options, const Kumu::IFileReaderFactory& fileRead if ( ASDCP_SUCCESS(result) && Options.showcoding_flag ) wrapper.dump_WaveAudioDescriptor(stdout); } + else if ( EssenceType == ESS_AS02_IAB ) + { + FileInfoWrapper<AS_02::IAB::MXFReader, MyIabDescriptor> wrapper(fileReaderFactory); + result = wrapper.file_info(Options, "IAB audio"); + } else { fprintf(stderr, "Unknown/unsupported essence type: %s\n", Options.filenames.front().c_str()); |
