diff options
| author | jhurst <jhurst@cinecert.com> | 2012-02-03 19:49:57 +0000 |
|---|---|---|
| committer | jhurst <> | 2012-02-03 19:49:57 +0000 |
| commit | e0f46a5384974afa6f0be8a738e4989853323fbe (patch) | |
| tree | f241bfa4eddad47143afa6164aa18735e7b1de90 /src/MXF.cpp | |
| parent | 99f3c9bd7e314ed2342598ad0e2357c68c79e732 (diff) | |
megachanges
Diffstat (limited to 'src/MXF.cpp')
| -rwxr-xr-x | src/MXF.cpp | 60 |
1 files changed, 46 insertions, 14 deletions
diff --git a/src/MXF.cpp b/src/MXF.cpp index d1dd6d0..529344f 100755 --- a/src/MXF.cpp +++ b/src/MXF.cpp @@ -420,7 +420,9 @@ public: // -ASDCP::MXF::Primer::Primer(const Dictionary*& d) : m_LocalTag(0xff), m_Dict(d) {} +ASDCP::MXF::Primer::Primer(const Dictionary*& d) : m_LocalTag(0xff), m_Dict(d) { + m_UL = m_Dict->ul(MDD_Primer); +} // ASDCP::MXF::Primer::~Primer() {} @@ -486,7 +488,7 @@ ASDCP::MXF::Primer::WriteToBuffer(ASDCP::FrameBuffer& Buffer) if ( ASDCP_SUCCESS(result) ) { ui32_t packet_length = MemWRT.Length(); - result = WriteKLToBuffer(Buffer, m_Dict->ul(MDD_Primer), packet_length); + result = WriteKLToBuffer(Buffer, packet_length); if ( ASDCP_SUCCESS(result) ) Buffer.Size(Buffer.Size() + packet_length); @@ -579,6 +581,31 @@ ASDCP::MXF::Primer::Dump(FILE* stream) // // +ASDCP::MXF::Preface::Preface(const Dictionary*& d) : + InterchangeObject(d), m_Dict(d), Version(258), ObjectModelVersion(0) +{ + assert(m_Dict); + m_UL = m_Dict->Type(MDD_Preface).ul; +} + +// +void +ASDCP::MXF::Preface::Copy(const Preface& rhs) +{ + InterchangeObject::Copy(rhs); + + LastModifiedDate = rhs.LastModifiedDate; + Version = rhs.Version; + ObjectModelVersion = rhs.ObjectModelVersion; + PrimaryPackage = rhs.PrimaryPackage; + Identifications = rhs.Identifications; + ContentStorage = rhs.ContentStorage; + OperationalPattern = rhs.OperationalPattern; + EssenceContainers = rhs.EssenceContainers; + DMSchemes = rhs.DMSchemes; +} + +// ASDCP::Result_t ASDCP::MXF::Preface::InitFromTLVSet(TLVReader& TLVSet) { @@ -616,8 +643,6 @@ ASDCP::MXF::Preface::WriteToTLVSet(TLVWriter& TLVSet) ASDCP::Result_t ASDCP::MXF::Preface::InitFromBuffer(const byte_t* p, ui32_t l) { - assert(m_Dict); - m_Typeinfo = &(m_Dict->Type(MDD_Preface)); return InterchangeObject::InitFromBuffer(p, l); } @@ -625,8 +650,6 @@ ASDCP::MXF::Preface::InitFromBuffer(const byte_t* p, ui32_t l) ASDCP::Result_t ASDCP::MXF::Preface::WriteToBuffer(ASDCP::FrameBuffer& Buffer) { - assert(m_Dict); - m_Typeinfo = &(m_Dict->Type(MDD_Preface)); return InterchangeObject::WriteToBuffer(Buffer); } @@ -1262,6 +1285,15 @@ ASDCP::MXF::OPAtomIndexFooter::PushIndexEntry(const IndexTableSegment::IndexEntr // // +void +ASDCP::MXF::InterchangeObject::Copy(const InterchangeObject& rhs) +{ + m_UL = rhs.m_UL; + InstanceUID = rhs.InstanceUID; + GenerationUID = rhs.GenerationUID; +} + +// ASDCP::Result_t ASDCP::MXF::InterchangeObject::InitFromTLVSet(TLVReader& TLVSet) { @@ -1288,13 +1320,9 @@ ASDCP::MXF::InterchangeObject::InitFromBuffer(const byte_t* p, ui32_t l) ASDCP_TEST_NULL(p); Result_t result = RESULT_FALSE; - if ( m_Typeinfo == 0 ) + if ( m_UL.HasValue() ) { - result = KLVPacket::InitFromBuffer(p, l); - } - else - { - result = KLVPacket::InitFromBuffer(p, l, m_Typeinfo->ul); + result = KLVPacket::InitFromBuffer(p, l, m_UL); if ( ASDCP_SUCCESS(result) ) { @@ -1302,6 +1330,10 @@ ASDCP::MXF::InterchangeObject::InitFromBuffer(const byte_t* p, ui32_t l) result = InitFromTLVSet(MemRDR); } } + else + { + result = KLVPacket::InitFromBuffer(p, l); + } return result; } @@ -1310,7 +1342,7 @@ ASDCP::MXF::InterchangeObject::InitFromBuffer(const byte_t* p, ui32_t l) ASDCP::Result_t ASDCP::MXF::InterchangeObject::WriteToBuffer(ASDCP::FrameBuffer& Buffer) { - if ( m_Typeinfo == 0 ) + if ( ! m_UL.HasValue() ) return RESULT_STATE; TLVWriter MemWRT(Buffer.Data() + kl_length, Buffer.Capacity() - kl_length, m_Lookup); @@ -1319,7 +1351,7 @@ ASDCP::MXF::InterchangeObject::WriteToBuffer(ASDCP::FrameBuffer& Buffer) if ( ASDCP_SUCCESS(result) ) { ui32_t packet_length = MemWRT.Length(); - result = WriteKLToBuffer(Buffer, m_Typeinfo->ul, packet_length); + result = WriteKLToBuffer(Buffer, packet_length); if ( ASDCP_SUCCESS(result) ) Buffer.Size(Buffer.Size() + packet_length); |
