2 Copyright (c) 2005-2009, 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); }
75 ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
78 SetObjectFactory(Dict->ul(MDD_Preface), Preface_Factory);
79 SetObjectFactory(Dict->ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
81 SetObjectFactory(Dict->ul(MDD_Identification), Identification_Factory);
82 SetObjectFactory(Dict->ul(MDD_ContentStorage), ContentStorage_Factory);
83 SetObjectFactory(Dict->ul(MDD_EssenceContainerData), EssenceContainerData_Factory);
84 SetObjectFactory(Dict->ul(MDD_MaterialPackage), MaterialPackage_Factory);
85 SetObjectFactory(Dict->ul(MDD_SourcePackage), SourcePackage_Factory);
86 SetObjectFactory(Dict->ul(MDD_StaticTrack), StaticTrack_Factory);
87 SetObjectFactory(Dict->ul(MDD_Track), Track_Factory);
88 SetObjectFactory(Dict->ul(MDD_Sequence), Sequence_Factory);
89 SetObjectFactory(Dict->ul(MDD_SourceClip), SourceClip_Factory);
90 SetObjectFactory(Dict->ul(MDD_TimecodeComponent), TimecodeComponent_Factory);
91 SetObjectFactory(Dict->ul(MDD_FileDescriptor), FileDescriptor_Factory);
92 SetObjectFactory(Dict->ul(MDD_GenericSoundEssenceDescriptor), GenericSoundEssenceDescriptor_Factory);
93 SetObjectFactory(Dict->ul(MDD_WaveAudioDescriptor), WaveAudioDescriptor_Factory);
94 SetObjectFactory(Dict->ul(MDD_GenericPictureEssenceDescriptor), GenericPictureEssenceDescriptor_Factory);
95 SetObjectFactory(Dict->ul(MDD_RGBAEssenceDescriptor), RGBAEssenceDescriptor_Factory);
96 SetObjectFactory(Dict->ul(MDD_JPEG2000PictureSubDescriptor), JPEG2000PictureSubDescriptor_Factory);
97 SetObjectFactory(Dict->ul(MDD_CDCIEssenceDescriptor), CDCIEssenceDescriptor_Factory);
98 SetObjectFactory(Dict->ul(MDD_MPEG2VideoDescriptor), MPEG2VideoDescriptor_Factory);
99 SetObjectFactory(Dict->ul(MDD_DMSegment), DMSegment_Factory);
100 SetObjectFactory(Dict->ul(MDD_CryptographicFramework), CryptographicFramework_Factory);
101 SetObjectFactory(Dict->ul(MDD_CryptographicContext), CryptographicContext_Factory);
102 SetObjectFactory(Dict->ul(MDD_GenericDataEssenceDescriptor), GenericDataEssenceDescriptor_Factory);
103 SetObjectFactory(Dict->ul(MDD_TimedTextDescriptor), TimedTextDescriptor_Factory);
104 SetObjectFactory(Dict->ul(MDD_TimedTextResourceSubDescriptor), TimedTextResourceSubDescriptor_Factory);
105 SetObjectFactory(Dict->ul(MDD_StereoscopicPictureSubDescriptor), StereoscopicPictureSubDescriptor_Factory);
106 SetObjectFactory(Dict->ul(MDD_NetworkLocator), NetworkLocator_Factory);
109 //------------------------------------------------------------------------------------------
114 //------------------------------------------------------------------------------------------
119 Identification::InitFromTLVSet(TLVReader& TLVSet)
122 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
123 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
124 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
125 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductName));
126 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductVersion));
127 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, VersionString));
128 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductUID));
129 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ModificationDate));
130 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ToolkitVersion));
131 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, Platform));
137 Identification::WriteToTLVSet(TLVWriter& TLVSet)
140 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
141 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
142 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
143 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductName));
144 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductVersion));
145 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, VersionString));
146 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductUID));
147 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ModificationDate));
148 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ToolkitVersion));
149 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, Platform));
155 Identification::Dump(FILE* stream)
157 char identbuf[IdentBufferLen];
163 InterchangeObject::Dump(stream);
164 fprintf(stream, " %22s = %s\n", "ThisGenerationUID", ThisGenerationUID.EncodeString(identbuf, IdentBufferLen));
165 fprintf(stream, " %22s = %s\n", "CompanyName", CompanyName.EncodeString(identbuf, IdentBufferLen));
166 fprintf(stream, " %22s = %s\n", "ProductName", ProductName.EncodeString(identbuf, IdentBufferLen));
167 fprintf(stream, " %22s = %s\n", "ProductVersion", ProductVersion.EncodeString(identbuf, IdentBufferLen));
168 fprintf(stream, " %22s = %s\n", "VersionString", VersionString.EncodeString(identbuf, IdentBufferLen));
169 fprintf(stream, " %22s = %s\n", "ProductUID", ProductUID.EncodeString(identbuf, IdentBufferLen));
170 fprintf(stream, " %22s = %s\n", "ModificationDate", ModificationDate.EncodeString(identbuf, IdentBufferLen));
171 fprintf(stream, " %22s = %s\n", "ToolkitVersion", ToolkitVersion.EncodeString(identbuf, IdentBufferLen));
172 fprintf(stream, " %22s = %s\n", "Platform", Platform.EncodeString(identbuf, IdentBufferLen));
177 Identification::InitFromBuffer(const byte_t* p, ui32_t l)
180 m_Typeinfo = &(m_Dict->Type(MDD_Identification));
181 return InterchangeObject::InitFromBuffer(p, l);
186 Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
189 m_Typeinfo = &(m_Dict->Type(MDD_Identification));
190 return InterchangeObject::WriteToBuffer(Buffer);
193 //------------------------------------------------------------------------------------------
198 ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
201 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
202 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
203 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
209 ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
212 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
213 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
214 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
220 ContentStorage::Dump(FILE* stream)
222 char identbuf[IdentBufferLen];
228 InterchangeObject::Dump(stream);
229 fprintf(stream, " %22s:\n", "Packages");
230 Packages.Dump(stream);
231 fprintf(stream, " %22s:\n", "EssenceContainerData");
232 EssenceContainerData.Dump(stream);
237 ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
240 m_Typeinfo = &(m_Dict->Type(MDD_ContentStorage));
241 return InterchangeObject::InitFromBuffer(p, l);
246 ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
249 m_Typeinfo = &(m_Dict->Type(MDD_ContentStorage));
250 return InterchangeObject::WriteToBuffer(Buffer);
253 //------------------------------------------------------------------------------------------
254 // EssenceContainerData
258 EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
261 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
262 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
263 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
264 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
270 EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
273 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
274 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
275 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
276 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
282 EssenceContainerData::Dump(FILE* stream)
284 char identbuf[IdentBufferLen];
290 InterchangeObject::Dump(stream);
291 fprintf(stream, " %22s = %s\n", "LinkedPackageUID", LinkedPackageUID.EncodeString(identbuf, IdentBufferLen));
292 fprintf(stream, " %22s = %d\n", "IndexSID", IndexSID);
293 fprintf(stream, " %22s = %d\n", "BodySID", BodySID);
298 EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
301 m_Typeinfo = &(m_Dict->Type(MDD_EssenceContainerData));
302 return InterchangeObject::InitFromBuffer(p, l);
307 EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
310 m_Typeinfo = &(m_Dict->Type(MDD_EssenceContainerData));
311 return InterchangeObject::WriteToBuffer(Buffer);
314 //------------------------------------------------------------------------------------------
319 GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
322 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
323 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
324 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
325 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageCreationDate));
326 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageModifiedDate));
327 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Tracks));
333 GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
336 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
337 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
338 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
339 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageCreationDate));
340 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageModifiedDate));
341 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Tracks));
347 GenericPackage::Dump(FILE* stream)
349 char identbuf[IdentBufferLen];
355 InterchangeObject::Dump(stream);
356 fprintf(stream, " %22s = %s\n", "PackageUID", PackageUID.EncodeString(identbuf, IdentBufferLen));
357 fprintf(stream, " %22s = %s\n", "Name", Name.EncodeString(identbuf, IdentBufferLen));
358 fprintf(stream, " %22s = %s\n", "PackageCreationDate", PackageCreationDate.EncodeString(identbuf, IdentBufferLen));
359 fprintf(stream, " %22s = %s\n", "PackageModifiedDate", PackageModifiedDate.EncodeString(identbuf, IdentBufferLen));
360 fprintf(stream, " %22s:\n", "Tracks");
365 //------------------------------------------------------------------------------------------
370 MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
373 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
379 MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
382 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
388 MaterialPackage::Dump(FILE* stream)
390 char identbuf[IdentBufferLen];
396 GenericPackage::Dump(stream);
401 MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
404 m_Typeinfo = &(m_Dict->Type(MDD_MaterialPackage));
405 return InterchangeObject::InitFromBuffer(p, l);
410 MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
413 m_Typeinfo = &(m_Dict->Type(MDD_MaterialPackage));
414 return InterchangeObject::WriteToBuffer(Buffer);
417 //------------------------------------------------------------------------------------------
422 SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
425 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
426 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
432 SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
435 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
436 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
442 SourcePackage::Dump(FILE* stream)
444 char identbuf[IdentBufferLen];
450 GenericPackage::Dump(stream);
451 fprintf(stream, " %22s = %s\n", "Descriptor", Descriptor.EncodeString(identbuf, IdentBufferLen));
456 SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
459 m_Typeinfo = &(m_Dict->Type(MDD_SourcePackage));
460 return InterchangeObject::InitFromBuffer(p, l);
465 SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
468 m_Typeinfo = &(m_Dict->Type(MDD_SourcePackage));
469 return InterchangeObject::WriteToBuffer(Buffer);
472 //------------------------------------------------------------------------------------------
477 GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
480 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
481 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
482 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
483 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, TrackName));
484 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, Sequence));
490 GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
493 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
494 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
495 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
496 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, TrackName));
497 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, Sequence));
503 GenericTrack::Dump(FILE* stream)
505 char identbuf[IdentBufferLen];
511 InterchangeObject::Dump(stream);
512 fprintf(stream, " %22s = %d\n", "TrackID", TrackID);
513 fprintf(stream, " %22s = %d\n", "TrackNumber", TrackNumber);
514 fprintf(stream, " %22s = %s\n", "TrackName", TrackName.EncodeString(identbuf, IdentBufferLen));
515 fprintf(stream, " %22s = %s\n", "Sequence", Sequence.EncodeString(identbuf, IdentBufferLen));
519 //------------------------------------------------------------------------------------------
524 StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
527 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
533 StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
536 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
542 StaticTrack::Dump(FILE* stream)
544 char identbuf[IdentBufferLen];
550 GenericTrack::Dump(stream);
555 StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
558 m_Typeinfo = &(m_Dict->Type(MDD_StaticTrack));
559 return InterchangeObject::InitFromBuffer(p, l);
564 StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
567 m_Typeinfo = &(m_Dict->Type(MDD_StaticTrack));
568 return InterchangeObject::WriteToBuffer(Buffer);
571 //------------------------------------------------------------------------------------------
576 Track::InitFromTLVSet(TLVReader& TLVSet)
579 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
580 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
581 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
587 Track::WriteToTLVSet(TLVWriter& TLVSet)
590 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
591 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
592 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
598 Track::Dump(FILE* stream)
600 char identbuf[IdentBufferLen];
606 GenericTrack::Dump(stream);
607 fprintf(stream, " %22s = %s\n", "EditRate", EditRate.EncodeString(identbuf, IdentBufferLen));
608 fprintf(stream, " %22s = %s\n", "Origin", i64sz(Origin, identbuf));
613 Track::InitFromBuffer(const byte_t* p, ui32_t l)
616 m_Typeinfo = &(m_Dict->Type(MDD_Track));
617 return InterchangeObject::InitFromBuffer(p, l);
622 Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
625 m_Typeinfo = &(m_Dict->Type(MDD_Track));
626 return InterchangeObject::WriteToBuffer(Buffer);
629 //------------------------------------------------------------------------------------------
630 // StructuralComponent
634 StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
637 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
638 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
639 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
645 StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
648 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
649 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
650 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
656 StructuralComponent::Dump(FILE* stream)
658 char identbuf[IdentBufferLen];
664 InterchangeObject::Dump(stream);
665 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
666 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
670 //------------------------------------------------------------------------------------------
675 Sequence::InitFromTLVSet(TLVReader& TLVSet)
678 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
679 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
685 Sequence::WriteToTLVSet(TLVWriter& TLVSet)
688 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
689 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
695 Sequence::Dump(FILE* stream)
697 char identbuf[IdentBufferLen];
703 StructuralComponent::Dump(stream);
704 fprintf(stream, " %22s:\n", "StructuralComponents");
705 StructuralComponents.Dump(stream);
710 Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
713 m_Typeinfo = &(m_Dict->Type(MDD_Sequence));
714 return InterchangeObject::InitFromBuffer(p, l);
719 Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
722 m_Typeinfo = &(m_Dict->Type(MDD_Sequence));
723 return InterchangeObject::WriteToBuffer(Buffer);
726 //------------------------------------------------------------------------------------------
731 SourceClip::InitFromTLVSet(TLVReader& TLVSet)
734 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
735 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
736 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
737 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(SourceClip, SourceTrackID));
743 SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
746 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
747 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
748 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
749 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(SourceClip, SourceTrackID));
755 SourceClip::Dump(FILE* stream)
757 char identbuf[IdentBufferLen];
763 StructuralComponent::Dump(stream);
764 fprintf(stream, " %22s = %s\n", "StartPosition", i64sz(StartPosition, identbuf));
765 fprintf(stream, " %22s = %s\n", "SourcePackageID", SourcePackageID.EncodeString(identbuf, IdentBufferLen));
766 fprintf(stream, " %22s = %d\n", "SourceTrackID", SourceTrackID);
771 SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
774 m_Typeinfo = &(m_Dict->Type(MDD_SourceClip));
775 return InterchangeObject::InitFromBuffer(p, l);
780 SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
783 m_Typeinfo = &(m_Dict->Type(MDD_SourceClip));
784 return InterchangeObject::WriteToBuffer(Buffer);
787 //------------------------------------------------------------------------------------------
792 TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
795 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
796 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
797 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
798 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(TimecodeComponent, DropFrame));
804 TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
807 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
808 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
809 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
810 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(TimecodeComponent, DropFrame));
816 TimecodeComponent::Dump(FILE* stream)
818 char identbuf[IdentBufferLen];
824 StructuralComponent::Dump(stream);
825 fprintf(stream, " %22s = %d\n", "RoundedTimecodeBase", RoundedTimecodeBase);
826 fprintf(stream, " %22s = %s\n", "StartTimecode", i64sz(StartTimecode, identbuf));
827 fprintf(stream, " %22s = %d\n", "DropFrame", DropFrame);
832 TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
835 m_Typeinfo = &(m_Dict->Type(MDD_TimecodeComponent));
836 return InterchangeObject::InitFromBuffer(p, l);
841 TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
844 m_Typeinfo = &(m_Dict->Type(MDD_TimecodeComponent));
845 return InterchangeObject::WriteToBuffer(Buffer);
848 //------------------------------------------------------------------------------------------
853 GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
856 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
857 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
858 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
864 GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
867 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
868 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
869 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
875 GenericDescriptor::Dump(FILE* stream)
877 char identbuf[IdentBufferLen];
883 InterchangeObject::Dump(stream);
884 fprintf(stream, " %22s:\n", "Locators");
885 Locators.Dump(stream);
886 fprintf(stream, " %22s:\n", "SubDescriptors");
887 SubDescriptors.Dump(stream);
891 //------------------------------------------------------------------------------------------
896 FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
899 Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
900 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
901 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
902 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(FileDescriptor, ContainerDuration));
903 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, EssenceContainer));
904 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, Codec));
910 FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
913 Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
914 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
915 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
916 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(FileDescriptor, ContainerDuration));
917 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, EssenceContainer));
918 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, Codec));
924 FileDescriptor::Dump(FILE* stream)
926 char identbuf[IdentBufferLen];
932 GenericDescriptor::Dump(stream);
933 fprintf(stream, " %22s = %d\n", "LinkedTrackID", LinkedTrackID);
934 fprintf(stream, " %22s = %s\n", "SampleRate", SampleRate.EncodeString(identbuf, IdentBufferLen));
935 fprintf(stream, " %22s = %s\n", "ContainerDuration", i64sz(ContainerDuration, identbuf));
936 fprintf(stream, " %22s = %s\n", "EssenceContainer", EssenceContainer.EncodeString(identbuf, IdentBufferLen));
937 fprintf(stream, " %22s = %s\n", "Codec", Codec.EncodeString(identbuf, IdentBufferLen));
942 FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
945 m_Typeinfo = &(m_Dict->Type(MDD_FileDescriptor));
946 return InterchangeObject::InitFromBuffer(p, l);
951 FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
954 m_Typeinfo = &(m_Dict->Type(MDD_FileDescriptor));
955 return InterchangeObject::WriteToBuffer(Buffer);
958 //------------------------------------------------------------------------------------------
959 // GenericSoundEssenceDescriptor
963 GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
966 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
967 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
968 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
969 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
970 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
971 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
972 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, DialNorm));
978 GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
981 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
982 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
983 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
984 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
985 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
986 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
987 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, DialNorm));
993 GenericSoundEssenceDescriptor::Dump(FILE* stream)
995 char identbuf[IdentBufferLen];
1001 FileDescriptor::Dump(stream);
1002 fprintf(stream, " %22s = %s\n", "AudioSamplingRate", AudioSamplingRate.EncodeString(identbuf, IdentBufferLen));
1003 fprintf(stream, " %22s = %d\n", "Locked", Locked);
1004 fprintf(stream, " %22s = %d\n", "AudioRefLevel", AudioRefLevel);
1005 fprintf(stream, " %22s = %d\n", "ChannelCount", ChannelCount);
1006 fprintf(stream, " %22s = %d\n", "QuantizationBits", QuantizationBits);
1007 fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm);
1012 GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1015 m_Typeinfo = &(m_Dict->Type(MDD_GenericSoundEssenceDescriptor));
1016 return InterchangeObject::InitFromBuffer(p, l);
1021 GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1024 m_Typeinfo = &(m_Dict->Type(MDD_GenericSoundEssenceDescriptor));
1025 return InterchangeObject::WriteToBuffer(Buffer);
1028 //------------------------------------------------------------------------------------------
1029 // WaveAudioDescriptor
1033 WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1036 Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
1037 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
1038 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
1039 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(WaveAudioDescriptor, AvgBps));
1040 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(WaveAudioDescriptor, ChannelAssignment));
1046 WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1049 Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
1050 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
1051 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
1052 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(WaveAudioDescriptor, AvgBps));
1053 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(WaveAudioDescriptor, ChannelAssignment));
1059 WaveAudioDescriptor::Dump(FILE* stream)
1061 char identbuf[IdentBufferLen];
1067 GenericSoundEssenceDescriptor::Dump(stream);
1068 fprintf(stream, " %22s = %d\n", "BlockAlign", BlockAlign);
1069 fprintf(stream, " %22s = %d\n", "SequenceOffset", SequenceOffset);
1070 fprintf(stream, " %22s = %d\n", "AvgBps", AvgBps);
1071 fprintf(stream, " %22s = %s\n", "ChannelAssignment", ChannelAssignment.EncodeString(identbuf, IdentBufferLen));
1076 WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1079 m_Typeinfo = &(m_Dict->Type(MDD_WaveAudioDescriptor));
1080 return InterchangeObject::InitFromBuffer(p, l);
1085 WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1088 m_Typeinfo = &(m_Dict->Type(MDD_WaveAudioDescriptor));
1089 return InterchangeObject::WriteToBuffer(Buffer);
1092 //------------------------------------------------------------------------------------------
1093 // GenericPictureEssenceDescriptor
1097 GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1100 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1101 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1102 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1103 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1104 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1105 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1111 GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1114 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1115 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1116 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1117 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1118 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1119 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1125 GenericPictureEssenceDescriptor::Dump(FILE* stream)
1127 char identbuf[IdentBufferLen];
1133 FileDescriptor::Dump(stream);
1134 fprintf(stream, " %22s = %d\n", "FrameLayout", FrameLayout);
1135 fprintf(stream, " %22s = %d\n", "StoredWidth", StoredWidth);
1136 fprintf(stream, " %22s = %d\n", "StoredHeight", StoredHeight);
1137 fprintf(stream, " %22s = %s\n", "AspectRatio", AspectRatio.EncodeString(identbuf, IdentBufferLen));
1138 fprintf(stream, " %22s = %s\n", "PictureEssenceCoding", PictureEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1143 GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1146 m_Typeinfo = &(m_Dict->Type(MDD_GenericPictureEssenceDescriptor));
1147 return InterchangeObject::InitFromBuffer(p, l);
1152 GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1155 m_Typeinfo = &(m_Dict->Type(MDD_GenericPictureEssenceDescriptor));
1156 return InterchangeObject::WriteToBuffer(Buffer);
1159 //------------------------------------------------------------------------------------------
1160 // RGBAEssenceDescriptor
1164 RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1167 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1168 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1169 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1175 RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1178 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1179 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1180 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1186 RGBAEssenceDescriptor::Dump(FILE* stream)
1188 char identbuf[IdentBufferLen];
1194 GenericPictureEssenceDescriptor::Dump(stream);
1195 fprintf(stream, " %22s = %d\n", "ComponentMaxRef", ComponentMaxRef);
1196 fprintf(stream, " %22s = %d\n", "ComponentMinRef", ComponentMinRef);
1201 RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1204 m_Typeinfo = &(m_Dict->Type(MDD_RGBAEssenceDescriptor));
1205 return InterchangeObject::InitFromBuffer(p, l);
1210 RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1213 m_Typeinfo = &(m_Dict->Type(MDD_RGBAEssenceDescriptor));
1214 return InterchangeObject::WriteToBuffer(Buffer);
1217 //------------------------------------------------------------------------------------------
1218 // JPEG2000PictureSubDescriptor
1222 JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1225 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1226 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1227 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1228 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1229 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1230 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1231 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1232 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1233 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1234 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1235 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Csize));
1236 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1237 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1238 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1244 JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1247 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1248 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1249 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1250 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1251 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1252 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1253 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1254 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1255 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1256 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1257 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Csize));
1258 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1259 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1260 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1266 JPEG2000PictureSubDescriptor::Dump(FILE* stream)
1268 char identbuf[IdentBufferLen];
1274 InterchangeObject::Dump(stream);
1275 fprintf(stream, " %22s = %d\n", "Rsize", Rsize);
1276 fprintf(stream, " %22s = %d\n", "Xsize", Xsize);
1277 fprintf(stream, " %22s = %d\n", "Ysize", Ysize);
1278 fprintf(stream, " %22s = %d\n", "XOsize", XOsize);
1279 fprintf(stream, " %22s = %d\n", "YOsize", YOsize);
1280 fprintf(stream, " %22s = %d\n", "XTsize", XTsize);
1281 fprintf(stream, " %22s = %d\n", "YTsize", YTsize);
1282 fprintf(stream, " %22s = %d\n", "XTOsize", XTOsize);
1283 fprintf(stream, " %22s = %d\n", "YTOsize", YTOsize);
1284 fprintf(stream, " %22s = %d\n", "Csize", Csize);
1285 fprintf(stream, " %22s = %s\n", "PictureComponentSizing", PictureComponentSizing.EncodeString(identbuf, IdentBufferLen));
1286 fprintf(stream, " %22s = %s\n", "CodingStyleDefault", CodingStyleDefault.EncodeString(identbuf, IdentBufferLen));
1287 fprintf(stream, " %22s = %s\n", "QuantizationDefault", QuantizationDefault.EncodeString(identbuf, IdentBufferLen));
1292 JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1295 m_Typeinfo = &(m_Dict->Type(MDD_JPEG2000PictureSubDescriptor));
1296 return InterchangeObject::InitFromBuffer(p, l);
1301 JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1304 m_Typeinfo = &(m_Dict->Type(MDD_JPEG2000PictureSubDescriptor));
1305 return InterchangeObject::WriteToBuffer(Buffer);
1308 //------------------------------------------------------------------------------------------
1309 // CDCIEssenceDescriptor
1313 CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1316 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1317 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1318 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1319 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1320 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(CDCIEssenceDescriptor, ColorSiting));
1326 CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1329 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1330 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1331 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1332 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1333 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ColorSiting));
1339 CDCIEssenceDescriptor::Dump(FILE* stream)
1341 char identbuf[IdentBufferLen];
1347 GenericPictureEssenceDescriptor::Dump(stream);
1348 fprintf(stream, " %22s = %d\n", "ComponentDepth", ComponentDepth);
1349 fprintf(stream, " %22s = %d\n", "HorizontalSubsampling", HorizontalSubsampling);
1350 fprintf(stream, " %22s = %d\n", "VerticalSubsampling", VerticalSubsampling);
1351 fprintf(stream, " %22s = %d\n", "ColorSiting", ColorSiting);
1356 CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1359 m_Typeinfo = &(m_Dict->Type(MDD_CDCIEssenceDescriptor));
1360 return InterchangeObject::InitFromBuffer(p, l);
1365 CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1368 m_Typeinfo = &(m_Dict->Type(MDD_CDCIEssenceDescriptor));
1369 return InterchangeObject::WriteToBuffer(Buffer);
1372 //------------------------------------------------------------------------------------------
1373 // MPEG2VideoDescriptor
1377 MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1380 Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
1381 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
1382 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
1383 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MPEG2VideoDescriptor, BitRate));
1384 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1390 MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1393 Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
1394 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
1395 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
1396 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, BitRate));
1397 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1403 MPEG2VideoDescriptor::Dump(FILE* stream)
1405 char identbuf[IdentBufferLen];
1411 CDCIEssenceDescriptor::Dump(stream);
1412 fprintf(stream, " %22s = %d\n", "CodedContentType", CodedContentType);
1413 fprintf(stream, " %22s = %d\n", "LowDelay", LowDelay);
1414 fprintf(stream, " %22s = %d\n", "BitRate", BitRate);
1415 fprintf(stream, " %22s = %d\n", "ProfileAndLevel", ProfileAndLevel);
1420 MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1423 m_Typeinfo = &(m_Dict->Type(MDD_MPEG2VideoDescriptor));
1424 return InterchangeObject::InitFromBuffer(p, l);
1429 MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1432 m_Typeinfo = &(m_Dict->Type(MDD_MPEG2VideoDescriptor));
1433 return InterchangeObject::WriteToBuffer(Buffer);
1436 //------------------------------------------------------------------------------------------
1441 DMSegment::InitFromTLVSet(TLVReader& TLVSet)
1444 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1445 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
1446 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
1447 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration));
1448 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment));
1449 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework));
1455 DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
1458 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1459 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
1460 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
1461 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration));
1462 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment));
1463 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework));
1469 DMSegment::Dump(FILE* stream)
1471 char identbuf[IdentBufferLen];
1477 InterchangeObject::Dump(stream);
1478 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
1479 fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf));
1480 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
1481 fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen));
1482 fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen));
1487 DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
1490 m_Typeinfo = &(m_Dict->Type(MDD_DMSegment));
1491 return InterchangeObject::InitFromBuffer(p, l);
1496 DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1499 m_Typeinfo = &(m_Dict->Type(MDD_DMSegment));
1500 return InterchangeObject::WriteToBuffer(Buffer);
1503 //------------------------------------------------------------------------------------------
1504 // CryptographicFramework
1508 CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
1511 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1512 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
1518 CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
1521 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1522 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
1528 CryptographicFramework::Dump(FILE* stream)
1530 char identbuf[IdentBufferLen];
1536 InterchangeObject::Dump(stream);
1537 fprintf(stream, " %22s = %s\n", "ContextSR", ContextSR.EncodeString(identbuf, IdentBufferLen));
1542 CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
1545 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicFramework));
1546 return InterchangeObject::InitFromBuffer(p, l);
1551 CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1554 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicFramework));
1555 return InterchangeObject::WriteToBuffer(Buffer);
1558 //------------------------------------------------------------------------------------------
1559 // CryptographicContext
1563 CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
1566 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1567 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
1568 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
1569 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CipherAlgorithm));
1570 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, MICAlgorithm));
1571 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CryptographicKeyID));
1577 CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
1580 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1581 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
1582 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
1583 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CipherAlgorithm));
1584 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, MICAlgorithm));
1585 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CryptographicKeyID));
1591 CryptographicContext::Dump(FILE* stream)
1593 char identbuf[IdentBufferLen];
1599 InterchangeObject::Dump(stream);
1600 fprintf(stream, " %22s = %s\n", "ContextID", ContextID.EncodeString(identbuf, IdentBufferLen));
1601 fprintf(stream, " %22s = %s\n", "SourceEssenceContainer", SourceEssenceContainer.EncodeString(identbuf, IdentBufferLen));
1602 fprintf(stream, " %22s = %s\n", "CipherAlgorithm", CipherAlgorithm.EncodeString(identbuf, IdentBufferLen));
1603 fprintf(stream, " %22s = %s\n", "MICAlgorithm", MICAlgorithm.EncodeString(identbuf, IdentBufferLen));
1604 fprintf(stream, " %22s = %s\n", "CryptographicKeyID", CryptographicKeyID.EncodeString(identbuf, IdentBufferLen));
1609 CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
1612 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicContext));
1613 return InterchangeObject::InitFromBuffer(p, l);
1618 CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1621 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicContext));
1622 return InterchangeObject::WriteToBuffer(Buffer);
1625 //------------------------------------------------------------------------------------------
1626 // GenericDataEssenceDescriptor
1630 GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1633 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1634 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1640 GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1643 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1644 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1650 GenericDataEssenceDescriptor::Dump(FILE* stream)
1652 char identbuf[IdentBufferLen];
1658 FileDescriptor::Dump(stream);
1659 fprintf(stream, " %22s = %s\n", "DataEssenceCoding", DataEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1664 GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1667 m_Typeinfo = &(m_Dict->Type(MDD_GenericDataEssenceDescriptor));
1668 return InterchangeObject::InitFromBuffer(p, l);
1673 GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1676 m_Typeinfo = &(m_Dict->Type(MDD_GenericDataEssenceDescriptor));
1677 return InterchangeObject::WriteToBuffer(Buffer);
1680 //------------------------------------------------------------------------------------------
1681 // TimedTextDescriptor
1685 TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1688 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
1689 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, ResourceID));
1690 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, UCSEncoding));
1691 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, NamespaceURI));
1697 TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1700 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
1701 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, ResourceID));
1702 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
1703 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, NamespaceURI));
1709 TimedTextDescriptor::Dump(FILE* stream)
1711 char identbuf[IdentBufferLen];
1717 GenericDataEssenceDescriptor::Dump(stream);
1718 fprintf(stream, " %22s = %s\n", "ResourceID", ResourceID.EncodeString(identbuf, IdentBufferLen));
1719 fprintf(stream, " %22s = %s\n", "UCSEncoding", UCSEncoding.EncodeString(identbuf, IdentBufferLen));
1720 fprintf(stream, " %22s = %s\n", "NamespaceURI", NamespaceURI.EncodeString(identbuf, IdentBufferLen));
1725 TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1728 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextDescriptor));
1729 return InterchangeObject::InitFromBuffer(p, l);
1734 TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1737 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextDescriptor));
1738 return InterchangeObject::WriteToBuffer(Buffer);
1741 //------------------------------------------------------------------------------------------
1742 // TimedTextResourceSubDescriptor
1746 TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1749 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1750 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
1751 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
1752 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
1758 TimedTextResourceSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1761 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1762 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
1763 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
1764 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
1770 TimedTextResourceSubDescriptor::Dump(FILE* stream)
1772 char identbuf[IdentBufferLen];
1778 InterchangeObject::Dump(stream);
1779 fprintf(stream, " %22s = %s\n", "AncillaryResourceID", AncillaryResourceID.EncodeString(identbuf, IdentBufferLen));
1780 fprintf(stream, " %22s = %s\n", "MIMEMediaType", MIMEMediaType.EncodeString(identbuf, IdentBufferLen));
1781 fprintf(stream, " %22s = %d\n", "EssenceStreamID", EssenceStreamID);
1786 TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1789 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextResourceSubDescriptor));
1790 return InterchangeObject::InitFromBuffer(p, l);
1795 TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1798 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextResourceSubDescriptor));
1799 return InterchangeObject::WriteToBuffer(Buffer);
1802 //------------------------------------------------------------------------------------------
1803 // StereoscopicPictureSubDescriptor
1807 StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1810 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1816 StereoscopicPictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1819 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1825 StereoscopicPictureSubDescriptor::Dump(FILE* stream)
1827 char identbuf[IdentBufferLen];
1833 InterchangeObject::Dump(stream);
1838 StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1841 m_Typeinfo = &(m_Dict->Type(MDD_StereoscopicPictureSubDescriptor));
1842 return InterchangeObject::InitFromBuffer(p, l);
1847 StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1850 m_Typeinfo = &(m_Dict->Type(MDD_StereoscopicPictureSubDescriptor));
1851 return InterchangeObject::WriteToBuffer(Buffer);
1854 //------------------------------------------------------------------------------------------
1859 NetworkLocator::InitFromTLVSet(TLVReader& TLVSet)
1862 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1863 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(NetworkLocator, URLString));
1869 NetworkLocator::WriteToTLVSet(TLVWriter& TLVSet)
1872 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1873 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(NetworkLocator, URLString));
1879 NetworkLocator::Dump(FILE* stream)
1881 char identbuf[IdentBufferLen];
1887 InterchangeObject::Dump(stream);
1888 fprintf(stream, " %22s = %s\n", "URLString", URLString.EncodeString(identbuf, IdentBufferLen));
1893 NetworkLocator::InitFromBuffer(const byte_t* p, ui32_t l)
1896 m_Typeinfo = &(m_Dict->Type(MDD_NetworkLocator));
1897 return InterchangeObject::InitFromBuffer(p, l);
1902 NetworkLocator::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1905 m_Typeinfo = &(m_Dict->Type(MDD_NetworkLocator));
1906 return InterchangeObject::WriteToBuffer(Buffer);