diff options
| author | jhurst <jhurst@cinecert.com> | 2013-06-04 05:22:27 +0000 |
|---|---|---|
| committer | jhurst <> | 2013-06-04 05:22:27 +0000 |
| commit | 12051ad32d54a72a1a8682e15af1a185a61f1c61 (patch) | |
| tree | 952a756375d6fd0c53d36d7521d2cc4ec355ddd5 /src/AS_DCP_MXF.cpp | |
| parent | de10f4a1f35fce05226b267baf6622e67e3d4c83 (diff) | |
working j2c as-02
Diffstat (limited to 'src/AS_DCP_MXF.cpp')
| -rwxr-xr-x | src/AS_DCP_MXF.cpp | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/src/AS_DCP_MXF.cpp b/src/AS_DCP_MXF.cpp index a9ff152..f3ad310 100755 --- a/src/AS_DCP_MXF.cpp +++ b/src/AS_DCP_MXF.cpp @@ -164,6 +164,8 @@ ASDCP::Result_t ASDCP::EssenceType(const char* filename, EssenceType_t& type) { const Dictionary* m_Dict = &DefaultCompositeDict(); + InterchangeObject* md_object = 0; + assert(m_Dict); ASDCP_TEST_NULL_STR(filename); @@ -178,26 +180,48 @@ ASDCP::EssenceType(const char* filename, EssenceType_t& type) if ( ASDCP_SUCCESS(result) ) { type = ESS_UNKNOWN; - if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(RGBAEssenceDescriptor))) ) + if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(JPEG2000PictureSubDescriptor))) ) { if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(StereoscopicPictureSubDescriptor))) ) - type = ESS_JPEG_2000_S; + { + type = ESS_JPEG_2000_S; + } else - type = ESS_JPEG_2000; + { + type = ESS_JPEG_2000; + } + } + else if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(WaveAudioDescriptor), &md_object)) ) + { + assert(md_object); + if ( static_cast<ASDCP::MXF::WaveAudioDescriptor*>(md_object)->AudioSamplingRate == SampleRate_96k ) + { + type = ESS_PCM_24b_96k; + } + else + { + type = ESS_PCM_24b_48k; + } } - else if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(WaveAudioDescriptor))) ) - type = ESS_PCM_24b_48k; else if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(MPEG2VideoDescriptor))) ) + { type = ESS_MPEG2_VES; + } else if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(TimedTextDescriptor))) ) + { type = ESS_TIMED_TEXT; + } else if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(DCDataDescriptor))) ) - { - if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(DolbyAtmosSubDescriptor))) ) - type = ESS_DCDATA_DOLBY_ATMOS; - else - type = ESS_DCDATA_UNKNOWN; - } + { + if ( ASDCP_SUCCESS(TestHeader.GetMDObjectByType(OBJ_TYPE_ARGS(DolbyAtmosSubDescriptor))) ) + { + type = ESS_DCDATA_DOLBY_ATMOS; + } + else + { + type = ESS_DCDATA_UNKNOWN; + } + } } return result; |
