summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2009-05-20 04:37:31 +0000
committerjhurst <>2009-05-20 04:37:31 +0000
commita5b15f66c30093efe376f0462e43ac4ac10e2e14 (patch)
treecebc444f468511a72e85c4cf425057b4b95727b4 /src
parentf7598051fa2ec0754bf7c5b2398dbaa54928f64b (diff)
UL dict final
Diffstat (limited to 'src')
-rwxr-xr-xsrc/Dict.cpp23
-rwxr-xr-xsrc/KLV.h3
-rwxr-xr-xsrc/MDD.h4
-rwxr-xr-xsrc/MXF.cpp4
-rwxr-xr-xsrc/h__Reader.cpp7
-rwxr-xr-xsrc/h__Writer.cpp7
6 files changed, 29 insertions, 19 deletions
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<ui32_t, ASDCP::UL>::iterator rii = m_md_rev_lookup.find(index);
@@ -226,7 +245,7 @@ ASDCP::Dictionary::Type(MDD_t type_id) const
std::map<ui32_t, ASDCP::UL>::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;