summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hurst <jhurst@cinecert.com>2021-05-20 16:52:29 -0700
committerGitHub <noreply@github.com>2021-05-20 16:52:29 -0700
commitface28d822719aa6028ffca21097225c2a94e4ca (patch)
tree9063c8d62dd0309632c69c86d00b77993efae615
parent7db1295803aa777fc9bfe3c0f1b06c75f183102e (diff)
parente5b0a7dbeaaa2b16ea63d7265ed7413f8de2df10 (diff)
Merge pull request #84 from cinecert/mxf_types_constructor
Dictionary reference refactor
-rw-r--r--src/AS_02.h3
-rw-r--r--src/AS_02_ACES.cpp10
-rw-r--r--src/AS_02_IAB.cpp6
-rw-r--r--src/AS_02_ISXD.cpp10
-rw-r--r--src/AS_02_JP2K.cpp10
-rw-r--r--src/AS_02_PCM.cpp10
-rw-r--r--src/AS_02_PHDR.cpp10
-rw-r--r--src/AS_02_TimedText.cpp10
-rw-r--r--src/AS_02_internal.h20
-rw-r--r--src/AS_DCP_ATMOS.cpp10
-rw-r--r--src/AS_DCP_DCData.cpp10
-rw-r--r--src/AS_DCP_DCData_internal.h6
-rwxr-xr-xsrc/AS_DCP_JP2K.cpp26
-rwxr-xr-xsrc/AS_DCP_MPEG2.cpp12
-rwxr-xr-xsrc/AS_DCP_PCM.cpp12
-rw-r--r--src/AS_DCP_TimedText.cpp10
-rwxr-xr-xsrc/AS_DCP_internal.h26
-rwxr-xr-xsrc/Index.cpp20
-rwxr-xr-xsrc/MXF.cpp60
-rwxr-xr-xsrc/MXF.h54
-rw-r--r--[-rwxr-xr-x]src/Metadata.cpp652
-rw-r--r--[-rwxr-xr-x]src/Metadata.h204
-rw-r--r--src/h__02_Reader.cpp13
-rw-r--r--src/h__02_Writer.cpp10
-rwxr-xr-xsrc/h__Reader.cpp3
-rwxr-xr-xsrc/h__Writer.cpp10
26 files changed, 815 insertions, 412 deletions
diff --git a/src/AS_02.h b/src/AS_02.h
index 61a2c1e..ab58f31 100644
--- a/src/AS_02.h
+++ b/src/AS_02.h
@@ -82,10 +82,9 @@ namespace AS_02
AS02IndexReader();
public:
- const ASDCP::Dictionary*& m_Dict;
ASDCP::IPrimerLookup *m_Lookup;
- AS02IndexReader(const ASDCP::Dictionary*&);
+ AS02IndexReader(const ASDCP::Dictionary*);
virtual ~AS02IndexReader();
Result_t InitFromFile(const Kumu::FileReader& reader, const ASDCP::MXF::RIP& rip, const bool has_header_essence);
diff --git a/src/AS_02_ACES.cpp b/src/AS_02_ACES.cpp
index c8eeca3..0d3105a 100644
--- a/src/AS_02_ACES.cpp
+++ b/src/AS_02_ACES.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2018, Bjoern Stresing, Patrick Bichiou, Wolfgang Ruppel,
+Copyright (c) 2018-2021, Bjoern Stresing, Patrick Bichiou, Wolfgang Ruppel,
John Hurst
All rights reserved.
@@ -290,7 +290,7 @@ class AS_02::ACES::MXFReader::h__Reader : public AS_02::h__AS02Reader
ASDCP::MXF::RGBAEssenceDescriptor *m_EssenceDescriptor;
public:
- h__Reader(const Dictionary& d) :
+ h__Reader(const Dictionary *d) :
AS_02::h__AS02Reader(d), m_EssenceDescriptor(NULL) {}
AS_02::ACES::ResourceList_t m_Anc_Resources;
@@ -501,7 +501,7 @@ public:
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
ui32_t m_EssenceStreamID;
- h__Writer(const Dictionary& d) : h__AS02WriterFrame(d), m_EssenceStreamID(10)
+ h__Writer(const Dictionary *d) : h__AS02WriterFrame(d), m_EssenceStreamID(10)
{
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
@@ -747,7 +747,7 @@ AS_02::Result_t AS_02::ACES::MXFWriter::OpenWrite(const std::string &filename, c
return RESULT_PARAM;
}
- m_Writer = new AS_02::ACES::MXFWriter::h__Writer(DefaultSMPTEDict());
+ m_Writer = new AS_02::ACES::MXFWriter::h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, essence_descriptor, essence_sub_descriptor_list, strategy, partition_space, header_size);
@@ -785,7 +785,7 @@ AS_02::Result_t AS_02::ACES::MXFWriter::WriteAncillaryResource(const AS_02::ACES
AS_02::ACES::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
AS_02::ACES::MXFReader::~MXFReader()
diff --git a/src/AS_02_IAB.cpp b/src/AS_02_IAB.cpp
index e7c1fc6..aa551d9 100644
--- a/src/AS_02_IAB.cpp
+++ b/src/AS_02_IAB.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2020, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2021, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst, Pierre-Anthony Lemieux
All rights reserved.
@@ -96,7 +96,7 @@ AS_02::IAB::MXFWriter::OpenWrite(
/* initialize the writer */
- this->m_Writer = new AS_02::IAB::MXFWriter::h__Writer(DefaultSMPTEDict());
+ this->m_Writer = new AS_02::IAB::MXFWriter::h__Writer(&DefaultSMPTEDict());
this->m_Writer->m_Info = Info;
@@ -372,7 +372,7 @@ AS_02::IAB::MXFReader::OpenRead(const std::string& filename) {
/* initialize the writer */
- this->m_Reader = new h__Reader(DefaultCompositeDict());
+ this->m_Reader = new h__Reader(&DefaultCompositeDict());
try {
diff --git a/src/AS_02_ISXD.cpp b/src/AS_02_ISXD.cpp
index a374664..f7165a3 100644
--- a/src/AS_02_ISXD.cpp
+++ b/src/AS_02_ISXD.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2018, John Hurst
+Copyright (c) 2018-2021, John Hurst
All rights reserved.
@@ -54,7 +54,7 @@ class AS_02::ISXD::MXFReader::h__Reader : public AS_02::h__AS02Reader
ASDCP_NO_COPY_CONSTRUCT(h__Reader);
public:
- h__Reader(const Dictionary& d) :
+ h__Reader(const Dictionary *d) :
AS_02::h__AS02Reader(d) {}
virtual ~h__Reader() {}
@@ -115,7 +115,7 @@ AS_02::ISXD::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, ASDCP::FrameBuffer
AS_02::ISXD::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
@@ -262,7 +262,7 @@ public:
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
ISXDDataEssenceDescriptor *m_DataEssenceDescriptor;
- h__Writer(const Dictionary& d) : h__AS02WriterFrame(d) {
+ h__Writer(const Dictionary *d) : h__AS02WriterFrame(d) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -451,7 +451,7 @@ AS_02::ISXD::MXFWriter::OpenWrite(const std::string& filename, const ASDCP::Writ
const ASDCP::Rational& edit_rate, const ui32_t& header_size,
const IndexStrategy_t& strategy, const ui32_t& partition_space)
{
- m_Writer = new AS_02::ISXD::MXFWriter::h__Writer(DefaultSMPTEDict());
+ m_Writer = new AS_02::ISXD::MXFWriter::h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, Info, isxd_document_namespace, edit_rate,
diff --git a/src/AS_02_JP2K.cpp b/src/AS_02_JP2K.cpp
index ac951e4..4817f21 100644
--- a/src/AS_02_JP2K.cpp
+++ b/src/AS_02_JP2K.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2018, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2021, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst
All rights reserved.
@@ -55,7 +55,7 @@ class AS_02::JP2K::MXFReader::h__Reader : public AS_02::h__AS02Reader
ASDCP_NO_COPY_CONSTRUCT(h__Reader);
public:
- h__Reader(const Dictionary& d) :
+ h__Reader(const Dictionary *d) :
AS_02::h__AS02Reader(d) {}
virtual ~h__Reader() {}
@@ -124,7 +124,7 @@ AS_02::JP2K::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, ASDCP::JP2K::Frame
AS_02::JP2K::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
@@ -257,7 +257,7 @@ class AS_02::JP2K::MXFWriter::h__Writer : public AS_02::h__AS02WriterFrame
public:
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : h__AS02WriterFrame(d), m_EssenceSubDescriptor(0) {
+ h__Writer(const Dictionary *d) : h__AS02WriterFrame(d), m_EssenceSubDescriptor(0) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -485,7 +485,7 @@ AS_02::JP2K::MXFWriter::OpenWrite(const std::string& filename, const ASDCP::Writ
return RESULT_PARAM;
}
- m_Writer = new AS_02::JP2K::MXFWriter::h__Writer(DefaultSMPTEDict());
+ m_Writer = new AS_02::JP2K::MXFWriter::h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, essence_descriptor, essence_sub_descriptor_list,
diff --git a/src/AS_02_PCM.cpp b/src/AS_02_PCM.cpp
index c8cb19f..d034ffb 100644
--- a/src/AS_02_PCM.cpp
+++ b/src/AS_02_PCM.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2015, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2021, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst
All rights reserved.
@@ -56,7 +56,7 @@ class AS_02::PCM::MXFReader::h__Reader : public AS_02::h__AS02Reader
h__Reader();
public:
- h__Reader(const Dictionary& d) : AS_02::h__AS02Reader(d), m_ClipEssenceBegin(0), m_ClipSize(0),
+ h__Reader(const Dictionary *d) : AS_02::h__AS02Reader(d), m_ClipEssenceBegin(0), m_ClipSize(0),
m_ClipDurationFrames(0) {}
virtual ~h__Reader() {}
@@ -200,7 +200,7 @@ AS_02::PCM::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, ASDCP::PCM::FrameBu
AS_02::PCM::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
AS_02::PCM::MXFReader::~MXFReader()
@@ -336,7 +336,7 @@ public:
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
ui32_t m_BytesPerSample;
- h__Writer(const Dictionary& d) : AS_02::h__AS02WriterClip(d), m_WaveAudioDescriptor(0), m_BytesPerSample(0)
+ h__Writer(const Dictionary *d) : AS_02::h__AS02WriterClip(d), m_WaveAudioDescriptor(0), m_BytesPerSample(0)
{
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -558,7 +558,7 @@ AS_02::PCM::MXFWriter::OpenWrite(const std::string& filename, const WriterInfo&
return Kumu::RESULT_NOTIMPL;
}
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, essence_descriptor, essence_sub_descriptor_list, header_size);
diff --git a/src/AS_02_PHDR.cpp b/src/AS_02_PHDR.cpp
index 6876e5b..d08c823 100644
--- a/src/AS_02_PHDR.cpp
+++ b/src/AS_02_PHDR.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2018, John Hurst
+Copyright (c) 2011-2021, John Hurst
All rights reserved.
@@ -76,7 +76,7 @@ class AS_02::PHDR::MXFReader::h__Reader : public AS_02::h__AS02Reader
ASDCP_NO_COPY_CONSTRUCT(h__Reader);
public:
- h__Reader(const Dictionary& d) :
+ h__Reader(const Dictionary *d) :
AS_02::h__AS02Reader(d) {}
virtual ~h__Reader() {}
@@ -235,7 +235,7 @@ AS_02::PHDR::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, AS_02::PHDR::Frame
AS_02::PHDR::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
@@ -355,7 +355,7 @@ public:
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
byte_t m_MetadataUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : h__AS02WriterFrame(d), m_MetadataTrackSubDescriptor(0), m_EssenceSubDescriptor(0) {
+ h__Writer(const Dictionary *d) : h__AS02WriterFrame(d), m_EssenceSubDescriptor(0), m_MetadataTrackSubDescriptor(0) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
memset(m_MetadataUL, 0, SMPTE_UL_LENGTH);
}
@@ -735,7 +735,7 @@ AS_02::PHDR::MXFWriter::OpenWrite(const std::string& filename, const ASDCP::Writ
return RESULT_PARAM;
}
- m_Writer = new AS_02::PHDR::MXFWriter::h__Writer(DefaultSMPTEDict());
+ m_Writer = new AS_02::PHDR::MXFWriter::h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, essence_descriptor, essence_sub_descriptor_list,
diff --git a/src/AS_02_TimedText.cpp b/src/AS_02_TimedText.cpp
index 7477ae9..aa593a1 100644
--- a/src/AS_02_TimedText.cpp
+++ b/src/AS_02_TimedText.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2008-2018, John Hurst
+Copyright (c) 2008-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@ class AS_02::TimedText::MXFReader::h__Reader : public AS_02::h__AS02Reader
public:
TimedTextDescriptor m_TDesc;
- h__Reader(const Dictionary& d) : AS_02::h__AS02Reader(d), m_EssenceDescriptor(0) {
+ h__Reader(const Dictionary *d) : AS_02::h__AS02Reader(d), m_EssenceDescriptor(0) {
memset(&m_TDesc.AssetID, 0, UUIDlen);
}
@@ -225,7 +225,7 @@ AS_02::TimedText::MXFReader::h__Reader::ReadAncillaryResource(const Kumu::UUID&
AS_02::TimedText::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultSMPTEDict());
+ m_Reader = new h__Reader(&DefaultSMPTEDict());
}
@@ -397,7 +397,7 @@ public:
ui32_t m_EssenceStreamID;
ASDCP::Rational m_EditRate;
- h__Writer(const Dictionary& d) : AS_02::h__AS02WriterClip(d), m_EssenceStreamID(10)
+ h__Writer(const Dictionary *d) : AS_02::h__AS02WriterClip(d), m_EssenceStreamID(10)
{
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -705,7 +705,7 @@ AS_02::TimedText::MXFWriter::OpenWrite(const std::string& filename, const Writer
return RESULT_FORMAT;
}
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, HeaderSize);
diff --git a/src/AS_02_internal.h b/src/AS_02_internal.h
index ef87b27..6236ee6 100644
--- a/src/AS_02_internal.h
+++ b/src/AS_02_internal.h
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2018, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2021, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst
All rights reserved.
@@ -60,7 +60,7 @@ namespace AS_02
h__AS02Reader();
public:
- h__AS02Reader(const ASDCP::Dictionary&);
+ h__AS02Reader(const ASDCP::Dictionary*);
virtual ~h__AS02Reader();
Result_t OpenMXFRead(const std::string& filename);
@@ -90,10 +90,10 @@ namespace AS_02
AS02IndexWriterVBR();
public:
- const ASDCP::Dictionary*& m_Dict;
+ const ASDCP::Dictionary* m_Dict;
ASDCP::IPrimerLookup* m_Lookup;
- AS02IndexWriterVBR(const ASDCP::Dictionary*&);
+ AS02IndexWriterVBR(const ASDCP::Dictionary*);
virtual ~AS02IndexWriterVBR();
//
@@ -121,12 +121,12 @@ namespace AS_02
AS02IndexWriterCBR();
public:
- const ASDCP::Dictionary*& m_Dict;
+ const ASDCP::Dictionary* m_Dict;
ASDCP::IPrimerLookup* m_Lookup;
ui32_t m_Duration;
ui32_t m_SampleSize;
- AS02IndexWriterCBR(const ASDCP::Dictionary*&);
+ AS02IndexWriterCBR(const ASDCP::Dictionary*);
virtual ~AS02IndexWriterCBR();
//
@@ -154,8 +154,8 @@ namespace AS_02
ui64_t m_ECStart; // offset of the first essence element
//
- h__AS02Writer(const ASDCP::Dictionary& d) :
- ASDCP::MXF::TrackFileWriter<ASDCP::MXF::OP1aHeader>(d), m_IndexWriter(m_Dict), m_ECStart(0) {}
+ h__AS02Writer(const ASDCP::Dictionary *d) :
+ ASDCP::MXF::TrackFileWriter<ASDCP::MXF::OP1aHeader>(d), m_IndexWriter(d), m_ECStart(0) {}
~h__AS02Writer() {}
@@ -304,7 +304,7 @@ namespace AS_02
public:
IndexStrategy_t m_IndexStrategy; // per SMPTE ST 2067-5
- h__AS02WriterFrame(const Dictionary&);
+ h__AS02WriterFrame(const Dictionary*);
virtual ~h__AS02WriterFrame();
Result_t WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf,const byte_t* EssenceUL,
@@ -323,7 +323,7 @@ namespace AS_02
ui64_t m_ClipStart; // state variable for clip-wrap-in-progress
IndexStrategy_t m_IndexStrategy; // per SMPTE ST 2067-5
- h__AS02WriterClip(const Dictionary&);
+ h__AS02WriterClip(const Dictionary*);
virtual ~h__AS02WriterClip();
bool HasOpenClip() const;
diff --git a/src/AS_DCP_ATMOS.cpp b/src/AS_DCP_ATMOS.cpp
index cdba985..d476e20 100644
--- a/src/AS_DCP_ATMOS.cpp
+++ b/src/AS_DCP_ATMOS.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2016, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -117,7 +117,7 @@ class ASDCP::ATMOS::MXFReader::h__Reader : public ASDCP::h__ASDCPReader
ASDCP::DCData::DCDataDescriptor m_DDesc;
AtmosDescriptor m_ADesc;
- h__Reader(const Dictionary& d) :
+ h__Reader(const Dictionary *d) :
ASDCP::h__ASDCPReader(d), m_EssenceDescriptor(0), m_EssenceSubDescriptor(0) {}
virtual ~h__Reader() {}
Result_t OpenRead(const std::string&);
@@ -251,7 +251,7 @@ ASDCP::ATMOS::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, FrameBuffer& Fram
ASDCP::ATMOS::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(AtmosSMPTEDict());
+ m_Reader = new h__Reader(&AtmosSMPTEDict());
}
@@ -406,7 +406,7 @@ class ASDCP::ATMOS::MXFWriter::h__Writer : public ASDCP::h__ASDCPWriter
public:
AtmosDescriptor m_ADesc;
- h__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d),
+ h__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d),
m_EssenceSubDescriptor(0), m_ADesc() {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -650,7 +650,7 @@ ASDCP::ATMOS::MXFWriter::OpenWrite(const std::string& filename, const WriterInfo
return RESULT_FORMAT;
}
- m_Writer = new h__Writer(AtmosSMPTEDict());
+ m_Writer = new h__Writer(&AtmosSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, HeaderSize, ADesc);
diff --git a/src/AS_DCP_DCData.cpp b/src/AS_DCP_DCData.cpp
index b957d6c..fee3ff8 100644
--- a/src/AS_DCP_DCData.cpp
+++ b/src/AS_DCP_DCData.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2018, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -85,7 +85,7 @@ class ASDCP::DCData::MXFReader::h__Reader : public ASDCP::h__ASDCPReader
public:
DCDataDescriptor m_DDesc;
- h__Reader(const Dictionary& d) : ASDCP::h__ASDCPReader(d), m_PrivateLabelCompatibilityMode(false), m_DDesc() {}
+ h__Reader(const Dictionary *d) : ASDCP::h__ASDCPReader(d), m_PrivateLabelCompatibilityMode(false), m_DDesc() {}
~h__Reader() {}
Result_t OpenRead(const std::string&);
Result_t ReadFrame(ui32_t, FrameBuffer&, AESDecContext*, HMACContext*);
@@ -226,7 +226,7 @@ ASDCP::DCData::FrameBuffer::Dump(FILE* stream, ui32_t dump_len) const
ASDCP::DCData::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultSMPTEDict());
+ m_Reader = new h__Reader(&DefaultSMPTEDict());
}
@@ -379,7 +379,7 @@ public:
DCDataDescriptor m_DDesc;
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d) {
+ h__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -595,7 +595,7 @@ ASDCP::DCData::MXFWriter::OpenWrite(const std::string& filename, const WriterInf
return RESULT_FORMAT;
}
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, HeaderSize, SubDescriptorList_t());
diff --git a/src/AS_DCP_DCData_internal.h b/src/AS_DCP_DCData_internal.h
index a9e510d..b3f95f6 100644
--- a/src/AS_DCP_DCData_internal.h
+++ b/src/AS_DCP_DCData_internal.h
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2013, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -57,7 +57,7 @@ namespace DCData
public:
DCDataDescriptor m_DDesc;
- h__Reader(const Dictionary& d) : ASDCP::h__ASDCPReader(d), m_EssenceDescriptor(0),
+ h__Reader(const Dictionary *d) : ASDCP::h__ASDCPReader(d), m_EssenceDescriptor(0),
m_DDesc() {}
~h__Reader() {}
Result_t OpenRead(const std::string&);
@@ -74,7 +74,7 @@ namespace DCData
DCDataDescriptor m_DDesc;
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d) {
+ h__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
diff --git a/src/AS_DCP_JP2K.cpp b/src/AS_DCP_JP2K.cpp
index 9be5a33..39aaa2a 100755
--- a/src/AS_DCP_JP2K.cpp
+++ b/src/AS_DCP_JP2K.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2016, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -527,7 +527,7 @@ class lh__Reader : public ASDCP::h__ASDCPReader
public:
PictureDescriptor m_PDesc; // codestream parameter list
- lh__Reader(const Dictionary& d) :
+ lh__Reader(const Dictionary *d) :
ASDCP::h__ASDCPReader(d), m_EssenceDescriptor(0), m_EssenceSubDescriptor(0), m_Format(ESS_UNKNOWN) {}
virtual ~lh__Reader() {}
@@ -716,7 +716,7 @@ class ASDCP::JP2K::MXFReader::h__Reader : public lh__Reader
h__Reader();
public:
- h__Reader(const Dictionary& d) : lh__Reader(d) {}
+ h__Reader(const Dictionary *d) : lh__Reader(d) {}
};
@@ -744,7 +744,7 @@ ASDCP::JP2K::FrameBuffer::Dump(FILE* stream, ui32_t dump_len) const
ASDCP::JP2K::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
@@ -893,7 +893,7 @@ class ASDCP::JP2K::MXFSReader::h__SReader : public lh__Reader
ui32_t m_StereoFrameReady;
public:
- h__SReader(const Dictionary& d) : lh__Reader(d), m_StereoFrameReady(0xffffffff) {}
+ h__SReader(const Dictionary *d) : lh__Reader(d), m_StereoFrameReady(0xffffffff) {}
//
Result_t ReadFrame(ui32_t FrameNum, StereoscopicPhase_t phase, FrameBuffer& FrameBuf,
@@ -970,7 +970,7 @@ public:
ASDCP::JP2K::MXFSReader::MXFSReader()
{
- m_Reader = new h__SReader(DefaultCompositeDict());
+ m_Reader = new h__SReader(&DefaultCompositeDict());
}
@@ -1142,7 +1142,7 @@ public:
PictureDescriptor m_PDesc;
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
- lh__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d), m_EssenceSubDescriptor(0) {
+ lh__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d), m_EssenceSubDescriptor(0) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -1292,7 +1292,7 @@ class ASDCP::JP2K::MXFWriter::h__Writer : public lh__Writer
h__Writer();
public:
- h__Writer(const Dictionary& d) : lh__Writer(d) {}
+ h__Writer(const Dictionary *d) : lh__Writer(d) {}
};
@@ -1360,9 +1360,9 @@ ASDCP::JP2K::MXFWriter::OpenWrite(const std::string& filename, const WriterInfo&
const PictureDescriptor& PDesc, ui32_t HeaderSize)
{
if ( Info.LabelSetType == LS_MXF_SMPTE )
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
else
- m_Writer = new h__Writer(DefaultInteropDict());
+ m_Writer = new h__Writer(&DefaultInteropDict());
m_Writer->m_Info = Info;
@@ -1413,7 +1413,7 @@ class ASDCP::JP2K::MXFSWriter::h__SWriter : public lh__Writer
StereoscopicPhase_t m_NextPhase;
public:
- h__SWriter(const Dictionary& d) : lh__Writer(d), m_NextPhase(SP_LEFT) {}
+ h__SWriter(const Dictionary *d) : lh__Writer(d), m_NextPhase(SP_LEFT) {}
//
Result_t WriteFrame(const FrameBuffer& FrameBuf, StereoscopicPhase_t phase,
@@ -1506,9 +1506,9 @@ ASDCP::JP2K::MXFSWriter::OpenWrite(const std::string& filename, const WriterInfo
const PictureDescriptor& PDesc, ui32_t HeaderSize)
{
if ( Info.LabelSetType == LS_MXF_SMPTE )
- m_Writer = new h__SWriter(DefaultSMPTEDict());
+ m_Writer = new h__SWriter(&DefaultSMPTEDict());
else
- m_Writer = new h__SWriter(DefaultInteropDict());
+ m_Writer = new h__SWriter(&DefaultInteropDict());
if ( PDesc.EditRate != ASDCP::EditRate_24
&& PDesc.EditRate != ASDCP::EditRate_25
diff --git a/src/AS_DCP_MPEG2.cpp b/src/AS_DCP_MPEG2.cpp
index 109940f..0608abd 100755
--- a/src/AS_DCP_MPEG2.cpp
+++ b/src/AS_DCP_MPEG2.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2013, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -185,7 +185,7 @@ class ASDCP::MPEG2::MXFReader::h__Reader : public ASDCP::h__ASDCPReader
public:
VideoDescriptor m_VDesc; // video parameter list
- h__Reader(const Dictionary& d) : ASDCP::h__ASDCPReader(d) {}
+ h__Reader(const Dictionary *d) : ASDCP::h__ASDCPReader(d) {}
virtual ~h__Reader() {}
Result_t OpenRead(const std::string&);
Result_t ReadFrame(ui32_t, FrameBuffer&, AESDecContext*, HMACContext*);
@@ -342,7 +342,7 @@ ASDCP::MPEG2::FrameBuffer::Dump(FILE* stream, ui32_t dump_len) const
ASDCP::MPEG2::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
@@ -530,7 +530,7 @@ public:
ui32_t m_GOPOffset;
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d), m_GOPOffset(0) {
+ h__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d), m_GOPOffset(0) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -733,9 +733,9 @@ ASDCP::MPEG2::MXFWriter::OpenWrite(const std::string& filename, const WriterInfo
const VideoDescriptor& VDesc, ui32_t HeaderSize)
{
if ( Info.LabelSetType == LS_MXF_SMPTE )
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
else
- m_Writer = new h__Writer(DefaultInteropDict());
+ m_Writer = new h__Writer(&DefaultInteropDict());
m_Writer->m_Info = Info;
diff --git a/src/AS_DCP_PCM.cpp b/src/AS_DCP_PCM.cpp
index d56f727..4cca5d5 100755
--- a/src/AS_DCP_PCM.cpp
+++ b/src/AS_DCP_PCM.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2016, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -254,7 +254,7 @@ class ASDCP::PCM::MXFReader::h__Reader : public ASDCP::h__ASDCPReader
public:
AudioDescriptor m_ADesc;
- h__Reader(const Dictionary& d) : ASDCP::h__ASDCPReader(d) {}
+ h__Reader(const Dictionary *d) : ASDCP::h__ASDCPReader(d) {}
virtual ~h__Reader() {}
Result_t OpenRead(const std::string&);
Result_t ReadFrame(ui32_t, FrameBuffer&, AESDecContext*, HMACContext*);
@@ -372,7 +372,7 @@ ASDCP::PCM::FrameBuffer::Dump(FILE* stream, ui32_t dump_len) const
ASDCP::PCM::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict());
}
@@ -527,7 +527,7 @@ public:
AudioDescriptor m_ADesc;
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d) {
+ h__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -722,9 +722,9 @@ ASDCP::PCM::MXFWriter::OpenWrite(const std::string& filename, const WriterInfo&
const AudioDescriptor& ADesc, ui32_t HeaderSize)
{
if ( Info.LabelSetType == LS_MXF_SMPTE )
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
else
- m_Writer = new h__Writer(DefaultInteropDict());
+ m_Writer = new h__Writer(&DefaultInteropDict());
m_Writer->m_Info = Info;
diff --git a/src/AS_DCP_TimedText.cpp b/src/AS_DCP_TimedText.cpp
index 3bea4e3..f04c7d8 100644
--- a/src/AS_DCP_TimedText.cpp
+++ b/src/AS_DCP_TimedText.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2008-2018, John Hurst
+Copyright (c) 2008-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -134,7 +134,7 @@ class ASDCP::TimedText::MXFReader::h__Reader : public ASDCP::h__ASDCPReader
public:
TimedTextDescriptor m_TDesc;
- h__Reader(const Dictionary& d) : ASDCP::h__ASDCPReader(d), m_EssenceDescriptor(0) {
+ h__Reader(const Dictionary *d) : ASDCP::h__ASDCPReader(d), m_EssenceDescriptor(0) {
memset(&m_TDesc.AssetID, 0, UUIDlen);
}
@@ -287,7 +287,7 @@ ASDCP::TimedText::MXFReader::h__Reader::ReadAncillaryResource(const byte_t* uuid
ASDCP::TimedText::MXFReader::MXFReader()
{
- m_Reader = new h__Reader(DefaultSMPTEDict());
+ m_Reader = new h__Reader(&DefaultSMPTEDict());
}
@@ -458,7 +458,7 @@ public:
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
ui32_t m_EssenceStreamID;
- h__Writer(const Dictionary& d) : ASDCP::h__ASDCPWriter(d), m_EssenceStreamID(10) {
+ h__Writer(const Dictionary *d) : ASDCP::h__ASDCPWriter(d), m_EssenceStreamID(10) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
}
@@ -793,7 +793,7 @@ ASDCP::TimedText::MXFWriter::OpenWrite(const std::string& filename, const Writer
return RESULT_FORMAT;
}
- m_Writer = new h__Writer(DefaultSMPTEDict());
+ m_Writer = new h__Writer(&DefaultSMPTEDict());
m_Writer->m_Info = Info;
Result_t result = m_Writer->OpenWrite(filename, HeaderSize);
diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h
index a08d56a..f3d3c96 100755
--- a/src/AS_DCP_internal.h
+++ b/src/AS_DCP_internal.h
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2018, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -166,12 +166,12 @@ namespace ASDCP
Result_t MD_to_PCM_ADesc(ASDCP::MXF::WaveAudioDescriptor* ADescObj, PCM::AudioDescriptor& ADesc);
void AddDmsCrypt(Partition& HeaderPart, SourcePackage& Package,
- WriterInfo& Descr, const UL& WrappingUL, const Dictionary*& Dict);
+ WriterInfo& Descr, const UL& WrappingUL, const Dictionary *Dict);
Result_t AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter&, ASDCP::MXF::OP1aHeader&, SourcePackage&,
- ASDCP::MXF::RIP&, const Dictionary*&);
+ ASDCP::MXF::RIP&, const Dictionary*);
//
- Result_t WriteGenericStreamPartition(Kumu::FileWriter&, ASDCP::MXF::OP1aHeader&, ASDCP::MXF::RIP&, const Dictionary*&,
+ Result_t WriteGenericStreamPartition(Kumu::FileWriter&, ASDCP::MXF::OP1aHeader&, ASDCP::MXF::RIP&, const Dictionary*,
const ASDCP::FrameBuffer&, ASDCP::AESEncContext* = 0, ASDCP::HMACContext* = 0);
Result_t Read_EKLV_Packet(Kumu::FileReader& File, const ASDCP::Dictionary& Dict,
@@ -216,7 +216,7 @@ namespace ASDCP
TrackFileReader();
public:
- const Dictionary* m_Dict;
+ const Dictionary *m_Dict;
Kumu::FileReader m_File;
HeaderType m_HeaderPart;
IndexAccessType m_IndexAccess;
@@ -225,8 +225,8 @@ namespace ASDCP
ASDCP::FrameBuffer m_CtFrameBuf;
Kumu::fpos_t m_LastPosition;
- TrackFileReader(const Dictionary& d) :
- m_Dict(&d), m_HeaderPart(m_Dict), m_IndexAccess(m_Dict), m_RIP(m_Dict)
+ TrackFileReader(const Dictionary *d) :
+ m_HeaderPart(d), m_IndexAccess(d), m_RIP(d), m_Dict(d)
{
default_md_object_init();
}
@@ -495,7 +495,7 @@ namespace ASDCP
template <class PackageT, class ClipT>
TrackSet<ClipT>
CreateTrackAndSequence(OP1aHeader& Header, PackageT& Package, const std::string TrackName,
- const MXF::Rational& clip_edit_rate, const UL& Definition, ui32_t TrackID, const Dictionary*& Dict)
+ const MXF::Rational& clip_edit_rate, const UL& Definition, ui32_t TrackID, const Dictionary *Dict)
{
TrackSet<ClipT> NewTrack;
@@ -518,7 +518,7 @@ namespace ASDCP
template <class PackageT>
TrackSet<TimecodeComponent>
CreateTimecodeTrack(OP1aHeader& Header, PackageT& Package,
- const MXF::Rational& tc_edit_rate, ui32_t tc_frame_rate, ui64_t TCStart, const Dictionary*& Dict)
+ const MXF::Rational& tc_edit_rate, ui32_t tc_frame_rate, ui64_t TCStart, const Dictionary *Dict)
{
assert(Dict);
UL TCUL(Dict->ul(MDD_TimecodeDataDef));
@@ -609,8 +609,8 @@ namespace ASDCP
typedef std::list<ui64_t*> DurationElementList_t;
DurationElementList_t m_DurationUpdateList;
- TrackFileWriter(const Dictionary& d) :
- m_Dict(&d), m_HeaderSize(0), m_HeaderPart(m_Dict), m_RIP(m_Dict),
+ TrackFileWriter(const Dictionary *d) :
+ m_Dict(d), m_HeaderSize(0), m_HeaderPart(m_Dict), m_RIP(m_Dict),
m_MaterialPackage(0), m_FilePackage(0), m_ContentStorage(0),
m_EssenceDescriptor(0), m_FramesWritten(0), m_StreamOffset(0)
{
@@ -908,7 +908,7 @@ namespace ASDCP
public:
Partition m_BodyPart;
- h__ASDCPReader(const Dictionary&);
+ h__ASDCPReader(const Dictionary*);
virtual ~h__ASDCPReader();
Result_t OpenMXFRead(const std::string& filename);
@@ -928,7 +928,7 @@ namespace ASDCP
Partition m_BodyPart;
OPAtomIndexFooter m_FooterPart;
- h__ASDCPWriter(const Dictionary&);
+ h__ASDCPWriter(const Dictionary*);
virtual ~h__ASDCPWriter();
// all the above for a single source clip
diff --git a/src/Index.cpp b/src/Index.cpp
index 6406e0f..0815f25 100755
--- a/src/Index.cpp
+++ b/src/Index.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2012, John Hurst
+Copyright (c) 2005-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -34,8 +34,8 @@ const ui32_t kl_length = ASDCP::SMPTE_UL_LENGTH + ASDCP::MXF_BER_LENGTH;
//
-ASDCP::MXF::IndexTableSegment::IndexTableSegment(const Dictionary*& d) :
- InterchangeObject(d), m_Dict(d), RtFileOffset(0), RtEntryOffset(0),
+ASDCP::MXF::IndexTableSegment::IndexTableSegment(const Dictionary* d) :
+ InterchangeObject(d), RtFileOffset(0), RtEntryOffset(0),
IndexStartPosition(0), IndexDuration(0), EditUnitByteCount(0),
IndexSID(129), BodySID(1), SliceCount(0), PosTableCount(0)
{
@@ -48,6 +48,13 @@ ASDCP::MXF::IndexTableSegment::~IndexTableSegment()
{
}
+ASDCP::MXF::IndexTableSegment::IndexTableSegment(const IndexTableSegment& rhs) : InterchangeObject(rhs.m_Dict)
+{
+ assert(m_Dict);
+ m_UL = m_Dict->ul(MDD_IndexTableSegment);
+ Copy(rhs);
+}
+
//
void
ASDCP::MXF::IndexTableSegment::Copy(const IndexTableSegment& rhs)
@@ -66,6 +73,13 @@ ASDCP::MXF::IndexTableSegment::Copy(const IndexTableSegment& rhs)
}
//
+ASDCP::MXF::InterchangeObject*
+ASDCP::MXF::IndexTableSegment::Clone() const
+{
+ return new IndexTableSegment(*this);
+}
+
+//
ASDCP::Result_t
ASDCP::MXF::IndexTableSegment::InitFromTLVSet(TLVReader& TLVSet)
{
diff --git a/src/MXF.cpp b/src/MXF.cpp
index 85bd567..94c94ad 100755
--- a/src/MXF.cpp
+++ b/src/MXF.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2015, John Hurst
+Copyright (c) 2005-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -262,13 +262,14 @@ ASDCP::MXF::Partition::PacketList::GetMDObjectsByType(const byte_t* ObjectID, st
//
-ASDCP::MXF::Partition::Partition(const Dictionary*& d) :
+ASDCP::MXF::Partition::Partition(const Dictionary* d) :
m_Dict(d),
MajorVersion(1), MinorVersion(2),
KAGSize(1), ThisPartition(0), PreviousPartition(0),
FooterPartition(0), HeaderByteCount(0), IndexByteCount(0), IndexSID(0),
BodyOffset(0), BodySID(0)
{
+ assert(d);
m_PacketList = new PacketList;
}
@@ -429,7 +430,7 @@ 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);
}
@@ -595,14 +596,21 @@ ASDCP::MXF::Primer::Dump(FILE* stream)
//
//
-ASDCP::MXF::Preface::Preface(const Dictionary*& d) :
- InterchangeObject(d), m_Dict(d), Version(258)
+ASDCP::MXF::Preface::Preface(const Dictionary* d) :
+ InterchangeObject(d), Version(258)
{
assert(m_Dict);
m_UL = m_Dict->Type(MDD_Preface).ul;
ObjectModelVersion = 0;
}
+ASDCP::MXF::Preface::Preface(const Preface& rhs) : InterchangeObject(rhs.m_Dict)
+{
+ assert(m_Dict);
+ m_UL = rhs.m_UL;
+ Copy(rhs);
+}
+
//
void
ASDCP::MXF::Preface::Copy(const Preface& rhs)
@@ -623,6 +631,13 @@ ASDCP::MXF::Preface::Copy(const Preface& rhs)
}
//
+ASDCP::MXF::InterchangeObject*
+ASDCP::MXF::Preface::Clone() const
+{
+ return new Preface(*this);
+}
+
+//
ASDCP::Result_t
ASDCP::MXF::Preface::InitFromTLVSet(TLVReader& TLVSet)
{
@@ -725,7 +740,12 @@ ASDCP::MXF::Preface::Dump(FILE* stream)
//------------------------------------------------------------------------------------------
//
-ASDCP::MXF::OP1aHeader::OP1aHeader(const Dictionary*& d) : Partition(d), m_Dict(d), m_Primer(d), m_Preface(0) {}
+ASDCP::MXF::OP1aHeader::OP1aHeader(const Dictionary* d) :
+ Partition(d), m_Primer(d), m_Preface(0)
+{
+ assert(m_Dict);
+}
+
ASDCP::MXF::OP1aHeader::~OP1aHeader() {}
//
@@ -1025,9 +1045,9 @@ ASDCP::MXF::OP1aHeader::Dump(FILE* stream)
//------------------------------------------------------------------------------------------
//
-ASDCP::MXF::OPAtomIndexFooter::OPAtomIndexFooter(const Dictionary*& d) :
- Partition(d), m_CurrentSegment(0), m_BytesPerEditUnit(0),
- m_BodySID(0), m_Dict(d),
+ASDCP::MXF::OPAtomIndexFooter::OPAtomIndexFooter(const Dictionary* d) :
+ Partition(d),
+ m_CurrentSegment(0), m_BytesPerEditUnit(0), m_BodySID(0),
m_ECOffset(0), m_Lookup(0)
{
BodySID = 0;
@@ -1367,6 +1387,11 @@ ASDCP::MXF::OPAtomIndexFooter::PushIndexEntry(const IndexTableSegment::IndexEntr
//------------------------------------------------------------------------------------------
//
+ASDCP::MXF::InterchangeObject::InterchangeObject(const Dictionary* d) :
+ KLVPacket(), m_Dict(d), m_Lookup(0) {}
+
+ASDCP::MXF::InterchangeObject::~InterchangeObject() {}
+
//
void
ASDCP::MXF::InterchangeObject::Copy(const InterchangeObject& rhs)
@@ -1377,6 +1402,15 @@ ASDCP::MXF::InterchangeObject::Copy(const InterchangeObject& rhs)
}
//
+ASDCP::MXF::InterchangeObject*
+ASDCP::MXF::InterchangeObject::Clone() const
+{
+ ASDCP::MXF::InterchangeObject* obj = new ASDCP::MXF::InterchangeObject(m_Dict);
+ obj->Copy(*this);
+ return obj;
+}
+
+//
ASDCP::Result_t
ASDCP::MXF::InterchangeObject::InitFromTLVSet(TLVReader& TLVSet)
{
@@ -1540,7 +1574,7 @@ ASDCP::MXF::SetObjectFactory(const ASDCP::UL& label, ASDCP::MXF::MXFObjectFactor
//
ASDCP::MXF::InterchangeObject*
-ASDCP::MXF::CreateObject(const Dictionary*& Dict, const UL& label)
+ASDCP::MXF::CreateObject(const Dictionary* Dict, const UL& label)
{
if ( ! s_TypesInit )
{
@@ -1595,7 +1629,7 @@ ul_is_an_mca_channel(const ASDCP::UL& ul)
//
bool
-ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& labels, const Dictionary*& dict, const std::string& language,
+ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& labels, const Dictionary* dict, const std::string& language,
InterchangeObject_list_t& descriptor_list, ui32_t& channel_count)
{
std::string symbol_buf;
@@ -1818,7 +1852,7 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label
}
//
-ASDCP::MXF::ASDCP_MCAConfigParser::ASDCP_MCAConfigParser(const Dictionary*& d) : m_ChannelCount(0), m_Dict(d)
+ASDCP::MXF::ASDCP_MCAConfigParser::ASDCP_MCAConfigParser(const Dictionary* d) : m_Dict(d), m_ChannelCount(0)
{
typedef mca_label_map_t::value_type pair;
m_LabelMap.insert(pair("L", label_traits("Left" , true, m_Dict->ul(MDD_DCAudioChannel_L))));
@@ -1862,7 +1896,7 @@ ASDCP::MXF::ASDCP_MCAConfigParser::DecodeString(const std::string& s, const std:
}
// ST(L,R),DNS(NSC001,NSC002),-,VIN
-ASDCP::MXF::AS02_MCAConfigParser::AS02_MCAConfigParser(const Dictionary*& d) : ASDCP::MXF::ASDCP_MCAConfigParser(d)
+ASDCP::MXF::AS02_MCAConfigParser::AS02_MCAConfigParser(const Dictionary* d) : ASDCP::MXF::ASDCP_MCAConfigParser(d)
{
typedef mca_label_map_t::value_type pair;
m_LabelMap.insert(pair("M1", label_traits("Mono One", true, m_Dict->ul(MDD_IMFAudioChannel_M1))));
diff --git a/src/MXF.h b/src/MXF.h
index ee0be96..5cc883f 100755
--- a/src/MXF.h
+++ b/src/MXF.h
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2018, John Hurst
+Copyright (c) 2005-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -44,13 +44,13 @@ namespace ASDCP
const ui32_t kl_length = ASDCP::SMPTE_UL_LENGTH + ASDCP::MXF_BER_LENGTH;
//
- typedef ASDCP::MXF::InterchangeObject* (*MXFObjectFactory_t)(const Dictionary*&);
+ typedef ASDCP::MXF::InterchangeObject* (*MXFObjectFactory_t)(const Dictionary*);
//
void SetObjectFactory(const UL& label, MXFObjectFactory_t factory);
//
- InterchangeObject* CreateObject(const Dictionary*& Dict, const UL& label);
+ InterchangeObject* CreateObject(const Dictionary* Dict, const UL& label);
// seek an open file handle to the start of the RIP KLV packet
@@ -98,14 +98,14 @@ namespace ASDCP
}
};
- const Dictionary*& m_Dict;
+ const Dictionary* m_Dict;
typedef SimpleArray<PartitionPair>::iterator pair_iterator;
typedef SimpleArray<PartitionPair>::const_iterator const_pair_iterator;
SimpleArray<PartitionPair> PairArray;
- RIP(const Dictionary*& d) : m_Dict(d) {}
+ RIP(const Dictionary* d) : m_Dict(d) {}
virtual ~RIP() {}
virtual Result_t InitFromFile(const Kumu::FileReader& Reader);
virtual Result_t WriteToFile(Kumu::FileWriter& Writer);
@@ -137,7 +137,7 @@ namespace ASDCP
mem_ptr<PacketList> m_PacketList;
public:
- const Dictionary*& m_Dict;
+ const Dictionary* m_Dict;
ui16_t MajorVersion;
ui16_t MinorVersion;
@@ -153,7 +153,7 @@ namespace ASDCP
UL OperationalPattern;
Batch<UL> EssenceContainers;
- Partition(const Dictionary*&);
+ Partition(const Dictionary*);
virtual ~Partition();
virtual void AddChildObject(InterchangeObject*); // takes ownership
virtual Result_t InitFromFile(const Kumu::FileReader& Reader);
@@ -221,9 +221,9 @@ namespace ASDCP
};
Batch<LocalTagEntry> LocalTagEntryBatch;
- const Dictionary*& m_Dict;
+ const Dictionary* m_Dict;
- Primer(const Dictionary*&);
+ Primer(const Dictionary*);
virtual ~Primer();
virtual void ClearTagList();
@@ -290,18 +290,20 @@ namespace ASDCP
//
class InterchangeObject : public ASDCP::KLVPacket
{
+ ASDCP_NO_COPY_CONSTRUCT(InterchangeObject);
InterchangeObject();
public:
- const Dictionary*& m_Dict;
+ const Dictionary* m_Dict;
IPrimerLookup* m_Lookup;
UUID InstanceUID;
optional_property<UUID> GenerationUID;
- InterchangeObject(const Dictionary*& d) : m_Dict(d), m_Lookup(0) {}
- virtual ~InterchangeObject() {}
+ InterchangeObject(const Dictionary* d);
+ virtual ~InterchangeObject();
virtual void Copy(const InterchangeObject& rhs);
+ virtual InterchangeObject *Clone() const;
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -317,11 +319,9 @@ namespace ASDCP
//
class Preface : public InterchangeObject
{
- ASDCP_NO_COPY_CONSTRUCT(Preface);
Preface();
public:
- const Dictionary*& m_Dict;
Kumu::Timestamp LastModifiedDate;
ui16_t Version;
optional_property<ui32_t> ObjectModelVersion;
@@ -334,10 +334,13 @@ namespace ASDCP
optional_property<Batch<UL> > ApplicationSchemes;
optional_property<Batch<UL> > ConformsToSpecifications;
- Preface(const Dictionary*& d);
+ Preface(const Dictionary* d);
+ Preface(const Preface& rhs);
virtual ~Preface() {}
+ const Preface& operator=(const Preface& rhs) { Copy(rhs); return *this; }
virtual void Copy(const Preface& rhs);
+ virtual InterchangeObject *Clone() const;
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -351,7 +354,6 @@ namespace ASDCP
class IndexTableSegment : public InterchangeObject
{
IndexTableSegment();
- ASDCP_NO_COPY_CONSTRUCT(IndexTableSegment);
public:
//
@@ -395,7 +397,6 @@ namespace ASDCP
const char* EncodeString(char* str_buf, ui32_t buf_len) const;
};
- const Dictionary*& m_Dict;
ui64_t RtFileOffset; // not part of the MXF structure: used to manage runtime index access
ui64_t RtEntryOffset;
@@ -410,10 +411,13 @@ namespace ASDCP
Array<DeltaEntry> DeltaEntryArray;
Array<IndexEntry> IndexEntryArray;
- IndexTableSegment(const Dictionary*&);
+ IndexTableSegment(const Dictionary*);
+ IndexTableSegment(const IndexTableSegment&);
virtual ~IndexTableSegment();
+ const IndexTableSegment& operator=(const IndexTableSegment& rhs) { Copy(rhs); return *this; }
virtual void Copy(const IndexTableSegment& rhs);
+ virtual InterchangeObject *Clone() const;
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -434,11 +438,10 @@ namespace ASDCP
OP1aHeader();
public:
- const Dictionary*& m_Dict;
ASDCP::MXF::Primer m_Primer;
Preface* m_Preface;
- OP1aHeader(const Dictionary*&);
+ OP1aHeader(const Dictionary*);
virtual ~OP1aHeader();
virtual Result_t InitFromFile(const Kumu::FileReader& Reader);
virtual Result_t InitFromPartitionBuffer(const byte_t* p, ui32_t l);
@@ -470,11 +473,10 @@ namespace ASDCP
OPAtomIndexFooter();
public:
- const Dictionary*& m_Dict;
Kumu::fpos_t m_ECOffset;
IPrimerLookup* m_Lookup;
- OPAtomIndexFooter(const Dictionary*&);
+ OPAtomIndexFooter(const Dictionary*);
virtual ~OPAtomIndexFooter();
virtual Result_t InitFromFile(const Kumu::FileReader& Reader);
virtual Result_t InitFromPartitionBuffer(const byte_t* p, ui32_t l);
@@ -524,7 +526,7 @@ namespace ASDCP
typedef std::map<const std::string, const label_traits, ci_comp> mca_label_map_t;
bool decode_mca_string(const std::string& s, const mca_label_map_t& labels,
- const Dictionary*& dict, const std::string& language, InterchangeObject_list_t&, ui32_t&);
+ const Dictionary* dict, const std::string& language, InterchangeObject_list_t&, ui32_t&);
//
class ASDCP_MCAConfigParser : public InterchangeObject_list_t
@@ -535,11 +537,11 @@ namespace ASDCP
protected:
mca_label_map_t m_LabelMap;
ui32_t m_ChannelCount;
- const Dictionary*& m_Dict;
+ const Dictionary* m_Dict;
public:
- ASDCP_MCAConfigParser(const Dictionary*&);
+ ASDCP_MCAConfigParser(const Dictionary*);
bool DecodeString(const std::string& s, const std::string& language = "en-US");
// Valid only after a successful call to DecodeString
@@ -553,7 +555,7 @@ namespace ASDCP
AS02_MCAConfigParser();
public:
- AS02_MCAConfigParser(const Dictionary*&);
+ AS02_MCAConfigParser(const Dictionary*);
};
} // namespace MXF
diff --git a/src/Metadata.cpp b/src/Metadata.cpp
index 9ca3d66..455ba2a 100755..100644
--- a/src/Metadata.cpp
+++ b/src/Metadata.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2017, John Hurst
+Copyright (c) 2005-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -40,59 +40,59 @@ const ui32_t kl_length = ASDCP::SMPTE_UL_LENGTH + ASDCP::MXF_BER_LENGTH;
//------------------------------------------------------------------------------------------
-static InterchangeObject* Preface_Factory(const Dictionary*& Dict) { return new Preface(Dict); }
-static InterchangeObject* IndexTableSegment_Factory(const Dictionary*& Dict) { return new IndexTableSegment(Dict); }
-
-static InterchangeObject* Identification_Factory(const Dictionary*& Dict) { return new Identification(Dict); }
-static InterchangeObject* ContentStorage_Factory(const Dictionary*& Dict) { return new ContentStorage(Dict); }
-static InterchangeObject* EssenceContainerData_Factory(const Dictionary*& Dict) { return new EssenceContainerData(Dict); }
-static InterchangeObject* MaterialPackage_Factory(const Dictionary*& Dict) { return new MaterialPackage(Dict); }
-static InterchangeObject* SourcePackage_Factory(const Dictionary*& Dict) { return new SourcePackage(Dict); }
-static InterchangeObject* StaticTrack_Factory(const Dictionary*& Dict) { return new StaticTrack(Dict); }
-static InterchangeObject* Track_Factory(const Dictionary*& Dict) { return new Track(Dict); }
-static InterchangeObject* Sequence_Factory(const Dictionary*& Dict) { return new Sequence(Dict); }
-static InterchangeObject* SourceClip_Factory(const Dictionary*& Dict) { return new SourceClip(Dict); }
-static InterchangeObject* TimecodeComponent_Factory(const Dictionary*& Dict) { return new TimecodeComponent(Dict); }
-static InterchangeObject* FileDescriptor_Factory(const Dictionary*& Dict) { return new FileDescriptor(Dict); }
-static InterchangeObject* GenericSoundEssenceDescriptor_Factory(const Dictionary*& Dict) { return new GenericSoundEssenceDescriptor(Dict); }
-static InterchangeObject* WaveAudioDescriptor_Factory(const Dictionary*& Dict) { return new WaveAudioDescriptor(Dict); }
-static InterchangeObject* GenericPictureEssenceDescriptor_Factory(const Dictionary*& Dict) { return new GenericPictureEssenceDescriptor(Dict); }
-static InterchangeObject* RGBAEssenceDescriptor_Factory(const Dictionary*& Dict) { return new RGBAEssenceDescriptor(Dict); }
-static InterchangeObject* JPEG2000PictureSubDescriptor_Factory(const Dictionary*& Dict) { return new JPEG2000PictureSubDescriptor(Dict); }
-static InterchangeObject* CDCIEssenceDescriptor_Factory(const Dictionary*& Dict) { return new CDCIEssenceDescriptor(Dict); }
-static InterchangeObject* MPEG2VideoDescriptor_Factory(const Dictionary*& Dict) { return new MPEG2VideoDescriptor(Dict); }
-static InterchangeObject* DMSegment_Factory(const Dictionary*& Dict) { return new DMSegment(Dict); }
-static InterchangeObject* CryptographicFramework_Factory(const Dictionary*& Dict) { return new CryptographicFramework(Dict); }
-static InterchangeObject* CryptographicContext_Factory(const Dictionary*& Dict) { return new CryptographicContext(Dict); }
-static InterchangeObject* DescriptiveFramework_Factory(const Dictionary*& Dict) { return new DescriptiveFramework(Dict); }
-static InterchangeObject* DescriptiveObject_Factory(const Dictionary*& Dict) { return new DescriptiveObject(Dict); }
-static InterchangeObject* GenericDataEssenceDescriptor_Factory(const Dictionary*& Dict) { return new GenericDataEssenceDescriptor(Dict); }
-static InterchangeObject* TimedTextDescriptor_Factory(const Dictionary*& Dict) { return new TimedTextDescriptor(Dict); }
-static InterchangeObject* TimedTextResourceSubDescriptor_Factory(const Dictionary*& Dict) { return new TimedTextResourceSubDescriptor(Dict); }
-static InterchangeObject* StereoscopicPictureSubDescriptor_Factory(const Dictionary*& Dict) { return new StereoscopicPictureSubDescriptor(Dict); }
-static InterchangeObject* ContainerConstraintsSubDescriptor_Factory(const Dictionary*& Dict) { return new ContainerConstraintsSubDescriptor(Dict); }
-static InterchangeObject* NetworkLocator_Factory(const Dictionary*& Dict) { return new NetworkLocator(Dict); }
-static InterchangeObject* MCALabelSubDescriptor_Factory(const Dictionary*& Dict) { return new MCALabelSubDescriptor(Dict); }
-static InterchangeObject* AudioChannelLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new AudioChannelLabelSubDescriptor(Dict); }
-static InterchangeObject* SoundfieldGroupLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new SoundfieldGroupLabelSubDescriptor(Dict); }
-static InterchangeObject* GroupOfSoundfieldGroupsLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new GroupOfSoundfieldGroupsLabelSubDescriptor(Dict); }
-static InterchangeObject* DCDataDescriptor_Factory(const Dictionary*& Dict) { return new DCDataDescriptor(Dict); }
-static InterchangeObject* PrivateDCDataDescriptor_Factory(const Dictionary*& Dict) { return new PrivateDCDataDescriptor(Dict); }
-static InterchangeObject* DolbyAtmosSubDescriptor_Factory(const Dictionary*& Dict) { return new DolbyAtmosSubDescriptor(Dict); }
-static InterchangeObject* ACESPictureSubDescriptor_Factory(const Dictionary*& Dict) { return new ACESPictureSubDescriptor(Dict); }
-static InterchangeObject* TargetFrameSubDescriptor_Factory(const Dictionary*& Dict) { return new TargetFrameSubDescriptor(Dict); }
-static InterchangeObject* TextBasedDMFramework_Factory(const Dictionary*& Dict) { return new TextBasedDMFramework(Dict); }
-static InterchangeObject* TextBasedObject_Factory(const Dictionary*& Dict) { return new TextBasedObject(Dict); }
-static InterchangeObject* GenericStreamTextBasedSet_Factory(const Dictionary*& Dict) { return new GenericStreamTextBasedSet(Dict); }
-static InterchangeObject* ISXDDataEssenceDescriptor_Factory(const Dictionary*& Dict) { return new ISXDDataEssenceDescriptor(Dict); }
-static InterchangeObject* PHDRMetadataTrackSubDescriptor_Factory(const Dictionary*& Dict) { return new PHDRMetadataTrackSubDescriptor(Dict); }
-static InterchangeObject* PIMFDynamicMetadataDescriptor_Factory(const Dictionary*& Dict) { return new PIMFDynamicMetadataDescriptor(Dict); }
-static InterchangeObject* IABEssenceDescriptor_Factory(const Dictionary*& Dict) { return new IABEssenceDescriptor(Dict); }
-static InterchangeObject* IABSoundfieldLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new IABSoundfieldLabelSubDescriptor(Dict); }
+static InterchangeObject* Preface_Factory(const Dictionary* Dict) { return new Preface(Dict); }
+static InterchangeObject* IndexTableSegment_Factory(const Dictionary* Dict) { return new IndexTableSegment(Dict); }
+
+static InterchangeObject* Identification_Factory(const Dictionary* Dict) { return new Identification(Dict); }
+static InterchangeObject* ContentStorage_Factory(const Dictionary* Dict) { return new ContentStorage(Dict); }
+static InterchangeObject* EssenceContainerData_Factory(const Dictionary* Dict) { return new EssenceContainerData(Dict); }
+static InterchangeObject* MaterialPackage_Factory(const Dictionary* Dict) { return new MaterialPackage(Dict); }
+static InterchangeObject* SourcePackage_Factory(const Dictionary* Dict) { return new SourcePackage(Dict); }
+static InterchangeObject* StaticTrack_Factory(const Dictionary* Dict) { return new StaticTrack(Dict); }
+static InterchangeObject* Track_Factory(const Dictionary* Dict) { return new Track(Dict); }
+static InterchangeObject* Sequence_Factory(const Dictionary* Dict) { return new Sequence(Dict); }
+static InterchangeObject* SourceClip_Factory(const Dictionary* Dict) { return new SourceClip(Dict); }
+static InterchangeObject* TimecodeComponent_Factory(const Dictionary* Dict) { return new TimecodeComponent(Dict); }
+static InterchangeObject* FileDescriptor_Factory(const Dictionary* Dict) { return new FileDescriptor(Dict); }
+static InterchangeObject* GenericSoundEssenceDescriptor_Factory(const Dictionary* Dict) { return new GenericSoundEssenceDescriptor(Dict); }
+static InterchangeObject* WaveAudioDescriptor_Factory(const Dictionary* Dict) { return new WaveAudioDescriptor(Dict); }
+static InterchangeObject* GenericPictureEssenceDescriptor_Factory(const Dictionary* Dict) { return new GenericPictureEssenceDescriptor(Dict); }
+static InterchangeObject* RGBAEssenceDescriptor_Factory(const Dictionary* Dict) { return new RGBAEssenceDescriptor(Dict); }
+static InterchangeObject* JPEG2000PictureSubDescriptor_Factory(const Dictionary* Dict) { return new JPEG2000PictureSubDescriptor(Dict); }
+static InterchangeObject* CDCIEssenceDescriptor_Factory(const Dictionary* Dict) { return new CDCIEssenceDescriptor(Dict); }
+static InterchangeObject* MPEG2VideoDescriptor_Factory(const Dictionary* Dict) { return new MPEG2VideoDescriptor(Dict); }
+static InterchangeObject* DMSegment_Factory(const Dictionary* Dict) { return new DMSegment(Dict); }
+static InterchangeObject* CryptographicFramework_Factory(const Dictionary* Dict) { return new CryptographicFramework(Dict); }
+static InterchangeObject* CryptographicContext_Factory(const Dictionary* Dict) { return new CryptographicContext(Dict); }
+static InterchangeObject* DescriptiveFramework_Factory(const Dictionary* Dict) { return new DescriptiveFramework(Dict); }
+static InterchangeObject* DescriptiveObject_Factory(const Dictionary* Dict) { return new DescriptiveObject(Dict); }
+static InterchangeObject* GenericDataEssenceDescriptor_Factory(const Dictionary* Dict) { return new GenericDataEssenceDescriptor(Dict); }
+static InterchangeObject* TimedTextDescriptor_Factory(const Dictionary* Dict) { return new TimedTextDescriptor(Dict); }
+static InterchangeObject* TimedTextResourceSubDescriptor_Factory(const Dictionary* Dict) { return new TimedTextResourceSubDescriptor(Dict); }
+static InterchangeObject* StereoscopicPictureSubDescriptor_Factory(const Dictionary* Dict) { return new StereoscopicPictureSubDescriptor(Dict); }
+static InterchangeObject* ContainerConstraintsSubDescriptor_Factory(const Dictionary* Dict) { return new ContainerConstraintsSubDescriptor(Dict); }
+static InterchangeObject* NetworkLocator_Factory(const Dictionary* Dict) { return new NetworkLocator(Dict); }
+static InterchangeObject* MCALabelSubDescriptor_Factory(const Dictionary* Dict) { return new MCALabelSubDescriptor(Dict); }
+static InterchangeObject* AudioChannelLabelSubDescriptor_Factory(const Dictionary* Dict) { return new AudioChannelLabelSubDescriptor(Dict); }
+static InterchangeObject* SoundfieldGroupLabelSubDescriptor_Factory(const Dictionary* Dict) { return new SoundfieldGroupLabelSubDescriptor(Dict); }
+static InterchangeObject* GroupOfSoundfieldGroupsLabelSubDescriptor_Factory(const Dictionary* Dict) { return new GroupOfSoundfieldGroupsLabelSubDescriptor(Dict); }
+static InterchangeObject* DCDataDescriptor_Factory(const Dictionary* Dict) { return new DCDataDescriptor(Dict); }
+static InterchangeObject* PrivateDCDataDescriptor_Factory(const Dictionary* Dict) { return new PrivateDCDataDescriptor(Dict); }
+static InterchangeObject* DolbyAtmosSubDescriptor_Factory(const Dictionary* Dict) { return new DolbyAtmosSubDescriptor(Dict); }
+static InterchangeObject* ACESPictureSubDescriptor_Factory(const Dictionary* Dict) { return new ACESPictureSubDescriptor(Dict); }
+static InterchangeObject* TargetFrameSubDescriptor_Factory(const Dictionary* Dict) { return new TargetFrameSubDescriptor(Dict); }
+static InterchangeObject* TextBasedDMFramework_Factory(const Dictionary* Dict) { return new TextBasedDMFramework(Dict); }
+static InterchangeObject* TextBasedObject_Factory(const Dictionary* Dict) { return new TextBasedObject(Dict); }
+static InterchangeObject* GenericStreamTextBasedSet_Factory(const Dictionary* Dict) { return new GenericStreamTextBasedSet(Dict); }
+static InterchangeObject* ISXDDataEssenceDescriptor_Factory(const Dictionary* Dict) { return new ISXDDataEssenceDescriptor(Dict); }
+static InterchangeObject* PHDRMetadataTrackSubDescriptor_Factory(const Dictionary* Dict) { return new PHDRMetadataTrackSubDescriptor(Dict); }
+static InterchangeObject* PIMFDynamicMetadataDescriptor_Factory(const Dictionary* Dict) { return new PIMFDynamicMetadataDescriptor(Dict); }
+static InterchangeObject* IABEssenceDescriptor_Factory(const Dictionary* Dict) { return new IABEssenceDescriptor(Dict); }
+static InterchangeObject* IABSoundfieldLabelSubDescriptor_Factory(const Dictionary* Dict) { return new IABSoundfieldLabelSubDescriptor(Dict); }
void
-ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
+ASDCP::MXF::Metadata_InitTypes(const Dictionary* Dict)
{
assert(Dict);
SetObjectFactory(Dict->ul(MDD_Preface), Preface_Factory);
@@ -156,13 +156,13 @@ ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
//
-Identification::Identification(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+Identification::Identification(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_Identification);
}
-Identification::Identification(const Identification& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+Identification::Identification(const Identification& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_Identification);
@@ -226,6 +226,13 @@ Identification::Copy(const Identification& rhs)
}
//
+InterchangeObject*
+Identification::Clone() const
+{
+ return new Identification(*this);
+}
+
+//
void
Identification::Dump(FILE* stream)
{
@@ -268,13 +275,13 @@ Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-ContentStorage::ContentStorage(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+ContentStorage::ContentStorage(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ContentStorage);
}
-ContentStorage::ContentStorage(const ContentStorage& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+ContentStorage::ContentStorage(const ContentStorage& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ContentStorage);
@@ -314,6 +321,13 @@ ContentStorage::Copy(const ContentStorage& rhs)
}
//
+InterchangeObject*
+ContentStorage::Clone() const
+{
+ return new ContentStorage(*this);
+}
+
+//
void
ContentStorage::Dump(FILE* stream)
{
@@ -349,13 +363,13 @@ ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-EssenceContainerData::EssenceContainerData(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), BodySID(0)
+EssenceContainerData::EssenceContainerData(const Dictionary* d) : InterchangeObject(d), BodySID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_EssenceContainerData);
}
-EssenceContainerData::EssenceContainerData(const EssenceContainerData& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+EssenceContainerData::EssenceContainerData(const EssenceContainerData& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_EssenceContainerData);
@@ -401,6 +415,13 @@ EssenceContainerData::Copy(const EssenceContainerData& rhs)
}
//
+InterchangeObject*
+EssenceContainerData::Clone() const
+{
+ return new EssenceContainerData(*this);
+}
+
+//
void
EssenceContainerData::Dump(FILE* stream)
{
@@ -436,9 +457,9 @@ EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
// GenericPackage
//
-GenericPackage::GenericPackage(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
+GenericPackage::GenericPackage(const Dictionary* d) : InterchangeObject(d) {}
-GenericPackage::GenericPackage(const GenericPackage& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericPackage::GenericPackage(const GenericPackage& rhs) : InterchangeObject(rhs.m_Dict)
{
Copy(rhs);
}
@@ -488,6 +509,13 @@ GenericPackage::Copy(const GenericPackage& rhs)
}
//
+InterchangeObject*
+GenericPackage::Clone() const
+{
+ return new GenericPackage(*this);
+}
+
+//
void
GenericPackage::Dump(FILE* stream)
{
@@ -514,13 +542,13 @@ GenericPackage::Dump(FILE* stream)
//
-MaterialPackage::MaterialPackage(const Dictionary*& d) : GenericPackage(d), m_Dict(d)
+MaterialPackage::MaterialPackage(const Dictionary* d) : GenericPackage(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_MaterialPackage);
}
-MaterialPackage::MaterialPackage(const MaterialPackage& rhs) : GenericPackage(rhs.m_Dict), m_Dict(rhs.m_Dict)
+MaterialPackage::MaterialPackage(const MaterialPackage& rhs) : GenericPackage(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_MaterialPackage);
@@ -560,6 +588,13 @@ MaterialPackage::Copy(const MaterialPackage& rhs)
}
//
+InterchangeObject*
+MaterialPackage::Clone() const
+{
+ return new MaterialPackage(*this);
+}
+
+//
void
MaterialPackage::Dump(FILE* stream)
{
@@ -594,13 +629,13 @@ MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-SourcePackage::SourcePackage(const Dictionary*& d) : GenericPackage(d), m_Dict(d)
+SourcePackage::SourcePackage(const Dictionary* d) : GenericPackage(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_SourcePackage);
}
-SourcePackage::SourcePackage(const SourcePackage& rhs) : GenericPackage(rhs.m_Dict), m_Dict(rhs.m_Dict)
+SourcePackage::SourcePackage(const SourcePackage& rhs) : GenericPackage(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_SourcePackage);
@@ -637,6 +672,13 @@ SourcePackage::Copy(const SourcePackage& rhs)
}
//
+InterchangeObject*
+SourcePackage::Clone() const
+{
+ return new SourcePackage(*this);
+}
+
+//
void
SourcePackage::Dump(FILE* stream)
{
@@ -668,9 +710,9 @@ SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
// GenericTrack
//
-GenericTrack::GenericTrack(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), TrackID(0), TrackNumber(0) {}
+GenericTrack::GenericTrack(const Dictionary* d) : InterchangeObject(d), TrackID(0), TrackNumber(0) {}
-GenericTrack::GenericTrack(const GenericTrack& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericTrack::GenericTrack(const GenericTrack& rhs) : InterchangeObject(rhs.m_Dict)
{
Copy(rhs);
}
@@ -720,6 +762,13 @@ GenericTrack::Copy(const GenericTrack& rhs)
}
//
+InterchangeObject*
+GenericTrack::Clone() const
+{
+ return new GenericTrack(*this);
+}
+
+//
void
GenericTrack::Dump(FILE* stream)
{
@@ -746,13 +795,13 @@ GenericTrack::Dump(FILE* stream)
//
-StaticTrack::StaticTrack(const Dictionary*& d) : GenericTrack(d), m_Dict(d)
+StaticTrack::StaticTrack(const Dictionary* d) : GenericTrack(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_StaticTrack);
}
-StaticTrack::StaticTrack(const StaticTrack& rhs) : GenericTrack(rhs.m_Dict), m_Dict(rhs.m_Dict)
+StaticTrack::StaticTrack(const StaticTrack& rhs) : GenericTrack(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_StaticTrack);
@@ -786,6 +835,13 @@ StaticTrack::Copy(const StaticTrack& rhs)
}
//
+InterchangeObject*
+StaticTrack::Clone() const
+{
+ return new StaticTrack(*this);
+}
+
+//
void
StaticTrack::Dump(FILE* stream)
{
@@ -817,13 +873,13 @@ StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-Track::Track(const Dictionary*& d) : GenericTrack(d), m_Dict(d), Origin(0)
+Track::Track(const Dictionary* d) : GenericTrack(d), Origin(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_Track);
}
-Track::Track(const Track& rhs) : GenericTrack(rhs.m_Dict), m_Dict(rhs.m_Dict)
+Track::Track(const Track& rhs) : GenericTrack(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_Track);
@@ -863,6 +919,13 @@ Track::Copy(const Track& rhs)
}
//
+InterchangeObject*
+Track::Clone() const
+{
+ return new Track(*this);
+}
+
+//
void
Track::Dump(FILE* stream)
{
@@ -895,9 +958,9 @@ Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
// StructuralComponent
//
-StructuralComponent::StructuralComponent(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
+StructuralComponent::StructuralComponent(const Dictionary* d) : InterchangeObject(d) {}
-StructuralComponent::StructuralComponent(const StructuralComponent& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+StructuralComponent::StructuralComponent(const StructuralComponent& rhs) : InterchangeObject(rhs.m_Dict)
{
Copy(rhs);
}
@@ -938,6 +1001,13 @@ StructuralComponent::Copy(const StructuralComponent& rhs)
}
//
+InterchangeObject*
+StructuralComponent::Clone() const
+{
+ return new StructuralComponent(*this);
+}
+
+//
void
StructuralComponent::Dump(FILE* stream)
{
@@ -960,13 +1030,13 @@ StructuralComponent::Dump(FILE* stream)
//
-Sequence::Sequence(const Dictionary*& d) : StructuralComponent(d), m_Dict(d)
+Sequence::Sequence(const Dictionary* d) : StructuralComponent(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_Sequence);
}
-Sequence::Sequence(const Sequence& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
+Sequence::Sequence(const Sequence& rhs) : StructuralComponent(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_Sequence);
@@ -1003,6 +1073,13 @@ Sequence::Copy(const Sequence& rhs)
}
//
+InterchangeObject*
+Sequence::Clone() const
+{
+ return new Sequence(*this);
+}
+
+//
void
Sequence::Dump(FILE* stream)
{
@@ -1036,13 +1113,13 @@ Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-SourceClip::SourceClip(const Dictionary*& d) : StructuralComponent(d), m_Dict(d), StartPosition(0), SourceTrackID(0)
+SourceClip::SourceClip(const Dictionary* d) : StructuralComponent(d), StartPosition(0), SourceTrackID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_SourceClip);
}
-SourceClip::SourceClip(const SourceClip& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
+SourceClip::SourceClip(const SourceClip& rhs) : StructuralComponent(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_SourceClip);
@@ -1085,6 +1162,13 @@ SourceClip::Copy(const SourceClip& rhs)
}
//
+InterchangeObject*
+SourceClip::Clone() const
+{
+ return new SourceClip(*this);
+}
+
+//
void
SourceClip::Dump(FILE* stream)
{
@@ -1119,13 +1203,13 @@ SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-TimecodeComponent::TimecodeComponent(const Dictionary*& d) : StructuralComponent(d), m_Dict(d), RoundedTimecodeBase(0), StartTimecode(0), DropFrame(0)
+TimecodeComponent::TimecodeComponent(const Dictionary* d) : StructuralComponent(d), RoundedTimecodeBase(0), StartTimecode(0), DropFrame(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TimecodeComponent);
}
-TimecodeComponent::TimecodeComponent(const TimecodeComponent& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
+TimecodeComponent::TimecodeComponent(const TimecodeComponent& rhs) : StructuralComponent(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TimecodeComponent);
@@ -1168,6 +1252,13 @@ TimecodeComponent::Copy(const TimecodeComponent& rhs)
}
//
+InterchangeObject*
+TimecodeComponent::Clone() const
+{
+ return new TimecodeComponent(*this);
+}
+
+//
void
TimecodeComponent::Dump(FILE* stream)
{
@@ -1201,9 +1292,9 @@ TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
// GenericDescriptor
//
-GenericDescriptor::GenericDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
+GenericDescriptor::GenericDescriptor(const Dictionary* d) : InterchangeObject(d) {}
-GenericDescriptor::GenericDescriptor(const GenericDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericDescriptor::GenericDescriptor(const GenericDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
Copy(rhs);
}
@@ -1241,6 +1332,13 @@ GenericDescriptor::Copy(const GenericDescriptor& rhs)
}
//
+InterchangeObject*
+GenericDescriptor::Clone() const
+{
+ return new GenericDescriptor(*this);
+}
+
+//
void
GenericDescriptor::Dump(FILE* stream)
{
@@ -1263,13 +1361,13 @@ GenericDescriptor::Dump(FILE* stream)
//
-FileDescriptor::FileDescriptor(const Dictionary*& d) : GenericDescriptor(d), m_Dict(d)
+FileDescriptor::FileDescriptor(const Dictionary* d) : GenericDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_FileDescriptor);
}
-FileDescriptor::FileDescriptor(const FileDescriptor& rhs) : GenericDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+FileDescriptor::FileDescriptor(const FileDescriptor& rhs) : GenericDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_FileDescriptor);
@@ -1327,6 +1425,13 @@ FileDescriptor::Copy(const FileDescriptor& rhs)
}
//
+InterchangeObject*
+FileDescriptor::Clone() const
+{
+ return new FileDescriptor(*this);
+}
+
+//
void
FileDescriptor::Dump(FILE* stream)
{
@@ -1369,13 +1474,13 @@ FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d), Locked(0), ChannelCount(0), QuantizationBits(0)
+GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const Dictionary* d) : FileDescriptor(d), Locked(0), ChannelCount(0), QuantizationBits(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericSoundEssenceDescriptor);
}
-GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericSoundEssenceDescriptor);
@@ -1454,6 +1559,13 @@ GenericSoundEssenceDescriptor::Copy(const GenericSoundEssenceDescriptor& rhs)
}
//
+InterchangeObject*
+GenericSoundEssenceDescriptor::Clone() const
+{
+ return new GenericSoundEssenceDescriptor(*this);
+}
+
+//
void
GenericSoundEssenceDescriptor::Dump(FILE* stream)
{
@@ -1505,13 +1617,13 @@ GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-WaveAudioDescriptor::WaveAudioDescriptor(const Dictionary*& d) : GenericSoundEssenceDescriptor(d), m_Dict(d), BlockAlign(0), AvgBps(0)
+WaveAudioDescriptor::WaveAudioDescriptor(const Dictionary* d) : GenericSoundEssenceDescriptor(d), BlockAlign(0), AvgBps(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_WaveAudioDescriptor);
}
-WaveAudioDescriptor::WaveAudioDescriptor(const WaveAudioDescriptor& rhs) : GenericSoundEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+WaveAudioDescriptor::WaveAudioDescriptor(const WaveAudioDescriptor& rhs) : GenericSoundEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_WaveAudioDescriptor);
@@ -1563,6 +1675,13 @@ WaveAudioDescriptor::Copy(const WaveAudioDescriptor& rhs)
}
//
+InterchangeObject*
+WaveAudioDescriptor::Clone() const
+{
+ return new WaveAudioDescriptor(*this);
+}
+
+//
void
WaveAudioDescriptor::Dump(FILE* stream)
{
@@ -1602,13 +1721,13 @@ WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d), FrameLayout(0), StoredWidth(0), StoredHeight(0)
+GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const Dictionary* d) : FileDescriptor(d), FrameLayout(0), StoredWidth(0), StoredHeight(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericPictureEssenceDescriptor);
}
-GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericPictureEssenceDescriptor);
@@ -1836,6 +1955,13 @@ GenericPictureEssenceDescriptor::Copy(const GenericPictureEssenceDescriptor& rhs
}
//
+InterchangeObject*
+GenericPictureEssenceDescriptor::Clone() const
+{
+ return new GenericPictureEssenceDescriptor(*this);
+}
+
+//
void
GenericPictureEssenceDescriptor::Dump(FILE* stream)
{
@@ -1963,13 +2089,13 @@ GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-RGBAEssenceDescriptor::RGBAEssenceDescriptor(const Dictionary*& d) : GenericPictureEssenceDescriptor(d), m_Dict(d)
+RGBAEssenceDescriptor::RGBAEssenceDescriptor(const Dictionary* d) : GenericPictureEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_RGBAEssenceDescriptor);
}
-RGBAEssenceDescriptor::RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+RGBAEssenceDescriptor::RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_RGBAEssenceDescriptor);
@@ -2036,6 +2162,13 @@ RGBAEssenceDescriptor::Copy(const RGBAEssenceDescriptor& rhs)
}
//
+InterchangeObject*
+RGBAEssenceDescriptor::Clone() const
+{
+ return new RGBAEssenceDescriptor(*this);
+}
+
+//
void
RGBAEssenceDescriptor::Dump(FILE* stream)
{
@@ -2083,13 +2216,13 @@ RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-JPEG2000PictureSubDescriptor::JPEG2000PictureSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), Rsize(0), Xsize(0), Ysize(0), XOsize(0), YOsize(0), XTsize(0), YTsize(0), XTOsize(0), YTOsize(0), Csize(0)
+JPEG2000PictureSubDescriptor::JPEG2000PictureSubDescriptor(const Dictionary* d) : InterchangeObject(d), Rsize(0), Xsize(0), Ysize(0), XOsize(0), YOsize(0), XTsize(0), YTsize(0), XTOsize(0), YTOsize(0), Csize(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_JPEG2000PictureSubDescriptor);
}
-JPEG2000PictureSubDescriptor::JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+JPEG2000PictureSubDescriptor::JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_JPEG2000PictureSubDescriptor);
@@ -2195,6 +2328,13 @@ JPEG2000PictureSubDescriptor::Copy(const JPEG2000PictureSubDescriptor& rhs)
}
//
+InterchangeObject*
+JPEG2000PictureSubDescriptor::Clone() const
+{
+ return new JPEG2000PictureSubDescriptor(*this);
+}
+
+//
void
JPEG2000PictureSubDescriptor::Dump(FILE* stream)
{
@@ -2259,13 +2399,13 @@ JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-CDCIEssenceDescriptor::CDCIEssenceDescriptor(const Dictionary*& d) : GenericPictureEssenceDescriptor(d), m_Dict(d), ComponentDepth(0), HorizontalSubsampling(0)
+CDCIEssenceDescriptor::CDCIEssenceDescriptor(const Dictionary* d) : GenericPictureEssenceDescriptor(d), ComponentDepth(0), HorizontalSubsampling(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_CDCIEssenceDescriptor);
}
-CDCIEssenceDescriptor::CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+CDCIEssenceDescriptor::CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_CDCIEssenceDescriptor);
@@ -2353,6 +2493,13 @@ CDCIEssenceDescriptor::Copy(const CDCIEssenceDescriptor& rhs)
}
//
+InterchangeObject*
+CDCIEssenceDescriptor::Clone() const
+{
+ return new CDCIEssenceDescriptor(*this);
+}
+
+//
void
CDCIEssenceDescriptor::Dump(FILE* stream)
{
@@ -2410,13 +2557,13 @@ CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-MPEG2VideoDescriptor::MPEG2VideoDescriptor(const Dictionary*& d) : CDCIEssenceDescriptor(d), m_Dict(d)
+MPEG2VideoDescriptor::MPEG2VideoDescriptor(const Dictionary* d) : CDCIEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_MPEG2VideoDescriptor);
}
-MPEG2VideoDescriptor::MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs) : CDCIEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+MPEG2VideoDescriptor::MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs) : CDCIEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_MPEG2VideoDescriptor);
@@ -2510,6 +2657,13 @@ MPEG2VideoDescriptor::Copy(const MPEG2VideoDescriptor& rhs)
}
//
+InterchangeObject*
+MPEG2VideoDescriptor::Clone() const
+{
+ return new MPEG2VideoDescriptor(*this);
+}
+
+//
void
MPEG2VideoDescriptor::Dump(FILE* stream)
{
@@ -2571,13 +2725,13 @@ MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-DMSegment::DMSegment(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+DMSegment::DMSegment(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DMSegment);
}
-DMSegment::DMSegment(const DMSegment& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+DMSegment::DMSegment(const DMSegment& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DMSegment);
@@ -2635,6 +2789,13 @@ DMSegment::Copy(const DMSegment& rhs)
}
//
+InterchangeObject*
+DMSegment::Clone() const
+{
+ return new DMSegment(*this);
+}
+
+//
void
DMSegment::Dump(FILE* stream)
{
@@ -2677,13 +2838,13 @@ DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-CryptographicFramework::CryptographicFramework(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+CryptographicFramework::CryptographicFramework(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_CryptographicFramework);
}
-CryptographicFramework::CryptographicFramework(const CryptographicFramework& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+CryptographicFramework::CryptographicFramework(const CryptographicFramework& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_CryptographicFramework);
@@ -2720,6 +2881,13 @@ CryptographicFramework::Copy(const CryptographicFramework& rhs)
}
//
+InterchangeObject*
+CryptographicFramework::Clone() const
+{
+ return new CryptographicFramework(*this);
+}
+
+//
void
CryptographicFramework::Dump(FILE* stream)
{
@@ -2752,13 +2920,13 @@ CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-CryptographicContext::CryptographicContext(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+CryptographicContext::CryptographicContext(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_CryptographicContext);
}
-CryptographicContext::CryptographicContext(const CryptographicContext& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+CryptographicContext::CryptographicContext(const CryptographicContext& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_CryptographicContext);
@@ -2807,6 +2975,13 @@ CryptographicContext::Copy(const CryptographicContext& rhs)
}
//
+InterchangeObject*
+CryptographicContext::Clone() const
+{
+ return new CryptographicContext(*this);
+}
+
+//
void
CryptographicContext::Dump(FILE* stream)
{
@@ -2843,13 +3018,13 @@ CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-DescriptiveFramework::DescriptiveFramework(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+DescriptiveFramework::DescriptiveFramework(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DescriptiveFramework);
}
-DescriptiveFramework::DescriptiveFramework(const DescriptiveFramework& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+DescriptiveFramework::DescriptiveFramework(const DescriptiveFramework& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DescriptiveFramework);
@@ -2889,6 +3064,13 @@ DescriptiveFramework::Copy(const DescriptiveFramework& rhs)
}
//
+InterchangeObject*
+DescriptiveFramework::Clone() const
+{
+ return new DescriptiveFramework(*this);
+}
+
+//
void
DescriptiveFramework::Dump(FILE* stream)
{
@@ -2923,13 +3105,13 @@ DescriptiveFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-DescriptiveObject::DescriptiveObject(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+DescriptiveObject::DescriptiveObject(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DescriptiveObject);
}
-DescriptiveObject::DescriptiveObject(const DescriptiveObject& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+DescriptiveObject::DescriptiveObject(const DescriptiveObject& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DescriptiveObject);
@@ -2969,6 +3151,13 @@ DescriptiveObject::Copy(const DescriptiveObject& rhs)
}
//
+InterchangeObject*
+DescriptiveObject::Clone() const
+{
+ return new DescriptiveObject(*this);
+}
+
+//
void
DescriptiveObject::Dump(FILE* stream)
{
@@ -3003,13 +3192,13 @@ DescriptiveObject::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d)
+GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const Dictionary* d) : FileDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericDataEssenceDescriptor);
}
-GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const GenericDataEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const GenericDataEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericDataEssenceDescriptor);
@@ -3046,6 +3235,13 @@ GenericDataEssenceDescriptor::Copy(const GenericDataEssenceDescriptor& rhs)
}
//
+InterchangeObject*
+GenericDataEssenceDescriptor::Clone() const
+{
+ return new GenericDataEssenceDescriptor(*this);
+}
+
+//
void
GenericDataEssenceDescriptor::Dump(FILE* stream)
{
@@ -3078,13 +3274,13 @@ GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-TimedTextDescriptor::TimedTextDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
+TimedTextDescriptor::TimedTextDescriptor(const Dictionary* d) : GenericDataEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TimedTextDescriptor);
}
-TimedTextDescriptor::TimedTextDescriptor(const TimedTextDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+TimedTextDescriptor::TimedTextDescriptor(const TimedTextDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TimedTextDescriptor);
@@ -3151,6 +3347,13 @@ TimedTextDescriptor::Copy(const TimedTextDescriptor& rhs)
}
//
+InterchangeObject*
+TimedTextDescriptor::Clone() const
+{
+ return new TimedTextDescriptor(*this);
+}
+
+//
void
TimedTextDescriptor::Dump(FILE* stream)
{
@@ -3197,13 +3400,13 @@ TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), EssenceStreamID(0)
+TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const Dictionary* d) : InterchangeObject(d), EssenceStreamID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TimedTextResourceSubDescriptor);
}
-TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const TimedTextResourceSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const TimedTextResourceSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TimedTextResourceSubDescriptor);
@@ -3246,6 +3449,13 @@ TimedTextResourceSubDescriptor::Copy(const TimedTextResourceSubDescriptor& rhs)
}
//
+InterchangeObject*
+TimedTextResourceSubDescriptor::Clone() const
+{
+ return new TimedTextResourceSubDescriptor(*this);
+}
+
+//
void
TimedTextResourceSubDescriptor::Dump(FILE* stream)
{
@@ -3280,13 +3490,13 @@ TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_StereoscopicPictureSubDescriptor);
}
-StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const StereoscopicPictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const StereoscopicPictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_StereoscopicPictureSubDescriptor);
@@ -3320,6 +3530,13 @@ StereoscopicPictureSubDescriptor::Copy(const StereoscopicPictureSubDescriptor& r
}
//
+InterchangeObject*
+StereoscopicPictureSubDescriptor::Clone() const
+{
+ return new StereoscopicPictureSubDescriptor(*this);
+}
+
+//
void
StereoscopicPictureSubDescriptor::Dump(FILE* stream)
{
@@ -3351,13 +3568,13 @@ StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-ContainerConstraintsSubDescriptor::ContainerConstraintsSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+ContainerConstraintsSubDescriptor::ContainerConstraintsSubDescriptor(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ContainerConstraintsSubDescriptor);
}
-ContainerConstraintsSubDescriptor::ContainerConstraintsSubDescriptor(const ContainerConstraintsSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+ContainerConstraintsSubDescriptor::ContainerConstraintsSubDescriptor(const ContainerConstraintsSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ContainerConstraintsSubDescriptor);
@@ -3391,6 +3608,13 @@ ContainerConstraintsSubDescriptor::Copy(const ContainerConstraintsSubDescriptor&
}
//
+InterchangeObject*
+ContainerConstraintsSubDescriptor::Clone() const
+{
+ return new ContainerConstraintsSubDescriptor(*this);
+}
+
+//
void
ContainerConstraintsSubDescriptor::Dump(FILE* stream)
{
@@ -3422,13 +3646,13 @@ ContainerConstraintsSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-NetworkLocator::NetworkLocator(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+NetworkLocator::NetworkLocator(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_NetworkLocator);
}
-NetworkLocator::NetworkLocator(const NetworkLocator& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+NetworkLocator::NetworkLocator(const NetworkLocator& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_NetworkLocator);
@@ -3465,6 +3689,13 @@ NetworkLocator::Copy(const NetworkLocator& rhs)
}
//
+InterchangeObject*
+NetworkLocator::Clone() const
+{
+ return new NetworkLocator(*this);
+}
+
+//
void
NetworkLocator::Dump(FILE* stream)
{
@@ -3497,13 +3728,13 @@ NetworkLocator::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-MCALabelSubDescriptor::MCALabelSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+MCALabelSubDescriptor::MCALabelSubDescriptor(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_MCALabelSubDescriptor);
}
-MCALabelSubDescriptor::MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+MCALabelSubDescriptor::MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_MCALabelSubDescriptor);
@@ -3612,6 +3843,13 @@ MCALabelSubDescriptor::Copy(const MCALabelSubDescriptor& rhs)
}
//
+InterchangeObject*
+MCALabelSubDescriptor::Clone() const
+{
+ return new MCALabelSubDescriptor(*this);
+}
+
+//
void
MCALabelSubDescriptor::Dump(FILE* stream)
{
@@ -3679,13 +3917,13 @@ MCALabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
+AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const Dictionary* d) : MCALabelSubDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_AudioChannelLabelSubDescriptor);
}
-AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const AudioChannelLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const AudioChannelLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_AudioChannelLabelSubDescriptor);
@@ -3725,6 +3963,13 @@ AudioChannelLabelSubDescriptor::Copy(const AudioChannelLabelSubDescriptor& rhs)
}
//
+InterchangeObject*
+AudioChannelLabelSubDescriptor::Clone() const
+{
+ return new AudioChannelLabelSubDescriptor(*this);
+}
+
+//
void
AudioChannelLabelSubDescriptor::Dump(FILE* stream)
{
@@ -3759,13 +4004,13 @@ AudioChannelLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
+SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const Dictionary* d) : MCALabelSubDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor);
}
-SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const SoundfieldGroupLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const SoundfieldGroupLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor);
@@ -3804,6 +4049,13 @@ SoundfieldGroupLabelSubDescriptor::Copy(const SoundfieldGroupLabelSubDescriptor&
}
//
+InterchangeObject*
+SoundfieldGroupLabelSubDescriptor::Clone() const
+{
+ return new SoundfieldGroupLabelSubDescriptor(*this);
+}
+
+//
void
SoundfieldGroupLabelSubDescriptor::Dump(FILE* stream)
{
@@ -3839,13 +4091,13 @@ SoundfieldGroupLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
+GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary* d) : MCALabelSubDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor);
}
-GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor);
@@ -3879,6 +4131,13 @@ GroupOfSoundfieldGroupsLabelSubDescriptor::Copy(const GroupOfSoundfieldGroupsLab
}
//
+InterchangeObject*
+GroupOfSoundfieldGroupsLabelSubDescriptor::Clone() const
+{
+ return new GroupOfSoundfieldGroupsLabelSubDescriptor(*this);
+}
+
+//
void
GroupOfSoundfieldGroupsLabelSubDescriptor::Dump(FILE* stream)
{
@@ -3910,13 +4169,13 @@ GroupOfSoundfieldGroupsLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buf
//
-DCDataDescriptor::DCDataDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
+DCDataDescriptor::DCDataDescriptor(const Dictionary* d) : GenericDataEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DCDataDescriptor);
}
-DCDataDescriptor::DCDataDescriptor(const DCDataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+DCDataDescriptor::DCDataDescriptor(const DCDataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DCDataDescriptor);
@@ -3950,6 +4209,13 @@ DCDataDescriptor::Copy(const DCDataDescriptor& rhs)
}
//
+InterchangeObject*
+DCDataDescriptor::Clone() const
+{
+ return new DCDataDescriptor(*this);
+}
+
+//
void
DCDataDescriptor::Dump(FILE* stream)
{
@@ -3981,13 +4247,13 @@ DCDataDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-PrivateDCDataDescriptor::PrivateDCDataDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
+PrivateDCDataDescriptor::PrivateDCDataDescriptor(const Dictionary* d) : GenericDataEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_PrivateDCDataDescriptor);
}
-PrivateDCDataDescriptor::PrivateDCDataDescriptor(const PrivateDCDataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+PrivateDCDataDescriptor::PrivateDCDataDescriptor(const PrivateDCDataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_PrivateDCDataDescriptor);
@@ -4021,6 +4287,13 @@ PrivateDCDataDescriptor::Copy(const PrivateDCDataDescriptor& rhs)
}
//
+InterchangeObject*
+PrivateDCDataDescriptor::Clone() const
+{
+ return new PrivateDCDataDescriptor(*this);
+}
+
+//
void
PrivateDCDataDescriptor::Dump(FILE* stream)
{
@@ -4052,13 +4325,13 @@ PrivateDCDataDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-DolbyAtmosSubDescriptor::DolbyAtmosSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), FirstFrame(0), MaxChannelCount(0), MaxObjectCount(0), AtmosVersion(0)
+DolbyAtmosSubDescriptor::DolbyAtmosSubDescriptor(const Dictionary* d) : InterchangeObject(d), FirstFrame(0), MaxChannelCount(0), MaxObjectCount(0), AtmosVersion(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DolbyAtmosSubDescriptor);
}
-DolbyAtmosSubDescriptor::DolbyAtmosSubDescriptor(const DolbyAtmosSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+DolbyAtmosSubDescriptor::DolbyAtmosSubDescriptor(const DolbyAtmosSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_DolbyAtmosSubDescriptor);
@@ -4107,6 +4380,13 @@ DolbyAtmosSubDescriptor::Copy(const DolbyAtmosSubDescriptor& rhs)
}
//
+InterchangeObject*
+DolbyAtmosSubDescriptor::Clone() const
+{
+ return new DolbyAtmosSubDescriptor(*this);
+}
+
+//
void
DolbyAtmosSubDescriptor::Dump(FILE* stream)
{
@@ -4143,13 +4423,13 @@ DolbyAtmosSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-ACESPictureSubDescriptor::ACESPictureSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
+ACESPictureSubDescriptor::ACESPictureSubDescriptor(const Dictionary* d) : InterchangeObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ACESPictureSubDescriptor);
}
-ACESPictureSubDescriptor::ACESPictureSubDescriptor(const ACESPictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+ACESPictureSubDescriptor::ACESPictureSubDescriptor(const ACESPictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ACESPictureSubDescriptor);
@@ -4213,6 +4493,13 @@ ACESPictureSubDescriptor::Copy(const ACESPictureSubDescriptor& rhs)
}
//
+InterchangeObject*
+ACESPictureSubDescriptor::Clone() const
+{
+ return new ACESPictureSubDescriptor(*this);
+}
+
+//
void
ACESPictureSubDescriptor::Dump(FILE* stream)
{
@@ -4259,13 +4546,13 @@ ACESPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-TargetFrameSubDescriptor::TargetFrameSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), TargetFrameIndex(0), TargetFrameComponentMaxRef(0), TargetFrameComponentMinRef(0), TargetFrameEssenceStreamID(0)
+TargetFrameSubDescriptor::TargetFrameSubDescriptor(const Dictionary* d) : InterchangeObject(d), TargetFrameIndex(0), TargetFrameComponentMaxRef(0), TargetFrameComponentMinRef(0), TargetFrameEssenceStreamID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TargetFrameSubDescriptor);
}
-TargetFrameSubDescriptor::TargetFrameSubDescriptor(const TargetFrameSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+TargetFrameSubDescriptor::TargetFrameSubDescriptor(const TargetFrameSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TargetFrameSubDescriptor);
@@ -4335,6 +4622,13 @@ TargetFrameSubDescriptor::Copy(const TargetFrameSubDescriptor& rhs)
}
//
+InterchangeObject*
+TargetFrameSubDescriptor::Clone() const
+{
+ return new TargetFrameSubDescriptor(*this);
+}
+
+//
void
TargetFrameSubDescriptor::Dump(FILE* stream)
{
@@ -4380,13 +4674,13 @@ TargetFrameSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-TextBasedDMFramework::TextBasedDMFramework(const Dictionary*& d) : DescriptiveFramework(d), m_Dict(d)
+TextBasedDMFramework::TextBasedDMFramework(const Dictionary* d) : DescriptiveFramework(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TextBasedDMFramework);
}
-TextBasedDMFramework::TextBasedDMFramework(const TextBasedDMFramework& rhs) : DescriptiveFramework(rhs.m_Dict), m_Dict(rhs.m_Dict)
+TextBasedDMFramework::TextBasedDMFramework(const TextBasedDMFramework& rhs) : DescriptiveFramework(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TextBasedDMFramework);
@@ -4426,6 +4720,13 @@ TextBasedDMFramework::Copy(const TextBasedDMFramework& rhs)
}
//
+InterchangeObject*
+TextBasedDMFramework::Clone() const
+{
+ return new TextBasedDMFramework(*this);
+}
+
+//
void
TextBasedDMFramework::Dump(FILE* stream)
{
@@ -4460,13 +4761,13 @@ TextBasedDMFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-TextBasedObject::TextBasedObject(const Dictionary*& d) : DescriptiveObject(d), m_Dict(d)
+TextBasedObject::TextBasedObject(const Dictionary* d) : DescriptiveObject(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TextBasedObject);
}
-TextBasedObject::TextBasedObject(const TextBasedObject& rhs) : DescriptiveObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+TextBasedObject::TextBasedObject(const TextBasedObject& rhs) : DescriptiveObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_TextBasedObject);
@@ -4515,6 +4816,13 @@ TextBasedObject::Copy(const TextBasedObject& rhs)
}
//
+InterchangeObject*
+TextBasedObject::Clone() const
+{
+ return new TextBasedObject(*this);
+}
+
+//
void
TextBasedObject::Dump(FILE* stream)
{
@@ -4552,13 +4860,13 @@ TextBasedObject::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-GenericStreamTextBasedSet::GenericStreamTextBasedSet(const Dictionary*& d) : TextBasedObject(d), m_Dict(d), GenericStreamSID(0)
+GenericStreamTextBasedSet::GenericStreamTextBasedSet(const Dictionary* d) : TextBasedObject(d), GenericStreamSID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericStreamTextBasedSet);
}
-GenericStreamTextBasedSet::GenericStreamTextBasedSet(const GenericStreamTextBasedSet& rhs) : TextBasedObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+GenericStreamTextBasedSet::GenericStreamTextBasedSet(const GenericStreamTextBasedSet& rhs) : TextBasedObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_GenericStreamTextBasedSet);
@@ -4595,6 +4903,13 @@ GenericStreamTextBasedSet::Copy(const GenericStreamTextBasedSet& rhs)
}
//
+InterchangeObject*
+GenericStreamTextBasedSet::Clone() const
+{
+ return new GenericStreamTextBasedSet(*this);
+}
+
+//
void
GenericStreamTextBasedSet::Dump(FILE* stream)
{
@@ -4627,13 +4942,13 @@ GenericStreamTextBasedSet::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-ISXDDataEssenceDescriptor::ISXDDataEssenceDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
+ISXDDataEssenceDescriptor::ISXDDataEssenceDescriptor(const Dictionary* d) : GenericDataEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ISXDDataEssenceDescriptor);
}
-ISXDDataEssenceDescriptor::ISXDDataEssenceDescriptor(const ISXDDataEssenceDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+ISXDDataEssenceDescriptor::ISXDDataEssenceDescriptor(const ISXDDataEssenceDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_ISXDDataEssenceDescriptor);
@@ -4670,6 +4985,13 @@ ISXDDataEssenceDescriptor::Copy(const ISXDDataEssenceDescriptor& rhs)
}
//
+InterchangeObject*
+ISXDDataEssenceDescriptor::Clone() const
+{
+ return new ISXDDataEssenceDescriptor(*this);
+}
+
+//
void
ISXDDataEssenceDescriptor::Dump(FILE* stream)
{
@@ -4702,13 +5024,13 @@ ISXDDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-PHDRMetadataTrackSubDescriptor::PHDRMetadataTrackSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), SourceTrackID(0), SimplePayloadSID(0)
+PHDRMetadataTrackSubDescriptor::PHDRMetadataTrackSubDescriptor(const Dictionary* d) : InterchangeObject(d), SourceTrackID(0), SimplePayloadSID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_PHDRMetadataTrackSubDescriptor);
}
-PHDRMetadataTrackSubDescriptor::PHDRMetadataTrackSubDescriptor(const PHDRMetadataTrackSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
+PHDRMetadataTrackSubDescriptor::PHDRMetadataTrackSubDescriptor(const PHDRMetadataTrackSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_PHDRMetadataTrackSubDescriptor);
@@ -4751,6 +5073,13 @@ PHDRMetadataTrackSubDescriptor::Copy(const PHDRMetadataTrackSubDescriptor& rhs)
}
//
+InterchangeObject*
+PHDRMetadataTrackSubDescriptor::Clone() const
+{
+ return new PHDRMetadataTrackSubDescriptor(*this);
+}
+
+//
void
PHDRMetadataTrackSubDescriptor::Dump(FILE* stream)
{
@@ -4785,13 +5114,13 @@ PHDRMetadataTrackSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-PIMFDynamicMetadataDescriptor::PIMFDynamicMetadataDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d), GlobalPayloadSID(0)
+PIMFDynamicMetadataDescriptor::PIMFDynamicMetadataDescriptor(const Dictionary* d) : GenericDataEssenceDescriptor(d), GlobalPayloadSID(0)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_PIMFDynamicMetadataDescriptor);
}
-PIMFDynamicMetadataDescriptor::PIMFDynamicMetadataDescriptor(const PIMFDynamicMetadataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+PIMFDynamicMetadataDescriptor::PIMFDynamicMetadataDescriptor(const PIMFDynamicMetadataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_PIMFDynamicMetadataDescriptor);
@@ -4828,6 +5157,13 @@ PIMFDynamicMetadataDescriptor::Copy(const PIMFDynamicMetadataDescriptor& rhs)
}
//
+InterchangeObject*
+PIMFDynamicMetadataDescriptor::Clone() const
+{
+ return new PIMFDynamicMetadataDescriptor(*this);
+}
+
+//
void
PIMFDynamicMetadataDescriptor::Dump(FILE* stream)
{
@@ -4860,13 +5196,13 @@ PIMFDynamicMetadataDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-IABEssenceDescriptor::IABEssenceDescriptor(const Dictionary*& d) : GenericSoundEssenceDescriptor(d), m_Dict(d)
+IABEssenceDescriptor::IABEssenceDescriptor(const Dictionary* d) : GenericSoundEssenceDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_IABEssenceDescriptor);
}
-IABEssenceDescriptor::IABEssenceDescriptor(const IABEssenceDescriptor& rhs) : GenericSoundEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+IABEssenceDescriptor::IABEssenceDescriptor(const IABEssenceDescriptor& rhs) : GenericSoundEssenceDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_IABEssenceDescriptor);
@@ -4900,6 +5236,13 @@ IABEssenceDescriptor::Copy(const IABEssenceDescriptor& rhs)
}
//
+InterchangeObject*
+IABEssenceDescriptor::Clone() const
+{
+ return new IABEssenceDescriptor(*this);
+}
+
+//
void
IABEssenceDescriptor::Dump(FILE* stream)
{
@@ -4931,13 +5274,13 @@ IABEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
//
-IABSoundfieldLabelSubDescriptor::IABSoundfieldLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
+IABSoundfieldLabelSubDescriptor::IABSoundfieldLabelSubDescriptor(const Dictionary* d) : MCALabelSubDescriptor(d)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_IABSoundfieldLabelSubDescriptor);
}
-IABSoundfieldLabelSubDescriptor::IABSoundfieldLabelSubDescriptor(const IABSoundfieldLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
+IABSoundfieldLabelSubDescriptor::IABSoundfieldLabelSubDescriptor(const IABSoundfieldLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict)
{
assert(m_Dict);
m_UL = m_Dict->ul(MDD_IABSoundfieldLabelSubDescriptor);
@@ -4971,6 +5314,13 @@ IABSoundfieldLabelSubDescriptor::Copy(const IABSoundfieldLabelSubDescriptor& rhs
}
//
+InterchangeObject*
+IABSoundfieldLabelSubDescriptor::Clone() const
+{
+ return new IABSoundfieldLabelSubDescriptor(*this);
+}
+
+//
void
IABSoundfieldLabelSubDescriptor::Dump(FILE* stream)
{
diff --git a/src/Metadata.h b/src/Metadata.h
index ab11034..e559909 100755..100644
--- a/src/Metadata.h
+++ b/src/Metadata.h
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2017, John Hurst
+Copyright (c) 2005-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -38,7 +38,7 @@ namespace ASDCP
{
namespace MXF
{
- void Metadata_InitTypes(const Dictionary*& Dict);
+ void Metadata_InitTypes(const Dictionary* Dict);
//
@@ -48,7 +48,6 @@ namespace ASDCP
Identification();
public:
- const Dictionary*& m_Dict;
UUID ThisGenerationUID;
UTF16String CompanyName;
UTF16String ProductName;
@@ -59,12 +58,13 @@ namespace ASDCP
VersionType ToolkitVersion;
optional_property<UTF16String > Platform;
- Identification(const Dictionary*& d);
+ Identification(const Dictionary* d);
Identification(const Identification& rhs);
virtual ~Identification() {}
const Identification& operator=(const Identification& rhs) { Copy(rhs); return *this; }
virtual void Copy(const Identification& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "Identification"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -79,16 +79,16 @@ namespace ASDCP
ContentStorage();
public:
- const Dictionary*& m_Dict;
Batch<UUID> Packages;
Batch<UUID> EssenceContainerData;
- ContentStorage(const Dictionary*& d);
+ ContentStorage(const Dictionary* d);
ContentStorage(const ContentStorage& rhs);
virtual ~ContentStorage() {}
const ContentStorage& operator=(const ContentStorage& rhs) { Copy(rhs); return *this; }
virtual void Copy(const ContentStorage& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "ContentStorage"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -103,17 +103,17 @@ namespace ASDCP
EssenceContainerData();
public:
- const Dictionary*& m_Dict;
UMID LinkedPackageUID;
optional_property<ui32_t > IndexSID;
ui32_t BodySID;
- EssenceContainerData(const Dictionary*& d);
+ EssenceContainerData(const Dictionary* d);
EssenceContainerData(const EssenceContainerData& rhs);
virtual ~EssenceContainerData() {}
const EssenceContainerData& operator=(const EssenceContainerData& rhs) { Copy(rhs); return *this; }
virtual void Copy(const EssenceContainerData& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "EssenceContainerData"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -128,19 +128,19 @@ namespace ASDCP
GenericPackage();
public:
- const Dictionary*& m_Dict;
UMID PackageUID;
optional_property<UTF16String > Name;
Kumu::Timestamp PackageCreationDate;
Kumu::Timestamp PackageModifiedDate;
Array<UUID> Tracks;
- GenericPackage(const Dictionary*& d);
+ GenericPackage(const Dictionary* d);
GenericPackage(const GenericPackage& rhs);
virtual ~GenericPackage() {}
const GenericPackage& operator=(const GenericPackage& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericPackage& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericPackage"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -153,15 +153,15 @@ namespace ASDCP
MaterialPackage();
public:
- const Dictionary*& m_Dict;
optional_property<UUID > PackageMarker;
- MaterialPackage(const Dictionary*& d);
+ MaterialPackage(const Dictionary* d);
MaterialPackage(const MaterialPackage& rhs);
virtual ~MaterialPackage() {}
const MaterialPackage& operator=(const MaterialPackage& rhs) { Copy(rhs); return *this; }
virtual void Copy(const MaterialPackage& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "MaterialPackage"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -176,15 +176,15 @@ namespace ASDCP
SourcePackage();
public:
- const Dictionary*& m_Dict;
UUID Descriptor;
- SourcePackage(const Dictionary*& d);
+ SourcePackage(const Dictionary* d);
SourcePackage(const SourcePackage& rhs);
virtual ~SourcePackage() {}
const SourcePackage& operator=(const SourcePackage& rhs) { Copy(rhs); return *this; }
virtual void Copy(const SourcePackage& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "SourcePackage"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -199,18 +199,18 @@ namespace ASDCP
GenericTrack();
public:
- const Dictionary*& m_Dict;
ui32_t TrackID;
ui32_t TrackNumber;
optional_property<UTF16String > TrackName;
optional_property<UUID > Sequence;
- GenericTrack(const Dictionary*& d);
+ GenericTrack(const Dictionary* d);
GenericTrack(const GenericTrack& rhs);
virtual ~GenericTrack() {}
const GenericTrack& operator=(const GenericTrack& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericTrack& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericTrack"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -223,14 +223,14 @@ namespace ASDCP
StaticTrack();
public:
- const Dictionary*& m_Dict;
- StaticTrack(const Dictionary*& d);
+ StaticTrack(const Dictionary* d);
StaticTrack(const StaticTrack& rhs);
virtual ~StaticTrack() {}
const StaticTrack& operator=(const StaticTrack& rhs) { Copy(rhs); return *this; }
virtual void Copy(const StaticTrack& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "StaticTrack"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -245,16 +245,16 @@ namespace ASDCP
Track();
public:
- const Dictionary*& m_Dict;
Rational EditRate;
ui64_t Origin;
- Track(const Dictionary*& d);
+ Track(const Dictionary* d);
Track(const Track& rhs);
virtual ~Track() {}
const Track& operator=(const Track& rhs) { Copy(rhs); return *this; }
virtual void Copy(const Track& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "Track"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -269,16 +269,16 @@ namespace ASDCP
StructuralComponent();
public:
- const Dictionary*& m_Dict;
UL DataDefinition;
optional_property<ui64_t > Duration;
- StructuralComponent(const Dictionary*& d);
+ StructuralComponent(const Dictionary* d);
StructuralComponent(const StructuralComponent& rhs);
virtual ~StructuralComponent() {}
const StructuralComponent& operator=(const StructuralComponent& rhs) { Copy(rhs); return *this; }
virtual void Copy(const StructuralComponent& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "StructuralComponent"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -291,15 +291,15 @@ namespace ASDCP
Sequence();
public:
- const Dictionary*& m_Dict;
Array<UUID> StructuralComponents;
- Sequence(const Dictionary*& d);
+ Sequence(const Dictionary* d);
Sequence(const Sequence& rhs);
virtual ~Sequence() {}
const Sequence& operator=(const Sequence& rhs) { Copy(rhs); return *this; }
virtual void Copy(const Sequence& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "Sequence"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -314,17 +314,17 @@ namespace ASDCP
SourceClip();
public:
- const Dictionary*& m_Dict;
ui64_t StartPosition;
UMID SourcePackageID;
ui32_t SourceTrackID;
- SourceClip(const Dictionary*& d);
+ SourceClip(const Dictionary* d);
SourceClip(const SourceClip& rhs);
virtual ~SourceClip() {}
const SourceClip& operator=(const SourceClip& rhs) { Copy(rhs); return *this; }
virtual void Copy(const SourceClip& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "SourceClip"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -339,17 +339,17 @@ namespace ASDCP
TimecodeComponent();
public:
- const Dictionary*& m_Dict;
ui16_t RoundedTimecodeBase;
ui64_t StartTimecode;
ui8_t DropFrame;
- TimecodeComponent(const Dictionary*& d);
+ TimecodeComponent(const Dictionary* d);
TimecodeComponent(const TimecodeComponent& rhs);
virtual ~TimecodeComponent() {}
const TimecodeComponent& operator=(const TimecodeComponent& rhs) { Copy(rhs); return *this; }
virtual void Copy(const TimecodeComponent& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "TimecodeComponent"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -364,16 +364,16 @@ namespace ASDCP
GenericDescriptor();
public:
- const Dictionary*& m_Dict;
Array<UUID> Locators;
Array<UUID> SubDescriptors;
- GenericDescriptor(const Dictionary*& d);
+ GenericDescriptor(const Dictionary* d);
GenericDescriptor(const GenericDescriptor& rhs);
virtual ~GenericDescriptor() {}
const GenericDescriptor& operator=(const GenericDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -386,19 +386,19 @@ namespace ASDCP
FileDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<ui32_t > LinkedTrackID;
Rational SampleRate;
optional_property<ui64_t > ContainerDuration;
UL EssenceContainer;
optional_property<UL > Codec;
- FileDescriptor(const Dictionary*& d);
+ FileDescriptor(const Dictionary* d);
FileDescriptor(const FileDescriptor& rhs);
virtual ~FileDescriptor() {}
const FileDescriptor& operator=(const FileDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const FileDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "FileDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -413,7 +413,6 @@ namespace ASDCP
GenericSoundEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
Rational AudioSamplingRate;
ui8_t Locked;
optional_property<ui8_t > AudioRefLevel;
@@ -425,12 +424,13 @@ namespace ASDCP
optional_property<ui8_t > ReferenceAudioAlignmentLevel;
optional_property<Rational > ReferenceImageEditRate;
- GenericSoundEssenceDescriptor(const Dictionary*& d);
+ GenericSoundEssenceDescriptor(const Dictionary* d);
GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs);
virtual ~GenericSoundEssenceDescriptor() {}
const GenericSoundEssenceDescriptor& operator=(const GenericSoundEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericSoundEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericSoundEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -445,18 +445,18 @@ namespace ASDCP
WaveAudioDescriptor();
public:
- const Dictionary*& m_Dict;
ui16_t BlockAlign;
optional_property<ui8_t > SequenceOffset;
ui32_t AvgBps;
optional_property<UL > ChannelAssignment;
- WaveAudioDescriptor(const Dictionary*& d);
+ WaveAudioDescriptor(const Dictionary* d);
WaveAudioDescriptor(const WaveAudioDescriptor& rhs);
virtual ~WaveAudioDescriptor() {}
const WaveAudioDescriptor& operator=(const WaveAudioDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const WaveAudioDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "WaveAudioDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -471,7 +471,6 @@ namespace ASDCP
GenericPictureEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<ui8_t > SignalStandard;
ui8_t FrameLayout;
ui32_t StoredWidth;
@@ -508,12 +507,13 @@ namespace ASDCP
optional_property<ui32_t > MasteringDisplayMaximumLuminance;
optional_property<ui32_t > MasteringDisplayMinimumLuminance;
- GenericPictureEssenceDescriptor(const Dictionary*& d);
+ GenericPictureEssenceDescriptor(const Dictionary* d);
GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs);
virtual ~GenericPictureEssenceDescriptor() {}
const GenericPictureEssenceDescriptor& operator=(const GenericPictureEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericPictureEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericPictureEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -528,7 +528,6 @@ namespace ASDCP
RGBAEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<ui32_t > ComponentMaxRef;
optional_property<ui32_t > ComponentMinRef;
optional_property<ui32_t > AlphaMinRef;
@@ -536,12 +535,13 @@ namespace ASDCP
optional_property<ui8_t > ScanningDirection;
RGBALayout PixelLayout;
- RGBAEssenceDescriptor(const Dictionary*& d);
+ RGBAEssenceDescriptor(const Dictionary* d);
RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs);
virtual ~RGBAEssenceDescriptor() {}
const RGBAEssenceDescriptor& operator=(const RGBAEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const RGBAEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "RGBAEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -556,7 +556,6 @@ namespace ASDCP
JPEG2000PictureSubDescriptor();
public:
- const Dictionary*& m_Dict;
ui16_t Rsize;
ui32_t Xsize;
ui32_t Ysize;
@@ -575,12 +574,13 @@ namespace ASDCP
optional_property<Array<Kumu::ArchivableUi16> > J2KProfile;
optional_property<Array<Kumu::ArchivableUi16> > J2KCorrespondingProfile;
- JPEG2000PictureSubDescriptor(const Dictionary*& d);
+ JPEG2000PictureSubDescriptor(const Dictionary* d);
JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs);
virtual ~JPEG2000PictureSubDescriptor() {}
const JPEG2000PictureSubDescriptor& operator=(const JPEG2000PictureSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const JPEG2000PictureSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "JPEG2000PictureSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -595,7 +595,6 @@ namespace ASDCP
CDCIEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
ui32_t ComponentDepth;
ui32_t HorizontalSubsampling;
optional_property<ui32_t > VerticalSubsampling;
@@ -607,12 +606,13 @@ namespace ASDCP
optional_property<ui32_t > WhiteReflevel;
optional_property<ui32_t > ColorRange;
- CDCIEssenceDescriptor(const Dictionary*& d);
+ CDCIEssenceDescriptor(const Dictionary* d);
CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs);
virtual ~CDCIEssenceDescriptor() {}
const CDCIEssenceDescriptor& operator=(const CDCIEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const CDCIEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "CDCIEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -627,7 +627,6 @@ namespace ASDCP
MPEG2VideoDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<ui8_t > SingleSequence;
optional_property<ui8_t > ConstantBFrames;
optional_property<ui8_t > CodedContentType;
@@ -639,12 +638,13 @@ namespace ASDCP
optional_property<ui32_t > BitRate;
optional_property<ui8_t > ProfileAndLevel;
- MPEG2VideoDescriptor(const Dictionary*& d);
+ MPEG2VideoDescriptor(const Dictionary* d);
MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs);
virtual ~MPEG2VideoDescriptor() {}
const MPEG2VideoDescriptor& operator=(const MPEG2VideoDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const MPEG2VideoDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "MPEG2VideoDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -659,19 +659,19 @@ namespace ASDCP
DMSegment();
public:
- const Dictionary*& m_Dict;
UL DataDefinition;
optional_property<ui64_t > Duration;
optional_property<ui64_t > EventStartPosition;
optional_property<UTF16String > EventComment;
UUID DMFramework;
- DMSegment(const Dictionary*& d);
+ DMSegment(const Dictionary* d);
DMSegment(const DMSegment& rhs);
virtual ~DMSegment() {}
const DMSegment& operator=(const DMSegment& rhs) { Copy(rhs); return *this; }
virtual void Copy(const DMSegment& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "DMSegment"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -686,15 +686,15 @@ namespace ASDCP
CryptographicFramework();
public:
- const Dictionary*& m_Dict;
UUID ContextSR;
- CryptographicFramework(const Dictionary*& d);
+ CryptographicFramework(const Dictionary* d);
CryptographicFramework(const CryptographicFramework& rhs);
virtual ~CryptographicFramework() {}
const CryptographicFramework& operator=(const CryptographicFramework& rhs) { Copy(rhs); return *this; }
virtual void Copy(const CryptographicFramework& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "CryptographicFramework"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -709,19 +709,19 @@ namespace ASDCP
CryptographicContext();
public:
- const Dictionary*& m_Dict;
UUID ContextID;
UL SourceEssenceContainer;
UL CipherAlgorithm;
UL MICAlgorithm;
UUID CryptographicKeyID;
- CryptographicContext(const Dictionary*& d);
+ CryptographicContext(const Dictionary* d);
CryptographicContext(const CryptographicContext& rhs);
virtual ~CryptographicContext() {}
const CryptographicContext& operator=(const CryptographicContext& rhs) { Copy(rhs); return *this; }
virtual void Copy(const CryptographicContext& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "CryptographicContext"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -736,15 +736,15 @@ namespace ASDCP
DescriptiveFramework();
public:
- const Dictionary*& m_Dict;
optional_property<UUID > LinkedDescriptiveFrameworkPlugInId;
- DescriptiveFramework(const Dictionary*& d);
+ DescriptiveFramework(const Dictionary* d);
DescriptiveFramework(const DescriptiveFramework& rhs);
virtual ~DescriptiveFramework() {}
const DescriptiveFramework& operator=(const DescriptiveFramework& rhs) { Copy(rhs); return *this; }
virtual void Copy(const DescriptiveFramework& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "DescriptiveFramework"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -759,15 +759,15 @@ namespace ASDCP
DescriptiveObject();
public:
- const Dictionary*& m_Dict;
optional_property<UUID > LinkedDescriptiveObjectPlugInId;
- DescriptiveObject(const Dictionary*& d);
+ DescriptiveObject(const Dictionary* d);
DescriptiveObject(const DescriptiveObject& rhs);
virtual ~DescriptiveObject() {}
const DescriptiveObject& operator=(const DescriptiveObject& rhs) { Copy(rhs); return *this; }
virtual void Copy(const DescriptiveObject& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "DescriptiveObject"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -782,15 +782,15 @@ namespace ASDCP
GenericDataEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
UL DataEssenceCoding;
- GenericDataEssenceDescriptor(const Dictionary*& d);
+ GenericDataEssenceDescriptor(const Dictionary* d);
GenericDataEssenceDescriptor(const GenericDataEssenceDescriptor& rhs);
virtual ~GenericDataEssenceDescriptor() {}
const GenericDataEssenceDescriptor& operator=(const GenericDataEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericDataEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericDataEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -805,7 +805,6 @@ namespace ASDCP
TimedTextDescriptor();
public:
- const Dictionary*& m_Dict;
UUID ResourceID;
UTF16String UCSEncoding;
UTF16String NamespaceURI;
@@ -814,12 +813,13 @@ namespace ASDCP
optional_property<UTF16String > IntrinsicPictureResolution;
optional_property<ui8_t > ZPositionInUse;
- TimedTextDescriptor(const Dictionary*& d);
+ TimedTextDescriptor(const Dictionary* d);
TimedTextDescriptor(const TimedTextDescriptor& rhs);
virtual ~TimedTextDescriptor() {}
const TimedTextDescriptor& operator=(const TimedTextDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const TimedTextDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "TimedTextDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -834,17 +834,17 @@ namespace ASDCP
TimedTextResourceSubDescriptor();
public:
- const Dictionary*& m_Dict;
UUID AncillaryResourceID;
UTF16String MIMEMediaType;
ui32_t EssenceStreamID;
- TimedTextResourceSubDescriptor(const Dictionary*& d);
+ TimedTextResourceSubDescriptor(const Dictionary* d);
TimedTextResourceSubDescriptor(const TimedTextResourceSubDescriptor& rhs);
virtual ~TimedTextResourceSubDescriptor() {}
const TimedTextResourceSubDescriptor& operator=(const TimedTextResourceSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const TimedTextResourceSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "TimedTextResourceSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -859,14 +859,14 @@ namespace ASDCP
StereoscopicPictureSubDescriptor();
public:
- const Dictionary*& m_Dict;
- StereoscopicPictureSubDescriptor(const Dictionary*& d);
+ StereoscopicPictureSubDescriptor(const Dictionary* d);
StereoscopicPictureSubDescriptor(const StereoscopicPictureSubDescriptor& rhs);
virtual ~StereoscopicPictureSubDescriptor() {}
const StereoscopicPictureSubDescriptor& operator=(const StereoscopicPictureSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const StereoscopicPictureSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "StereoscopicPictureSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -881,14 +881,14 @@ namespace ASDCP
ContainerConstraintsSubDescriptor();
public:
- const Dictionary*& m_Dict;
- ContainerConstraintsSubDescriptor(const Dictionary*& d);
+ ContainerConstraintsSubDescriptor(const Dictionary* d);
ContainerConstraintsSubDescriptor(const ContainerConstraintsSubDescriptor& rhs);
virtual ~ContainerConstraintsSubDescriptor() {}
const ContainerConstraintsSubDescriptor& operator=(const ContainerConstraintsSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const ContainerConstraintsSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "ContainerConstraintsSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -903,15 +903,15 @@ namespace ASDCP
NetworkLocator();
public:
- const Dictionary*& m_Dict;
UTF16String URLString;
- NetworkLocator(const Dictionary*& d);
+ NetworkLocator(const Dictionary* d);
NetworkLocator(const NetworkLocator& rhs);
virtual ~NetworkLocator() {}
const NetworkLocator& operator=(const NetworkLocator& rhs) { Copy(rhs); return *this; }
virtual void Copy(const NetworkLocator& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "NetworkLocator"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -926,7 +926,6 @@ namespace ASDCP
MCALabelSubDescriptor();
public:
- const Dictionary*& m_Dict;
UL MCALabelDictionaryID;
UUID MCALinkID;
UTF16String MCATagSymbol;
@@ -942,12 +941,13 @@ namespace ASDCP
optional_property<UTF16String > MCAAudioContentKind;
optional_property<UTF16String > MCAAudioElementKind;
- MCALabelSubDescriptor(const Dictionary*& d);
+ MCALabelSubDescriptor(const Dictionary* d);
MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs);
virtual ~MCALabelSubDescriptor() {}
const MCALabelSubDescriptor& operator=(const MCALabelSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const MCALabelSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "MCALabelSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -962,15 +962,15 @@ namespace ASDCP
AudioChannelLabelSubDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<UUID > SoundfieldGroupLinkID;
- AudioChannelLabelSubDescriptor(const Dictionary*& d);
+ AudioChannelLabelSubDescriptor(const Dictionary* d);
AudioChannelLabelSubDescriptor(const AudioChannelLabelSubDescriptor& rhs);
virtual ~AudioChannelLabelSubDescriptor() {}
const AudioChannelLabelSubDescriptor& operator=(const AudioChannelLabelSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const AudioChannelLabelSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "AudioChannelLabelSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -985,15 +985,15 @@ namespace ASDCP
SoundfieldGroupLabelSubDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<Array<UUID> > GroupOfSoundfieldGroupsLinkID;
- SoundfieldGroupLabelSubDescriptor(const Dictionary*& d);
+ SoundfieldGroupLabelSubDescriptor(const Dictionary* d);
SoundfieldGroupLabelSubDescriptor(const SoundfieldGroupLabelSubDescriptor& rhs);
virtual ~SoundfieldGroupLabelSubDescriptor() {}
const SoundfieldGroupLabelSubDescriptor& operator=(const SoundfieldGroupLabelSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const SoundfieldGroupLabelSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "SoundfieldGroupLabelSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1008,14 +1008,14 @@ namespace ASDCP
GroupOfSoundfieldGroupsLabelSubDescriptor();
public:
- const Dictionary*& m_Dict;
- GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary*& d);
+ GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary* d);
GroupOfSoundfieldGroupsLabelSubDescriptor(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs);
virtual ~GroupOfSoundfieldGroupsLabelSubDescriptor() {}
const GroupOfSoundfieldGroupsLabelSubDescriptor& operator=(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GroupOfSoundfieldGroupsLabelSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1030,14 +1030,14 @@ namespace ASDCP
DCDataDescriptor();
public:
- const Dictionary*& m_Dict;
- DCDataDescriptor(const Dictionary*& d);
+ DCDataDescriptor(const Dictionary* d);
DCDataDescriptor(const DCDataDescriptor& rhs);
virtual ~DCDataDescriptor() {}
const DCDataDescriptor& operator=(const DCDataDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const DCDataDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "DCDataDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1052,14 +1052,14 @@ namespace ASDCP
PrivateDCDataDescriptor();
public:
- const Dictionary*& m_Dict;
- PrivateDCDataDescriptor(const Dictionary*& d);
+ PrivateDCDataDescriptor(const Dictionary* d);
PrivateDCDataDescriptor(const PrivateDCDataDescriptor& rhs);
virtual ~PrivateDCDataDescriptor() {}
const PrivateDCDataDescriptor& operator=(const PrivateDCDataDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const PrivateDCDataDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "PrivateDCDataDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1074,19 +1074,19 @@ namespace ASDCP
DolbyAtmosSubDescriptor();
public:
- const Dictionary*& m_Dict;
UUID AtmosID;
ui32_t FirstFrame;
ui16_t MaxChannelCount;
ui16_t MaxObjectCount;
ui8_t AtmosVersion;
- DolbyAtmosSubDescriptor(const Dictionary*& d);
+ DolbyAtmosSubDescriptor(const Dictionary* d);
DolbyAtmosSubDescriptor(const DolbyAtmosSubDescriptor& rhs);
virtual ~DolbyAtmosSubDescriptor() {}
const DolbyAtmosSubDescriptor& operator=(const DolbyAtmosSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const DolbyAtmosSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "DolbyAtmosSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1101,19 +1101,19 @@ namespace ASDCP
ACESPictureSubDescriptor();
public:
- const Dictionary*& m_Dict;
optional_property<UTF16String > ACESAuthoringInformation;
optional_property<ThreeColorPrimaries > ACESMasteringDisplayPrimaries;
optional_property<ColorPrimary > ACESMasteringDisplayWhitePointChromaticity;
optional_property<ui32_t > ACESMasteringDisplayMaximumLuminance;
optional_property<ui32_t > ACESMasteringDisplayMinimumLuminance;
- ACESPictureSubDescriptor(const Dictionary*& d);
+ ACESPictureSubDescriptor(const Dictionary* d);
ACESPictureSubDescriptor(const ACESPictureSubDescriptor& rhs);
virtual ~ACESPictureSubDescriptor() {}
const ACESPictureSubDescriptor& operator=(const ACESPictureSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const ACESPictureSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "ACESPictureSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1128,7 +1128,6 @@ namespace ASDCP
TargetFrameSubDescriptor();
public:
- const Dictionary*& m_Dict;
UUID TargetFrameAncillaryResourceID;
UTF16String MediaType;
ui64_t TargetFrameIndex;
@@ -1140,12 +1139,13 @@ namespace ASDCP
optional_property<UUID > ACESPictureSubDescriptorInstanceID;
optional_property<UL > TargetFrameViewingEnvironment;
- TargetFrameSubDescriptor(const Dictionary*& d);
+ TargetFrameSubDescriptor(const Dictionary* d);
TargetFrameSubDescriptor(const TargetFrameSubDescriptor& rhs);
virtual ~TargetFrameSubDescriptor() {}
const TargetFrameSubDescriptor& operator=(const TargetFrameSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const TargetFrameSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "TargetFrameSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1160,15 +1160,15 @@ namespace ASDCP
TextBasedDMFramework();
public:
- const Dictionary*& m_Dict;
optional_property<UUID > ObjectRef;
- TextBasedDMFramework(const Dictionary*& d);
+ TextBasedDMFramework(const Dictionary* d);
TextBasedDMFramework(const TextBasedDMFramework& rhs);
virtual ~TextBasedDMFramework() {}
const TextBasedDMFramework& operator=(const TextBasedDMFramework& rhs) { Copy(rhs); return *this; }
virtual void Copy(const TextBasedDMFramework& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "TextBasedDMFramework"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1183,18 +1183,18 @@ namespace ASDCP
TextBasedObject();
public:
- const Dictionary*& m_Dict;
UL PayloadSchemeID;
UTF16String TextMIMEMediaType;
UTF16String RFC5646TextLanguageCode;
optional_property<UTF16String > TextDataDescription;
- TextBasedObject(const Dictionary*& d);
+ TextBasedObject(const Dictionary* d);
TextBasedObject(const TextBasedObject& rhs);
virtual ~TextBasedObject() {}
const TextBasedObject& operator=(const TextBasedObject& rhs) { Copy(rhs); return *this; }
virtual void Copy(const TextBasedObject& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "TextBasedObject"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1209,15 +1209,15 @@ namespace ASDCP
GenericStreamTextBasedSet();
public:
- const Dictionary*& m_Dict;
ui32_t GenericStreamSID;
- GenericStreamTextBasedSet(const Dictionary*& d);
+ GenericStreamTextBasedSet(const Dictionary* d);
GenericStreamTextBasedSet(const GenericStreamTextBasedSet& rhs);
virtual ~GenericStreamTextBasedSet() {}
const GenericStreamTextBasedSet& operator=(const GenericStreamTextBasedSet& rhs) { Copy(rhs); return *this; }
virtual void Copy(const GenericStreamTextBasedSet& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "GenericStreamTextBasedSet"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1232,15 +1232,15 @@ namespace ASDCP
ISXDDataEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
ISO8String NamespaceURI;
- ISXDDataEssenceDescriptor(const Dictionary*& d);
+ ISXDDataEssenceDescriptor(const Dictionary* d);
ISXDDataEssenceDescriptor(const ISXDDataEssenceDescriptor& rhs);
virtual ~ISXDDataEssenceDescriptor() {}
const ISXDDataEssenceDescriptor& operator=(const ISXDDataEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const ISXDDataEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "ISXDDataEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1255,17 +1255,17 @@ namespace ASDCP
PHDRMetadataTrackSubDescriptor();
public:
- const Dictionary*& m_Dict;
UL DataDefinition;
ui32_t SourceTrackID;
ui32_t SimplePayloadSID;
- PHDRMetadataTrackSubDescriptor(const Dictionary*& d);
+ PHDRMetadataTrackSubDescriptor(const Dictionary* d);
PHDRMetadataTrackSubDescriptor(const PHDRMetadataTrackSubDescriptor& rhs);
virtual ~PHDRMetadataTrackSubDescriptor() {}
const PHDRMetadataTrackSubDescriptor& operator=(const PHDRMetadataTrackSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const PHDRMetadataTrackSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "PHDRMetadataTrackSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1280,15 +1280,15 @@ namespace ASDCP
PIMFDynamicMetadataDescriptor();
public:
- const Dictionary*& m_Dict;
ui32_t GlobalPayloadSID;
- PIMFDynamicMetadataDescriptor(const Dictionary*& d);
+ PIMFDynamicMetadataDescriptor(const Dictionary* d);
PIMFDynamicMetadataDescriptor(const PIMFDynamicMetadataDescriptor& rhs);
virtual ~PIMFDynamicMetadataDescriptor() {}
const PIMFDynamicMetadataDescriptor& operator=(const PIMFDynamicMetadataDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const PIMFDynamicMetadataDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "PIMFDynamicMetadataDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1303,14 +1303,14 @@ namespace ASDCP
IABEssenceDescriptor();
public:
- const Dictionary*& m_Dict;
- IABEssenceDescriptor(const Dictionary*& d);
+ IABEssenceDescriptor(const Dictionary* d);
IABEssenceDescriptor(const IABEssenceDescriptor& rhs);
virtual ~IABEssenceDescriptor() {}
const IABEssenceDescriptor& operator=(const IABEssenceDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const IABEssenceDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "IABEssenceDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
@@ -1325,14 +1325,14 @@ namespace ASDCP
IABSoundfieldLabelSubDescriptor();
public:
- const Dictionary*& m_Dict;
- IABSoundfieldLabelSubDescriptor(const Dictionary*& d);
+ IABSoundfieldLabelSubDescriptor(const Dictionary* d);
IABSoundfieldLabelSubDescriptor(const IABSoundfieldLabelSubDescriptor& rhs);
virtual ~IABSoundfieldLabelSubDescriptor() {}
const IABSoundfieldLabelSubDescriptor& operator=(const IABSoundfieldLabelSubDescriptor& rhs) { Copy(rhs); return *this; }
virtual void Copy(const IABSoundfieldLabelSubDescriptor& rhs);
+ virtual InterchangeObject *Clone() const;
virtual const char* HasName() { return "IABSoundfieldLabelSubDescriptor"; }
virtual Result_t InitFromTLVSet(TLVReader& TLVSet);
virtual Result_t WriteToTLVSet(TLVWriter& TLVSet);
diff --git a/src/h__02_Reader.cpp b/src/h__02_Reader.cpp
index e807387..ff4af7c 100644
--- a/src/h__02_Reader.cpp
+++ b/src/h__02_Reader.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2018, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2021, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst
All rights reserved.
@@ -63,9 +63,10 @@ AS_02::default_md_object_init()
//
-AS_02::MXF::AS02IndexReader::AS02IndexReader(const ASDCP::Dictionary*& d) :
- ASDCP::MXF::Partition(d),
- m_Duration(0), m_BytesPerEditUnit(0), m_Dict(d) {}
+AS_02::MXF::AS02IndexReader::AS02IndexReader(const ASDCP::Dictionary* d) :
+ ASDCP::MXF::Partition(d), m_Duration(0), m_BytesPerEditUnit(0) {
+ assert(d);
+}
AS_02::MXF::AS02IndexReader::~AS02IndexReader() {}
@@ -251,6 +252,7 @@ AS_02::MXF::AS02IndexReader::InitFromFile(const Kumu::FileReader& reader, const
ASDCP::Result_t
AS_02::MXF::AS02IndexReader::InitFromBuffer(const byte_t* p, ui32_t l, const ui64_t& body_offset, const ui64_t& essence_container_offset)
{
+ assert(m_Dict);
Result_t result = RESULT_OK;
const byte_t* end_p = p + l;
@@ -393,7 +395,8 @@ AS_02::MXF::AS02IndexReader::Lookup(ui32_t frame_num, ASDCP::MXF::IndexTableSegm
//
-AS_02::h__AS02Reader::h__AS02Reader(const ASDCP::Dictionary& d) : ASDCP::MXF::TrackFileReader<ASDCP::MXF::OP1aHeader, AS_02::MXF::AS02IndexReader>(d) {}
+AS_02::h__AS02Reader::h__AS02Reader(const ASDCP::Dictionary *d) :
+ ASDCP::MXF::TrackFileReader<ASDCP::MXF::OP1aHeader, AS_02::MXF::AS02IndexReader>(d) {}
AS_02::h__AS02Reader::~h__AS02Reader() {}
diff --git a/src/h__02_Writer.cpp b/src/h__02_Writer.cpp
index ee759c2..e35727e 100644
--- a/src/h__02_Writer.cpp
+++ b/src/h__02_Writer.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2011-2018, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2021, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst
All rights reserved.
@@ -42,7 +42,7 @@ static const ui32_t CBRIndexEntriesPerSegment = 5000;
//------------------------------------------------------------------------------------------
//
-AS_02::MXF::AS02IndexWriterVBR::AS02IndexWriterVBR(const ASDCP::Dictionary*& d) :
+AS_02::MXF::AS02IndexWriterVBR::AS02IndexWriterVBR(const ASDCP::Dictionary* d) :
Partition(d), m_CurrentSegment(0), m_Dict(d), m_Lookup(0)
{
BodySID = 0;
@@ -186,7 +186,7 @@ AS_02::MXF::AS02IndexWriterVBR::SetEditRate(const ASDCP::Rational& edit_rate)
//
//
-AS_02::h__AS02WriterFrame::h__AS02WriterFrame(const ASDCP::Dictionary& d) :
+AS_02::h__AS02WriterFrame::h__AS02WriterFrame(const ASDCP::Dictionary *d) :
h__AS02Writer<AS_02::MXF::AS02IndexWriterVBR>(d), m_IndexStrategy(AS_02::IS_FOLLOW) {}
AS_02::h__AS02WriterFrame::~h__AS02WriterFrame() {}
@@ -236,7 +236,7 @@ AS_02::h__AS02WriterFrame::WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf,co
//
-AS_02::MXF::AS02IndexWriterCBR::AS02IndexWriterCBR(const ASDCP::Dictionary*& d) :
+AS_02::MXF::AS02IndexWriterCBR::AS02IndexWriterCBR(const ASDCP::Dictionary *d) :
Partition(d), m_CurrentSegment(0), m_Dict(d), m_Lookup(0), m_Duration(0), m_SampleSize(0)
{
BodySID = 0;
@@ -311,7 +311,7 @@ AS_02::MXF::AS02IndexWriterCBR::SetEditRate(const ASDCP::Rational& edit_rate, co
//
//
-AS_02::h__AS02WriterClip::h__AS02WriterClip(const ASDCP::Dictionary& d) :
+AS_02::h__AS02WriterClip::h__AS02WriterClip(const ASDCP::Dictionary* d) :
h__AS02Writer<AS_02::MXF::AS02IndexWriterCBR>(d),
m_ECStart(0), m_ClipStart(0), m_IndexStrategy(AS_02::IS_FOLLOW) {}
diff --git a/src/h__Reader.cpp b/src/h__Reader.cpp
index 62a7565..ce2abf6 100755
--- a/src/h__Reader.cpp
+++ b/src/h__Reader.cpp
@@ -64,7 +64,8 @@ ASDCP::default_md_object_init()
//
//
-ASDCP::h__ASDCPReader::h__ASDCPReader(const Dictionary& d) : MXF::TrackFileReader<OP1aHeader, OPAtomIndexFooter>(d), m_BodyPart(m_Dict) {}
+ASDCP::h__ASDCPReader::h__ASDCPReader(const Dictionary *d) :
+ MXF::TrackFileReader<OP1aHeader, OPAtomIndexFooter>(d), m_BodyPart(d) {}
ASDCP::h__ASDCPReader::~h__ASDCPReader() {}
diff --git a/src/h__Writer.cpp b/src/h__Writer.cpp
index 1274e20..5f836fe 100755
--- a/src/h__Writer.cpp
+++ b/src/h__Writer.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2018, John Hurst
+Copyright (c) 2004-2021, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -46,7 +46,7 @@ ASDCP::derive_timecode_rate_from_edit_rate(const ASDCP::Rational& edit_rate)
// add DMS CryptographicFramework entry to source package
void
ASDCP::AddDmsCrypt(Partition& HeaderPart, SourcePackage& Package,
- WriterInfo& Descr, const UL& WrappingUL, const Dictionary*& Dict)
+ WriterInfo& Descr, const UL& WrappingUL, const Dictionary* Dict)
{
assert(Dict);
// Essence Track
@@ -102,7 +102,7 @@ id_batch_contains(const Array<Kumu::UUID>& batch, const Kumu::UUID& value)
//
Result_t
ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHeader& header_part,
- SourcePackage& source_package, MXF::RIP& rip, const Dictionary*& Dict)
+ SourcePackage& source_package, MXF::RIP& rip, const Dictionary* Dict)
{
Sequence* Sequence_obj = 0;
InterchangeObject* tmp_iobj = 0;
@@ -213,8 +213,8 @@ ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHe
}
//
-ASDCP::h__ASDCPWriter::h__ASDCPWriter(const Dictionary& d) :
- MXF::TrackFileWriter<OP1aHeader>(d), m_BodyPart(m_Dict), m_FooterPart(m_Dict) {}
+ASDCP::h__ASDCPWriter::h__ASDCPWriter(const Dictionary* d) :
+ MXF::TrackFileWriter<OP1aHeader>(d), m_BodyPart(d), m_FooterPart(d) {}
ASDCP::h__ASDCPWriter::~h__ASDCPWriter() {}