ASDCP::Result_t
ASDCP::MXF::RIP::InitFromFile(const Kumu::FileReader& Reader)
{
+ assert(m_Dict);
Result_t result = KLVFilePacket::InitFromFile(Reader, m_Dict->ul(MDD_RandomIndexMetadata));
if ( ASDCP_SUCCESS(result) )
ASDCP::Result_t
ASDCP::MXF::RIP::WriteToFile(Kumu::FileWriter& Writer)
{
+ assert(m_Dict);
ASDCP::FrameBuffer Buffer;
ui32_t RIPSize = ( PairArray.size() * (sizeof(ui32_t) + sizeof(ui64_t)) ) + 4;
Result_t result = Buffer.Capacity(RIPSize);
ASDCP::Result_t
ASDCP::MXF::Primer::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
Result_t result = KLVPacket::InitFromBuffer(p, l, m_Dict->ul(MDD_Primer));
if ( ASDCP_SUCCESS(result) )
ASDCP::Result_t
ASDCP::MXF::Primer::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
ASDCP::FrameBuffer LocalTagBuffer;
Kumu::MemIOWriter MemWRT(Buffer.Data() + kl_length, Buffer.Capacity() - kl_length);
Result_t result = LocalTagEntryBatch.Archive(&MemWRT) ? RESULT_OK : RESULT_KLV_CODING;
void
ASDCP::MXF::Primer::Dump(FILE* stream)
{
+ assert(m_Dict);
char identbuf[IdentBufferLen];
if ( stream == 0 )
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);
}
ASDCP::Result_t
ASDCP::MXF::Preface::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Preface));
return InterchangeObject::WriteToBuffer(Buffer);
}
return result;
// is it really OP-Atom?
- UL OPAtomUL(m_Dict->ul(MDD_OPAtom));
- UL InteropOPAtomUL(m_Dict->ul(MDD_MXFInterop_OPAtom));
+ assert(m_Dict);
+ UL OPAtomUL(SMPTE_390_OPAtom_Entry().ul);
+ UL InteropOPAtomUL(MXFInterop_OPAtom_Entry().ul);
- if ( OperationalPattern == OPAtomUL ) // SMPTE
+ if ( OperationalPattern.ExactMatch(OPAtomUL) ) // SMPTE
{
if ( m_Dict == &DefaultCompositeDict() )
m_Dict = &DefaultSMPTEDict();
}
- else if ( OperationalPattern == InteropOPAtomUL ) // Interop
+ else if ( OperationalPattern.ExactMatch(InteropOPAtomUL) ) // Interop
{
if ( m_Dict == &DefaultCompositeDict() )
m_Dict = &DefaultInteropDict();
ASDCP::Result_t
ASDCP::MXF::OPAtomHeader::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
Result_t result = RESULT_OK;
const byte_t* end_p = p + l;
{
delete object;
}
- else if ( object->IsA(m_Dict->ul(MDD_Primer)) )
+ else if ( object->IsA(m_Dict->ul(MDD_Primer)) ) // TODO: only one primer should be found
{
delete object;
result = m_Primer.InitFromBuffer(redo_p, end_p - redo_p);
ASDCP::Result_t
ASDCP::MXF::OPAtomHeader::WriteToFile(Kumu::FileWriter& Writer, ui32_t HeaderSize)
{
+ assert(m_Dict);
if ( m_Preface == 0 )
return RESULT_STATE;
ASDCP::Result_t
ASDCP::MXF::OPAtomIndexFooter::WriteToFile(Kumu::FileWriter& Writer, ui64_t duration)
{
+ assert(m_Dict);
ASDCP::FrameBuffer FooterBuffer;
ui32_t footer_size = m_PacketList->m_List.size() * MaxIndexSegmentSize; // segment-count * max-segment-size
Result_t result = FooterBuffer.Capacity(footer_size);