diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/AS_02_PHDR.cpp | 2 | ||||
| -rw-r--r-- | src/AS_02_internal.h | 2 | ||||
| -rw-r--r-- | src/AS_DCP_TimedText.cpp | 2 | ||||
| -rwxr-xr-x | src/AS_DCP_internal.h | 28 | ||||
| -rwxr-xr-x | src/h__Writer.cpp | 2 |
5 files changed, 29 insertions, 7 deletions
diff --git a/src/AS_02_PHDR.cpp b/src/AS_02_PHDR.cpp index 9322b31..d52618e 100644 --- a/src/AS_02_PHDR.cpp +++ b/src/AS_02_PHDR.cpp @@ -445,7 +445,7 @@ AS_02::PHDR::MXFWriter::h__Writer::WritePHDRHeader(const std::string& PackageLab return RESULT_PARAM; } - InitHeader(); + InitHeader(MXFVersion_2011); AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, TCFrameRate, TrackName, EssenceUL, DataDefinition, PackageLabel); diff --git a/src/AS_02_internal.h b/src/AS_02_internal.h index 76286b1..f67af68 100644 --- a/src/AS_02_internal.h +++ b/src/AS_02_internal.h @@ -172,7 +172,7 @@ namespace AS_02 return RESULT_PARAM; } - InitHeader(); + InitHeader(MXFVersion_2011); AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, TCFrameRate, TrackName, EssenceUL, DataDefinition, PackageLabel); AddEssenceDescriptor(WrappingUL); diff --git a/src/AS_DCP_TimedText.cpp b/src/AS_DCP_TimedText.cpp index af5e976..ab8dab9 100644 --- a/src/AS_DCP_TimedText.cpp +++ b/src/AS_DCP_TimedText.cpp @@ -580,7 +580,7 @@ ASDCP::TimedText::MXFWriter::h__Writer::SetSourceStream(ASDCP::TimedText::TimedT if ( ASDCP_SUCCESS(result) ) { - InitHeader(); + InitHeader(MXFVersion_2004); // First RIP Entry if ( m_Info.LabelSetType == LS_MXF_SMPTE ) // ERK diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h index c1df8ad..aaa9e60 100755 --- a/src/AS_DCP_internal.h +++ b/src/AS_DCP_internal.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2004-2013, John Hurst +Copyright (c) 2004-2016, John Hurst All rights reserved. Redistribution and use in source and binary forms, with or without @@ -122,6 +122,14 @@ namespace ASDCP { 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b }; + // Version of MXF spec to which an MXF file conforms + enum MXFVersion + { + MXFVersion_2004, + MXFVersion_2011, + MXFVersion_MAX + }; + //------------------------------------------------------------------------------------------ // @@ -528,11 +536,11 @@ namespace ASDCP const MXF::RIP& GetRIP() const { return m_RIP; } - void InitHeader() + void InitHeader(const MXFVersion& mxf_ver) { assert(m_Dict); assert(m_EssenceDescriptor); - + m_HeaderPart.m_Primer.ClearTagList(); m_HeaderPart.m_Preface = new Preface(m_Dict); m_HeaderPart.AddChildObject(m_HeaderPart.m_Preface); @@ -542,6 +550,20 @@ namespace ASDCP m_HeaderPart.m_Preface->OperationalPattern = UL(m_Dict->ul(MDD_OP1a)); m_HeaderPart.OperationalPattern = m_HeaderPart.m_Preface->OperationalPattern; + if ( mxf_ver == MXFVersion_2004 ) + { + m_HeaderPart.MinorVersion = 2; + m_HeaderPart.m_Preface->Version = 258; + m_HeaderPart.m_Preface->ObjectModelVersion = 1; + } + else + { + assert(mxf_ver == MXFVersion_2011); + m_HeaderPart.MinorVersion = 3; + m_HeaderPart.m_Preface->Version = 259; + m_HeaderPart.m_Preface->ObjectModelVersion = 1; + } + // Identification Identification* Ident = new Identification(m_Dict); m_HeaderPart.AddChildObject(Ident); diff --git a/src/h__Writer.cpp b/src/h__Writer.cpp index 07d418f..93388cd 100755 --- a/src/h__Writer.cpp +++ b/src/h__Writer.cpp @@ -141,7 +141,7 @@ ASDCP::h__ASDCPWriter::WriteASDCPHeader(const std::string& PackageLabel, const U const std::string& TrackName, const UL& EssenceUL, const UL& DataDefinition, const MXF::Rational& EditRate, ui32_t TCFrameRate, ui32_t BytesPerEditUnit) { - InitHeader(); + InitHeader(MXFVersion_2004); // First RIP Entry if ( m_Info.LabelSetType == LS_MXF_SMPTE ) // ERK |
