summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2009-05-19 21:51:08 +0000
committerjhurst <>2009-05-19 21:51:08 +0000
commit7088ba5125e89164ccf1d4d810b819bdd2e3ccff (patch)
tree4b19cbc2efed408c7db2faad25349f57a08d20ae
parent8243e05863f05772b1438c291d5f2fa79a69a8b7 (diff)
harder than it looks
-rwxr-xr-xsrc/AS_DCP_JP2K.cpp4
-rwxr-xr-xsrc/AS_DCP_MPEG2.cpp2
-rwxr-xr-xsrc/AS_DCP_MXF.cpp1
-rwxr-xr-xsrc/AS_DCP_PCM.cpp2
-rw-r--r--src/AS_DCP_TimedText.cpp4
-rwxr-xr-xsrc/Dict.cpp75
-rwxr-xr-xsrc/Index.cpp6
-rwxr-xr-xsrc/KLV.h2
-rw-r--r--src/MDD.cpp12
-rwxr-xr-xsrc/MDD.h46
-rwxr-xr-xsrc/MXF.cpp13
-rwxr-xr-xsrc/Metadata.cpp109
-rwxr-xr-xsrc/h__Reader.cpp2
-rwxr-xr-xsrc/h__Writer.cpp19
14 files changed, 249 insertions, 48 deletions
diff --git a/src/AS_DCP_JP2K.cpp b/src/AS_DCP_JP2K.cpp
index ed8a923..009586a 100755
--- a/src/AS_DCP_JP2K.cpp
+++ b/src/AS_DCP_JP2K.cpp
@@ -359,6 +359,7 @@ lh__Reader::ReadFrame(ui32_t FrameNum, JP2K::FrameBuffer& FrameBuf,
if ( ! m_File.IsOpen() )
return RESULT_INIT;
+ assert(m_Dict);
return ReadEKLVFrame(FrameNum, FrameBuf, m_Dict->ul(MDD_JPEG2000Essence), Ctx, HMAC);
}
@@ -547,6 +548,7 @@ public:
{
ui32_t SequenceNum = FrameNum * 2;
SequenceNum += ( phase == SP_RIGHT ) ? 2 : 1;
+ assert(m_Dict);
result = ReadEKLVPacket(FrameNum, SequenceNum, FrameBuf, m_Dict->ul(MDD_JPEG2000Essence), Ctx, HMAC);
}
@@ -706,6 +708,7 @@ lh__Writer::JP2K_PDesc_to_MD(JP2K::PictureDescriptor& PDesc)
// PixelLayout byte_t[PixelLayoutSize] = s_PixelLayoutXYZ
// }
+ assert(m_Dict);
if ( PDesc.StoredWidth < 2049 )
{
PDescObj->PictureEssenceCoding.Set(m_Dict->ul(MDD_JP2KEssenceCompression_2K));
@@ -796,6 +799,7 @@ lh__Writer::OpenWrite(const char* filename, EssenceType_t type, ui32_t HeaderSiz
ASDCP::Result_t
lh__Writer::SetSourceStream(const PictureDescriptor& PDesc, const std::string& label, ASDCP::Rational LocalEditRate)
{
+ assert(m_Dict);
if ( ! m_State.Test_INIT() )
return RESULT_STATE;
diff --git a/src/AS_DCP_MPEG2.cpp b/src/AS_DCP_MPEG2.cpp
index 2370319..aac0ddc 100755
--- a/src/AS_DCP_MPEG2.cpp
+++ b/src/AS_DCP_MPEG2.cpp
@@ -252,6 +252,7 @@ ASDCP::Result_t
ASDCP::MPEG2::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, FrameBuffer& FrameBuf,
AESDecContext* Ctx, HMACContext* HMAC)
{
+ assert(m_Dict);
if ( ! m_File.IsOpen() )
return RESULT_INIT;
@@ -453,6 +454,7 @@ ASDCP::MPEG2::MXFWriter::h__Writer::OpenWrite(const char* filename, ui32_t Heade
ASDCP::Result_t
ASDCP::MPEG2::MXFWriter::h__Writer::SetSourceStream(const VideoDescriptor& VDesc)
{
+ assert(m_Dict);
if ( ! m_State.Test_INIT() )
return RESULT_STATE;
diff --git a/src/AS_DCP_MXF.cpp b/src/AS_DCP_MXF.cpp
index 8ce4c55..7251b7d 100755
--- a/src/AS_DCP_MXF.cpp
+++ b/src/AS_DCP_MXF.cpp
@@ -164,6 +164,7 @@ ASDCP::Result_t
ASDCP::EssenceType(const char* filename, EssenceType_t& type)
{
const Dictionary* m_Dict = &DefaultCompositeDict();
+ assert(m_Dict);
ASDCP_TEST_NULL_STR(filename);
Kumu::FileReader Reader;
diff --git a/src/AS_DCP_PCM.cpp b/src/AS_DCP_PCM.cpp
index b709e8d..b24706f 100755
--- a/src/AS_DCP_PCM.cpp
+++ b/src/AS_DCP_PCM.cpp
@@ -267,6 +267,7 @@ ASDCP::PCM::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, FrameBuffer& FrameB
if ( ! m_File.IsOpen() )
return RESULT_INIT;
+ assert(m_Dict);
return ReadEKLVFrame(FrameNum, FrameBuf, m_Dict->ul(MDD_WAVEssence), Ctx, HMAC);
}
@@ -440,6 +441,7 @@ ASDCP::PCM::MXFWriter::h__Writer::SetSourceStream(const AudioDescriptor& ADesc)
return RESULT_RAW_FORMAT;
}
+ assert(m_Dict);
m_ADesc = ADesc;
Result_t result = PCM_ADesc_to_MD(m_ADesc, (WaveAudioDescriptor*)m_EssenceDescriptor);
diff --git a/src/AS_DCP_TimedText.cpp b/src/AS_DCP_TimedText.cpp
index 39a5c1a..c13b447 100644
--- a/src/AS_DCP_TimedText.cpp
+++ b/src/AS_DCP_TimedText.cpp
@@ -233,6 +233,7 @@ ASDCP::TimedText::MXFReader::h__Reader::ReadTimedTextResource(FrameBuffer& Frame
if ( ! m_File.IsOpen() )
return RESULT_INIT;
+ assert(m_Dict);
Result_t result = ReadEKLVFrame(0, FrameBuf, m_Dict->ul(MDD_TimedTextEssence), Ctx, HMAC);
if( ASDCP_SUCCESS(result) )
@@ -317,6 +318,7 @@ ASDCP::TimedText::MXFReader::h__Reader::ReadAncillaryResource(const byte_t* uuid
}
// read the essence packet
+ assert(m_Dict);
if( ASDCP_SUCCESS(result) )
result = ReadEKLVPacket(0, 1, FrameBuf, m_Dict->ul(MDD_GenericStream_DataElement), Ctx, HMAC);
}
@@ -515,6 +517,7 @@ ASDCP::TimedText::MXFWriter::h__Writer::SetSourceStream(ASDCP::TimedText::TimedT
}
m_EssenceStreamID = 10;
+ assert(m_Dict);
if ( ASDCP_SUCCESS(result) )
{
@@ -583,6 +586,7 @@ ASDCP::TimedText::MXFWriter::h__Writer::WriteAncillaryResource(const ASDCP::Time
return RESULT_STATE;
Kumu::fpos_t here = m_File.Tell();
+ assert(m_Dict);
// create generic stream partition header
static UL GenericStream_DataElement(m_Dict->ul(MDD_GenericStream_DataElement));
diff --git a/src/Dict.cpp b/src/Dict.cpp
index 0034110..b64032b 100755
--- a/src/Dict.cpp
+++ b/src/Dict.cpp
@@ -79,23 +79,14 @@ ASDCP::DefaultInteropDict()
{
s_InteropDict.Init();
- s_InteropDict.AddEntry(s_InteropDict.Type(MDD_MXFInterop_OPAtom), MDD_OPAtom);
- s_InteropDict.AddEntry(s_InteropDict.Type(MDD_MXFInterop_CryptEssence), MDD_CryptEssence);
- s_InteropDict.AddEntry(s_InteropDict.Type(MDD_MXFInterop_GenericDescriptor_SubDescriptors),
+ s_InteropDict.DeleteEntry(MDD_MXFInterop_OPAtom);
+ s_InteropDict.DeleteEntry(MDD_MXFInterop_CryptEssence);
+ s_InteropDict.DeleteEntry(MDD_MXFInterop_GenericDescriptor_SubDescriptors);
+
+ s_InteropDict.AddEntry(s_MDD_Table[MDD_MXFInterop_OPAtom], MDD_OPAtom);
+ s_InteropDict.AddEntry(s_MDD_Table[MDD_MXFInterop_CryptEssence], MDD_CryptEssence);
+ s_InteropDict.AddEntry(s_MDD_Table[MDD_MXFInterop_GenericDescriptor_SubDescriptors],
MDD_GenericDescriptor_SubDescriptors);
- s_InteropDict.DeleteEntry(MDD_TimedTextWrapping);
- s_InteropDict.DeleteEntry(MDD_TimedTextEssence);
- s_InteropDict.DeleteEntry(MDD_TimedTextDescriptor);
- s_InteropDict.DeleteEntry(MDD_TimedTextDescriptor_ResourceID);
- s_InteropDict.DeleteEntry(MDD_TimedTextDescriptor_UCSEncoding);
- s_InteropDict.DeleteEntry(MDD_TimedTextDescriptor_NamespaceURI);
- s_InteropDict.DeleteEntry(MDD_TimedTextResourceSubDescriptor);
- s_InteropDict.DeleteEntry(MDD_TimedTextResourceSubDescriptor_AncillaryResourceID);
- s_InteropDict.DeleteEntry(MDD_TimedTextResourceSubDescriptor_MIMEMediaType);
- s_InteropDict.DeleteEntry(MDD_TimedTextResourceSubDescriptor_EssenceStreamID);
- s_InteropDict.DeleteEntry(MDD_GenericStreamPartition);
- s_InteropDict.DeleteEntry(MDD_StereoscopicPictureSubDescriptor);
- s_InteropDict.DeleteEntry(MDD_GenericStream_DataElement);
s_InteropDictInit = true;
}
@@ -146,8 +137,27 @@ ASDCP::Dictionary::Init()
m_md_lookup.clear();
memset(m_MDD_Table, 0, sizeof(m_MDD_Table));
- for ( ui32_t x = 0; x < ASDCP::MDD_Table_size; x++ )
- AddEntry(s_MDD_Table[x], x);
+ for ( ui32_t x = 0; x < (ui32_t)ASDCP::MDD_Max; x++ )
+ {
+ if ( x == MDD_PartitionMetadata_IndexSID_DEPRECATED // 30
+ || x == MDD_PartitionMetadata_BodySID_DEPRECATED // 32
+ || x == MDD_PartitionMetadata_EssenceContainers_DEPRECATED // 34
+ || x == MDD_IndexTableSegmentBase_IndexSID_DEPRECATED // 56
+ || x == MDD_IndexTableSegmentBase_BodySID_DEPRECATED // 57
+ || x == MDD_PartitionArray_RandomIndexMetadata_BodySID_DEPRECATED // 73
+ || x == MDD_Preface_EssenceContainers_DEPRECATED // 85
+ || x == MDD_EssenceContainerData_IndexSID_DEPRECATED // 103
+ || x == MDD_EssenceContainerData_BodySID_DEPRECATED // 104
+ || x == MDD_DMSegment_DataDefinition_DEPRECATED // 266
+ || x == MDD_DMSegment_Duration_DEPRECATED // 267
+ || x == MDD_PartitionMetadata_OperationalPattern_DEPRECATED // 33
+ || x == MDD_Preface_OperationalPattern_DEPRECATED // 84
+ || x == MDD_TimedTextResourceSubDescriptor_EssenceStreamID_DEPRECATED // 264
+ )
+ continue;
+
+ AddEntry(s_MDD_Table[x], x);
+ }
}
//
@@ -164,8 +174,22 @@ ASDCP::Dictionary::AddEntry(const MDDEntry& Entry, ui32_t index)
result = false;
}
- m_md_lookup.insert(std::map<UL, ui32_t>::value_type(UL(Entry.ul), index));
- m_md_rev_lookup.insert(std::map<ui32_t, UL>::value_type(index, UL(Entry.ul)));
+#ifdef MDD_AUTHORING_MODE
+ char buf[64];
+ UL TmpUL(Entry.ul);
+ std::map<ASDCP::UL, ui32_t>::iterator ii = m_md_lookup.find(TmpUL);
+ if ( ii != m_md_lookup.end() )
+ {
+ fprintf(stderr, "DUPE! %s (%02x, %02x) %s | (%02x, %02x) %s\n",
+ TmpUL.EncodeString(buf, 64),
+ m_MDD_Table[ii->second].tag.a, m_MDD_Table[ii->second].tag.b,
+ m_MDD_Table[ii->second].name,
+ Entry.tag.a, Entry.tag.b, Entry.name);
+ }
+#endif
+
+ m_md_lookup.insert(std::map<UL, ui32_t>::value_type(TmpUL, index));
+ m_md_rev_lookup.insert(std::map<ui32_t, UL>::value_type(index, TmpUL));
m_MDD_Table[index] = Entry;
return result;
@@ -197,6 +221,7 @@ ASDCP::Dictionary::DeleteEntry(ui32_t index)
const ASDCP::MDDEntry&
ASDCP::Dictionary::Type(MDD_t type_id) const
{
+ assert(m_MDD_Table[0].name[0]);
std::map<ui32_t, ASDCP::UL>::const_iterator rii = m_md_rev_lookup.find(type_id);
if ( rii == m_md_rev_lookup.end() )
@@ -209,6 +234,7 @@ ASDCP::Dictionary::Type(MDD_t type_id) const
const ASDCP::MDDEntry*
ASDCP::Dictionary::FindUL(const byte_t* ul_buf) const
{
+ assert(m_MDD_Table[0].name[0]);
std::map<UL, ui32_t>::const_iterator i = m_md_lookup.find(UL(ul_buf));
if ( i == m_md_lookup.end() )
@@ -243,9 +269,12 @@ ASDCP::Dictionary::Dump(FILE* stream) const
while ( di < MDD_Max )
{
- MDDEntry TmpType = m_MDD_Table[di];
- UL TmpUL(TmpType.ul);
- fprintf(stream, "%s: %s\n", TmpUL.EncodeString(str_buf, 64), TmpType.name);
+ if ( m_MDD_Table[di].name != 0 )
+ {
+ UL TmpUL(m_MDD_Table[di].ul);
+ fprintf(stream, "%s: %s\n", TmpUL.EncodeString(str_buf, 64), m_MDD_Table[di].name);
+ }
+
di = (MDD_t)(di + 1);
}
}
diff --git a/src/Index.cpp b/src/Index.cpp
index 2449937..307e851 100755
--- a/src/Index.cpp
+++ b/src/Index.cpp
@@ -56,7 +56,7 @@ ASDCP::MXF::IndexTableSegment::InitFromTLVSet(TLVReader& TLVSet)
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(IndexTableSegmentBase, IndexDuration));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(IndexTableSegmentBase, EditUnitByteCount));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(IndexTableSegmentBase, IndexSID));
- if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(IndexTableSegmentBase, BodySID));
+ if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(IndexTableSegmentBase, SliceCount));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(IndexTableSegmentBase, PosTableCount));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(IndexTableSegment, DeltaEntryArray));
@@ -74,7 +74,7 @@ ASDCP::MXF::IndexTableSegment::WriteToTLVSet(TLVWriter& TLVSet)
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(IndexTableSegmentBase, IndexDuration));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(IndexTableSegmentBase, EditUnitByteCount));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(IndexTableSegmentBase, IndexSID));
- if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(IndexTableSegmentBase, BodySID));
+ if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(IndexTableSegmentBase, SliceCount));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(IndexTableSegmentBase, PosTableCount));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(IndexTableSegment, DeltaEntryArray));
@@ -86,6 +86,7 @@ ASDCP::MXF::IndexTableSegment::WriteToTLVSet(TLVWriter& TLVSet)
ASDCP::Result_t
ASDCP::MXF::IndexTableSegment::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_IndexTableSegment));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -94,6 +95,7 @@ ASDCP::MXF::IndexTableSegment::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
ASDCP::MXF::IndexTableSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_IndexTableSegment));
return InterchangeObject::WriteToBuffer(Buffer);
}
diff --git a/src/KLV.h b/src/KLV.h
index ca455fc..86c5a81 100755
--- a/src/KLV.h
+++ b/src/KLV.h
@@ -139,7 +139,7 @@ inline const char* ui64sz(ui64_t i, char* buf)
{
std::map<ASDCP::UL, ui32_t> m_md_lookup;
std::map<ui32_t, ASDCP::UL> m_md_rev_lookup;
- MDDEntry m_MDD_Table[ASDCP::MDD_Table_size];
+ MDDEntry m_MDD_Table[(ui32_t)ASDCP::MDD_Max];
ASDCP_NO_COPY_CONSTRUCT(Dictionary);
diff --git a/src/MDD.cpp b/src/MDD.cpp
index 27c4cf1..92c151c 100644
--- a/src/MDD.cpp
+++ b/src/MDD.cpp
@@ -854,6 +854,18 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
{ { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 272
0x06, 0x01, 0x01, 0x04, 0x06, 0x10, 0x00, 0x00 },
{0}, true, "MXFInterop_GenericDescriptor_SubDescriptors" },
+ { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 273
+ 0x01, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00 },
+ {0x3f, 0x07}, false, "BodySID" },
+ { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 274
+ 0x01, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00 },
+ {0x3f, 0x06}, false, "IndexSID" },
+ { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 275
+ 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00 },
+ {0x3b, 0x09}, false, "OperationalPattern" },
+ { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 276
+ 0x01, 0x02, 0x02, 0x10, 0x02, 0x01, 0x00, 0x00 },
+ {0x3b, 0x0a}, false, "EssenceContainers" },
{ {0}, {0}, false, 0 }
};
diff --git a/src/MDD.h b/src/MDD.h
index 7633471..b8dd101 100755
--- a/src/MDD.h
+++ b/src/MDD.h
@@ -65,11 +65,11 @@ namespace ASDCP {
MDD_PartitionMetadata_FooterPartition, // 27
MDD_PartitionMetadata_HeaderByteCount, // 28
MDD_PartitionMetadata_IndexByteCount, // 29
- MDD_PartitionMetadata_IndexSID, // 30
+ MDD_PartitionMetadata_IndexSID_DEPRECATED, // 30
MDD_PartitionMetadata_BodyOffset, // 31
- MDD_PartitionMetadata_BodySID, // 32
- MDD_PartitionMetadata_OperationalPattern, // 33
- MDD_PartitionMetadata_EssenceContainers, // 34
+ MDD_PartitionMetadata_BodySID_DEPRECATED, // 32
+ MDD_PartitionMetadata_OperationalPattern_DEPRECATED, // 33
+ MDD_PartitionMetadata_EssenceContainers_DEPRECATED, // 34
MDD_OpenHeader, // 35
MDD_OpenCompleteHeader, // 36
MDD_ClosedHeader, // 37
@@ -91,8 +91,8 @@ namespace ASDCP {
MDD_IndexTableSegmentBase_IndexStartPosition, // 53
MDD_IndexTableSegmentBase_IndexDuration, // 54
MDD_IndexTableSegmentBase_EditUnitByteCount, // 55
- MDD_IndexTableSegmentBase_IndexSID, // 56
- MDD_IndexTableSegmentBase_BodySID, // 57
+ MDD_IndexTableSegmentBase_IndexSID_DEPRECATED, // 56
+ MDD_IndexTableSegmentBase_BodySID_DEPRECATED, // 57
MDD_IndexTableSegmentBase_SliceCount, // 58
MDD_IndexTableSegmentBase_PosTableCount, // 59
MDD_IndexTableSegment, // 60
@@ -108,7 +108,7 @@ namespace ASDCP {
MDD_IndexEntryArray_IndexTableSegment_SliceOffsetArray, // 70
MDD_IndexEntryArray_IndexTableSegment_PosTableArray, // 71
MDD_RandomIndexMetadata, // 72
- MDD_PartitionArray_RandomIndexMetadata_BodySID, // 73
+ MDD_PartitionArray_RandomIndexMetadata_BodySID_DEPRECATED, // 73
MDD_PartitionArray_RandomIndexMetadata_ByteOffset, // 74
MDD_RandomIndexMetadata_Length, // 75
MDD_RandomIndexMetadataV10, // 76
@@ -119,8 +119,8 @@ namespace ASDCP {
MDD_Preface_PrimaryPackage, // 81
MDD_Preface_Identifications, // 82
MDD_Preface_ContentStorage, // 83
- MDD_Preface_OperationalPattern, // 84
- MDD_Preface_EssenceContainers, // 85
+ MDD_Preface_OperationalPattern_DEPRECATED, // 84
+ MDD_Preface_EssenceContainers_DEPRECATED, // 85
MDD_Preface_DMSchemes, // 86
MDD_Identification, // 87
MDD_Identification_ThisGenerationUID, // 88
@@ -138,8 +138,8 @@ namespace ASDCP {
MDD_ContentStorageKludge_V10Packages, // 100
MDD_EssenceContainerData, // 101
MDD_EssenceContainerData_LinkedPackageUID, // 102
- MDD_EssenceContainerData_IndexSID, // 103
- MDD_EssenceContainerData_BodySID, // 104
+ MDD_EssenceContainerData_IndexSID_DEPRECATED, // 103
+ MDD_EssenceContainerData_BodySID_DEPRECATED, // 104
MDD_GenericPackage_PackageUID, // 105
MDD_GenericPackage_Name, // 106
MDD_GenericPackage_PackageCreationDate, // 107
@@ -299,20 +299,36 @@ namespace ASDCP {
MDD_TimedTextResourceSubDescriptor, // 261
MDD_TimedTextResourceSubDescriptor_AncillaryResourceID, // 262
MDD_TimedTextResourceSubDescriptor_MIMEMediaType, // 263
- MDD_TimedTextResourceSubDescriptor_EssenceStreamID, // 264
+ MDD_TimedTextResourceSubDescriptor_EssenceStreamID_DEPRECATED, // 264
MDD_GenericStreamPartition, // 265
- MDD_DMSegment_DataDefinition, // 266
- MDD_DMSegment_Duration, // 267
+ MDD_DMSegment_DataDefinition_DEPRECATED, // 266
+ MDD_DMSegment_Duration_DEPRECATED, // 267
MDD_DMSegment_TrackIDList, // 268
MDD_StereoscopicPictureSubDescriptor, // 269
MDD_WaveAudioDescriptor_ChannelAssignment, // 270
MDD_GenericStream_DataElement, // 271
MDD_MXFInterop_GenericDescriptor_SubDescriptors, // 272
+ MDD_Core_BodySID, // 273
+ MDD_Core_IndexSID, // 274
+ MDD_Core_OperationalPattern, // 275
+ MDD_Core_EssenceContainers, // 276
+
MDD_Max
}; // enum MDD_t
- const ui32_t MDD_Table_size = 273;
+ // 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;
+ const MDD_t MDD_EssenceContainerData_IndexSID = MDD_Core_IndexSID;
+ const MDD_t MDD_DMSegment_DataDefinition = MDD_StructuralComponent_DataDefinition;
+ const MDD_t MDD_DMSegment_Duration = MDD_StructuralComponent_Duration;
+ const MDD_t MDD_Preface_EssenceContainers = MDD_Core_EssenceContainers;
+ const MDD_t MDD_Preface_OperationalPattern = MDD_Core_OperationalPattern;
+ const MDD_t MDD_TimedTextResourceSubDescriptor_EssenceStreamID = MDD_Core_BodySID;
+
} // namespaceASDCP
diff --git a/src/MXF.cpp b/src/MXF.cpp
index 97d834e..9ea0150 100755
--- a/src/MXF.cpp
+++ b/src/MXF.cpp
@@ -113,6 +113,7 @@ ASDCP::MXF::RIP::GetPairBySID(ui32_t SID, Pair& outPair) const
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) )
@@ -131,6 +132,7 @@ ASDCP::MXF::RIP::InitFromFile(const Kumu::FileReader& Reader)
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);
@@ -435,6 +437,7 @@ ASDCP::MXF::Primer::ClearTagList()
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) )
@@ -475,6 +478,7 @@ ASDCP::MXF::Primer::WriteToFile(Kumu::FileWriter& Writer)
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;
@@ -551,6 +555,7 @@ ASDCP::MXF::Primer::TagForKey(const ASDCP::UL& Key, ASDCP::TagValue& Tag)
void
ASDCP::MXF::Primer::Dump(FILE* stream)
{
+ assert(m_Dict);
char identbuf[IdentBufferLen];
if ( stream == 0 )
@@ -611,6 +616,7 @@ 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);
}
@@ -619,6 +625,7 @@ 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);
}
@@ -702,6 +709,7 @@ ASDCP::MXF::OPAtomHeader::InitFromFile(const Kumu::FileReader& Reader)
return result;
// is it really OP-Atom?
+ assert(m_Dict);
UL OPAtomUL(m_Dict->ul(MDD_OPAtom));
UL InteropOPAtomUL(m_Dict->ul(MDD_MXFInterop_OPAtom));
@@ -777,6 +785,7 @@ ASDCP::MXF::OPAtomHeader::InitFromPartitionBuffer(const byte_t* p, ui32_t l)
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;
@@ -798,7 +807,7 @@ ASDCP::MXF::OPAtomHeader::InitFromBuffer(const byte_t* p, ui32_t 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);
@@ -875,6 +884,7 @@ ASDCP::MXF::OPAtomHeader::GetSourcePackage()
ASDCP::Result_t
ASDCP::MXF::OPAtomHeader::WriteToFile(Kumu::FileWriter& Writer, ui32_t HeaderSize)
{
+ assert(m_Dict);
if ( m_Preface == 0 )
return RESULT_STATE;
@@ -1079,6 +1089,7 @@ ASDCP::MXF::OPAtomIndexFooter::InitFromBuffer(const byte_t* p, ui32_t l)
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);
diff --git a/src/Metadata.cpp b/src/Metadata.cpp
index 76ae51f..fccf5a6 100755
--- a/src/Metadata.cpp
+++ b/src/Metadata.cpp
@@ -73,6 +73,7 @@ static InterchangeObject* StereoscopicPictureSubDescriptor_Factory(const Diction
void
ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
{
+ assert(Dict);
SetObjectFactory(Dict->ul(MDD_Preface), Preface_Factory);
SetObjectFactory(Dict->ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
@@ -115,6 +116,7 @@ ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
ASDCP::Result_t
Identification::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
@@ -132,6 +134,7 @@ Identification::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
Identification::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
@@ -171,6 +174,7 @@ Identification::Dump(FILE* stream)
ASDCP::Result_t
Identification::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Identification));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -179,6 +183,7 @@ Identification::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Identification));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -190,6 +195,7 @@ Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
@@ -200,6 +206,7 @@ ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
@@ -227,6 +234,7 @@ ContentStorage::Dump(FILE* stream)
ASDCP::Result_t
ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_ContentStorage));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -235,6 +243,7 @@ ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_ContentStorage));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -246,6 +255,7 @@ ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
@@ -257,6 +267,7 @@ EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
@@ -284,6 +295,7 @@ EssenceContainerData::Dump(FILE* stream)
ASDCP::Result_t
EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_EssenceContainerData));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -292,6 +304,7 @@ EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_EssenceContainerData));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -303,6 +316,7 @@ EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
@@ -316,6 +330,7 @@ GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
@@ -352,6 +367,7 @@ GenericPackage::Dump(FILE* stream)
ASDCP::Result_t
MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
return result;
}
@@ -360,6 +376,7 @@ MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
return result;
}
@@ -381,6 +398,7 @@ MaterialPackage::Dump(FILE* stream)
ASDCP::Result_t
MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_MaterialPackage));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -389,6 +407,7 @@ MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_MaterialPackage));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -400,6 +419,7 @@ MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
return result;
@@ -409,6 +429,7 @@ SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
return result;
@@ -432,6 +453,7 @@ SourcePackage::Dump(FILE* stream)
ASDCP::Result_t
SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_SourcePackage));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -440,6 +462,7 @@ SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_SourcePackage));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -451,6 +474,7 @@ SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
@@ -463,6 +487,7 @@ GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
@@ -496,6 +521,7 @@ GenericTrack::Dump(FILE* stream)
ASDCP::Result_t
StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
return result;
}
@@ -504,6 +530,7 @@ StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
return result;
}
@@ -525,6 +552,7 @@ StaticTrack::Dump(FILE* stream)
ASDCP::Result_t
StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_StaticTrack));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -533,6 +561,7 @@ StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_StaticTrack));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -544,6 +573,7 @@ StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
Track::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
@@ -554,6 +584,7 @@ Track::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
Track::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
@@ -579,6 +610,7 @@ Track::Dump(FILE* stream)
ASDCP::Result_t
Track::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Track));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -587,6 +619,7 @@ Track::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Track));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -598,6 +631,7 @@ Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
@@ -608,6 +642,7 @@ StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
@@ -637,6 +672,7 @@ StructuralComponent::Dump(FILE* stream)
ASDCP::Result_t
Sequence::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
return result;
@@ -646,6 +682,7 @@ Sequence::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
Sequence::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
return result;
@@ -670,6 +707,7 @@ Sequence::Dump(FILE* stream)
ASDCP::Result_t
Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Sequence));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -678,6 +716,7 @@ Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_Sequence));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -689,6 +728,7 @@ Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
SourceClip::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
@@ -700,6 +740,7 @@ SourceClip::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
@@ -727,6 +768,7 @@ SourceClip::Dump(FILE* stream)
ASDCP::Result_t
SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_SourceClip));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -735,6 +777,7 @@ SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_SourceClip));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -746,6 +789,7 @@ SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
@@ -757,6 +801,7 @@ TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
@@ -784,6 +829,7 @@ TimecodeComponent::Dump(FILE* stream)
ASDCP::Result_t
TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_TimecodeComponent));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -792,6 +838,7 @@ TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_TimecodeComponent));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -803,6 +850,7 @@ TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
@@ -813,6 +861,7 @@ GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
@@ -844,6 +893,7 @@ GenericDescriptor::Dump(FILE* stream)
ASDCP::Result_t
FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
@@ -857,6 +907,7 @@ FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
@@ -888,6 +939,7 @@ FileDescriptor::Dump(FILE* stream)
ASDCP::Result_t
FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_FileDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -896,6 +948,7 @@ FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_FileDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -907,6 +960,7 @@ FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
@@ -921,6 +975,7 @@ GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
@@ -954,6 +1009,7 @@ GenericSoundEssenceDescriptor::Dump(FILE* stream)
ASDCP::Result_t
GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_GenericSoundEssenceDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -962,6 +1018,7 @@ GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_GenericSoundEssenceDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -973,6 +1030,7 @@ GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
@@ -985,6 +1043,7 @@ WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
@@ -1014,6 +1073,7 @@ WaveAudioDescriptor::Dump(FILE* stream)
ASDCP::Result_t
WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_WaveAudioDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1022,6 +1082,7 @@ WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_WaveAudioDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1033,6 +1094,7 @@ WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
@@ -1046,6 +1108,7 @@ GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
@@ -1077,6 +1140,7 @@ GenericPictureEssenceDescriptor::Dump(FILE* stream)
ASDCP::Result_t
GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_GenericPictureEssenceDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1085,6 +1149,7 @@ GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_GenericPictureEssenceDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1096,6 +1161,7 @@ GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
@@ -1106,6 +1172,7 @@ RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
@@ -1131,6 +1198,7 @@ RGBAEssenceDescriptor::Dump(FILE* stream)
ASDCP::Result_t
RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_RGBAEssenceDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1139,6 +1207,7 @@ RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_RGBAEssenceDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1150,6 +1219,7 @@ RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
@@ -1171,6 +1241,7 @@ JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
@@ -1218,6 +1289,7 @@ JPEG2000PictureSubDescriptor::Dump(FILE* stream)
ASDCP::Result_t
JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_JPEG2000PictureSubDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1226,6 +1298,7 @@ JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_JPEG2000PictureSubDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1237,6 +1310,7 @@ JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
@@ -1249,6 +1323,7 @@ CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
@@ -1278,6 +1353,7 @@ CDCIEssenceDescriptor::Dump(FILE* stream)
ASDCP::Result_t
CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_CDCIEssenceDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1286,6 +1362,7 @@ CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_CDCIEssenceDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1297,6 +1374,7 @@ CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
@@ -1309,6 +1387,7 @@ MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
@@ -1338,6 +1417,7 @@ MPEG2VideoDescriptor::Dump(FILE* stream)
ASDCP::Result_t
MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_MPEG2VideoDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1346,6 +1426,7 @@ MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_MPEG2VideoDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1357,6 +1438,7 @@ MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
DMSegment::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
@@ -1370,6 +1452,7 @@ DMSegment::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
@@ -1401,6 +1484,7 @@ DMSegment::Dump(FILE* stream)
ASDCP::Result_t
DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_DMSegment));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1409,6 +1493,7 @@ DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_DMSegment));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1420,6 +1505,7 @@ DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
return result;
@@ -1429,6 +1515,7 @@ CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
return result;
@@ -1452,6 +1539,7 @@ CryptographicFramework::Dump(FILE* stream)
ASDCP::Result_t
CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_CryptographicFramework));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1460,6 +1548,7 @@ CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_CryptographicFramework));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1471,6 +1560,7 @@ CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
@@ -1484,6 +1574,7 @@ CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
@@ -1515,6 +1606,7 @@ CryptographicContext::Dump(FILE* stream)
ASDCP::Result_t
CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_CryptographicContext));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1523,6 +1615,7 @@ CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_CryptographicContext));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1534,6 +1627,7 @@ CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
return result;
@@ -1543,6 +1637,7 @@ GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
return result;
@@ -1566,6 +1661,7 @@ GenericDataEssenceDescriptor::Dump(FILE* stream)
ASDCP::Result_t
GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_GenericDataEssenceDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1574,6 +1670,7 @@ GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_GenericDataEssenceDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1585,6 +1682,7 @@ GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, ResourceID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, UCSEncoding));
@@ -1596,6 +1694,7 @@ TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, ResourceID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
@@ -1623,6 +1722,7 @@ TimedTextDescriptor::Dump(FILE* stream)
ASDCP::Result_t
TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_TimedTextDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1631,6 +1731,7 @@ TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_TimedTextDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1642,6 +1743,7 @@ TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
@@ -1653,6 +1755,7 @@ TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
TimedTextResourceSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
@@ -1680,6 +1783,7 @@ TimedTextResourceSubDescriptor::Dump(FILE* stream)
ASDCP::Result_t
TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_TimedTextResourceSubDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1688,6 +1792,7 @@ TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_TimedTextResourceSubDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
@@ -1699,6 +1804,7 @@ TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
ASDCP::Result_t
StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
return result;
}
@@ -1707,6 +1813,7 @@ StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
ASDCP::Result_t
StereoscopicPictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
{
+ assert(m_Dict);
Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
return result;
}
@@ -1728,6 +1835,7 @@ StereoscopicPictureSubDescriptor::Dump(FILE* stream)
ASDCP::Result_t
StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_StereoscopicPictureSubDescriptor));
return InterchangeObject::InitFromBuffer(p, l);
}
@@ -1736,6 +1844,7 @@ StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
ASDCP::Result_t
StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
{
+ assert(m_Dict);
m_Typeinfo = &(m_Dict->Type(MDD_StereoscopicPictureSubDescriptor));
return InterchangeObject::WriteToBuffer(Buffer);
}
diff --git a/src/h__Reader.cpp b/src/h__Reader.cpp
index 7a1dd12..d36e1cc 100755
--- a/src/h__Reader.cpp
+++ b/src/h__Reader.cpp
@@ -59,6 +59,7 @@ ASDCP::h__Reader::Close()
Result_t
ASDCP::h__Reader::InitInfo()
{
+ assert(m_Dict);
InterchangeObject* Object;
m_Info.LabelSetType = LS_MXF_UNKNOWN;
@@ -214,6 +215,7 @@ ASDCP::h__Reader::ReadEKLVPacket(ui32_t FrameNum, ui32_t SequenceNum, ASDCP::Fra
UL Key(Reader.Key());
ui64_t PacketLength = Reader.Length();
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 )
diff --git a/src/h__Writer.cpp b/src/h__Writer.cpp
index cb4e461..97c1ba8 100755
--- a/src/h__Writer.cpp
+++ b/src/h__Writer.cpp
@@ -85,6 +85,7 @@ void
AddDMScrypt(Partition& HeaderPart, SourcePackage& Package,
WriterInfo& Descr, const UL& WrappingUL, const Dictionary*& Dict)
{
+ assert(Dict);
// Essence Track
StaticTrack* NewTrack = new StaticTrack(Dict);
HeaderPart.AddChildObject(NewTrack);
@@ -121,6 +122,7 @@ AddDMScrypt(Partition& HeaderPart, SourcePackage& Package,
void
ASDCP::h__Writer::InitHeader()
{
+ assert(m_Dict);
assert(m_EssenceDescriptor);
m_HeaderPart.m_Primer.ClearTagList();
@@ -201,6 +203,7 @@ TrackSet<TimecodeComponent>
CreateTimecodeTrack(OPAtomHeader& Header, PackageT& Package,
const MXF::Rational& EditRate, ui32_t TCFrameRate, ui64_t TCStart, const Dictionary*& Dict)
{
+ assert(Dict);
UL TCUL(Dict->ul(MDD_TimecodeDataDef));
TrackSet<TimecodeComponent> NewTrack = CreateTrackAndSequence<PackageT, TimecodeComponent>(Header, Package, "Timecode Track", EditRate, TCUL, 1, Dict);
@@ -396,6 +399,7 @@ ASDCP::h__Writer::AddEssenceDescriptor(const UL& WrappingUL)
//
// Essence Descriptors
//
+ assert(m_Dict);
UL GenericContainerUL(m_Dict->ul(MDD_GCMulti));
m_HeaderPart.EssenceContainers.push_back(GenericContainerUL);
@@ -425,6 +429,7 @@ ASDCP::h__Writer::AddEssenceDescriptor(const UL& WrappingUL)
Result_t
ASDCP::h__Writer::CreateBodyPart(const MXF::Rational& EditRate, ui32_t BytesPerEditUnit)
{
+ assert(m_Dict);
Result_t result = RESULT_OK;
// create a body partition if we're writing proper 429-3/OP-Atom
@@ -490,6 +495,7 @@ ASDCP::h__Writer::WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf, const byte
byte_t overhead[128];
Kumu::MemIOWriter Overhead(overhead, 128);
+ assert(m_Dict);
if ( FrameBuf.Size() == 0 )
{
@@ -517,10 +523,10 @@ 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);
+ // 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
ui32_t ETLength = klv_cryptinfo_size + m_CtFrameBuf.Size();
@@ -616,11 +622,12 @@ ASDCP::h__Writer::WriteMXFFooter()
m_HeaderPart.m_RIP.PairArray.push_back(RIP::Pair(0, here)); // Last RIP Entry
m_HeaderPart.FooterPartition = here;
+ 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));
+ // 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;