From: jhurst Date: Wed, 20 May 2009 04:37:31 +0000 (+0000) Subject: UL dict final X-Git-Tag: rel_2_10_32~359 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=a5b15f66c30093efe376f0462e43ac4ac10e2e14;p=asdcplib.git UL dict final --- diff --git a/src/Dict.cpp b/src/Dict.cpp index 3853e22..d50a836 100755 --- a/src/Dict.cpp +++ b/src/Dict.cpp @@ -124,6 +124,19 @@ ASDCP::DefaultSMPTEDict() return s_SMPTEDict; } +// +const ASDCP::MDDEntry& +ASDCP::MXFInterop_OPAtom_Entry() { + return s_MDD_Table[MDD_MXFInterop_OPAtom]; +} + +// +const ASDCP::MDDEntry& +ASDCP::SMPTE_390_OPAtom_Entry() { + return s_MDD_Table[MDD_OPAtom]; +} + + //------------------------------------------------------------------------------------------ // @@ -164,6 +177,12 @@ ASDCP::Dictionary::Init() bool ASDCP::Dictionary::AddEntry(const MDDEntry& Entry, ui32_t index) { + if ( index >= (ui32_t)MDD_Max ) + { + Kumu::DefaultLogSink().Warn("UL Dictionary: index exceeds maximum: %d\n", index); + return false; + } + bool result = true; // is this index already there? std::map::iterator rii = m_md_rev_lookup.find(index); @@ -226,7 +245,7 @@ ASDCP::Dictionary::Type(MDD_t type_id) const std::map::const_iterator rii = m_md_rev_lookup.find(type_id); if ( rii == m_md_rev_lookup.end() ) - Kumu::DefaultLogSink().Warn("Unknown UL type_id: %d\n", type_id); + Kumu::DefaultLogSink().Warn("UL Dictionary: unknown UL type_id: %d\n", type_id); return m_MDD_Table[type_id]; } @@ -250,7 +269,7 @@ ASDCP::Dictionary::FindUL(const byte_t* ul_buf) const { char buf[64]; UL TmpUL(ul_buf); - Kumu::DefaultLogSink().Warn("Unknown UL: %s\n", TmpUL.EncodeString(buf, 64)); + Kumu::DefaultLogSink().Warn("UL Dictionary: unknown UL: %s\n", TmpUL.EncodeString(buf, 64)); return 0; } } diff --git a/src/KLV.h b/src/KLV.h index 86c5a81..68d5a3c 100755 --- a/src/KLV.h +++ b/src/KLV.h @@ -134,6 +134,9 @@ inline const char* ui64sz(ui64_t i, char* buf) const char* name; }; + const MDDEntry& MXFInterop_OPAtom_Entry(); + const MDDEntry& SMPTE_390_OPAtom_Entry(); + // class Dictionary { diff --git a/src/MDD.h b/src/MDD.h index b8dd101..0d252fe 100755 --- a/src/MDD.h +++ b/src/MDD.h @@ -312,13 +312,9 @@ namespace ASDCP { MDD_Core_IndexSID, // 274 MDD_Core_OperationalPattern, // 275 MDD_Core_EssenceContainers, // 276 - MDD_Max }; // enum MDD_t - // const ui32_t MDD_Table_size = (ui32_t)MDD_Max; - - // const MDD_t MDD_EssenceContainerData_BodySID = MDD_Core_BodySID; const MDD_t MDD_IndexTableSegmentBase_IndexSID = MDD_Core_IndexSID; diff --git a/src/MXF.cpp b/src/MXF.cpp index 9ea0150..952de7e 100755 --- a/src/MXF.cpp +++ b/src/MXF.cpp @@ -710,8 +710,8 @@ ASDCP::MXF::OPAtomHeader::InitFromFile(const Kumu::FileReader& Reader) // is it really OP-Atom? assert(m_Dict); - UL OPAtomUL(m_Dict->ul(MDD_OPAtom)); - UL InteropOPAtomUL(m_Dict->ul(MDD_MXFInterop_OPAtom)); + UL OPAtomUL(SMPTE_390_OPAtom_Entry().ul); + UL InteropOPAtomUL(MXFInterop_OPAtom_Entry().ul); if ( OperationalPattern == OPAtomUL ) // SMPTE { diff --git a/src/h__Reader.cpp b/src/h__Reader.cpp index d36e1cc..6d74b9d 100755 --- a/src/h__Reader.cpp +++ b/src/h__Reader.cpp @@ -63,8 +63,8 @@ ASDCP::h__Reader::InitInfo() InterchangeObject* Object; m_Info.LabelSetType = LS_MXF_UNKNOWN; - UL OPAtomUL(m_Dict->ul(MDD_OPAtom)); - UL Interop_OPAtomUL(m_Dict->ul(MDD_MXFInterop_OPAtom)); + UL OPAtomUL(SMPTE_390_OPAtom_Entry().ul); + UL Interop_OPAtomUL(MXFInterop_OPAtom_Entry().ul); if ( m_HeaderPart.OperationalPattern == Interop_OPAtomUL ) m_Info.LabelSetType = LS_MXF_INTEROP; @@ -217,8 +217,7 @@ ASDCP::h__Reader::ReadEKLVPacket(ui32_t FrameNum, ui32_t SequenceNum, ASDCP::Fra m_LastPosition = m_LastPosition + Reader.KLLength() + PacketLength; assert(m_Dict); - if ( memcmp(Key.Value(), m_Dict->ul(MDD_CryptEssence), Key.Size() - 1) == 0 // ignore the stream numbers - || memcmp(Key.Value(), m_Dict->ul(MDD_MXFInterop_CryptEssence), Key.Size() - 1) == 0 ) + if ( memcmp(Key.Value(), m_Dict->ul(MDD_CryptEssence), Key.Size() - 1) == 0 ) // ignore the stream numbers { if ( ! m_Info.EncryptedEssence ) { diff --git a/src/h__Writer.cpp b/src/h__Writer.cpp index 97c1ba8..69873b6 100755 --- a/src/h__Writer.cpp +++ b/src/h__Writer.cpp @@ -523,9 +523,6 @@ ASDCP::h__Writer::WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf, const byte if ( ASDCP_SUCCESS(result) ) { // write UL - // if ( m_Info.LabelSetType == LS_MXF_INTEROP ) - // Overhead.WriteRaw(m_Dict->ul(MDD_MXFInterop_CryptEssence), SMPTE_UL_LENGTH); - // else Overhead.WriteRaw(m_Dict->ul(MDD_CryptEssence), SMPTE_UL_LENGTH); // construct encrypted triplet header @@ -625,10 +622,6 @@ ASDCP::h__Writer::WriteMXFFooter() assert(m_Dict); // re-label the partition UL OPAtomUL(m_Dict->ul(MDD_OPAtom)); - - // if ( m_Info.LabelSetType == LS_MXF_INTEROP ) - // OPAtomUL.Set(m_Dict->ul(MDD_MXFInterop_OPAtom)); - m_HeaderPart.OperationalPattern = OPAtomUL; m_HeaderPart.m_Preface->OperationalPattern = m_HeaderPart.OperationalPattern;