diff options
| author | jhurst <jhurst@cinecert.com> | 2021-04-13 15:50:50 -0700 |
|---|---|---|
| committer | jhurst <jhurst@cinecert.com> | 2021-04-13 15:50:50 -0700 |
| commit | b14d706a72c706c9c59dbdf64a9e41f32465e060 (patch) | |
| tree | 642c62a644544afb531a8fdbfd4e610bb72728ed /src/Metadata.cpp | |
| parent | 4e0891ab9ee94b822043126ea07e97641015e9b7 (diff) | |
o Added a Clone() method to InterchangeObject and derivatives
that allows making a descriptor copy that is not owned by
any other strucure. The caller must arrange to delete the
object pointer returned.
o While implementing the above it became obvious that the
reference-to-a-pointer-to-the-dictionary idiom that is used
throughout the lower levels of the MXF library was the
cause of much more grief than it was originally designed to
prevent. This was made even more obvious when I replaced all
of it with simple pointers, which revealed several shadow
instances of m_Dict that were only reliable while the object
that held them was valid.
Diffstat (limited to 'src/Metadata.cpp')
| -rw-r--r--[-rwxr-xr-x] | src/Metadata.cpp | 652 |
1 files changed, 501 insertions, 151 deletions
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) { |
