2 Copyright (c) 2005-2012, John Hurst
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
8 1. Redistributions of source code must retain the above copyright
9 notice, this list of conditions and the following disclaimer.
10 2. Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in the
12 documentation and/or other materials provided with the distribution.
13 3. The name of the author may not be used to endorse or promote products
14 derived from this software without specific prior written permission.
16 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 /*! \file Metadata.cpp
29 \brief AS-DCP library, MXF Metadata Sets implementation
36 using namespace ASDCP;
37 using namespace ASDCP::MXF;
39 const ui32_t kl_length = ASDCP::SMPTE_UL_LENGTH + ASDCP::MXF_BER_LENGTH;
41 //------------------------------------------------------------------------------------------
43 static InterchangeObject* Preface_Factory(const Dictionary*& Dict) { return new Preface(Dict); }
44 static InterchangeObject* IndexTableSegment_Factory(const Dictionary*& Dict) { return new IndexTableSegment(Dict); }
46 static InterchangeObject* Identification_Factory(const Dictionary*& Dict) { return new Identification(Dict); }
47 static InterchangeObject* ContentStorage_Factory(const Dictionary*& Dict) { return new ContentStorage(Dict); }
48 static InterchangeObject* EssenceContainerData_Factory(const Dictionary*& Dict) { return new EssenceContainerData(Dict); }
49 static InterchangeObject* MaterialPackage_Factory(const Dictionary*& Dict) { return new MaterialPackage(Dict); }
50 static InterchangeObject* SourcePackage_Factory(const Dictionary*& Dict) { return new SourcePackage(Dict); }
51 static InterchangeObject* StaticTrack_Factory(const Dictionary*& Dict) { return new StaticTrack(Dict); }
52 static InterchangeObject* Track_Factory(const Dictionary*& Dict) { return new Track(Dict); }
53 static InterchangeObject* Sequence_Factory(const Dictionary*& Dict) { return new Sequence(Dict); }
54 static InterchangeObject* SourceClip_Factory(const Dictionary*& Dict) { return new SourceClip(Dict); }
55 static InterchangeObject* TimecodeComponent_Factory(const Dictionary*& Dict) { return new TimecodeComponent(Dict); }
56 static InterchangeObject* FileDescriptor_Factory(const Dictionary*& Dict) { return new FileDescriptor(Dict); }
57 static InterchangeObject* GenericSoundEssenceDescriptor_Factory(const Dictionary*& Dict) { return new GenericSoundEssenceDescriptor(Dict); }
58 static InterchangeObject* WaveAudioDescriptor_Factory(const Dictionary*& Dict) { return new WaveAudioDescriptor(Dict); }
59 static InterchangeObject* GenericPictureEssenceDescriptor_Factory(const Dictionary*& Dict) { return new GenericPictureEssenceDescriptor(Dict); }
60 static InterchangeObject* RGBAEssenceDescriptor_Factory(const Dictionary*& Dict) { return new RGBAEssenceDescriptor(Dict); }
61 static InterchangeObject* JPEG2000PictureSubDescriptor_Factory(const Dictionary*& Dict) { return new JPEG2000PictureSubDescriptor(Dict); }
62 static InterchangeObject* CDCIEssenceDescriptor_Factory(const Dictionary*& Dict) { return new CDCIEssenceDescriptor(Dict); }
63 static InterchangeObject* MPEG2VideoDescriptor_Factory(const Dictionary*& Dict) { return new MPEG2VideoDescriptor(Dict); }
64 static InterchangeObject* DMSegment_Factory(const Dictionary*& Dict) { return new DMSegment(Dict); }
65 static InterchangeObject* CryptographicFramework_Factory(const Dictionary*& Dict) { return new CryptographicFramework(Dict); }
66 static InterchangeObject* CryptographicContext_Factory(const Dictionary*& Dict) { return new CryptographicContext(Dict); }
67 static InterchangeObject* GenericDataEssenceDescriptor_Factory(const Dictionary*& Dict) { return new GenericDataEssenceDescriptor(Dict); }
68 static InterchangeObject* TimedTextDescriptor_Factory(const Dictionary*& Dict) { return new TimedTextDescriptor(Dict); }
69 static InterchangeObject* TimedTextResourceSubDescriptor_Factory(const Dictionary*& Dict) { return new TimedTextResourceSubDescriptor(Dict); }
70 static InterchangeObject* StereoscopicPictureSubDescriptor_Factory(const Dictionary*& Dict) { return new StereoscopicPictureSubDescriptor(Dict); }
71 static InterchangeObject* NetworkLocator_Factory(const Dictionary*& Dict) { return new NetworkLocator(Dict); }
72 static InterchangeObject* MCALabelSubDescriptor_Factory(const Dictionary*& Dict) { return new MCALabelSubDescriptor(Dict); }
73 static InterchangeObject* AudioChannelLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new AudioChannelLabelSubDescriptor(Dict); }
74 static InterchangeObject* SoundfieldGroupLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new SoundfieldGroupLabelSubDescriptor(Dict); }
75 static InterchangeObject* GroupOfSoundfieldGroupsLabelSubDescriptor_Factory(const Dictionary*& Dict) { return new GroupOfSoundfieldGroupsLabelSubDescriptor(Dict); }
76 static InterchangeObject* DCDataDescriptor_Factory(const Dictionary*& Dict) { return new DCDataDescriptor(Dict); }
77 static InterchangeObject* DolbyAtmosSubDescriptor_Factory(const Dictionary*& Dict) { return new DolbyAtmosSubDescriptor(Dict); }
81 ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
84 SetObjectFactory(Dict->ul(MDD_Preface), Preface_Factory);
85 SetObjectFactory(Dict->ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
87 SetObjectFactory(Dict->ul(MDD_Identification), Identification_Factory);
88 SetObjectFactory(Dict->ul(MDD_ContentStorage), ContentStorage_Factory);
89 SetObjectFactory(Dict->ul(MDD_EssenceContainerData), EssenceContainerData_Factory);
90 SetObjectFactory(Dict->ul(MDD_MaterialPackage), MaterialPackage_Factory);
91 SetObjectFactory(Dict->ul(MDD_SourcePackage), SourcePackage_Factory);
92 SetObjectFactory(Dict->ul(MDD_StaticTrack), StaticTrack_Factory);
93 SetObjectFactory(Dict->ul(MDD_Track), Track_Factory);
94 SetObjectFactory(Dict->ul(MDD_Sequence), Sequence_Factory);
95 SetObjectFactory(Dict->ul(MDD_SourceClip), SourceClip_Factory);
96 SetObjectFactory(Dict->ul(MDD_TimecodeComponent), TimecodeComponent_Factory);
97 SetObjectFactory(Dict->ul(MDD_FileDescriptor), FileDescriptor_Factory);
98 SetObjectFactory(Dict->ul(MDD_GenericSoundEssenceDescriptor), GenericSoundEssenceDescriptor_Factory);
99 SetObjectFactory(Dict->ul(MDD_WaveAudioDescriptor), WaveAudioDescriptor_Factory);
100 SetObjectFactory(Dict->ul(MDD_GenericPictureEssenceDescriptor), GenericPictureEssenceDescriptor_Factory);
101 SetObjectFactory(Dict->ul(MDD_RGBAEssenceDescriptor), RGBAEssenceDescriptor_Factory);
102 SetObjectFactory(Dict->ul(MDD_JPEG2000PictureSubDescriptor), JPEG2000PictureSubDescriptor_Factory);
103 SetObjectFactory(Dict->ul(MDD_CDCIEssenceDescriptor), CDCIEssenceDescriptor_Factory);
104 SetObjectFactory(Dict->ul(MDD_MPEG2VideoDescriptor), MPEG2VideoDescriptor_Factory);
105 SetObjectFactory(Dict->ul(MDD_DMSegment), DMSegment_Factory);
106 SetObjectFactory(Dict->ul(MDD_CryptographicFramework), CryptographicFramework_Factory);
107 SetObjectFactory(Dict->ul(MDD_CryptographicContext), CryptographicContext_Factory);
108 SetObjectFactory(Dict->ul(MDD_GenericDataEssenceDescriptor), GenericDataEssenceDescriptor_Factory);
109 SetObjectFactory(Dict->ul(MDD_TimedTextDescriptor), TimedTextDescriptor_Factory);
110 SetObjectFactory(Dict->ul(MDD_TimedTextResourceSubDescriptor), TimedTextResourceSubDescriptor_Factory);
111 SetObjectFactory(Dict->ul(MDD_StereoscopicPictureSubDescriptor), StereoscopicPictureSubDescriptor_Factory);
112 SetObjectFactory(Dict->ul(MDD_NetworkLocator), NetworkLocator_Factory);
113 SetObjectFactory(Dict->ul(MDD_MCALabelSubDescriptor), MCALabelSubDescriptor_Factory);
114 SetObjectFactory(Dict->ul(MDD_AudioChannelLabelSubDescriptor), AudioChannelLabelSubDescriptor_Factory);
115 SetObjectFactory(Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor), SoundfieldGroupLabelSubDescriptor_Factory);
116 SetObjectFactory(Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor), GroupOfSoundfieldGroupsLabelSubDescriptor_Factory);
117 SetObjectFactory(Dict->ul(MDD_DCDataDescriptor), DCDataDescriptor_Factory);
118 SetObjectFactory(Dict->ul(MDD_DolbyAtmosSubDescriptor), DolbyAtmosSubDescriptor_Factory);
121 //------------------------------------------------------------------------------------------
126 //------------------------------------------------------------------------------------------
131 Identification::Identification(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
134 m_UL = m_Dict->ul(MDD_Identification);
137 Identification::Identification(const Identification& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
140 m_UL = m_Dict->ul(MDD_Identification);
147 Identification::InitFromTLVSet(TLVReader& TLVSet)
150 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
151 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
152 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
153 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductName));
154 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductVersion));
155 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, VersionString));
156 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductUID));
157 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ModificationDate));
158 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ToolkitVersion));
159 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, Platform));
165 Identification::WriteToTLVSet(TLVWriter& TLVSet)
168 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
169 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
170 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
171 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductName));
172 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductVersion));
173 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, VersionString));
174 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductUID));
175 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ModificationDate));
176 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ToolkitVersion));
177 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, Platform));
183 Identification::Copy(const Identification& rhs)
185 InterchangeObject::Copy(rhs);
186 ThisGenerationUID = rhs.ThisGenerationUID;
187 CompanyName = rhs.CompanyName;
188 ProductName = rhs.ProductName;
189 ProductVersion = rhs.ProductVersion;
190 VersionString = rhs.VersionString;
191 ProductUID = rhs.ProductUID;
192 ModificationDate = rhs.ModificationDate;
193 ToolkitVersion = rhs.ToolkitVersion;
194 Platform = rhs.Platform;
199 Identification::Dump(FILE* stream)
201 char identbuf[IdentBufferLen];
207 InterchangeObject::Dump(stream);
208 fprintf(stream, " %22s = %s\n", "ThisGenerationUID", ThisGenerationUID.EncodeString(identbuf, IdentBufferLen));
209 fprintf(stream, " %22s = %s\n", "CompanyName", CompanyName.EncodeString(identbuf, IdentBufferLen));
210 fprintf(stream, " %22s = %s\n", "ProductName", ProductName.EncodeString(identbuf, IdentBufferLen));
211 fprintf(stream, " %22s = %s\n", "ProductVersion", ProductVersion.EncodeString(identbuf, IdentBufferLen));
212 fprintf(stream, " %22s = %s\n", "VersionString", VersionString.EncodeString(identbuf, IdentBufferLen));
213 fprintf(stream, " %22s = %s\n", "ProductUID", ProductUID.EncodeString(identbuf, IdentBufferLen));
214 fprintf(stream, " %22s = %s\n", "ModificationDate", ModificationDate.EncodeString(identbuf, IdentBufferLen));
215 fprintf(stream, " %22s = %s\n", "ToolkitVersion", ToolkitVersion.EncodeString(identbuf, IdentBufferLen));
216 fprintf(stream, " %22s = %s\n", "Platform", Platform.EncodeString(identbuf, IdentBufferLen));
221 Identification::InitFromBuffer(const byte_t* p, ui32_t l)
223 return InterchangeObject::InitFromBuffer(p, l);
228 Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
230 return InterchangeObject::WriteToBuffer(Buffer);
233 //------------------------------------------------------------------------------------------
238 ContentStorage::ContentStorage(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
241 m_UL = m_Dict->ul(MDD_ContentStorage);
244 ContentStorage::ContentStorage(const ContentStorage& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
247 m_UL = m_Dict->ul(MDD_ContentStorage);
254 ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
257 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
258 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
259 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
265 ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
268 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
269 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
270 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
276 ContentStorage::Copy(const ContentStorage& rhs)
278 InterchangeObject::Copy(rhs);
279 Packages = rhs.Packages;
280 EssenceContainerData = rhs.EssenceContainerData;
285 ContentStorage::Dump(FILE* stream)
287 char identbuf[IdentBufferLen];
293 InterchangeObject::Dump(stream);
294 fprintf(stream, " %22s:\n", "Packages");
295 Packages.Dump(stream);
296 fprintf(stream, " %22s:\n", "EssenceContainerData");
297 EssenceContainerData.Dump(stream);
302 ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
304 return InterchangeObject::InitFromBuffer(p, l);
309 ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
311 return InterchangeObject::WriteToBuffer(Buffer);
314 //------------------------------------------------------------------------------------------
315 // EssenceContainerData
319 EssenceContainerData::EssenceContainerData(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), IndexSID(0), BodySID(0)
322 m_UL = m_Dict->ul(MDD_EssenceContainerData);
325 EssenceContainerData::EssenceContainerData(const EssenceContainerData& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
328 m_UL = m_Dict->ul(MDD_EssenceContainerData);
335 EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
338 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
339 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
340 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
341 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
347 EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
350 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
351 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
352 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
353 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
359 EssenceContainerData::Copy(const EssenceContainerData& rhs)
361 InterchangeObject::Copy(rhs);
362 LinkedPackageUID = rhs.LinkedPackageUID;
363 IndexSID = rhs.IndexSID;
364 BodySID = rhs.BodySID;
369 EssenceContainerData::Dump(FILE* stream)
371 char identbuf[IdentBufferLen];
377 InterchangeObject::Dump(stream);
378 fprintf(stream, " %22s = %s\n", "LinkedPackageUID", LinkedPackageUID.EncodeString(identbuf, IdentBufferLen));
379 fprintf(stream, " %22s = %d\n", "IndexSID", IndexSID);
380 fprintf(stream, " %22s = %d\n", "BodySID", BodySID);
385 EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
387 return InterchangeObject::InitFromBuffer(p, l);
392 EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
394 return InterchangeObject::WriteToBuffer(Buffer);
397 //------------------------------------------------------------------------------------------
401 GenericPackage::GenericPackage(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
403 GenericPackage::GenericPackage(const GenericPackage& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
411 GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
414 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
415 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
416 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
417 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageCreationDate));
418 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageModifiedDate));
419 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Tracks));
425 GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
428 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
429 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
430 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
431 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageCreationDate));
432 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageModifiedDate));
433 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Tracks));
439 GenericPackage::Copy(const GenericPackage& rhs)
441 InterchangeObject::Copy(rhs);
442 PackageUID = rhs.PackageUID;
444 PackageCreationDate = rhs.PackageCreationDate;
445 PackageModifiedDate = rhs.PackageModifiedDate;
451 GenericPackage::Dump(FILE* stream)
453 char identbuf[IdentBufferLen];
459 InterchangeObject::Dump(stream);
460 fprintf(stream, " %22s = %s\n", "PackageUID", PackageUID.EncodeString(identbuf, IdentBufferLen));
461 fprintf(stream, " %22s = %s\n", "Name", Name.EncodeString(identbuf, IdentBufferLen));
462 fprintf(stream, " %22s = %s\n", "PackageCreationDate", PackageCreationDate.EncodeString(identbuf, IdentBufferLen));
463 fprintf(stream, " %22s = %s\n", "PackageModifiedDate", PackageModifiedDate.EncodeString(identbuf, IdentBufferLen));
464 fprintf(stream, " %22s:\n", "Tracks");
469 //------------------------------------------------------------------------------------------
474 MaterialPackage::MaterialPackage(const Dictionary*& d) : GenericPackage(d), m_Dict(d)
477 m_UL = m_Dict->ul(MDD_MaterialPackage);
480 MaterialPackage::MaterialPackage(const MaterialPackage& rhs) : GenericPackage(rhs.m_Dict), m_Dict(rhs.m_Dict)
483 m_UL = m_Dict->ul(MDD_MaterialPackage);
490 MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
493 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
499 MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
502 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
508 MaterialPackage::Copy(const MaterialPackage& rhs)
510 GenericPackage::Copy(rhs);
515 MaterialPackage::Dump(FILE* stream)
517 char identbuf[IdentBufferLen];
523 GenericPackage::Dump(stream);
528 MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
530 return InterchangeObject::InitFromBuffer(p, l);
535 MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
537 return InterchangeObject::WriteToBuffer(Buffer);
540 //------------------------------------------------------------------------------------------
545 SourcePackage::SourcePackage(const Dictionary*& d) : GenericPackage(d), m_Dict(d)
548 m_UL = m_Dict->ul(MDD_SourcePackage);
551 SourcePackage::SourcePackage(const SourcePackage& rhs) : GenericPackage(rhs.m_Dict), m_Dict(rhs.m_Dict)
554 m_UL = m_Dict->ul(MDD_SourcePackage);
561 SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
564 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
565 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
571 SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
574 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
575 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
581 SourcePackage::Copy(const SourcePackage& rhs)
583 GenericPackage::Copy(rhs);
584 Descriptor = rhs.Descriptor;
589 SourcePackage::Dump(FILE* stream)
591 char identbuf[IdentBufferLen];
597 GenericPackage::Dump(stream);
598 fprintf(stream, " %22s = %s\n", "Descriptor", Descriptor.EncodeString(identbuf, IdentBufferLen));
603 SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
605 return InterchangeObject::InitFromBuffer(p, l);
610 SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
612 return InterchangeObject::WriteToBuffer(Buffer);
615 //------------------------------------------------------------------------------------------
619 GenericTrack::GenericTrack(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), TrackID(0), TrackNumber(0) {}
621 GenericTrack::GenericTrack(const GenericTrack& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
629 GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
632 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
633 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
634 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
635 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, TrackName));
636 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, Sequence));
642 GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
645 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
646 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
647 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
648 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, TrackName));
649 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, Sequence));
655 GenericTrack::Copy(const GenericTrack& rhs)
657 InterchangeObject::Copy(rhs);
658 TrackID = rhs.TrackID;
659 TrackNumber = rhs.TrackNumber;
660 TrackName = rhs.TrackName;
661 Sequence = rhs.Sequence;
666 GenericTrack::Dump(FILE* stream)
668 char identbuf[IdentBufferLen];
674 InterchangeObject::Dump(stream);
675 fprintf(stream, " %22s = %d\n", "TrackID", TrackID);
676 fprintf(stream, " %22s = %d\n", "TrackNumber", TrackNumber);
677 fprintf(stream, " %22s = %s\n", "TrackName", TrackName.EncodeString(identbuf, IdentBufferLen));
678 fprintf(stream, " %22s = %s\n", "Sequence", Sequence.EncodeString(identbuf, IdentBufferLen));
682 //------------------------------------------------------------------------------------------
687 StaticTrack::StaticTrack(const Dictionary*& d) : GenericTrack(d), m_Dict(d)
690 m_UL = m_Dict->ul(MDD_StaticTrack);
693 StaticTrack::StaticTrack(const StaticTrack& rhs) : GenericTrack(rhs.m_Dict), m_Dict(rhs.m_Dict)
696 m_UL = m_Dict->ul(MDD_StaticTrack);
703 StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
706 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
712 StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
715 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
721 StaticTrack::Copy(const StaticTrack& rhs)
723 GenericTrack::Copy(rhs);
728 StaticTrack::Dump(FILE* stream)
730 char identbuf[IdentBufferLen];
736 GenericTrack::Dump(stream);
741 StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
743 return InterchangeObject::InitFromBuffer(p, l);
748 StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
750 return InterchangeObject::WriteToBuffer(Buffer);
753 //------------------------------------------------------------------------------------------
758 Track::Track(const Dictionary*& d) : GenericTrack(d), m_Dict(d), Origin(0)
761 m_UL = m_Dict->ul(MDD_Track);
764 Track::Track(const Track& rhs) : GenericTrack(rhs.m_Dict), m_Dict(rhs.m_Dict)
767 m_UL = m_Dict->ul(MDD_Track);
774 Track::InitFromTLVSet(TLVReader& TLVSet)
777 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
778 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
779 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
785 Track::WriteToTLVSet(TLVWriter& TLVSet)
788 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
789 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
790 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
796 Track::Copy(const Track& rhs)
798 GenericTrack::Copy(rhs);
799 EditRate = rhs.EditRate;
805 Track::Dump(FILE* stream)
807 char identbuf[IdentBufferLen];
813 GenericTrack::Dump(stream);
814 fprintf(stream, " %22s = %s\n", "EditRate", EditRate.EncodeString(identbuf, IdentBufferLen));
815 fprintf(stream, " %22s = %s\n", "Origin", i64sz(Origin, identbuf));
820 Track::InitFromBuffer(const byte_t* p, ui32_t l)
822 return InterchangeObject::InitFromBuffer(p, l);
827 Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
829 return InterchangeObject::WriteToBuffer(Buffer);
832 //------------------------------------------------------------------------------------------
833 // StructuralComponent
836 StructuralComponent::StructuralComponent(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), Duration(0) {}
838 StructuralComponent::StructuralComponent(const StructuralComponent& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
846 StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
849 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
850 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
851 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
857 StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
860 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
861 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
862 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
868 StructuralComponent::Copy(const StructuralComponent& rhs)
870 InterchangeObject::Copy(rhs);
871 DataDefinition = rhs.DataDefinition;
872 Duration = rhs.Duration;
877 StructuralComponent::Dump(FILE* stream)
879 char identbuf[IdentBufferLen];
885 InterchangeObject::Dump(stream);
886 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
887 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
891 //------------------------------------------------------------------------------------------
896 Sequence::Sequence(const Dictionary*& d) : StructuralComponent(d), m_Dict(d)
899 m_UL = m_Dict->ul(MDD_Sequence);
902 Sequence::Sequence(const Sequence& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
905 m_UL = m_Dict->ul(MDD_Sequence);
912 Sequence::InitFromTLVSet(TLVReader& TLVSet)
915 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
916 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
922 Sequence::WriteToTLVSet(TLVWriter& TLVSet)
925 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
926 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
932 Sequence::Copy(const Sequence& rhs)
934 StructuralComponent::Copy(rhs);
935 StructuralComponents = rhs.StructuralComponents;
940 Sequence::Dump(FILE* stream)
942 char identbuf[IdentBufferLen];
948 StructuralComponent::Dump(stream);
949 fprintf(stream, " %22s:\n", "StructuralComponents");
950 StructuralComponents.Dump(stream);
955 Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
957 return InterchangeObject::InitFromBuffer(p, l);
962 Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
964 return InterchangeObject::WriteToBuffer(Buffer);
967 //------------------------------------------------------------------------------------------
972 SourceClip::SourceClip(const Dictionary*& d) : StructuralComponent(d), m_Dict(d), StartPosition(0), SourceTrackID(0)
975 m_UL = m_Dict->ul(MDD_SourceClip);
978 SourceClip::SourceClip(const SourceClip& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
981 m_UL = m_Dict->ul(MDD_SourceClip);
988 SourceClip::InitFromTLVSet(TLVReader& TLVSet)
991 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
992 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
993 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
994 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(SourceClip, SourceTrackID));
1000 SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
1003 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
1004 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
1005 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
1006 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(SourceClip, SourceTrackID));
1012 SourceClip::Copy(const SourceClip& rhs)
1014 StructuralComponent::Copy(rhs);
1015 StartPosition = rhs.StartPosition;
1016 SourcePackageID = rhs.SourcePackageID;
1017 SourceTrackID = rhs.SourceTrackID;
1022 SourceClip::Dump(FILE* stream)
1024 char identbuf[IdentBufferLen];
1030 StructuralComponent::Dump(stream);
1031 fprintf(stream, " %22s = %s\n", "StartPosition", i64sz(StartPosition, identbuf));
1032 fprintf(stream, " %22s = %s\n", "SourcePackageID", SourcePackageID.EncodeString(identbuf, IdentBufferLen));
1033 fprintf(stream, " %22s = %d\n", "SourceTrackID", SourceTrackID);
1038 SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
1040 return InterchangeObject::InitFromBuffer(p, l);
1045 SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1047 return InterchangeObject::WriteToBuffer(Buffer);
1050 //------------------------------------------------------------------------------------------
1051 // TimecodeComponent
1055 TimecodeComponent::TimecodeComponent(const Dictionary*& d) : StructuralComponent(d), m_Dict(d), RoundedTimecodeBase(0), StartTimecode(0), DropFrame(0)
1058 m_UL = m_Dict->ul(MDD_TimecodeComponent);
1061 TimecodeComponent::TimecodeComponent(const TimecodeComponent& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
1064 m_UL = m_Dict->ul(MDD_TimecodeComponent);
1071 TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
1074 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
1075 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
1076 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
1077 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(TimecodeComponent, DropFrame));
1083 TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
1086 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
1087 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
1088 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
1089 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(TimecodeComponent, DropFrame));
1095 TimecodeComponent::Copy(const TimecodeComponent& rhs)
1097 StructuralComponent::Copy(rhs);
1098 RoundedTimecodeBase = rhs.RoundedTimecodeBase;
1099 StartTimecode = rhs.StartTimecode;
1100 DropFrame = rhs.DropFrame;
1105 TimecodeComponent::Dump(FILE* stream)
1107 char identbuf[IdentBufferLen];
1113 StructuralComponent::Dump(stream);
1114 fprintf(stream, " %22s = %d\n", "RoundedTimecodeBase", RoundedTimecodeBase);
1115 fprintf(stream, " %22s = %s\n", "StartTimecode", i64sz(StartTimecode, identbuf));
1116 fprintf(stream, " %22s = %d\n", "DropFrame", DropFrame);
1121 TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
1123 return InterchangeObject::InitFromBuffer(p, l);
1128 TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1130 return InterchangeObject::WriteToBuffer(Buffer);
1133 //------------------------------------------------------------------------------------------
1134 // GenericDescriptor
1137 GenericDescriptor::GenericDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
1139 GenericDescriptor::GenericDescriptor(const GenericDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
1147 GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1150 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1151 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
1152 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
1158 GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1161 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1162 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
1163 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
1169 GenericDescriptor::Copy(const GenericDescriptor& rhs)
1171 InterchangeObject::Copy(rhs);
1172 Locators = rhs.Locators;
1173 SubDescriptors = rhs.SubDescriptors;
1178 GenericDescriptor::Dump(FILE* stream)
1180 char identbuf[IdentBufferLen];
1186 InterchangeObject::Dump(stream);
1187 fprintf(stream, " %22s:\n", "Locators");
1188 Locators.Dump(stream);
1189 fprintf(stream, " %22s:\n", "SubDescriptors");
1190 SubDescriptors.Dump(stream);
1194 //------------------------------------------------------------------------------------------
1199 FileDescriptor::FileDescriptor(const Dictionary*& d) : GenericDescriptor(d), m_Dict(d), LinkedTrackID(0), ContainerDuration(0)
1202 m_UL = m_Dict->ul(MDD_FileDescriptor);
1205 FileDescriptor::FileDescriptor(const FileDescriptor& rhs) : GenericDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1208 m_UL = m_Dict->ul(MDD_FileDescriptor);
1215 FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1218 Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
1219 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
1220 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
1221 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(FileDescriptor, ContainerDuration));
1222 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, EssenceContainer));
1223 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, Codec));
1229 FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1232 Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
1233 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
1234 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
1235 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(FileDescriptor, ContainerDuration));
1236 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, EssenceContainer));
1237 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, Codec));
1243 FileDescriptor::Copy(const FileDescriptor& rhs)
1245 GenericDescriptor::Copy(rhs);
1246 LinkedTrackID = rhs.LinkedTrackID;
1247 SampleRate = rhs.SampleRate;
1248 ContainerDuration = rhs.ContainerDuration;
1249 EssenceContainer = rhs.EssenceContainer;
1255 FileDescriptor::Dump(FILE* stream)
1257 char identbuf[IdentBufferLen];
1263 GenericDescriptor::Dump(stream);
1264 fprintf(stream, " %22s = %d\n", "LinkedTrackID", LinkedTrackID);
1265 fprintf(stream, " %22s = %s\n", "SampleRate", SampleRate.EncodeString(identbuf, IdentBufferLen));
1266 fprintf(stream, " %22s = %s\n", "ContainerDuration", i64sz(ContainerDuration, identbuf));
1267 fprintf(stream, " %22s = %s\n", "EssenceContainer", EssenceContainer.EncodeString(identbuf, IdentBufferLen));
1268 fprintf(stream, " %22s = %s\n", "Codec", Codec.EncodeString(identbuf, IdentBufferLen));
1273 FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1275 return InterchangeObject::InitFromBuffer(p, l);
1280 FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1282 return InterchangeObject::WriteToBuffer(Buffer);
1285 //------------------------------------------------------------------------------------------
1286 // GenericSoundEssenceDescriptor
1290 GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d), Locked(0), AudioRefLevel(0), ChannelCount(0), QuantizationBits(0), DialNorm(0)
1293 m_UL = m_Dict->ul(MDD_GenericSoundEssenceDescriptor);
1296 GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1299 m_UL = m_Dict->ul(MDD_GenericSoundEssenceDescriptor);
1306 GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1309 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1310 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
1311 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
1312 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
1313 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
1314 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
1315 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, DialNorm));
1321 GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1324 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1325 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
1326 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
1327 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
1328 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
1329 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
1330 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, DialNorm));
1336 GenericSoundEssenceDescriptor::Copy(const GenericSoundEssenceDescriptor& rhs)
1338 FileDescriptor::Copy(rhs);
1339 AudioSamplingRate = rhs.AudioSamplingRate;
1340 Locked = rhs.Locked;
1341 AudioRefLevel = rhs.AudioRefLevel;
1342 ChannelCount = rhs.ChannelCount;
1343 QuantizationBits = rhs.QuantizationBits;
1344 DialNorm = rhs.DialNorm;
1349 GenericSoundEssenceDescriptor::Dump(FILE* stream)
1351 char identbuf[IdentBufferLen];
1357 FileDescriptor::Dump(stream);
1358 fprintf(stream, " %22s = %s\n", "AudioSamplingRate", AudioSamplingRate.EncodeString(identbuf, IdentBufferLen));
1359 fprintf(stream, " %22s = %d\n", "Locked", Locked);
1360 fprintf(stream, " %22s = %d\n", "AudioRefLevel", AudioRefLevel);
1361 fprintf(stream, " %22s = %d\n", "ChannelCount", ChannelCount);
1362 fprintf(stream, " %22s = %d\n", "QuantizationBits", QuantizationBits);
1363 fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm);
1368 GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1370 return InterchangeObject::InitFromBuffer(p, l);
1375 GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1377 return InterchangeObject::WriteToBuffer(Buffer);
1380 //------------------------------------------------------------------------------------------
1381 // WaveAudioDescriptor
1385 WaveAudioDescriptor::WaveAudioDescriptor(const Dictionary*& d) : GenericSoundEssenceDescriptor(d), m_Dict(d), BlockAlign(0), SequenceOffset(0), AvgBps(0)
1388 m_UL = m_Dict->ul(MDD_WaveAudioDescriptor);
1391 WaveAudioDescriptor::WaveAudioDescriptor(const WaveAudioDescriptor& rhs) : GenericSoundEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1394 m_UL = m_Dict->ul(MDD_WaveAudioDescriptor);
1401 WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1404 Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
1405 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
1406 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
1407 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(WaveAudioDescriptor, AvgBps));
1408 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(WaveAudioDescriptor, ChannelAssignment));
1414 WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1417 Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
1418 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
1419 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
1420 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(WaveAudioDescriptor, AvgBps));
1421 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(WaveAudioDescriptor, ChannelAssignment));
1427 WaveAudioDescriptor::Copy(const WaveAudioDescriptor& rhs)
1429 GenericSoundEssenceDescriptor::Copy(rhs);
1430 BlockAlign = rhs.BlockAlign;
1431 SequenceOffset = rhs.SequenceOffset;
1432 AvgBps = rhs.AvgBps;
1433 ChannelAssignment = rhs.ChannelAssignment;
1438 WaveAudioDescriptor::Dump(FILE* stream)
1440 char identbuf[IdentBufferLen];
1446 GenericSoundEssenceDescriptor::Dump(stream);
1447 fprintf(stream, " %22s = %d\n", "BlockAlign", BlockAlign);
1448 fprintf(stream, " %22s = %d\n", "SequenceOffset", SequenceOffset);
1449 fprintf(stream, " %22s = %d\n", "AvgBps", AvgBps);
1450 fprintf(stream, " %22s = %s\n", "ChannelAssignment", ChannelAssignment.EncodeString(identbuf, IdentBufferLen));
1455 WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1457 return InterchangeObject::InitFromBuffer(p, l);
1462 WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1464 return InterchangeObject::WriteToBuffer(Buffer);
1467 //------------------------------------------------------------------------------------------
1468 // GenericPictureEssenceDescriptor
1472 GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d), FrameLayout(0), StoredWidth(0), StoredHeight(0), DisplayWidth(0)
1475 m_UL = m_Dict->ul(MDD_GenericPictureEssenceDescriptor);
1478 GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1481 m_UL = m_Dict->ul(MDD_GenericPictureEssenceDescriptor);
1488 GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1491 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1492 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1493 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1494 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1495 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1496 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1497 if ( ASDCP_SUCCESS(result) ) {
1498 result = TLVSet.ReadUi32(OBJ_READ_ARGS_OPT(GenericPictureEssenceDescriptor, DisplayWidth));
1499 DisplayWidth.set_has_value( result == RESULT_OK );
1501 if ( ASDCP_SUCCESS(result) ) {
1502 result = TLVSet.ReadUi32(OBJ_READ_ARGS_OPT(GenericPictureEssenceDescriptor, DisplayHeight));
1503 DisplayHeight.set_has_value( result == RESULT_OK );
1505 if ( ASDCP_SUCCESS(result) ) {
1506 result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(GenericPictureEssenceDescriptor, Gamma));
1507 Gamma.set_has_value( result == RESULT_OK );
1509 if ( ASDCP_SUCCESS(result) ) {
1510 result = TLVSet.ReadUi8(OBJ_READ_ARGS_OPT(GenericPictureEssenceDescriptor, FieldDominance));
1511 FieldDominance.set_has_value( result == RESULT_OK );
1518 GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1521 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1522 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1523 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1524 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1525 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1526 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1527 if ( ASDCP_SUCCESS(result) && ! DisplayWidth.empty() ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS_OPT(GenericPictureEssenceDescriptor, DisplayWidth));
1528 if ( ASDCP_SUCCESS(result) && ! DisplayHeight.empty() ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS_OPT(GenericPictureEssenceDescriptor, DisplayHeight));
1529 if ( ASDCP_SUCCESS(result) && ! Gamma.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(GenericPictureEssenceDescriptor, Gamma));
1530 if ( ASDCP_SUCCESS(result) && ! FieldDominance.empty() ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS_OPT(GenericPictureEssenceDescriptor, FieldDominance));
1536 GenericPictureEssenceDescriptor::Copy(const GenericPictureEssenceDescriptor& rhs)
1538 FileDescriptor::Copy(rhs);
1539 FrameLayout = rhs.FrameLayout;
1540 StoredWidth = rhs.StoredWidth;
1541 StoredHeight = rhs.StoredHeight;
1542 AspectRatio = rhs.AspectRatio;
1543 PictureEssenceCoding = rhs.PictureEssenceCoding;
1544 DisplayWidth = rhs.DisplayWidth;
1545 DisplayHeight = rhs.DisplayHeight;
1547 FieldDominance = rhs.FieldDominance;
1552 GenericPictureEssenceDescriptor::Dump(FILE* stream)
1554 char identbuf[IdentBufferLen];
1560 FileDescriptor::Dump(stream);
1561 fprintf(stream, " %22s = %d\n", "FrameLayout", FrameLayout);
1562 fprintf(stream, " %22s = %d\n", "StoredWidth", StoredWidth);
1563 fprintf(stream, " %22s = %d\n", "StoredHeight", StoredHeight);
1564 fprintf(stream, " %22s = %s\n", "AspectRatio", AspectRatio.EncodeString(identbuf, IdentBufferLen));
1565 fprintf(stream, " %22s = %s\n", "PictureEssenceCoding", PictureEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1566 if ( ! DisplayWidth.empty() ) {
1567 fprintf(stream, " %22s = %d\n", "DisplayWidth", DisplayWidth.get());
1569 if ( ! DisplayHeight.empty() ) {
1570 fprintf(stream, " %22s = %d\n", "DisplayHeight", DisplayHeight.get());
1572 if ( ! Gamma.empty() ) {
1573 fprintf(stream, " %22s = %s\n", "Gamma", Gamma.get().EncodeString(identbuf, IdentBufferLen));
1575 if ( ! FieldDominance.empty() ) {
1576 fprintf(stream, " %22s = %d\n", "FieldDominance", FieldDominance.get());
1582 GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1584 return InterchangeObject::InitFromBuffer(p, l);
1589 GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1591 return InterchangeObject::WriteToBuffer(Buffer);
1594 //------------------------------------------------------------------------------------------
1595 // RGBAEssenceDescriptor
1599 RGBAEssenceDescriptor::RGBAEssenceDescriptor(const Dictionary*& d) : GenericPictureEssenceDescriptor(d), m_Dict(d), ComponentMaxRef(0), ComponentMinRef(0)
1602 m_UL = m_Dict->ul(MDD_RGBAEssenceDescriptor);
1605 RGBAEssenceDescriptor::RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1608 m_UL = m_Dict->ul(MDD_RGBAEssenceDescriptor);
1615 RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1618 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1619 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1620 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1626 RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1629 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1630 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1631 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1637 RGBAEssenceDescriptor::Copy(const RGBAEssenceDescriptor& rhs)
1639 GenericPictureEssenceDescriptor::Copy(rhs);
1640 ComponentMaxRef = rhs.ComponentMaxRef;
1641 ComponentMinRef = rhs.ComponentMinRef;
1646 RGBAEssenceDescriptor::Dump(FILE* stream)
1648 char identbuf[IdentBufferLen];
1654 GenericPictureEssenceDescriptor::Dump(stream);
1655 fprintf(stream, " %22s = %d\n", "ComponentMaxRef", ComponentMaxRef);
1656 fprintf(stream, " %22s = %d\n", "ComponentMinRef", ComponentMinRef);
1661 RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1663 return InterchangeObject::InitFromBuffer(p, l);
1668 RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1670 return InterchangeObject::WriteToBuffer(Buffer);
1673 //------------------------------------------------------------------------------------------
1674 // JPEG2000PictureSubDescriptor
1678 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)
1681 m_UL = m_Dict->ul(MDD_JPEG2000PictureSubDescriptor);
1684 JPEG2000PictureSubDescriptor::JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
1687 m_UL = m_Dict->ul(MDD_JPEG2000PictureSubDescriptor);
1694 JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1697 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1698 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1699 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1700 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1701 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1702 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1703 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1704 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1705 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1706 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1707 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Csize));
1708 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1709 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1710 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1716 JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1719 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1720 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1721 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1722 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1723 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1724 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1725 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1726 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1727 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1728 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1729 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Csize));
1730 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1731 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1732 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1738 JPEG2000PictureSubDescriptor::Copy(const JPEG2000PictureSubDescriptor& rhs)
1740 InterchangeObject::Copy(rhs);
1744 XOsize = rhs.XOsize;
1745 YOsize = rhs.YOsize;
1746 XTsize = rhs.XTsize;
1747 YTsize = rhs.YTsize;
1748 XTOsize = rhs.XTOsize;
1749 YTOsize = rhs.YTOsize;
1751 PictureComponentSizing = rhs.PictureComponentSizing;
1752 CodingStyleDefault = rhs.CodingStyleDefault;
1753 QuantizationDefault = rhs.QuantizationDefault;
1758 JPEG2000PictureSubDescriptor::Dump(FILE* stream)
1760 char identbuf[IdentBufferLen];
1766 InterchangeObject::Dump(stream);
1767 fprintf(stream, " %22s = %d\n", "Rsize", Rsize);
1768 fprintf(stream, " %22s = %d\n", "Xsize", Xsize);
1769 fprintf(stream, " %22s = %d\n", "Ysize", Ysize);
1770 fprintf(stream, " %22s = %d\n", "XOsize", XOsize);
1771 fprintf(stream, " %22s = %d\n", "YOsize", YOsize);
1772 fprintf(stream, " %22s = %d\n", "XTsize", XTsize);
1773 fprintf(stream, " %22s = %d\n", "YTsize", YTsize);
1774 fprintf(stream, " %22s = %d\n", "XTOsize", XTOsize);
1775 fprintf(stream, " %22s = %d\n", "YTOsize", YTOsize);
1776 fprintf(stream, " %22s = %d\n", "Csize", Csize);
1777 fprintf(stream, " %22s = %s\n", "PictureComponentSizing", PictureComponentSizing.EncodeString(identbuf, IdentBufferLen));
1778 fprintf(stream, " %22s = %s\n", "CodingStyleDefault", CodingStyleDefault.EncodeString(identbuf, IdentBufferLen));
1779 fprintf(stream, " %22s = %s\n", "QuantizationDefault", QuantizationDefault.EncodeString(identbuf, IdentBufferLen));
1784 JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1786 return InterchangeObject::InitFromBuffer(p, l);
1791 JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1793 return InterchangeObject::WriteToBuffer(Buffer);
1796 //------------------------------------------------------------------------------------------
1797 // CDCIEssenceDescriptor
1801 CDCIEssenceDescriptor::CDCIEssenceDescriptor(const Dictionary*& d) : GenericPictureEssenceDescriptor(d), m_Dict(d), ComponentDepth(0), HorizontalSubsampling(0), VerticalSubsampling(0), ColorSiting(0)
1804 m_UL = m_Dict->ul(MDD_CDCIEssenceDescriptor);
1807 CDCIEssenceDescriptor::CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1810 m_UL = m_Dict->ul(MDD_CDCIEssenceDescriptor);
1817 CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1820 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1821 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1822 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1823 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1824 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(CDCIEssenceDescriptor, ColorSiting));
1830 CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1833 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1834 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1835 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1836 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1837 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ColorSiting));
1843 CDCIEssenceDescriptor::Copy(const CDCIEssenceDescriptor& rhs)
1845 GenericPictureEssenceDescriptor::Copy(rhs);
1846 ComponentDepth = rhs.ComponentDepth;
1847 HorizontalSubsampling = rhs.HorizontalSubsampling;
1848 VerticalSubsampling = rhs.VerticalSubsampling;
1849 ColorSiting = rhs.ColorSiting;
1854 CDCIEssenceDescriptor::Dump(FILE* stream)
1856 char identbuf[IdentBufferLen];
1862 GenericPictureEssenceDescriptor::Dump(stream);
1863 fprintf(stream, " %22s = %d\n", "ComponentDepth", ComponentDepth);
1864 fprintf(stream, " %22s = %d\n", "HorizontalSubsampling", HorizontalSubsampling);
1865 fprintf(stream, " %22s = %d\n", "VerticalSubsampling", VerticalSubsampling);
1866 fprintf(stream, " %22s = %d\n", "ColorSiting", ColorSiting);
1871 CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1873 return InterchangeObject::InitFromBuffer(p, l);
1878 CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1880 return InterchangeObject::WriteToBuffer(Buffer);
1883 //------------------------------------------------------------------------------------------
1884 // MPEG2VideoDescriptor
1888 MPEG2VideoDescriptor::MPEG2VideoDescriptor(const Dictionary*& d) : CDCIEssenceDescriptor(d), m_Dict(d), CodedContentType(0), LowDelay(0), BitRate(0), ProfileAndLevel(0)
1891 m_UL = m_Dict->ul(MDD_MPEG2VideoDescriptor);
1894 MPEG2VideoDescriptor::MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs) : CDCIEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1897 m_UL = m_Dict->ul(MDD_MPEG2VideoDescriptor);
1904 MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1907 Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
1908 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
1909 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
1910 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MPEG2VideoDescriptor, BitRate));
1911 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1917 MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1920 Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
1921 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
1922 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
1923 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, BitRate));
1924 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1930 MPEG2VideoDescriptor::Copy(const MPEG2VideoDescriptor& rhs)
1932 CDCIEssenceDescriptor::Copy(rhs);
1933 CodedContentType = rhs.CodedContentType;
1934 LowDelay = rhs.LowDelay;
1935 BitRate = rhs.BitRate;
1936 ProfileAndLevel = rhs.ProfileAndLevel;
1941 MPEG2VideoDescriptor::Dump(FILE* stream)
1943 char identbuf[IdentBufferLen];
1949 CDCIEssenceDescriptor::Dump(stream);
1950 fprintf(stream, " %22s = %d\n", "CodedContentType", CodedContentType);
1951 fprintf(stream, " %22s = %d\n", "LowDelay", LowDelay);
1952 fprintf(stream, " %22s = %d\n", "BitRate", BitRate);
1953 fprintf(stream, " %22s = %d\n", "ProfileAndLevel", ProfileAndLevel);
1958 MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1960 return InterchangeObject::InitFromBuffer(p, l);
1965 MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1967 return InterchangeObject::WriteToBuffer(Buffer);
1970 //------------------------------------------------------------------------------------------
1975 DMSegment::DMSegment(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), EventStartPosition(0), Duration(0)
1978 m_UL = m_Dict->ul(MDD_DMSegment);
1981 DMSegment::DMSegment(const DMSegment& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
1984 m_UL = m_Dict->ul(MDD_DMSegment);
1991 DMSegment::InitFromTLVSet(TLVReader& TLVSet)
1994 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1995 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
1996 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
1997 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration));
1998 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment));
1999 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework));
2005 DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
2008 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2009 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
2010 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
2011 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration));
2012 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment));
2013 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework));
2019 DMSegment::Copy(const DMSegment& rhs)
2021 InterchangeObject::Copy(rhs);
2022 DataDefinition = rhs.DataDefinition;
2023 EventStartPosition = rhs.EventStartPosition;
2024 Duration = rhs.Duration;
2025 EventComment = rhs.EventComment;
2026 DMFramework = rhs.DMFramework;
2031 DMSegment::Dump(FILE* stream)
2033 char identbuf[IdentBufferLen];
2039 InterchangeObject::Dump(stream);
2040 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
2041 fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf));
2042 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
2043 fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen));
2044 fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen));
2049 DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
2051 return InterchangeObject::InitFromBuffer(p, l);
2056 DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2058 return InterchangeObject::WriteToBuffer(Buffer);
2061 //------------------------------------------------------------------------------------------
2062 // CryptographicFramework
2066 CryptographicFramework::CryptographicFramework(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2069 m_UL = m_Dict->ul(MDD_CryptographicFramework);
2072 CryptographicFramework::CryptographicFramework(const CryptographicFramework& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2075 m_UL = m_Dict->ul(MDD_CryptographicFramework);
2082 CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
2085 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2086 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
2092 CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
2095 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2096 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
2102 CryptographicFramework::Copy(const CryptographicFramework& rhs)
2104 InterchangeObject::Copy(rhs);
2105 ContextSR = rhs.ContextSR;
2110 CryptographicFramework::Dump(FILE* stream)
2112 char identbuf[IdentBufferLen];
2118 InterchangeObject::Dump(stream);
2119 fprintf(stream, " %22s = %s\n", "ContextSR", ContextSR.EncodeString(identbuf, IdentBufferLen));
2124 CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
2126 return InterchangeObject::InitFromBuffer(p, l);
2131 CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2133 return InterchangeObject::WriteToBuffer(Buffer);
2136 //------------------------------------------------------------------------------------------
2137 // CryptographicContext
2141 CryptographicContext::CryptographicContext(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2144 m_UL = m_Dict->ul(MDD_CryptographicContext);
2147 CryptographicContext::CryptographicContext(const CryptographicContext& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2150 m_UL = m_Dict->ul(MDD_CryptographicContext);
2157 CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
2160 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2161 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
2162 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
2163 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CipherAlgorithm));
2164 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, MICAlgorithm));
2165 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CryptographicKeyID));
2171 CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
2174 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2175 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
2176 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
2177 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CipherAlgorithm));
2178 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, MICAlgorithm));
2179 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CryptographicKeyID));
2185 CryptographicContext::Copy(const CryptographicContext& rhs)
2187 InterchangeObject::Copy(rhs);
2188 ContextID = rhs.ContextID;
2189 SourceEssenceContainer = rhs.SourceEssenceContainer;
2190 CipherAlgorithm = rhs.CipherAlgorithm;
2191 MICAlgorithm = rhs.MICAlgorithm;
2192 CryptographicKeyID = rhs.CryptographicKeyID;
2197 CryptographicContext::Dump(FILE* stream)
2199 char identbuf[IdentBufferLen];
2205 InterchangeObject::Dump(stream);
2206 fprintf(stream, " %22s = %s\n", "ContextID", ContextID.EncodeString(identbuf, IdentBufferLen));
2207 fprintf(stream, " %22s = %s\n", "SourceEssenceContainer", SourceEssenceContainer.EncodeString(identbuf, IdentBufferLen));
2208 fprintf(stream, " %22s = %s\n", "CipherAlgorithm", CipherAlgorithm.EncodeString(identbuf, IdentBufferLen));
2209 fprintf(stream, " %22s = %s\n", "MICAlgorithm", MICAlgorithm.EncodeString(identbuf, IdentBufferLen));
2210 fprintf(stream, " %22s = %s\n", "CryptographicKeyID", CryptographicKeyID.EncodeString(identbuf, IdentBufferLen));
2215 CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
2217 return InterchangeObject::InitFromBuffer(p, l);
2222 CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2224 return InterchangeObject::WriteToBuffer(Buffer);
2227 //------------------------------------------------------------------------------------------
2228 // GenericDataEssenceDescriptor
2232 GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d)
2235 m_UL = m_Dict->ul(MDD_GenericDataEssenceDescriptor);
2238 GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const GenericDataEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2241 m_UL = m_Dict->ul(MDD_GenericDataEssenceDescriptor);
2248 GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2251 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
2252 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
2258 GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2261 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
2262 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
2268 GenericDataEssenceDescriptor::Copy(const GenericDataEssenceDescriptor& rhs)
2270 FileDescriptor::Copy(rhs);
2271 DataEssenceCoding = rhs.DataEssenceCoding;
2276 GenericDataEssenceDescriptor::Dump(FILE* stream)
2278 char identbuf[IdentBufferLen];
2284 FileDescriptor::Dump(stream);
2285 fprintf(stream, " %22s = %s\n", "DataEssenceCoding", DataEssenceCoding.EncodeString(identbuf, IdentBufferLen));
2290 GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2292 return InterchangeObject::InitFromBuffer(p, l);
2297 GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2299 return InterchangeObject::WriteToBuffer(Buffer);
2302 //------------------------------------------------------------------------------------------
2303 // TimedTextDescriptor
2307 TimedTextDescriptor::TimedTextDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
2310 m_UL = m_Dict->ul(MDD_TimedTextDescriptor);
2313 TimedTextDescriptor::TimedTextDescriptor(const TimedTextDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2316 m_UL = m_Dict->ul(MDD_TimedTextDescriptor);
2323 TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2326 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
2327 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, ResourceID));
2328 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, UCSEncoding));
2329 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, NamespaceURI));
2335 TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2338 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
2339 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, ResourceID));
2340 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
2341 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, NamespaceURI));
2347 TimedTextDescriptor::Copy(const TimedTextDescriptor& rhs)
2349 GenericDataEssenceDescriptor::Copy(rhs);
2350 ResourceID = rhs.ResourceID;
2351 UCSEncoding = rhs.UCSEncoding;
2352 NamespaceURI = rhs.NamespaceURI;
2357 TimedTextDescriptor::Dump(FILE* stream)
2359 char identbuf[IdentBufferLen];
2365 GenericDataEssenceDescriptor::Dump(stream);
2366 fprintf(stream, " %22s = %s\n", "ResourceID", ResourceID.EncodeString(identbuf, IdentBufferLen));
2367 fprintf(stream, " %22s = %s\n", "UCSEncoding", UCSEncoding.EncodeString(identbuf, IdentBufferLen));
2368 fprintf(stream, " %22s = %s\n", "NamespaceURI", NamespaceURI.EncodeString(identbuf, IdentBufferLen));
2373 TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2375 return InterchangeObject::InitFromBuffer(p, l);
2380 TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2382 return InterchangeObject::WriteToBuffer(Buffer);
2385 //------------------------------------------------------------------------------------------
2386 // TimedTextResourceSubDescriptor
2390 TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), EssenceStreamID(0)
2393 m_UL = m_Dict->ul(MDD_TimedTextResourceSubDescriptor);
2396 TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const TimedTextResourceSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2399 m_UL = m_Dict->ul(MDD_TimedTextResourceSubDescriptor);
2406 TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2409 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2410 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
2411 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
2412 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
2418 TimedTextResourceSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2421 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2422 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
2423 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
2424 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
2430 TimedTextResourceSubDescriptor::Copy(const TimedTextResourceSubDescriptor& rhs)
2432 InterchangeObject::Copy(rhs);
2433 AncillaryResourceID = rhs.AncillaryResourceID;
2434 MIMEMediaType = rhs.MIMEMediaType;
2435 EssenceStreamID = rhs.EssenceStreamID;
2440 TimedTextResourceSubDescriptor::Dump(FILE* stream)
2442 char identbuf[IdentBufferLen];
2448 InterchangeObject::Dump(stream);
2449 fprintf(stream, " %22s = %s\n", "AncillaryResourceID", AncillaryResourceID.EncodeString(identbuf, IdentBufferLen));
2450 fprintf(stream, " %22s = %s\n", "MIMEMediaType", MIMEMediaType.EncodeString(identbuf, IdentBufferLen));
2451 fprintf(stream, " %22s = %d\n", "EssenceStreamID", EssenceStreamID);
2456 TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2458 return InterchangeObject::InitFromBuffer(p, l);
2463 TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2465 return InterchangeObject::WriteToBuffer(Buffer);
2468 //------------------------------------------------------------------------------------------
2469 // StereoscopicPictureSubDescriptor
2473 StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2476 m_UL = m_Dict->ul(MDD_StereoscopicPictureSubDescriptor);
2479 StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const StereoscopicPictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2482 m_UL = m_Dict->ul(MDD_StereoscopicPictureSubDescriptor);
2489 StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2492 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2498 StereoscopicPictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2501 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2507 StereoscopicPictureSubDescriptor::Copy(const StereoscopicPictureSubDescriptor& rhs)
2509 InterchangeObject::Copy(rhs);
2514 StereoscopicPictureSubDescriptor::Dump(FILE* stream)
2516 char identbuf[IdentBufferLen];
2522 InterchangeObject::Dump(stream);
2527 StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2529 return InterchangeObject::InitFromBuffer(p, l);
2534 StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2536 return InterchangeObject::WriteToBuffer(Buffer);
2539 //------------------------------------------------------------------------------------------
2544 NetworkLocator::NetworkLocator(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2547 m_UL = m_Dict->ul(MDD_NetworkLocator);
2550 NetworkLocator::NetworkLocator(const NetworkLocator& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2553 m_UL = m_Dict->ul(MDD_NetworkLocator);
2560 NetworkLocator::InitFromTLVSet(TLVReader& TLVSet)
2563 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2564 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(NetworkLocator, URLString));
2570 NetworkLocator::WriteToTLVSet(TLVWriter& TLVSet)
2573 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2574 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(NetworkLocator, URLString));
2580 NetworkLocator::Copy(const NetworkLocator& rhs)
2582 InterchangeObject::Copy(rhs);
2583 URLString = rhs.URLString;
2588 NetworkLocator::Dump(FILE* stream)
2590 char identbuf[IdentBufferLen];
2596 InterchangeObject::Dump(stream);
2597 fprintf(stream, " %22s = %s\n", "URLString", URLString.EncodeString(identbuf, IdentBufferLen));
2602 NetworkLocator::InitFromBuffer(const byte_t* p, ui32_t l)
2604 return InterchangeObject::InitFromBuffer(p, l);
2609 NetworkLocator::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2611 return InterchangeObject::WriteToBuffer(Buffer);
2614 //------------------------------------------------------------------------------------------
2615 // MCALabelSubDescriptor
2619 MCALabelSubDescriptor::MCALabelSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), MCAChannelID(0)
2622 m_UL = m_Dict->ul(MDD_MCALabelSubDescriptor);
2625 MCALabelSubDescriptor::MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2628 m_UL = m_Dict->ul(MDD_MCALabelSubDescriptor);
2635 MCALabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2638 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2639 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCALabelDictionaryID));
2640 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCALinkID));
2641 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCATagSymbol));
2642 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCATagName));
2643 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MCALabelSubDescriptor, MCAChannelID));
2644 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, RFC5646SpokenLanguage));
2650 MCALabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2653 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2654 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCALabelDictionaryID));
2655 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCALinkID));
2656 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCATagSymbol));
2657 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCATagName));
2658 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCAChannelID));
2659 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, RFC5646SpokenLanguage));
2665 MCALabelSubDescriptor::Copy(const MCALabelSubDescriptor& rhs)
2667 InterchangeObject::Copy(rhs);
2668 MCALabelDictionaryID = rhs.MCALabelDictionaryID;
2669 MCALinkID = rhs.MCALinkID;
2670 MCATagSymbol = rhs.MCATagSymbol;
2671 MCATagName = rhs.MCATagName;
2672 MCAChannelID = rhs.MCAChannelID;
2673 RFC5646SpokenLanguage = rhs.RFC5646SpokenLanguage;
2678 MCALabelSubDescriptor::Dump(FILE* stream)
2680 char identbuf[IdentBufferLen];
2686 InterchangeObject::Dump(stream);
2687 fprintf(stream, " %22s = %s\n", "MCALabelDictionaryID", MCALabelDictionaryID.EncodeString(identbuf, IdentBufferLen));
2688 fprintf(stream, " %22s = %s\n", "MCALinkID", MCALinkID.EncodeString(identbuf, IdentBufferLen));
2689 fprintf(stream, " %22s = %s\n", "MCATagSymbol", MCATagSymbol.EncodeString(identbuf, IdentBufferLen));
2690 fprintf(stream, " %22s = %s\n", "MCATagName", MCATagName.EncodeString(identbuf, IdentBufferLen));
2691 fprintf(stream, " %22s = %d\n", "MCAChannelID", MCAChannelID);
2692 fprintf(stream, " %22s = %s\n", "RFC5646SpokenLanguage", RFC5646SpokenLanguage.EncodeString(identbuf, IdentBufferLen));
2697 MCALabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2699 return InterchangeObject::InitFromBuffer(p, l);
2704 MCALabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2706 return InterchangeObject::WriteToBuffer(Buffer);
2709 //------------------------------------------------------------------------------------------
2710 // AudioChannelLabelSubDescriptor
2714 AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
2717 m_UL = m_Dict->ul(MDD_AudioChannelLabelSubDescriptor);
2720 AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const AudioChannelLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2723 m_UL = m_Dict->ul(MDD_AudioChannelLabelSubDescriptor);
2730 AudioChannelLabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2733 Result_t result = MCALabelSubDescriptor::InitFromTLVSet(TLVSet);
2734 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(AudioChannelLabelSubDescriptor, SoundfieldGroupLinkID));
2740 AudioChannelLabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2743 Result_t result = MCALabelSubDescriptor::WriteToTLVSet(TLVSet);
2744 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(AudioChannelLabelSubDescriptor, SoundfieldGroupLinkID));
2750 AudioChannelLabelSubDescriptor::Copy(const AudioChannelLabelSubDescriptor& rhs)
2752 MCALabelSubDescriptor::Copy(rhs);
2753 SoundfieldGroupLinkID = rhs.SoundfieldGroupLinkID;
2758 AudioChannelLabelSubDescriptor::Dump(FILE* stream)
2760 char identbuf[IdentBufferLen];
2766 MCALabelSubDescriptor::Dump(stream);
2767 fprintf(stream, " %22s = %s\n", "SoundfieldGroupLinkID", SoundfieldGroupLinkID.EncodeString(identbuf, IdentBufferLen));
2772 AudioChannelLabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2774 return InterchangeObject::InitFromBuffer(p, l);
2779 AudioChannelLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2781 return InterchangeObject::WriteToBuffer(Buffer);
2784 //------------------------------------------------------------------------------------------
2785 // SoundfieldGroupLabelSubDescriptor
2789 SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
2792 m_UL = m_Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor);
2795 SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const SoundfieldGroupLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2798 m_UL = m_Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor);
2805 SoundfieldGroupLabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2808 Result_t result = MCALabelSubDescriptor::InitFromTLVSet(TLVSet);
2809 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SoundfieldGroupLabelSubDescriptor, GroupOfSoundfieldGroupsLinkID));
2815 SoundfieldGroupLabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2818 Result_t result = MCALabelSubDescriptor::WriteToTLVSet(TLVSet);
2819 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SoundfieldGroupLabelSubDescriptor, GroupOfSoundfieldGroupsLinkID));
2825 SoundfieldGroupLabelSubDescriptor::Copy(const SoundfieldGroupLabelSubDescriptor& rhs)
2827 MCALabelSubDescriptor::Copy(rhs);
2828 GroupOfSoundfieldGroupsLinkID = rhs.GroupOfSoundfieldGroupsLinkID;
2833 SoundfieldGroupLabelSubDescriptor::Dump(FILE* stream)
2835 char identbuf[IdentBufferLen];
2841 MCALabelSubDescriptor::Dump(stream);
2842 fprintf(stream, " %22s:\n", "GroupOfSoundfieldGroupsLinkID");
2843 GroupOfSoundfieldGroupsLinkID.Dump(stream);
2848 SoundfieldGroupLabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2850 return InterchangeObject::InitFromBuffer(p, l);
2855 SoundfieldGroupLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2857 return InterchangeObject::WriteToBuffer(Buffer);
2860 //------------------------------------------------------------------------------------------
2861 // GroupOfSoundfieldGroupsLabelSubDescriptor
2865 GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
2868 m_UL = m_Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor);
2871 GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2874 m_UL = m_Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor);
2881 GroupOfSoundfieldGroupsLabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2884 Result_t result = MCALabelSubDescriptor::InitFromTLVSet(TLVSet);
2890 GroupOfSoundfieldGroupsLabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2893 Result_t result = MCALabelSubDescriptor::WriteToTLVSet(TLVSet);
2899 GroupOfSoundfieldGroupsLabelSubDescriptor::Copy(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs)
2901 MCALabelSubDescriptor::Copy(rhs);
2906 GroupOfSoundfieldGroupsLabelSubDescriptor::Dump(FILE* stream)
2908 char identbuf[IdentBufferLen];
2914 MCALabelSubDescriptor::Dump(stream);
2919 GroupOfSoundfieldGroupsLabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2921 return InterchangeObject::InitFromBuffer(p, l);
2926 GroupOfSoundfieldGroupsLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2928 return InterchangeObject::WriteToBuffer(Buffer);
2931 //------------------------------------------------------------------------------------------
2936 DCDataDescriptor::DCDataDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
2939 m_UL = m_Dict->ul(MDD_DCDataDescriptor);
2942 DCDataDescriptor::DCDataDescriptor(const DCDataDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2945 m_UL = m_Dict->ul(MDD_DCDataDescriptor);
2952 DCDataDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2955 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
2961 DCDataDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2964 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
2970 DCDataDescriptor::Copy(const DCDataDescriptor& rhs)
2972 GenericDataEssenceDescriptor::Copy(rhs);
2977 DCDataDescriptor::Dump(FILE* stream)
2979 char identbuf[IdentBufferLen];
2985 GenericDataEssenceDescriptor::Dump(stream);
2990 DCDataDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2992 return InterchangeObject::InitFromBuffer(p, l);
2997 DCDataDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2999 return InterchangeObject::WriteToBuffer(Buffer);
3002 //------------------------------------------------------------------------------------------
3003 // DolbyAtmosSubDescriptor
3007 DolbyAtmosSubDescriptor::DolbyAtmosSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), FirstFrame(0), MaxChannelCount(0), MaxObjectCount(0), AtmosVersion(0)
3010 m_UL = m_Dict->ul(MDD_DolbyAtmosSubDescriptor);
3013 DolbyAtmosSubDescriptor::DolbyAtmosSubDescriptor(const DolbyAtmosSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
3016 m_UL = m_Dict->ul(MDD_DolbyAtmosSubDescriptor);
3023 DolbyAtmosSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
3026 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
3027 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DolbyAtmosSubDescriptor, AtmosID));
3028 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(DolbyAtmosSubDescriptor, FirstFrame));
3029 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(DolbyAtmosSubDescriptor, MaxChannelCount));
3030 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(DolbyAtmosSubDescriptor, MaxObjectCount));
3031 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(DolbyAtmosSubDescriptor, AtmosVersion));
3037 DolbyAtmosSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
3040 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
3041 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DolbyAtmosSubDescriptor, AtmosID));
3042 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(DolbyAtmosSubDescriptor, FirstFrame));
3043 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(DolbyAtmosSubDescriptor, MaxChannelCount));
3044 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(DolbyAtmosSubDescriptor, MaxObjectCount));
3045 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(DolbyAtmosSubDescriptor, AtmosVersion));
3051 DolbyAtmosSubDescriptor::Copy(const DolbyAtmosSubDescriptor& rhs)
3053 InterchangeObject::Copy(rhs);
3054 AtmosID = rhs.AtmosID;
3055 FirstFrame = rhs.FirstFrame;
3056 MaxChannelCount = rhs.MaxChannelCount;
3057 MaxObjectCount = rhs.MaxObjectCount;
3058 AtmosVersion = rhs.AtmosVersion;
3063 DolbyAtmosSubDescriptor::Dump(FILE* stream)
3065 char identbuf[IdentBufferLen];
3071 InterchangeObject::Dump(stream);
3072 fprintf(stream, " %22s = %s\n", "AtmosID", AtmosID.EncodeString(identbuf, IdentBufferLen));
3073 fprintf(stream, " %22s = %d\n", "FirstFrame", FirstFrame);
3074 fprintf(stream, " %22s = %d\n", "MaxChannelCount", MaxChannelCount);
3075 fprintf(stream, " %22s = %d\n", "MaxObjectCount", MaxObjectCount);
3076 fprintf(stream, " %22s = %d\n", "AtmosVersion", AtmosVersion);
3081 DolbyAtmosSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
3083 return InterchangeObject::InitFromBuffer(p, l);
3088 DolbyAtmosSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
3090 return InterchangeObject::WriteToBuffer(Buffer);