summaryrefslogtreecommitdiff
path: root/src/AS_DCP_MXF.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2006-11-21 23:58:00 +0000
committerjhurst <>2006-11-21 23:58:00 +0000
commitf0476a3789369459fb91076af4a29372d86d7622 (patch)
tree6502d6fc94619371219d23c7522fd5ae7e6525bc /src/AS_DCP_MXF.cpp
parent9f903fec9d68fc58399a925b0311af3dc9a3faf2 (diff)
MPEG parser fixes: zero run-in patch, header buffer increase
Diffstat (limited to 'src/AS_DCP_MXF.cpp')
-rwxr-xr-xsrc/AS_DCP_MXF.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/AS_DCP_MXF.cpp b/src/AS_DCP_MXF.cpp
index 9b86b55..68d9d6b 100755
--- a/src/AS_DCP_MXF.cpp
+++ b/src/AS_DCP_MXF.cpp
@@ -32,6 +32,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <KM_fileio.h>
#include "AS_DCP_internal.h"
#include "JP2K.h"
+#include "MPEG.h"
#include "Wav.h"
@@ -189,8 +190,10 @@ ASDCP::RawEssenceType(const char* filename, EssenceType_t& type)
if ( ASDCP_SUCCESS(result) )
{
const byte_t* p = FB.RoData();
+ ui32_t i = 0;
+ while ( p[i] == 0 ) i++;
- if ( p[0] == 0 && p[1] == 0 && p[2] == 1 && (p[3] == 0xb3 || p[3] == 0) )
+ if ( i > 1 && p[i] == 1 && (p[i+1] == ASDCP::MPEG2::SEQ_START || p[i+1] == ASDCP::MPEG2::PIC_START) )
type = ESS_MPEG2_VES;
else if ( ASDCP_SUCCESS(WavHeader.ReadFromBuffer(p, read_count, &data_offset)) )