summaryrefslogtreecommitdiff
path: root/src/AS_DCP_MXF.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2013-06-04 05:22:27 +0000
committerjhurst <>2013-06-04 05:22:27 +0000
commit12051ad32d54a72a1a8682e15af1a185a61f1c61 (patch)
tree952a756375d6fd0c53d36d7521d2cc4ec355ddd5 /src/AS_DCP_MXF.cpp
parentde10f4a1f35fce05226b267baf6622e67e3d4c83 (diff)
working j2c as-02
Diffstat (limited to 'src/AS_DCP_MXF.cpp')
-rwxr-xr-xsrc/AS_DCP_MXF.cpp46
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;