From 61a1033e5c75e8318340a3789c35ec6d008432cd Mon Sep 17 00:00:00 2001 From: jhurst Date: Tue, 4 Aug 2009 18:43:10 +0000 Subject: build JP2K parsers with file lists --- src/AS_DCP_MXF.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'src/AS_DCP_MXF.cpp') diff --git a/src/AS_DCP_MXF.cpp b/src/AS_DCP_MXF.cpp index 7251b7d..95e219e 100755 --- a/src/AS_DCP_MXF.cpp +++ b/src/AS_DCP_MXF.cpp @@ -234,7 +234,11 @@ ASDCP::RawEssenceType(const char* filename, EssenceType_t& type) { type = ESS_MPEG2_VES; } - else if ( ASDCP_SUCCESS(WavHeader.ReadFromBuffer(p, read_count, &data_offset)) ) + else if ( memcmp(FB.RoData(), ASDCP::JP2K::Magic, sizeof(ASDCP::JP2K::Magic)) == 0 ) + { + type = ESS_JPEG_2000; + } + else if ( ASDCP_SUCCESS(WavHeader.ReadFromBuffer(FB.RoData(), read_count, &data_offset)) ) { switch ( WavHeader.samplespersec ) { @@ -244,11 +248,11 @@ ASDCP::RawEssenceType(const char* filename, EssenceType_t& type) return RESULT_FORMAT; } } - else if ( ASDCP_SUCCESS(AIFFHeader.ReadFromBuffer(p, read_count, &data_offset)) ) + else if ( ASDCP_SUCCESS(AIFFHeader.ReadFromBuffer(FB.RoData(), read_count, &data_offset)) ) { type = ESS_PCM_24b_48k; } - else if ( Kumu::StringIsXML((const char*)p, FB.Size()) ) + else if ( Kumu::StringIsXML((const char*)FB.RoData(), FB.Size()) ) { type = ESS_TIMED_TEXT; } @@ -281,10 +285,19 @@ ASDCP::RawEssenceType(const char* filename, EssenceType_t& type) if ( ASDCP_SUCCESS(result) ) { if ( memcmp(FB.RoData(), ASDCP::JP2K::Magic, sizeof(ASDCP::JP2K::Magic)) == 0 ) - type = ESS_JPEG_2000; - + { + type = ESS_JPEG_2000; + } else if ( ASDCP_SUCCESS(WavHeader.ReadFromBuffer(FB.RoData(), read_count, &data_offset)) ) - type = ESS_PCM_24b_48k; + { + switch ( WavHeader.samplespersec ) + { + case 48000: type = ESS_PCM_24b_48k; break; + case 96000: type = ESS_PCM_24b_96k; break; + default: + return RESULT_FORMAT; + } + } } break; -- cgit v1.2.3