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); }
79 ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
82 SetObjectFactory(Dict->ul(MDD_Preface), Preface_Factory);
83 SetObjectFactory(Dict->ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
85 SetObjectFactory(Dict->ul(MDD_Identification), Identification_Factory);
86 SetObjectFactory(Dict->ul(MDD_ContentStorage), ContentStorage_Factory);
87 SetObjectFactory(Dict->ul(MDD_EssenceContainerData), EssenceContainerData_Factory);
88 SetObjectFactory(Dict->ul(MDD_MaterialPackage), MaterialPackage_Factory);
89 SetObjectFactory(Dict->ul(MDD_SourcePackage), SourcePackage_Factory);
90 SetObjectFactory(Dict->ul(MDD_StaticTrack), StaticTrack_Factory);
91 SetObjectFactory(Dict->ul(MDD_Track), Track_Factory);
92 SetObjectFactory(Dict->ul(MDD_Sequence), Sequence_Factory);
93 SetObjectFactory(Dict->ul(MDD_SourceClip), SourceClip_Factory);
94 SetObjectFactory(Dict->ul(MDD_TimecodeComponent), TimecodeComponent_Factory);
95 SetObjectFactory(Dict->ul(MDD_FileDescriptor), FileDescriptor_Factory);
96 SetObjectFactory(Dict->ul(MDD_GenericSoundEssenceDescriptor), GenericSoundEssenceDescriptor_Factory);
97 SetObjectFactory(Dict->ul(MDD_WaveAudioDescriptor), WaveAudioDescriptor_Factory);
98 SetObjectFactory(Dict->ul(MDD_GenericPictureEssenceDescriptor), GenericPictureEssenceDescriptor_Factory);
99 SetObjectFactory(Dict->ul(MDD_RGBAEssenceDescriptor), RGBAEssenceDescriptor_Factory);
100 SetObjectFactory(Dict->ul(MDD_JPEG2000PictureSubDescriptor), JPEG2000PictureSubDescriptor_Factory);
101 SetObjectFactory(Dict->ul(MDD_CDCIEssenceDescriptor), CDCIEssenceDescriptor_Factory);
102 SetObjectFactory(Dict->ul(MDD_MPEG2VideoDescriptor), MPEG2VideoDescriptor_Factory);
103 SetObjectFactory(Dict->ul(MDD_DMSegment), DMSegment_Factory);
104 SetObjectFactory(Dict->ul(MDD_CryptographicFramework), CryptographicFramework_Factory);
105 SetObjectFactory(Dict->ul(MDD_CryptographicContext), CryptographicContext_Factory);
106 SetObjectFactory(Dict->ul(MDD_GenericDataEssenceDescriptor), GenericDataEssenceDescriptor_Factory);
107 SetObjectFactory(Dict->ul(MDD_TimedTextDescriptor), TimedTextDescriptor_Factory);
108 SetObjectFactory(Dict->ul(MDD_TimedTextResourceSubDescriptor), TimedTextResourceSubDescriptor_Factory);
109 SetObjectFactory(Dict->ul(MDD_StereoscopicPictureSubDescriptor), StereoscopicPictureSubDescriptor_Factory);
110 SetObjectFactory(Dict->ul(MDD_NetworkLocator), NetworkLocator_Factory);
111 SetObjectFactory(Dict->ul(MDD_MCALabelSubDescriptor), MCALabelSubDescriptor_Factory);
112 SetObjectFactory(Dict->ul(MDD_AudioChannelLabelSubDescriptor), AudioChannelLabelSubDescriptor_Factory);
113 SetObjectFactory(Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor), SoundfieldGroupLabelSubDescriptor_Factory);
114 SetObjectFactory(Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor), GroupOfSoundfieldGroupsLabelSubDescriptor_Factory);
117 //------------------------------------------------------------------------------------------
122 //------------------------------------------------------------------------------------------
127 Identification::Identification(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
130 m_UL = m_Dict->ul(MDD_Identification);
133 Identification::Identification(const Identification& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
136 m_UL = m_Dict->ul(MDD_Identification);
143 Identification::InitFromTLVSet(TLVReader& TLVSet)
146 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
147 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
148 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
149 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductName));
150 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductVersion));
151 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, VersionString));
152 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductUID));
153 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ModificationDate));
154 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ToolkitVersion));
155 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, Platform));
161 Identification::WriteToTLVSet(TLVWriter& TLVSet)
164 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
165 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
166 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
167 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductName));
168 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductVersion));
169 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, VersionString));
170 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductUID));
171 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ModificationDate));
172 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ToolkitVersion));
173 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, Platform));
179 Identification::Copy(const Identification& rhs)
181 InterchangeObject::Copy(rhs);
182 ThisGenerationUID = rhs.ThisGenerationUID;
183 CompanyName = rhs.CompanyName;
184 ProductName = rhs.ProductName;
185 ProductVersion = rhs.ProductVersion;
186 VersionString = rhs.VersionString;
187 ProductUID = rhs.ProductUID;
188 ModificationDate = rhs.ModificationDate;
189 ToolkitVersion = rhs.ToolkitVersion;
190 Platform = rhs.Platform;
195 Identification::Dump(FILE* stream)
197 char identbuf[IdentBufferLen];
203 InterchangeObject::Dump(stream);
204 fprintf(stream, " %22s = %s\n", "ThisGenerationUID", ThisGenerationUID.EncodeString(identbuf, IdentBufferLen));
205 fprintf(stream, " %22s = %s\n", "CompanyName", CompanyName.EncodeString(identbuf, IdentBufferLen));
206 fprintf(stream, " %22s = %s\n", "ProductName", ProductName.EncodeString(identbuf, IdentBufferLen));
207 fprintf(stream, " %22s = %s\n", "ProductVersion", ProductVersion.EncodeString(identbuf, IdentBufferLen));
208 fprintf(stream, " %22s = %s\n", "VersionString", VersionString.EncodeString(identbuf, IdentBufferLen));
209 fprintf(stream, " %22s = %s\n", "ProductUID", ProductUID.EncodeString(identbuf, IdentBufferLen));
210 fprintf(stream, " %22s = %s\n", "ModificationDate", ModificationDate.EncodeString(identbuf, IdentBufferLen));
211 fprintf(stream, " %22s = %s\n", "ToolkitVersion", ToolkitVersion.EncodeString(identbuf, IdentBufferLen));
212 fprintf(stream, " %22s = %s\n", "Platform", Platform.EncodeString(identbuf, IdentBufferLen));
217 Identification::InitFromBuffer(const byte_t* p, ui32_t l)
219 return InterchangeObject::InitFromBuffer(p, l);
224 Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
226 return InterchangeObject::WriteToBuffer(Buffer);
229 //------------------------------------------------------------------------------------------
234 ContentStorage::ContentStorage(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
237 m_UL = m_Dict->ul(MDD_ContentStorage);
240 ContentStorage::ContentStorage(const ContentStorage& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
243 m_UL = m_Dict->ul(MDD_ContentStorage);
250 ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
253 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
254 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
255 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
261 ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
264 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
265 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
266 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
272 ContentStorage::Copy(const ContentStorage& rhs)
274 InterchangeObject::Copy(rhs);
275 Packages = rhs.Packages;
276 EssenceContainerData = rhs.EssenceContainerData;
281 ContentStorage::Dump(FILE* stream)
283 char identbuf[IdentBufferLen];
289 InterchangeObject::Dump(stream);
290 fprintf(stream, " %22s:\n", "Packages");
291 Packages.Dump(stream);
292 fprintf(stream, " %22s:\n", "EssenceContainerData");
293 EssenceContainerData.Dump(stream);
298 ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
300 return InterchangeObject::InitFromBuffer(p, l);
305 ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
307 return InterchangeObject::WriteToBuffer(Buffer);
310 //------------------------------------------------------------------------------------------
311 // EssenceContainerData
315 EssenceContainerData::EssenceContainerData(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), IndexSID(0), BodySID(0)
318 m_UL = m_Dict->ul(MDD_EssenceContainerData);
321 EssenceContainerData::EssenceContainerData(const EssenceContainerData& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
324 m_UL = m_Dict->ul(MDD_EssenceContainerData);
331 EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
334 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
335 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
336 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
337 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
343 EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
346 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
347 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
348 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
349 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
355 EssenceContainerData::Copy(const EssenceContainerData& rhs)
357 InterchangeObject::Copy(rhs);
358 LinkedPackageUID = rhs.LinkedPackageUID;
359 IndexSID = rhs.IndexSID;
360 BodySID = rhs.BodySID;
365 EssenceContainerData::Dump(FILE* stream)
367 char identbuf[IdentBufferLen];
373 InterchangeObject::Dump(stream);
374 fprintf(stream, " %22s = %s\n", "LinkedPackageUID", LinkedPackageUID.EncodeString(identbuf, IdentBufferLen));
375 fprintf(stream, " %22s = %d\n", "IndexSID", IndexSID);
376 fprintf(stream, " %22s = %d\n", "BodySID", BodySID);
381 EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
383 return InterchangeObject::InitFromBuffer(p, l);
388 EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
390 return InterchangeObject::WriteToBuffer(Buffer);
393 //------------------------------------------------------------------------------------------
397 GenericPackage::GenericPackage(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
399 GenericPackage::GenericPackage(const GenericPackage& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
407 GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
410 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
411 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
412 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
413 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageCreationDate));
414 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageModifiedDate));
415 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Tracks));
421 GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
424 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
425 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
426 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
427 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageCreationDate));
428 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageModifiedDate));
429 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Tracks));
435 GenericPackage::Copy(const GenericPackage& rhs)
437 InterchangeObject::Copy(rhs);
438 PackageUID = rhs.PackageUID;
440 PackageCreationDate = rhs.PackageCreationDate;
441 PackageModifiedDate = rhs.PackageModifiedDate;
447 GenericPackage::Dump(FILE* stream)
449 char identbuf[IdentBufferLen];
455 InterchangeObject::Dump(stream);
456 fprintf(stream, " %22s = %s\n", "PackageUID", PackageUID.EncodeString(identbuf, IdentBufferLen));
457 fprintf(stream, " %22s = %s\n", "Name", Name.EncodeString(identbuf, IdentBufferLen));
458 fprintf(stream, " %22s = %s\n", "PackageCreationDate", PackageCreationDate.EncodeString(identbuf, IdentBufferLen));
459 fprintf(stream, " %22s = %s\n", "PackageModifiedDate", PackageModifiedDate.EncodeString(identbuf, IdentBufferLen));
460 fprintf(stream, " %22s:\n", "Tracks");
465 //------------------------------------------------------------------------------------------
470 MaterialPackage::MaterialPackage(const Dictionary*& d) : GenericPackage(d), m_Dict(d)
473 m_UL = m_Dict->ul(MDD_MaterialPackage);
476 MaterialPackage::MaterialPackage(const MaterialPackage& rhs) : GenericPackage(rhs.m_Dict), m_Dict(rhs.m_Dict)
479 m_UL = m_Dict->ul(MDD_MaterialPackage);
486 MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
489 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
495 MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
498 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
504 MaterialPackage::Copy(const MaterialPackage& rhs)
506 GenericPackage::Copy(rhs);
511 MaterialPackage::Dump(FILE* stream)
513 char identbuf[IdentBufferLen];
519 GenericPackage::Dump(stream);
524 MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
526 return InterchangeObject::InitFromBuffer(p, l);
531 MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
533 return InterchangeObject::WriteToBuffer(Buffer);
536 //------------------------------------------------------------------------------------------
541 SourcePackage::SourcePackage(const Dictionary*& d) : GenericPackage(d), m_Dict(d)
544 m_UL = m_Dict->ul(MDD_SourcePackage);
547 SourcePackage::SourcePackage(const SourcePackage& rhs) : GenericPackage(rhs.m_Dict), m_Dict(rhs.m_Dict)
550 m_UL = m_Dict->ul(MDD_SourcePackage);
557 SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
560 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
561 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
567 SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
570 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
571 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
577 SourcePackage::Copy(const SourcePackage& rhs)
579 GenericPackage::Copy(rhs);
580 Descriptor = rhs.Descriptor;
585 SourcePackage::Dump(FILE* stream)
587 char identbuf[IdentBufferLen];
593 GenericPackage::Dump(stream);
594 fprintf(stream, " %22s = %s\n", "Descriptor", Descriptor.EncodeString(identbuf, IdentBufferLen));
599 SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
601 return InterchangeObject::InitFromBuffer(p, l);
606 SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
608 return InterchangeObject::WriteToBuffer(Buffer);
611 //------------------------------------------------------------------------------------------
615 GenericTrack::GenericTrack(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), TrackID(0), TrackNumber(0) {}
617 GenericTrack::GenericTrack(const GenericTrack& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
625 GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
628 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
629 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
630 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
631 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, TrackName));
632 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, Sequence));
638 GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
641 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
642 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
643 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
644 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, TrackName));
645 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, Sequence));
651 GenericTrack::Copy(const GenericTrack& rhs)
653 InterchangeObject::Copy(rhs);
654 TrackID = rhs.TrackID;
655 TrackNumber = rhs.TrackNumber;
656 TrackName = rhs.TrackName;
657 Sequence = rhs.Sequence;
662 GenericTrack::Dump(FILE* stream)
664 char identbuf[IdentBufferLen];
670 InterchangeObject::Dump(stream);
671 fprintf(stream, " %22s = %d\n", "TrackID", TrackID);
672 fprintf(stream, " %22s = %d\n", "TrackNumber", TrackNumber);
673 fprintf(stream, " %22s = %s\n", "TrackName", TrackName.EncodeString(identbuf, IdentBufferLen));
674 fprintf(stream, " %22s = %s\n", "Sequence", Sequence.EncodeString(identbuf, IdentBufferLen));
678 //------------------------------------------------------------------------------------------
683 StaticTrack::StaticTrack(const Dictionary*& d) : GenericTrack(d), m_Dict(d)
686 m_UL = m_Dict->ul(MDD_StaticTrack);
689 StaticTrack::StaticTrack(const StaticTrack& rhs) : GenericTrack(rhs.m_Dict), m_Dict(rhs.m_Dict)
692 m_UL = m_Dict->ul(MDD_StaticTrack);
699 StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
702 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
708 StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
711 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
717 StaticTrack::Copy(const StaticTrack& rhs)
719 GenericTrack::Copy(rhs);
724 StaticTrack::Dump(FILE* stream)
726 char identbuf[IdentBufferLen];
732 GenericTrack::Dump(stream);
737 StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
739 return InterchangeObject::InitFromBuffer(p, l);
744 StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
746 return InterchangeObject::WriteToBuffer(Buffer);
749 //------------------------------------------------------------------------------------------
754 Track::Track(const Dictionary*& d) : GenericTrack(d), m_Dict(d), Origin(0)
757 m_UL = m_Dict->ul(MDD_Track);
760 Track::Track(const Track& rhs) : GenericTrack(rhs.m_Dict), m_Dict(rhs.m_Dict)
763 m_UL = m_Dict->ul(MDD_Track);
770 Track::InitFromTLVSet(TLVReader& TLVSet)
773 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
774 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
775 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
781 Track::WriteToTLVSet(TLVWriter& TLVSet)
784 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
785 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
786 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
792 Track::Copy(const Track& rhs)
794 GenericTrack::Copy(rhs);
795 EditRate = rhs.EditRate;
801 Track::Dump(FILE* stream)
803 char identbuf[IdentBufferLen];
809 GenericTrack::Dump(stream);
810 fprintf(stream, " %22s = %s\n", "EditRate", EditRate.EncodeString(identbuf, IdentBufferLen));
811 fprintf(stream, " %22s = %s\n", "Origin", i64sz(Origin, identbuf));
816 Track::InitFromBuffer(const byte_t* p, ui32_t l)
818 return InterchangeObject::InitFromBuffer(p, l);
823 Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
825 return InterchangeObject::WriteToBuffer(Buffer);
828 //------------------------------------------------------------------------------------------
829 // StructuralComponent
832 StructuralComponent::StructuralComponent(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), Duration(0) {}
834 StructuralComponent::StructuralComponent(const StructuralComponent& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
842 StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
845 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
846 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
847 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
853 StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
856 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
857 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
858 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
864 StructuralComponent::Copy(const StructuralComponent& rhs)
866 InterchangeObject::Copy(rhs);
867 DataDefinition = rhs.DataDefinition;
868 Duration = rhs.Duration;
873 StructuralComponent::Dump(FILE* stream)
875 char identbuf[IdentBufferLen];
881 InterchangeObject::Dump(stream);
882 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
883 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
887 //------------------------------------------------------------------------------------------
892 Sequence::Sequence(const Dictionary*& d) : StructuralComponent(d), m_Dict(d)
895 m_UL = m_Dict->ul(MDD_Sequence);
898 Sequence::Sequence(const Sequence& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
901 m_UL = m_Dict->ul(MDD_Sequence);
908 Sequence::InitFromTLVSet(TLVReader& TLVSet)
911 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
912 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
918 Sequence::WriteToTLVSet(TLVWriter& TLVSet)
921 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
922 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
928 Sequence::Copy(const Sequence& rhs)
930 StructuralComponent::Copy(rhs);
931 StructuralComponents = rhs.StructuralComponents;
936 Sequence::Dump(FILE* stream)
938 char identbuf[IdentBufferLen];
944 StructuralComponent::Dump(stream);
945 fprintf(stream, " %22s:\n", "StructuralComponents");
946 StructuralComponents.Dump(stream);
951 Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
953 return InterchangeObject::InitFromBuffer(p, l);
958 Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
960 return InterchangeObject::WriteToBuffer(Buffer);
963 //------------------------------------------------------------------------------------------
968 SourceClip::SourceClip(const Dictionary*& d) : StructuralComponent(d), m_Dict(d), StartPosition(0), SourceTrackID(0)
971 m_UL = m_Dict->ul(MDD_SourceClip);
974 SourceClip::SourceClip(const SourceClip& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
977 m_UL = m_Dict->ul(MDD_SourceClip);
984 SourceClip::InitFromTLVSet(TLVReader& TLVSet)
987 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
988 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
989 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
990 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(SourceClip, SourceTrackID));
996 SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
999 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
1000 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
1001 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
1002 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(SourceClip, SourceTrackID));
1008 SourceClip::Copy(const SourceClip& rhs)
1010 StructuralComponent::Copy(rhs);
1011 StartPosition = rhs.StartPosition;
1012 SourcePackageID = rhs.SourcePackageID;
1013 SourceTrackID = rhs.SourceTrackID;
1018 SourceClip::Dump(FILE* stream)
1020 char identbuf[IdentBufferLen];
1026 StructuralComponent::Dump(stream);
1027 fprintf(stream, " %22s = %s\n", "StartPosition", i64sz(StartPosition, identbuf));
1028 fprintf(stream, " %22s = %s\n", "SourcePackageID", SourcePackageID.EncodeString(identbuf, IdentBufferLen));
1029 fprintf(stream, " %22s = %d\n", "SourceTrackID", SourceTrackID);
1034 SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
1036 return InterchangeObject::InitFromBuffer(p, l);
1041 SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1043 return InterchangeObject::WriteToBuffer(Buffer);
1046 //------------------------------------------------------------------------------------------
1047 // TimecodeComponent
1051 TimecodeComponent::TimecodeComponent(const Dictionary*& d) : StructuralComponent(d), m_Dict(d), RoundedTimecodeBase(0), StartTimecode(0), DropFrame(0)
1054 m_UL = m_Dict->ul(MDD_TimecodeComponent);
1057 TimecodeComponent::TimecodeComponent(const TimecodeComponent& rhs) : StructuralComponent(rhs.m_Dict), m_Dict(rhs.m_Dict)
1060 m_UL = m_Dict->ul(MDD_TimecodeComponent);
1067 TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
1070 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
1071 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
1072 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
1073 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(TimecodeComponent, DropFrame));
1079 TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
1082 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
1083 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
1084 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
1085 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(TimecodeComponent, DropFrame));
1091 TimecodeComponent::Copy(const TimecodeComponent& rhs)
1093 StructuralComponent::Copy(rhs);
1094 RoundedTimecodeBase = rhs.RoundedTimecodeBase;
1095 StartTimecode = rhs.StartTimecode;
1096 DropFrame = rhs.DropFrame;
1101 TimecodeComponent::Dump(FILE* stream)
1103 char identbuf[IdentBufferLen];
1109 StructuralComponent::Dump(stream);
1110 fprintf(stream, " %22s = %d\n", "RoundedTimecodeBase", RoundedTimecodeBase);
1111 fprintf(stream, " %22s = %s\n", "StartTimecode", i64sz(StartTimecode, identbuf));
1112 fprintf(stream, " %22s = %d\n", "DropFrame", DropFrame);
1117 TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
1119 return InterchangeObject::InitFromBuffer(p, l);
1124 TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1126 return InterchangeObject::WriteToBuffer(Buffer);
1129 //------------------------------------------------------------------------------------------
1130 // GenericDescriptor
1133 GenericDescriptor::GenericDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) {}
1135 GenericDescriptor::GenericDescriptor(const GenericDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
1143 GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1146 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1147 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
1148 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
1154 GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1157 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1158 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
1159 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
1165 GenericDescriptor::Copy(const GenericDescriptor& rhs)
1167 InterchangeObject::Copy(rhs);
1168 Locators = rhs.Locators;
1169 SubDescriptors = rhs.SubDescriptors;
1174 GenericDescriptor::Dump(FILE* stream)
1176 char identbuf[IdentBufferLen];
1182 InterchangeObject::Dump(stream);
1183 fprintf(stream, " %22s:\n", "Locators");
1184 Locators.Dump(stream);
1185 fprintf(stream, " %22s:\n", "SubDescriptors");
1186 SubDescriptors.Dump(stream);
1190 //------------------------------------------------------------------------------------------
1195 FileDescriptor::FileDescriptor(const Dictionary*& d) : GenericDescriptor(d), m_Dict(d), LinkedTrackID(0), ContainerDuration(0)
1198 m_UL = m_Dict->ul(MDD_FileDescriptor);
1201 FileDescriptor::FileDescriptor(const FileDescriptor& rhs) : GenericDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1204 m_UL = m_Dict->ul(MDD_FileDescriptor);
1211 FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1214 Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
1215 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
1216 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
1217 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(FileDescriptor, ContainerDuration));
1218 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, EssenceContainer));
1219 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, Codec));
1225 FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1228 Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
1229 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
1230 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
1231 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(FileDescriptor, ContainerDuration));
1232 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, EssenceContainer));
1233 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, Codec));
1239 FileDescriptor::Copy(const FileDescriptor& rhs)
1241 GenericDescriptor::Copy(rhs);
1242 LinkedTrackID = rhs.LinkedTrackID;
1243 SampleRate = rhs.SampleRate;
1244 ContainerDuration = rhs.ContainerDuration;
1245 EssenceContainer = rhs.EssenceContainer;
1251 FileDescriptor::Dump(FILE* stream)
1253 char identbuf[IdentBufferLen];
1259 GenericDescriptor::Dump(stream);
1260 fprintf(stream, " %22s = %d\n", "LinkedTrackID", LinkedTrackID);
1261 fprintf(stream, " %22s = %s\n", "SampleRate", SampleRate.EncodeString(identbuf, IdentBufferLen));
1262 fprintf(stream, " %22s = %s\n", "ContainerDuration", i64sz(ContainerDuration, identbuf));
1263 fprintf(stream, " %22s = %s\n", "EssenceContainer", EssenceContainer.EncodeString(identbuf, IdentBufferLen));
1264 fprintf(stream, " %22s = %s\n", "Codec", Codec.EncodeString(identbuf, IdentBufferLen));
1269 FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1271 return InterchangeObject::InitFromBuffer(p, l);
1276 FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1278 return InterchangeObject::WriteToBuffer(Buffer);
1281 //------------------------------------------------------------------------------------------
1282 // GenericSoundEssenceDescriptor
1286 GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d), Locked(0), AudioRefLevel(0), ChannelCount(0), QuantizationBits(0), DialNorm(0)
1289 m_UL = m_Dict->ul(MDD_GenericSoundEssenceDescriptor);
1292 GenericSoundEssenceDescriptor::GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1295 m_UL = m_Dict->ul(MDD_GenericSoundEssenceDescriptor);
1302 GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1305 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1306 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
1307 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
1308 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
1309 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
1310 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
1311 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, DialNorm));
1317 GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1320 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1321 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
1322 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
1323 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
1324 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
1325 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
1326 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, DialNorm));
1332 GenericSoundEssenceDescriptor::Copy(const GenericSoundEssenceDescriptor& rhs)
1334 FileDescriptor::Copy(rhs);
1335 AudioSamplingRate = rhs.AudioSamplingRate;
1336 Locked = rhs.Locked;
1337 AudioRefLevel = rhs.AudioRefLevel;
1338 ChannelCount = rhs.ChannelCount;
1339 QuantizationBits = rhs.QuantizationBits;
1340 DialNorm = rhs.DialNorm;
1345 GenericSoundEssenceDescriptor::Dump(FILE* stream)
1347 char identbuf[IdentBufferLen];
1353 FileDescriptor::Dump(stream);
1354 fprintf(stream, " %22s = %s\n", "AudioSamplingRate", AudioSamplingRate.EncodeString(identbuf, IdentBufferLen));
1355 fprintf(stream, " %22s = %d\n", "Locked", Locked);
1356 fprintf(stream, " %22s = %d\n", "AudioRefLevel", AudioRefLevel);
1357 fprintf(stream, " %22s = %d\n", "ChannelCount", ChannelCount);
1358 fprintf(stream, " %22s = %d\n", "QuantizationBits", QuantizationBits);
1359 fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm);
1364 GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1366 return InterchangeObject::InitFromBuffer(p, l);
1371 GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1373 return InterchangeObject::WriteToBuffer(Buffer);
1376 //------------------------------------------------------------------------------------------
1377 // WaveAudioDescriptor
1381 WaveAudioDescriptor::WaveAudioDescriptor(const Dictionary*& d) : GenericSoundEssenceDescriptor(d), m_Dict(d), BlockAlign(0), SequenceOffset(0), AvgBps(0)
1384 m_UL = m_Dict->ul(MDD_WaveAudioDescriptor);
1387 WaveAudioDescriptor::WaveAudioDescriptor(const WaveAudioDescriptor& rhs) : GenericSoundEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1390 m_UL = m_Dict->ul(MDD_WaveAudioDescriptor);
1397 WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1400 Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
1401 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
1402 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
1403 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(WaveAudioDescriptor, AvgBps));
1404 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(WaveAudioDescriptor, ChannelAssignment));
1410 WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1413 Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
1414 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
1415 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
1416 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(WaveAudioDescriptor, AvgBps));
1417 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(WaveAudioDescriptor, ChannelAssignment));
1423 WaveAudioDescriptor::Copy(const WaveAudioDescriptor& rhs)
1425 GenericSoundEssenceDescriptor::Copy(rhs);
1426 BlockAlign = rhs.BlockAlign;
1427 SequenceOffset = rhs.SequenceOffset;
1428 AvgBps = rhs.AvgBps;
1429 ChannelAssignment = rhs.ChannelAssignment;
1434 WaveAudioDescriptor::Dump(FILE* stream)
1436 char identbuf[IdentBufferLen];
1442 GenericSoundEssenceDescriptor::Dump(stream);
1443 fprintf(stream, " %22s = %d\n", "BlockAlign", BlockAlign);
1444 fprintf(stream, " %22s = %d\n", "SequenceOffset", SequenceOffset);
1445 fprintf(stream, " %22s = %d\n", "AvgBps", AvgBps);
1446 fprintf(stream, " %22s = %s\n", "ChannelAssignment", ChannelAssignment.EncodeString(identbuf, IdentBufferLen));
1451 WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1453 return InterchangeObject::InitFromBuffer(p, l);
1458 WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1460 return InterchangeObject::WriteToBuffer(Buffer);
1463 //------------------------------------------------------------------------------------------
1464 // GenericPictureEssenceDescriptor
1468 GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d), FrameLayout(0), StoredWidth(0), StoredHeight(0)
1471 m_UL = m_Dict->ul(MDD_GenericPictureEssenceDescriptor);
1474 GenericPictureEssenceDescriptor::GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1477 m_UL = m_Dict->ul(MDD_GenericPictureEssenceDescriptor);
1484 GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1487 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1488 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1489 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1490 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1491 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1492 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1498 GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1501 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1502 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1503 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1504 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1505 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1506 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1512 GenericPictureEssenceDescriptor::Copy(const GenericPictureEssenceDescriptor& rhs)
1514 FileDescriptor::Copy(rhs);
1515 FrameLayout = rhs.FrameLayout;
1516 StoredWidth = rhs.StoredWidth;
1517 StoredHeight = rhs.StoredHeight;
1518 AspectRatio = rhs.AspectRatio;
1519 PictureEssenceCoding = rhs.PictureEssenceCoding;
1524 GenericPictureEssenceDescriptor::Dump(FILE* stream)
1526 char identbuf[IdentBufferLen];
1532 FileDescriptor::Dump(stream);
1533 fprintf(stream, " %22s = %d\n", "FrameLayout", FrameLayout);
1534 fprintf(stream, " %22s = %d\n", "StoredWidth", StoredWidth);
1535 fprintf(stream, " %22s = %d\n", "StoredHeight", StoredHeight);
1536 fprintf(stream, " %22s = %s\n", "AspectRatio", AspectRatio.EncodeString(identbuf, IdentBufferLen));
1537 fprintf(stream, " %22s = %s\n", "PictureEssenceCoding", PictureEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1542 GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1544 return InterchangeObject::InitFromBuffer(p, l);
1549 GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1551 return InterchangeObject::WriteToBuffer(Buffer);
1554 //------------------------------------------------------------------------------------------
1555 // RGBAEssenceDescriptor
1559 RGBAEssenceDescriptor::RGBAEssenceDescriptor(const Dictionary*& d) : GenericPictureEssenceDescriptor(d), m_Dict(d), ComponentMaxRef(0), ComponentMinRef(0)
1562 m_UL = m_Dict->ul(MDD_RGBAEssenceDescriptor);
1565 RGBAEssenceDescriptor::RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1568 m_UL = m_Dict->ul(MDD_RGBAEssenceDescriptor);
1575 RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1578 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1579 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1580 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1586 RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1589 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1590 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1591 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1597 RGBAEssenceDescriptor::Copy(const RGBAEssenceDescriptor& rhs)
1599 GenericPictureEssenceDescriptor::Copy(rhs);
1600 ComponentMaxRef = rhs.ComponentMaxRef;
1601 ComponentMinRef = rhs.ComponentMinRef;
1606 RGBAEssenceDescriptor::Dump(FILE* stream)
1608 char identbuf[IdentBufferLen];
1614 GenericPictureEssenceDescriptor::Dump(stream);
1615 fprintf(stream, " %22s = %d\n", "ComponentMaxRef", ComponentMaxRef);
1616 fprintf(stream, " %22s = %d\n", "ComponentMinRef", ComponentMinRef);
1621 RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1623 return InterchangeObject::InitFromBuffer(p, l);
1628 RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1630 return InterchangeObject::WriteToBuffer(Buffer);
1633 //------------------------------------------------------------------------------------------
1634 // JPEG2000PictureSubDescriptor
1638 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)
1641 m_UL = m_Dict->ul(MDD_JPEG2000PictureSubDescriptor);
1644 JPEG2000PictureSubDescriptor::JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
1647 m_UL = m_Dict->ul(MDD_JPEG2000PictureSubDescriptor);
1654 JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1657 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1658 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1659 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1660 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1661 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1662 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1663 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1664 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1665 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1666 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1667 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Csize));
1668 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1669 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1670 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1676 JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1679 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1680 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1681 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1682 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1683 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1684 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1685 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1686 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1687 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1688 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1689 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Csize));
1690 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1691 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1692 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1698 JPEG2000PictureSubDescriptor::Copy(const JPEG2000PictureSubDescriptor& rhs)
1700 InterchangeObject::Copy(rhs);
1704 XOsize = rhs.XOsize;
1705 YOsize = rhs.YOsize;
1706 XTsize = rhs.XTsize;
1707 YTsize = rhs.YTsize;
1708 XTOsize = rhs.XTOsize;
1709 YTOsize = rhs.YTOsize;
1711 PictureComponentSizing = rhs.PictureComponentSizing;
1712 CodingStyleDefault = rhs.CodingStyleDefault;
1713 QuantizationDefault = rhs.QuantizationDefault;
1718 JPEG2000PictureSubDescriptor::Dump(FILE* stream)
1720 char identbuf[IdentBufferLen];
1726 InterchangeObject::Dump(stream);
1727 fprintf(stream, " %22s = %d\n", "Rsize", Rsize);
1728 fprintf(stream, " %22s = %d\n", "Xsize", Xsize);
1729 fprintf(stream, " %22s = %d\n", "Ysize", Ysize);
1730 fprintf(stream, " %22s = %d\n", "XOsize", XOsize);
1731 fprintf(stream, " %22s = %d\n", "YOsize", YOsize);
1732 fprintf(stream, " %22s = %d\n", "XTsize", XTsize);
1733 fprintf(stream, " %22s = %d\n", "YTsize", YTsize);
1734 fprintf(stream, " %22s = %d\n", "XTOsize", XTOsize);
1735 fprintf(stream, " %22s = %d\n", "YTOsize", YTOsize);
1736 fprintf(stream, " %22s = %d\n", "Csize", Csize);
1737 fprintf(stream, " %22s = %s\n", "PictureComponentSizing", PictureComponentSizing.EncodeString(identbuf, IdentBufferLen));
1738 fprintf(stream, " %22s = %s\n", "CodingStyleDefault", CodingStyleDefault.EncodeString(identbuf, IdentBufferLen));
1739 fprintf(stream, " %22s = %s\n", "QuantizationDefault", QuantizationDefault.EncodeString(identbuf, IdentBufferLen));
1744 JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1746 return InterchangeObject::InitFromBuffer(p, l);
1751 JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1753 return InterchangeObject::WriteToBuffer(Buffer);
1756 //------------------------------------------------------------------------------------------
1757 // CDCIEssenceDescriptor
1761 CDCIEssenceDescriptor::CDCIEssenceDescriptor(const Dictionary*& d) : GenericPictureEssenceDescriptor(d), m_Dict(d), ComponentDepth(0), HorizontalSubsampling(0), VerticalSubsampling(0), ColorSiting(0)
1764 m_UL = m_Dict->ul(MDD_CDCIEssenceDescriptor);
1767 CDCIEssenceDescriptor::CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs) : GenericPictureEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1770 m_UL = m_Dict->ul(MDD_CDCIEssenceDescriptor);
1777 CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1780 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1781 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1782 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1783 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1784 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(CDCIEssenceDescriptor, ColorSiting));
1790 CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1793 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1794 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1795 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1796 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1797 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ColorSiting));
1803 CDCIEssenceDescriptor::Copy(const CDCIEssenceDescriptor& rhs)
1805 GenericPictureEssenceDescriptor::Copy(rhs);
1806 ComponentDepth = rhs.ComponentDepth;
1807 HorizontalSubsampling = rhs.HorizontalSubsampling;
1808 VerticalSubsampling = rhs.VerticalSubsampling;
1809 ColorSiting = rhs.ColorSiting;
1814 CDCIEssenceDescriptor::Dump(FILE* stream)
1816 char identbuf[IdentBufferLen];
1822 GenericPictureEssenceDescriptor::Dump(stream);
1823 fprintf(stream, " %22s = %d\n", "ComponentDepth", ComponentDepth);
1824 fprintf(stream, " %22s = %d\n", "HorizontalSubsampling", HorizontalSubsampling);
1825 fprintf(stream, " %22s = %d\n", "VerticalSubsampling", VerticalSubsampling);
1826 fprintf(stream, " %22s = %d\n", "ColorSiting", ColorSiting);
1831 CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1833 return InterchangeObject::InitFromBuffer(p, l);
1838 CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1840 return InterchangeObject::WriteToBuffer(Buffer);
1843 //------------------------------------------------------------------------------------------
1844 // MPEG2VideoDescriptor
1848 MPEG2VideoDescriptor::MPEG2VideoDescriptor(const Dictionary*& d) : CDCIEssenceDescriptor(d), m_Dict(d), CodedContentType(0), LowDelay(0), BitRate(0), ProfileAndLevel(0)
1851 m_UL = m_Dict->ul(MDD_MPEG2VideoDescriptor);
1854 MPEG2VideoDescriptor::MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs) : CDCIEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
1857 m_UL = m_Dict->ul(MDD_MPEG2VideoDescriptor);
1864 MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1867 Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
1868 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
1869 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
1870 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MPEG2VideoDescriptor, BitRate));
1871 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1877 MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1880 Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
1881 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
1882 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
1883 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, BitRate));
1884 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1890 MPEG2VideoDescriptor::Copy(const MPEG2VideoDescriptor& rhs)
1892 CDCIEssenceDescriptor::Copy(rhs);
1893 CodedContentType = rhs.CodedContentType;
1894 LowDelay = rhs.LowDelay;
1895 BitRate = rhs.BitRate;
1896 ProfileAndLevel = rhs.ProfileAndLevel;
1901 MPEG2VideoDescriptor::Dump(FILE* stream)
1903 char identbuf[IdentBufferLen];
1909 CDCIEssenceDescriptor::Dump(stream);
1910 fprintf(stream, " %22s = %d\n", "CodedContentType", CodedContentType);
1911 fprintf(stream, " %22s = %d\n", "LowDelay", LowDelay);
1912 fprintf(stream, " %22s = %d\n", "BitRate", BitRate);
1913 fprintf(stream, " %22s = %d\n", "ProfileAndLevel", ProfileAndLevel);
1918 MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1920 return InterchangeObject::InitFromBuffer(p, l);
1925 MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1927 return InterchangeObject::WriteToBuffer(Buffer);
1930 //------------------------------------------------------------------------------------------
1935 DMSegment::DMSegment(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), EventStartPosition(0), Duration(0)
1938 m_UL = m_Dict->ul(MDD_DMSegment);
1941 DMSegment::DMSegment(const DMSegment& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
1944 m_UL = m_Dict->ul(MDD_DMSegment);
1951 DMSegment::InitFromTLVSet(TLVReader& TLVSet)
1954 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1955 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
1956 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
1957 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration));
1958 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment));
1959 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework));
1965 DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
1968 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1969 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
1970 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
1971 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration));
1972 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment));
1973 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework));
1979 DMSegment::Copy(const DMSegment& rhs)
1981 InterchangeObject::Copy(rhs);
1982 DataDefinition = rhs.DataDefinition;
1983 EventStartPosition = rhs.EventStartPosition;
1984 Duration = rhs.Duration;
1985 EventComment = rhs.EventComment;
1986 DMFramework = rhs.DMFramework;
1991 DMSegment::Dump(FILE* stream)
1993 char identbuf[IdentBufferLen];
1999 InterchangeObject::Dump(stream);
2000 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
2001 fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf));
2002 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
2003 fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen));
2004 fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen));
2009 DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
2011 return InterchangeObject::InitFromBuffer(p, l);
2016 DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2018 return InterchangeObject::WriteToBuffer(Buffer);
2021 //------------------------------------------------------------------------------------------
2022 // CryptographicFramework
2026 CryptographicFramework::CryptographicFramework(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2029 m_UL = m_Dict->ul(MDD_CryptographicFramework);
2032 CryptographicFramework::CryptographicFramework(const CryptographicFramework& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2035 m_UL = m_Dict->ul(MDD_CryptographicFramework);
2042 CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
2045 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2046 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
2052 CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
2055 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2056 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
2062 CryptographicFramework::Copy(const CryptographicFramework& rhs)
2064 InterchangeObject::Copy(rhs);
2065 ContextSR = rhs.ContextSR;
2070 CryptographicFramework::Dump(FILE* stream)
2072 char identbuf[IdentBufferLen];
2078 InterchangeObject::Dump(stream);
2079 fprintf(stream, " %22s = %s\n", "ContextSR", ContextSR.EncodeString(identbuf, IdentBufferLen));
2084 CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
2086 return InterchangeObject::InitFromBuffer(p, l);
2091 CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2093 return InterchangeObject::WriteToBuffer(Buffer);
2096 //------------------------------------------------------------------------------------------
2097 // CryptographicContext
2101 CryptographicContext::CryptographicContext(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2104 m_UL = m_Dict->ul(MDD_CryptographicContext);
2107 CryptographicContext::CryptographicContext(const CryptographicContext& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2110 m_UL = m_Dict->ul(MDD_CryptographicContext);
2117 CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
2120 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2121 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
2122 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
2123 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CipherAlgorithm));
2124 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, MICAlgorithm));
2125 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CryptographicKeyID));
2131 CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
2134 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2135 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
2136 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
2137 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CipherAlgorithm));
2138 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, MICAlgorithm));
2139 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CryptographicKeyID));
2145 CryptographicContext::Copy(const CryptographicContext& rhs)
2147 InterchangeObject::Copy(rhs);
2148 ContextID = rhs.ContextID;
2149 SourceEssenceContainer = rhs.SourceEssenceContainer;
2150 CipherAlgorithm = rhs.CipherAlgorithm;
2151 MICAlgorithm = rhs.MICAlgorithm;
2152 CryptographicKeyID = rhs.CryptographicKeyID;
2157 CryptographicContext::Dump(FILE* stream)
2159 char identbuf[IdentBufferLen];
2165 InterchangeObject::Dump(stream);
2166 fprintf(stream, " %22s = %s\n", "ContextID", ContextID.EncodeString(identbuf, IdentBufferLen));
2167 fprintf(stream, " %22s = %s\n", "SourceEssenceContainer", SourceEssenceContainer.EncodeString(identbuf, IdentBufferLen));
2168 fprintf(stream, " %22s = %s\n", "CipherAlgorithm", CipherAlgorithm.EncodeString(identbuf, IdentBufferLen));
2169 fprintf(stream, " %22s = %s\n", "MICAlgorithm", MICAlgorithm.EncodeString(identbuf, IdentBufferLen));
2170 fprintf(stream, " %22s = %s\n", "CryptographicKeyID", CryptographicKeyID.EncodeString(identbuf, IdentBufferLen));
2175 CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
2177 return InterchangeObject::InitFromBuffer(p, l);
2182 CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2184 return InterchangeObject::WriteToBuffer(Buffer);
2187 //------------------------------------------------------------------------------------------
2188 // GenericDataEssenceDescriptor
2192 GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const Dictionary*& d) : FileDescriptor(d), m_Dict(d)
2195 m_UL = m_Dict->ul(MDD_GenericDataEssenceDescriptor);
2198 GenericDataEssenceDescriptor::GenericDataEssenceDescriptor(const GenericDataEssenceDescriptor& rhs) : FileDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2201 m_UL = m_Dict->ul(MDD_GenericDataEssenceDescriptor);
2208 GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2211 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
2212 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
2218 GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2221 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
2222 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
2228 GenericDataEssenceDescriptor::Copy(const GenericDataEssenceDescriptor& rhs)
2230 FileDescriptor::Copy(rhs);
2231 DataEssenceCoding = rhs.DataEssenceCoding;
2236 GenericDataEssenceDescriptor::Dump(FILE* stream)
2238 char identbuf[IdentBufferLen];
2244 FileDescriptor::Dump(stream);
2245 fprintf(stream, " %22s = %s\n", "DataEssenceCoding", DataEssenceCoding.EncodeString(identbuf, IdentBufferLen));
2250 GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2252 return InterchangeObject::InitFromBuffer(p, l);
2257 GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2259 return InterchangeObject::WriteToBuffer(Buffer);
2262 //------------------------------------------------------------------------------------------
2263 // TimedTextDescriptor
2267 TimedTextDescriptor::TimedTextDescriptor(const Dictionary*& d) : GenericDataEssenceDescriptor(d), m_Dict(d)
2270 m_UL = m_Dict->ul(MDD_TimedTextDescriptor);
2273 TimedTextDescriptor::TimedTextDescriptor(const TimedTextDescriptor& rhs) : GenericDataEssenceDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2276 m_UL = m_Dict->ul(MDD_TimedTextDescriptor);
2283 TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2286 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
2287 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, ResourceID));
2288 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, UCSEncoding));
2289 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, NamespaceURI));
2295 TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2298 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
2299 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, ResourceID));
2300 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
2301 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, NamespaceURI));
2307 TimedTextDescriptor::Copy(const TimedTextDescriptor& rhs)
2309 GenericDataEssenceDescriptor::Copy(rhs);
2310 ResourceID = rhs.ResourceID;
2311 UCSEncoding = rhs.UCSEncoding;
2312 NamespaceURI = rhs.NamespaceURI;
2317 TimedTextDescriptor::Dump(FILE* stream)
2319 char identbuf[IdentBufferLen];
2325 GenericDataEssenceDescriptor::Dump(stream);
2326 fprintf(stream, " %22s = %s\n", "ResourceID", ResourceID.EncodeString(identbuf, IdentBufferLen));
2327 fprintf(stream, " %22s = %s\n", "UCSEncoding", UCSEncoding.EncodeString(identbuf, IdentBufferLen));
2328 fprintf(stream, " %22s = %s\n", "NamespaceURI", NamespaceURI.EncodeString(identbuf, IdentBufferLen));
2333 TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2335 return InterchangeObject::InitFromBuffer(p, l);
2340 TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2342 return InterchangeObject::WriteToBuffer(Buffer);
2345 //------------------------------------------------------------------------------------------
2346 // TimedTextResourceSubDescriptor
2350 TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), EssenceStreamID(0)
2353 m_UL = m_Dict->ul(MDD_TimedTextResourceSubDescriptor);
2356 TimedTextResourceSubDescriptor::TimedTextResourceSubDescriptor(const TimedTextResourceSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2359 m_UL = m_Dict->ul(MDD_TimedTextResourceSubDescriptor);
2366 TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2369 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2370 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
2371 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
2372 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
2378 TimedTextResourceSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2381 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2382 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
2383 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
2384 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
2390 TimedTextResourceSubDescriptor::Copy(const TimedTextResourceSubDescriptor& rhs)
2392 InterchangeObject::Copy(rhs);
2393 AncillaryResourceID = rhs.AncillaryResourceID;
2394 MIMEMediaType = rhs.MIMEMediaType;
2395 EssenceStreamID = rhs.EssenceStreamID;
2400 TimedTextResourceSubDescriptor::Dump(FILE* stream)
2402 char identbuf[IdentBufferLen];
2408 InterchangeObject::Dump(stream);
2409 fprintf(stream, " %22s = %s\n", "AncillaryResourceID", AncillaryResourceID.EncodeString(identbuf, IdentBufferLen));
2410 fprintf(stream, " %22s = %s\n", "MIMEMediaType", MIMEMediaType.EncodeString(identbuf, IdentBufferLen));
2411 fprintf(stream, " %22s = %d\n", "EssenceStreamID", EssenceStreamID);
2416 TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2418 return InterchangeObject::InitFromBuffer(p, l);
2423 TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2425 return InterchangeObject::WriteToBuffer(Buffer);
2428 //------------------------------------------------------------------------------------------
2429 // StereoscopicPictureSubDescriptor
2433 StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2436 m_UL = m_Dict->ul(MDD_StereoscopicPictureSubDescriptor);
2439 StereoscopicPictureSubDescriptor::StereoscopicPictureSubDescriptor(const StereoscopicPictureSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2442 m_UL = m_Dict->ul(MDD_StereoscopicPictureSubDescriptor);
2449 StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2452 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2458 StereoscopicPictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2461 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2467 StereoscopicPictureSubDescriptor::Copy(const StereoscopicPictureSubDescriptor& rhs)
2469 InterchangeObject::Copy(rhs);
2474 StereoscopicPictureSubDescriptor::Dump(FILE* stream)
2476 char identbuf[IdentBufferLen];
2482 InterchangeObject::Dump(stream);
2487 StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2489 return InterchangeObject::InitFromBuffer(p, l);
2494 StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2496 return InterchangeObject::WriteToBuffer(Buffer);
2499 //------------------------------------------------------------------------------------------
2504 NetworkLocator::NetworkLocator(const Dictionary*& d) : InterchangeObject(d), m_Dict(d)
2507 m_UL = m_Dict->ul(MDD_NetworkLocator);
2510 NetworkLocator::NetworkLocator(const NetworkLocator& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2513 m_UL = m_Dict->ul(MDD_NetworkLocator);
2520 NetworkLocator::InitFromTLVSet(TLVReader& TLVSet)
2523 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2524 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(NetworkLocator, URLString));
2530 NetworkLocator::WriteToTLVSet(TLVWriter& TLVSet)
2533 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2534 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(NetworkLocator, URLString));
2540 NetworkLocator::Copy(const NetworkLocator& rhs)
2542 InterchangeObject::Copy(rhs);
2543 URLString = rhs.URLString;
2548 NetworkLocator::Dump(FILE* stream)
2550 char identbuf[IdentBufferLen];
2556 InterchangeObject::Dump(stream);
2557 fprintf(stream, " %22s = %s\n", "URLString", URLString.EncodeString(identbuf, IdentBufferLen));
2562 NetworkLocator::InitFromBuffer(const byte_t* p, ui32_t l)
2564 return InterchangeObject::InitFromBuffer(p, l);
2569 NetworkLocator::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2571 return InterchangeObject::WriteToBuffer(Buffer);
2574 //------------------------------------------------------------------------------------------
2575 // MCALabelSubDescriptor
2579 MCALabelSubDescriptor::MCALabelSubDescriptor(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), MCAChannelID(0)
2582 m_UL = m_Dict->ul(MDD_MCALabelSubDescriptor);
2585 MCALabelSubDescriptor::MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs) : InterchangeObject(rhs.m_Dict), m_Dict(rhs.m_Dict)
2588 m_UL = m_Dict->ul(MDD_MCALabelSubDescriptor);
2595 MCALabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2598 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
2599 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCALabelDictionaryID));
2600 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCALinkID));
2601 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCATagSymbol));
2602 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, MCATagName));
2603 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MCALabelSubDescriptor, MCAChannelID));
2604 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(MCALabelSubDescriptor, RFC5646SpokenLanguage));
2610 MCALabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2613 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
2614 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCALabelDictionaryID));
2615 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCALinkID));
2616 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCATagSymbol));
2617 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCATagName));
2618 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MCALabelSubDescriptor, MCAChannelID));
2619 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(MCALabelSubDescriptor, RFC5646SpokenLanguage));
2625 MCALabelSubDescriptor::Copy(const MCALabelSubDescriptor& rhs)
2627 InterchangeObject::Copy(rhs);
2628 MCALabelDictionaryID = rhs.MCALabelDictionaryID;
2629 MCALinkID = rhs.MCALinkID;
2630 MCATagSymbol = rhs.MCATagSymbol;
2631 MCATagName = rhs.MCATagName;
2632 MCAChannelID = rhs.MCAChannelID;
2633 RFC5646SpokenLanguage = rhs.RFC5646SpokenLanguage;
2638 MCALabelSubDescriptor::Dump(FILE* stream)
2640 char identbuf[IdentBufferLen];
2646 InterchangeObject::Dump(stream);
2647 fprintf(stream, " %22s = %s\n", "MCALabelDictionaryID", MCALabelDictionaryID.EncodeString(identbuf, IdentBufferLen));
2648 fprintf(stream, " %22s = %s\n", "MCALinkID", MCALinkID.EncodeString(identbuf, IdentBufferLen));
2649 fprintf(stream, " %22s = %s\n", "MCATagSymbol", MCATagSymbol.EncodeString(identbuf, IdentBufferLen));
2650 fprintf(stream, " %22s = %s\n", "MCATagName", MCATagName.EncodeString(identbuf, IdentBufferLen));
2651 fprintf(stream, " %22s = %d\n", "MCAChannelID", MCAChannelID);
2652 fprintf(stream, " %22s = %s\n", "RFC5646SpokenLanguage", RFC5646SpokenLanguage.EncodeString(identbuf, IdentBufferLen));
2657 MCALabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2659 return InterchangeObject::InitFromBuffer(p, l);
2664 MCALabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2666 return InterchangeObject::WriteToBuffer(Buffer);
2669 //------------------------------------------------------------------------------------------
2670 // AudioChannelLabelSubDescriptor
2674 AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
2677 m_UL = m_Dict->ul(MDD_AudioChannelLabelSubDescriptor);
2680 AudioChannelLabelSubDescriptor::AudioChannelLabelSubDescriptor(const AudioChannelLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2683 m_UL = m_Dict->ul(MDD_AudioChannelLabelSubDescriptor);
2690 AudioChannelLabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2693 Result_t result = MCALabelSubDescriptor::InitFromTLVSet(TLVSet);
2694 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(AudioChannelLabelSubDescriptor, SoundfieldGroupLinkID));
2700 AudioChannelLabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2703 Result_t result = MCALabelSubDescriptor::WriteToTLVSet(TLVSet);
2704 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(AudioChannelLabelSubDescriptor, SoundfieldGroupLinkID));
2710 AudioChannelLabelSubDescriptor::Copy(const AudioChannelLabelSubDescriptor& rhs)
2712 MCALabelSubDescriptor::Copy(rhs);
2713 SoundfieldGroupLinkID = rhs.SoundfieldGroupLinkID;
2718 AudioChannelLabelSubDescriptor::Dump(FILE* stream)
2720 char identbuf[IdentBufferLen];
2726 MCALabelSubDescriptor::Dump(stream);
2727 fprintf(stream, " %22s = %s\n", "SoundfieldGroupLinkID", SoundfieldGroupLinkID.EncodeString(identbuf, IdentBufferLen));
2732 AudioChannelLabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2734 return InterchangeObject::InitFromBuffer(p, l);
2739 AudioChannelLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2741 return InterchangeObject::WriteToBuffer(Buffer);
2744 //------------------------------------------------------------------------------------------
2745 // SoundfieldGroupLabelSubDescriptor
2749 SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
2752 m_UL = m_Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor);
2755 SoundfieldGroupLabelSubDescriptor::SoundfieldGroupLabelSubDescriptor(const SoundfieldGroupLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2758 m_UL = m_Dict->ul(MDD_SoundfieldGroupLabelSubDescriptor);
2765 SoundfieldGroupLabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2768 Result_t result = MCALabelSubDescriptor::InitFromTLVSet(TLVSet);
2769 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SoundfieldGroupLabelSubDescriptor, GroupOfSoundfieldGroupsLinkID));
2775 SoundfieldGroupLabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2778 Result_t result = MCALabelSubDescriptor::WriteToTLVSet(TLVSet);
2779 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SoundfieldGroupLabelSubDescriptor, GroupOfSoundfieldGroupsLinkID));
2785 SoundfieldGroupLabelSubDescriptor::Copy(const SoundfieldGroupLabelSubDescriptor& rhs)
2787 MCALabelSubDescriptor::Copy(rhs);
2788 GroupOfSoundfieldGroupsLinkID = rhs.GroupOfSoundfieldGroupsLinkID;
2793 SoundfieldGroupLabelSubDescriptor::Dump(FILE* stream)
2795 char identbuf[IdentBufferLen];
2801 MCALabelSubDescriptor::Dump(stream);
2802 fprintf(stream, " %22s:\n", "GroupOfSoundfieldGroupsLinkID");
2803 GroupOfSoundfieldGroupsLinkID.Dump(stream);
2808 SoundfieldGroupLabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2810 return InterchangeObject::InitFromBuffer(p, l);
2815 SoundfieldGroupLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2817 return InterchangeObject::WriteToBuffer(Buffer);
2820 //------------------------------------------------------------------------------------------
2821 // GroupOfSoundfieldGroupsLabelSubDescriptor
2825 GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary*& d) : MCALabelSubDescriptor(d), m_Dict(d)
2828 m_UL = m_Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor);
2831 GroupOfSoundfieldGroupsLabelSubDescriptor::GroupOfSoundfieldGroupsLabelSubDescriptor(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs) : MCALabelSubDescriptor(rhs.m_Dict), m_Dict(rhs.m_Dict)
2834 m_UL = m_Dict->ul(MDD_GroupOfSoundfieldGroupsLabelSubDescriptor);
2841 GroupOfSoundfieldGroupsLabelSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
2844 Result_t result = MCALabelSubDescriptor::InitFromTLVSet(TLVSet);
2850 GroupOfSoundfieldGroupsLabelSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
2853 Result_t result = MCALabelSubDescriptor::WriteToTLVSet(TLVSet);
2859 GroupOfSoundfieldGroupsLabelSubDescriptor::Copy(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs)
2861 MCALabelSubDescriptor::Copy(rhs);
2866 GroupOfSoundfieldGroupsLabelSubDescriptor::Dump(FILE* stream)
2868 char identbuf[IdentBufferLen];
2874 MCALabelSubDescriptor::Dump(stream);
2879 GroupOfSoundfieldGroupsLabelSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
2881 return InterchangeObject::InitFromBuffer(p, l);
2886 GroupOfSoundfieldGroupsLabelSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
2888 return InterchangeObject::WriteToBuffer(Buffer);