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); }
74 ASDCP::MXF::Metadata_InitTypes(const Dictionary*& Dict)
77 SetObjectFactory(Dict->ul(MDD_Preface), Preface_Factory);
78 SetObjectFactory(Dict->ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
80 SetObjectFactory(Dict->ul(MDD_Identification), Identification_Factory);
81 SetObjectFactory(Dict->ul(MDD_ContentStorage), ContentStorage_Factory);
82 SetObjectFactory(Dict->ul(MDD_EssenceContainerData), EssenceContainerData_Factory);
83 SetObjectFactory(Dict->ul(MDD_MaterialPackage), MaterialPackage_Factory);
84 SetObjectFactory(Dict->ul(MDD_SourcePackage), SourcePackage_Factory);
85 SetObjectFactory(Dict->ul(MDD_StaticTrack), StaticTrack_Factory);
86 SetObjectFactory(Dict->ul(MDD_Track), Track_Factory);
87 SetObjectFactory(Dict->ul(MDD_Sequence), Sequence_Factory);
88 SetObjectFactory(Dict->ul(MDD_SourceClip), SourceClip_Factory);
89 SetObjectFactory(Dict->ul(MDD_TimecodeComponent), TimecodeComponent_Factory);
90 SetObjectFactory(Dict->ul(MDD_FileDescriptor), FileDescriptor_Factory);
91 SetObjectFactory(Dict->ul(MDD_GenericSoundEssenceDescriptor), GenericSoundEssenceDescriptor_Factory);
92 SetObjectFactory(Dict->ul(MDD_WaveAudioDescriptor), WaveAudioDescriptor_Factory);
93 SetObjectFactory(Dict->ul(MDD_GenericPictureEssenceDescriptor), GenericPictureEssenceDescriptor_Factory);
94 SetObjectFactory(Dict->ul(MDD_RGBAEssenceDescriptor), RGBAEssenceDescriptor_Factory);
95 SetObjectFactory(Dict->ul(MDD_JPEG2000PictureSubDescriptor), JPEG2000PictureSubDescriptor_Factory);
96 SetObjectFactory(Dict->ul(MDD_CDCIEssenceDescriptor), CDCIEssenceDescriptor_Factory);
97 SetObjectFactory(Dict->ul(MDD_MPEG2VideoDescriptor), MPEG2VideoDescriptor_Factory);
98 SetObjectFactory(Dict->ul(MDD_DMSegment), DMSegment_Factory);
99 SetObjectFactory(Dict->ul(MDD_CryptographicFramework), CryptographicFramework_Factory);
100 SetObjectFactory(Dict->ul(MDD_CryptographicContext), CryptographicContext_Factory);
101 SetObjectFactory(Dict->ul(MDD_GenericDataEssenceDescriptor), GenericDataEssenceDescriptor_Factory);
102 SetObjectFactory(Dict->ul(MDD_TimedTextDescriptor), TimedTextDescriptor_Factory);
103 SetObjectFactory(Dict->ul(MDD_TimedTextResourceSubDescriptor), TimedTextResourceSubDescriptor_Factory);
104 SetObjectFactory(Dict->ul(MDD_StereoscopicPictureSubDescriptor), StereoscopicPictureSubDescriptor_Factory);
107 //------------------------------------------------------------------------------------------
112 //------------------------------------------------------------------------------------------
117 Identification::InitFromTLVSet(TLVReader& TLVSet)
120 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
121 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
122 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
123 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductName));
124 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductVersion));
125 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, VersionString));
126 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductUID));
127 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ModificationDate));
128 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ToolkitVersion));
129 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, Platform));
135 Identification::WriteToTLVSet(TLVWriter& TLVSet)
138 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
139 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
140 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
141 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductName));
142 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductVersion));
143 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, VersionString));
144 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductUID));
145 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ModificationDate));
146 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ToolkitVersion));
147 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, Platform));
153 Identification::Dump(FILE* stream)
155 char identbuf[IdentBufferLen];
161 InterchangeObject::Dump(stream);
162 fprintf(stream, " %22s = %s\n", "ThisGenerationUID", ThisGenerationUID.EncodeString(identbuf, IdentBufferLen));
163 fprintf(stream, " %22s = %s\n", "CompanyName", CompanyName.EncodeString(identbuf, IdentBufferLen));
164 fprintf(stream, " %22s = %s\n", "ProductName", ProductName.EncodeString(identbuf, IdentBufferLen));
165 fprintf(stream, " %22s = %s\n", "ProductVersion", ProductVersion.EncodeString(identbuf, IdentBufferLen));
166 fprintf(stream, " %22s = %s\n", "VersionString", VersionString.EncodeString(identbuf, IdentBufferLen));
167 fprintf(stream, " %22s = %s\n", "ProductUID", ProductUID.EncodeString(identbuf, IdentBufferLen));
168 fprintf(stream, " %22s = %s\n", "ModificationDate", ModificationDate.EncodeString(identbuf, IdentBufferLen));
169 fprintf(stream, " %22s = %s\n", "ToolkitVersion", ToolkitVersion.EncodeString(identbuf, IdentBufferLen));
170 fprintf(stream, " %22s = %s\n", "Platform", Platform.EncodeString(identbuf, IdentBufferLen));
175 Identification::InitFromBuffer(const byte_t* p, ui32_t l)
178 m_Typeinfo = &(m_Dict->Type(MDD_Identification));
179 return InterchangeObject::InitFromBuffer(p, l);
184 Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
187 m_Typeinfo = &(m_Dict->Type(MDD_Identification));
188 return InterchangeObject::WriteToBuffer(Buffer);
191 //------------------------------------------------------------------------------------------
196 ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
199 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
200 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
201 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
207 ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
210 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
211 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
212 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
218 ContentStorage::Dump(FILE* stream)
220 char identbuf[IdentBufferLen];
226 InterchangeObject::Dump(stream);
227 fprintf(stream, " %22s:\n", "Packages");
228 Packages.Dump(stream);
229 fprintf(stream, " %22s:\n", "EssenceContainerData");
230 EssenceContainerData.Dump(stream);
235 ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
238 m_Typeinfo = &(m_Dict->Type(MDD_ContentStorage));
239 return InterchangeObject::InitFromBuffer(p, l);
244 ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
247 m_Typeinfo = &(m_Dict->Type(MDD_ContentStorage));
248 return InterchangeObject::WriteToBuffer(Buffer);
251 //------------------------------------------------------------------------------------------
252 // EssenceContainerData
256 EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
259 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
260 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
261 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
262 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
268 EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
271 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
272 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
273 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
274 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
280 EssenceContainerData::Dump(FILE* stream)
282 char identbuf[IdentBufferLen];
288 InterchangeObject::Dump(stream);
289 fprintf(stream, " %22s = %s\n", "LinkedPackageUID", LinkedPackageUID.EncodeString(identbuf, IdentBufferLen));
290 fprintf(stream, " %22s = %d\n", "IndexSID", IndexSID);
291 fprintf(stream, " %22s = %d\n", "BodySID", BodySID);
296 EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
299 m_Typeinfo = &(m_Dict->Type(MDD_EssenceContainerData));
300 return InterchangeObject::InitFromBuffer(p, l);
305 EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
308 m_Typeinfo = &(m_Dict->Type(MDD_EssenceContainerData));
309 return InterchangeObject::WriteToBuffer(Buffer);
312 //------------------------------------------------------------------------------------------
317 GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
320 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
321 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
322 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
323 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageCreationDate));
324 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageModifiedDate));
325 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Tracks));
331 GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
334 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
335 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
336 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
337 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageCreationDate));
338 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageModifiedDate));
339 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Tracks));
345 GenericPackage::Dump(FILE* stream)
347 char identbuf[IdentBufferLen];
353 InterchangeObject::Dump(stream);
354 fprintf(stream, " %22s = %s\n", "PackageUID", PackageUID.EncodeString(identbuf, IdentBufferLen));
355 fprintf(stream, " %22s = %s\n", "Name", Name.EncodeString(identbuf, IdentBufferLen));
356 fprintf(stream, " %22s = %s\n", "PackageCreationDate", PackageCreationDate.EncodeString(identbuf, IdentBufferLen));
357 fprintf(stream, " %22s = %s\n", "PackageModifiedDate", PackageModifiedDate.EncodeString(identbuf, IdentBufferLen));
358 fprintf(stream, " %22s:\n", "Tracks");
363 //------------------------------------------------------------------------------------------
368 MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
371 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
377 MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
380 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
386 MaterialPackage::Dump(FILE* stream)
388 char identbuf[IdentBufferLen];
394 GenericPackage::Dump(stream);
399 MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
402 m_Typeinfo = &(m_Dict->Type(MDD_MaterialPackage));
403 return InterchangeObject::InitFromBuffer(p, l);
408 MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
411 m_Typeinfo = &(m_Dict->Type(MDD_MaterialPackage));
412 return InterchangeObject::WriteToBuffer(Buffer);
415 //------------------------------------------------------------------------------------------
420 SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
423 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
424 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
430 SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
433 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
434 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
440 SourcePackage::Dump(FILE* stream)
442 char identbuf[IdentBufferLen];
448 GenericPackage::Dump(stream);
449 fprintf(stream, " %22s = %s\n", "Descriptor", Descriptor.EncodeString(identbuf, IdentBufferLen));
454 SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
457 m_Typeinfo = &(m_Dict->Type(MDD_SourcePackage));
458 return InterchangeObject::InitFromBuffer(p, l);
463 SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
466 m_Typeinfo = &(m_Dict->Type(MDD_SourcePackage));
467 return InterchangeObject::WriteToBuffer(Buffer);
470 //------------------------------------------------------------------------------------------
475 GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
478 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
479 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
480 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
481 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, TrackName));
482 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, Sequence));
488 GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
491 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
492 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
493 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
494 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, TrackName));
495 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, Sequence));
501 GenericTrack::Dump(FILE* stream)
503 char identbuf[IdentBufferLen];
509 InterchangeObject::Dump(stream);
510 fprintf(stream, " %22s = %d\n", "TrackID", TrackID);
511 fprintf(stream, " %22s = %d\n", "TrackNumber", TrackNumber);
512 fprintf(stream, " %22s = %s\n", "TrackName", TrackName.EncodeString(identbuf, IdentBufferLen));
513 fprintf(stream, " %22s = %s\n", "Sequence", Sequence.EncodeString(identbuf, IdentBufferLen));
517 //------------------------------------------------------------------------------------------
522 StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
525 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
531 StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
534 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
540 StaticTrack::Dump(FILE* stream)
542 char identbuf[IdentBufferLen];
548 GenericTrack::Dump(stream);
553 StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
556 m_Typeinfo = &(m_Dict->Type(MDD_StaticTrack));
557 return InterchangeObject::InitFromBuffer(p, l);
562 StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
565 m_Typeinfo = &(m_Dict->Type(MDD_StaticTrack));
566 return InterchangeObject::WriteToBuffer(Buffer);
569 //------------------------------------------------------------------------------------------
574 Track::InitFromTLVSet(TLVReader& TLVSet)
577 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
578 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
579 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
585 Track::WriteToTLVSet(TLVWriter& TLVSet)
588 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
589 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
590 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
596 Track::Dump(FILE* stream)
598 char identbuf[IdentBufferLen];
604 GenericTrack::Dump(stream);
605 fprintf(stream, " %22s = %s\n", "EditRate", EditRate.EncodeString(identbuf, IdentBufferLen));
606 fprintf(stream, " %22s = %s\n", "Origin", i64sz(Origin, identbuf));
611 Track::InitFromBuffer(const byte_t* p, ui32_t l)
614 m_Typeinfo = &(m_Dict->Type(MDD_Track));
615 return InterchangeObject::InitFromBuffer(p, l);
620 Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
623 m_Typeinfo = &(m_Dict->Type(MDD_Track));
624 return InterchangeObject::WriteToBuffer(Buffer);
627 //------------------------------------------------------------------------------------------
628 // StructuralComponent
632 StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
635 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
636 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
637 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
643 StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
646 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
647 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
648 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
654 StructuralComponent::Dump(FILE* stream)
656 char identbuf[IdentBufferLen];
662 InterchangeObject::Dump(stream);
663 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
664 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
668 //------------------------------------------------------------------------------------------
673 Sequence::InitFromTLVSet(TLVReader& TLVSet)
676 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
677 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
683 Sequence::WriteToTLVSet(TLVWriter& TLVSet)
686 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
687 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
693 Sequence::Dump(FILE* stream)
695 char identbuf[IdentBufferLen];
701 StructuralComponent::Dump(stream);
702 fprintf(stream, " %22s:\n", "StructuralComponents");
703 StructuralComponents.Dump(stream);
708 Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
711 m_Typeinfo = &(m_Dict->Type(MDD_Sequence));
712 return InterchangeObject::InitFromBuffer(p, l);
717 Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
720 m_Typeinfo = &(m_Dict->Type(MDD_Sequence));
721 return InterchangeObject::WriteToBuffer(Buffer);
724 //------------------------------------------------------------------------------------------
729 SourceClip::InitFromTLVSet(TLVReader& TLVSet)
732 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
733 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
734 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
735 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(SourceClip, SourceTrackID));
741 SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
744 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
745 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
746 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
747 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(SourceClip, SourceTrackID));
753 SourceClip::Dump(FILE* stream)
755 char identbuf[IdentBufferLen];
761 StructuralComponent::Dump(stream);
762 fprintf(stream, " %22s = %s\n", "StartPosition", i64sz(StartPosition, identbuf));
763 fprintf(stream, " %22s = %s\n", "SourcePackageID", SourcePackageID.EncodeString(identbuf, IdentBufferLen));
764 fprintf(stream, " %22s = %d\n", "SourceTrackID", SourceTrackID);
769 SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
772 m_Typeinfo = &(m_Dict->Type(MDD_SourceClip));
773 return InterchangeObject::InitFromBuffer(p, l);
778 SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
781 m_Typeinfo = &(m_Dict->Type(MDD_SourceClip));
782 return InterchangeObject::WriteToBuffer(Buffer);
785 //------------------------------------------------------------------------------------------
790 TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
793 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
794 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
795 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
796 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(TimecodeComponent, DropFrame));
802 TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
805 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
806 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
807 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
808 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(TimecodeComponent, DropFrame));
814 TimecodeComponent::Dump(FILE* stream)
816 char identbuf[IdentBufferLen];
822 StructuralComponent::Dump(stream);
823 fprintf(stream, " %22s = %d\n", "RoundedTimecodeBase", RoundedTimecodeBase);
824 fprintf(stream, " %22s = %s\n", "StartTimecode", i64sz(StartTimecode, identbuf));
825 fprintf(stream, " %22s = %d\n", "DropFrame", DropFrame);
830 TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
833 m_Typeinfo = &(m_Dict->Type(MDD_TimecodeComponent));
834 return InterchangeObject::InitFromBuffer(p, l);
839 TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
842 m_Typeinfo = &(m_Dict->Type(MDD_TimecodeComponent));
843 return InterchangeObject::WriteToBuffer(Buffer);
846 //------------------------------------------------------------------------------------------
851 GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
854 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
855 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
856 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
862 GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
865 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
866 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
867 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
873 GenericDescriptor::Dump(FILE* stream)
875 char identbuf[IdentBufferLen];
881 InterchangeObject::Dump(stream);
882 fprintf(stream, " %22s:\n", "Locators");
883 Locators.Dump(stream);
884 fprintf(stream, " %22s:\n", "SubDescriptors");
885 SubDescriptors.Dump(stream);
889 //------------------------------------------------------------------------------------------
894 FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
897 Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
898 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
899 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
900 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(FileDescriptor, ContainerDuration));
901 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, EssenceContainer));
902 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, Codec));
908 FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
911 Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
912 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
913 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
914 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(FileDescriptor, ContainerDuration));
915 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, EssenceContainer));
916 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, Codec));
922 FileDescriptor::Dump(FILE* stream)
924 char identbuf[IdentBufferLen];
930 GenericDescriptor::Dump(stream);
931 fprintf(stream, " %22s = %d\n", "LinkedTrackID", LinkedTrackID);
932 fprintf(stream, " %22s = %s\n", "SampleRate", SampleRate.EncodeString(identbuf, IdentBufferLen));
933 fprintf(stream, " %22s = %s\n", "ContainerDuration", i64sz(ContainerDuration, identbuf));
934 fprintf(stream, " %22s = %s\n", "EssenceContainer", EssenceContainer.EncodeString(identbuf, IdentBufferLen));
935 fprintf(stream, " %22s = %s\n", "Codec", Codec.EncodeString(identbuf, IdentBufferLen));
940 FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
943 m_Typeinfo = &(m_Dict->Type(MDD_FileDescriptor));
944 return InterchangeObject::InitFromBuffer(p, l);
949 FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
952 m_Typeinfo = &(m_Dict->Type(MDD_FileDescriptor));
953 return InterchangeObject::WriteToBuffer(Buffer);
956 //------------------------------------------------------------------------------------------
957 // GenericSoundEssenceDescriptor
961 GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
964 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
965 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
966 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
967 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
968 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
969 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
970 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, DialNorm));
976 GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
979 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
980 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
981 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
982 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
983 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
984 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
985 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, DialNorm));
991 GenericSoundEssenceDescriptor::Dump(FILE* stream)
993 char identbuf[IdentBufferLen];
999 FileDescriptor::Dump(stream);
1000 fprintf(stream, " %22s = %s\n", "AudioSamplingRate", AudioSamplingRate.EncodeString(identbuf, IdentBufferLen));
1001 fprintf(stream, " %22s = %d\n", "Locked", Locked);
1002 fprintf(stream, " %22s = %d\n", "AudioRefLevel", AudioRefLevel);
1003 fprintf(stream, " %22s = %d\n", "ChannelCount", ChannelCount);
1004 fprintf(stream, " %22s = %d\n", "QuantizationBits", QuantizationBits);
1005 fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm);
1010 GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1013 m_Typeinfo = &(m_Dict->Type(MDD_GenericSoundEssenceDescriptor));
1014 return InterchangeObject::InitFromBuffer(p, l);
1019 GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1022 m_Typeinfo = &(m_Dict->Type(MDD_GenericSoundEssenceDescriptor));
1023 return InterchangeObject::WriteToBuffer(Buffer);
1026 //------------------------------------------------------------------------------------------
1027 // WaveAudioDescriptor
1031 WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1034 Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
1035 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
1036 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
1037 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(WaveAudioDescriptor, AvgBps));
1038 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(WaveAudioDescriptor, ChannelAssignment));
1044 WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1047 Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
1048 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
1049 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
1050 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(WaveAudioDescriptor, AvgBps));
1051 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(WaveAudioDescriptor, ChannelAssignment));
1057 WaveAudioDescriptor::Dump(FILE* stream)
1059 char identbuf[IdentBufferLen];
1065 GenericSoundEssenceDescriptor::Dump(stream);
1066 fprintf(stream, " %22s = %d\n", "BlockAlign", BlockAlign);
1067 fprintf(stream, " %22s = %d\n", "SequenceOffset", SequenceOffset);
1068 fprintf(stream, " %22s = %d\n", "AvgBps", AvgBps);
1069 fprintf(stream, " %22s = %s\n", "ChannelAssignment", ChannelAssignment.EncodeString(identbuf, IdentBufferLen));
1074 WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1077 m_Typeinfo = &(m_Dict->Type(MDD_WaveAudioDescriptor));
1078 return InterchangeObject::InitFromBuffer(p, l);
1083 WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1086 m_Typeinfo = &(m_Dict->Type(MDD_WaveAudioDescriptor));
1087 return InterchangeObject::WriteToBuffer(Buffer);
1090 //------------------------------------------------------------------------------------------
1091 // GenericPictureEssenceDescriptor
1095 GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1098 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1099 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1100 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1101 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1102 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1103 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1109 GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1112 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1113 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1114 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1115 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1116 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1117 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1123 GenericPictureEssenceDescriptor::Dump(FILE* stream)
1125 char identbuf[IdentBufferLen];
1131 FileDescriptor::Dump(stream);
1132 fprintf(stream, " %22s = %d\n", "FrameLayout", FrameLayout);
1133 fprintf(stream, " %22s = %d\n", "StoredWidth", StoredWidth);
1134 fprintf(stream, " %22s = %d\n", "StoredHeight", StoredHeight);
1135 fprintf(stream, " %22s = %s\n", "AspectRatio", AspectRatio.EncodeString(identbuf, IdentBufferLen));
1136 fprintf(stream, " %22s = %s\n", "PictureEssenceCoding", PictureEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1141 GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1144 m_Typeinfo = &(m_Dict->Type(MDD_GenericPictureEssenceDescriptor));
1145 return InterchangeObject::InitFromBuffer(p, l);
1150 GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1153 m_Typeinfo = &(m_Dict->Type(MDD_GenericPictureEssenceDescriptor));
1154 return InterchangeObject::WriteToBuffer(Buffer);
1157 //------------------------------------------------------------------------------------------
1158 // RGBAEssenceDescriptor
1162 RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1165 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1166 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1167 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1173 RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1176 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1177 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1178 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1184 RGBAEssenceDescriptor::Dump(FILE* stream)
1186 char identbuf[IdentBufferLen];
1192 GenericPictureEssenceDescriptor::Dump(stream);
1193 fprintf(stream, " %22s = %d\n", "ComponentMaxRef", ComponentMaxRef);
1194 fprintf(stream, " %22s = %d\n", "ComponentMinRef", ComponentMinRef);
1199 RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1202 m_Typeinfo = &(m_Dict->Type(MDD_RGBAEssenceDescriptor));
1203 return InterchangeObject::InitFromBuffer(p, l);
1208 RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1211 m_Typeinfo = &(m_Dict->Type(MDD_RGBAEssenceDescriptor));
1212 return InterchangeObject::WriteToBuffer(Buffer);
1215 //------------------------------------------------------------------------------------------
1216 // JPEG2000PictureSubDescriptor
1220 JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1223 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1224 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1225 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1226 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1227 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1228 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1229 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1230 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1231 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1232 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1233 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Csize));
1234 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1235 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1236 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1242 JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1245 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1246 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1247 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1248 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1249 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1250 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1251 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1252 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1253 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1254 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1255 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Csize));
1256 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1257 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1258 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1264 JPEG2000PictureSubDescriptor::Dump(FILE* stream)
1266 char identbuf[IdentBufferLen];
1272 InterchangeObject::Dump(stream);
1273 fprintf(stream, " %22s = %d\n", "Rsize", Rsize);
1274 fprintf(stream, " %22s = %d\n", "Xsize", Xsize);
1275 fprintf(stream, " %22s = %d\n", "Ysize", Ysize);
1276 fprintf(stream, " %22s = %d\n", "XOsize", XOsize);
1277 fprintf(stream, " %22s = %d\n", "YOsize", YOsize);
1278 fprintf(stream, " %22s = %d\n", "XTsize", XTsize);
1279 fprintf(stream, " %22s = %d\n", "YTsize", YTsize);
1280 fprintf(stream, " %22s = %d\n", "XTOsize", XTOsize);
1281 fprintf(stream, " %22s = %d\n", "YTOsize", YTOsize);
1282 fprintf(stream, " %22s = %d\n", "Csize", Csize);
1283 fprintf(stream, " %22s = %s\n", "PictureComponentSizing", PictureComponentSizing.EncodeString(identbuf, IdentBufferLen));
1284 fprintf(stream, " %22s = %s\n", "CodingStyleDefault", CodingStyleDefault.EncodeString(identbuf, IdentBufferLen));
1285 fprintf(stream, " %22s = %s\n", "QuantizationDefault", QuantizationDefault.EncodeString(identbuf, IdentBufferLen));
1290 JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1293 m_Typeinfo = &(m_Dict->Type(MDD_JPEG2000PictureSubDescriptor));
1294 return InterchangeObject::InitFromBuffer(p, l);
1299 JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1302 m_Typeinfo = &(m_Dict->Type(MDD_JPEG2000PictureSubDescriptor));
1303 return InterchangeObject::WriteToBuffer(Buffer);
1306 //------------------------------------------------------------------------------------------
1307 // CDCIEssenceDescriptor
1311 CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1314 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1315 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1316 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1317 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1318 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(CDCIEssenceDescriptor, ColorSiting));
1324 CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1327 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1328 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1329 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1330 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1331 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ColorSiting));
1337 CDCIEssenceDescriptor::Dump(FILE* stream)
1339 char identbuf[IdentBufferLen];
1345 GenericPictureEssenceDescriptor::Dump(stream);
1346 fprintf(stream, " %22s = %d\n", "ComponentDepth", ComponentDepth);
1347 fprintf(stream, " %22s = %d\n", "HorizontalSubsampling", HorizontalSubsampling);
1348 fprintf(stream, " %22s = %d\n", "VerticalSubsampling", VerticalSubsampling);
1349 fprintf(stream, " %22s = %d\n", "ColorSiting", ColorSiting);
1354 CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1357 m_Typeinfo = &(m_Dict->Type(MDD_CDCIEssenceDescriptor));
1358 return InterchangeObject::InitFromBuffer(p, l);
1363 CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1366 m_Typeinfo = &(m_Dict->Type(MDD_CDCIEssenceDescriptor));
1367 return InterchangeObject::WriteToBuffer(Buffer);
1370 //------------------------------------------------------------------------------------------
1371 // MPEG2VideoDescriptor
1375 MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1378 Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
1379 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
1380 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
1381 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MPEG2VideoDescriptor, BitRate));
1382 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1388 MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1391 Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
1392 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
1393 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
1394 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, BitRate));
1395 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1401 MPEG2VideoDescriptor::Dump(FILE* stream)
1403 char identbuf[IdentBufferLen];
1409 CDCIEssenceDescriptor::Dump(stream);
1410 fprintf(stream, " %22s = %d\n", "CodedContentType", CodedContentType);
1411 fprintf(stream, " %22s = %d\n", "LowDelay", LowDelay);
1412 fprintf(stream, " %22s = %d\n", "BitRate", BitRate);
1413 fprintf(stream, " %22s = %d\n", "ProfileAndLevel", ProfileAndLevel);
1418 MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1421 m_Typeinfo = &(m_Dict->Type(MDD_MPEG2VideoDescriptor));
1422 return InterchangeObject::InitFromBuffer(p, l);
1427 MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1430 m_Typeinfo = &(m_Dict->Type(MDD_MPEG2VideoDescriptor));
1431 return InterchangeObject::WriteToBuffer(Buffer);
1434 //------------------------------------------------------------------------------------------
1439 DMSegment::InitFromTLVSet(TLVReader& TLVSet)
1442 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1443 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
1444 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
1445 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration));
1446 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment));
1447 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework));
1453 DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
1456 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1457 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
1458 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
1459 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration));
1460 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment));
1461 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework));
1467 DMSegment::Dump(FILE* stream)
1469 char identbuf[IdentBufferLen];
1475 InterchangeObject::Dump(stream);
1476 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
1477 fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf));
1478 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
1479 fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen));
1480 fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen));
1485 DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
1488 m_Typeinfo = &(m_Dict->Type(MDD_DMSegment));
1489 return InterchangeObject::InitFromBuffer(p, l);
1494 DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1497 m_Typeinfo = &(m_Dict->Type(MDD_DMSegment));
1498 return InterchangeObject::WriteToBuffer(Buffer);
1501 //------------------------------------------------------------------------------------------
1502 // CryptographicFramework
1506 CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
1509 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1510 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
1516 CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
1519 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1520 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
1526 CryptographicFramework::Dump(FILE* stream)
1528 char identbuf[IdentBufferLen];
1534 InterchangeObject::Dump(stream);
1535 fprintf(stream, " %22s = %s\n", "ContextSR", ContextSR.EncodeString(identbuf, IdentBufferLen));
1540 CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
1543 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicFramework));
1544 return InterchangeObject::InitFromBuffer(p, l);
1549 CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1552 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicFramework));
1553 return InterchangeObject::WriteToBuffer(Buffer);
1556 //------------------------------------------------------------------------------------------
1557 // CryptographicContext
1561 CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
1564 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1565 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
1566 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
1567 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CipherAlgorithm));
1568 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, MICAlgorithm));
1569 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CryptographicKeyID));
1575 CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
1578 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1579 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
1580 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
1581 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CipherAlgorithm));
1582 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, MICAlgorithm));
1583 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CryptographicKeyID));
1589 CryptographicContext::Dump(FILE* stream)
1591 char identbuf[IdentBufferLen];
1597 InterchangeObject::Dump(stream);
1598 fprintf(stream, " %22s = %s\n", "ContextID", ContextID.EncodeString(identbuf, IdentBufferLen));
1599 fprintf(stream, " %22s = %s\n", "SourceEssenceContainer", SourceEssenceContainer.EncodeString(identbuf, IdentBufferLen));
1600 fprintf(stream, " %22s = %s\n", "CipherAlgorithm", CipherAlgorithm.EncodeString(identbuf, IdentBufferLen));
1601 fprintf(stream, " %22s = %s\n", "MICAlgorithm", MICAlgorithm.EncodeString(identbuf, IdentBufferLen));
1602 fprintf(stream, " %22s = %s\n", "CryptographicKeyID", CryptographicKeyID.EncodeString(identbuf, IdentBufferLen));
1607 CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
1610 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicContext));
1611 return InterchangeObject::InitFromBuffer(p, l);
1616 CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1619 m_Typeinfo = &(m_Dict->Type(MDD_CryptographicContext));
1620 return InterchangeObject::WriteToBuffer(Buffer);
1623 //------------------------------------------------------------------------------------------
1624 // GenericDataEssenceDescriptor
1628 GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1631 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1632 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1638 GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1641 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1642 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1648 GenericDataEssenceDescriptor::Dump(FILE* stream)
1650 char identbuf[IdentBufferLen];
1656 FileDescriptor::Dump(stream);
1657 fprintf(stream, " %22s = %s\n", "DataEssenceCoding", DataEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1662 GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1665 m_Typeinfo = &(m_Dict->Type(MDD_GenericDataEssenceDescriptor));
1666 return InterchangeObject::InitFromBuffer(p, l);
1671 GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1674 m_Typeinfo = &(m_Dict->Type(MDD_GenericDataEssenceDescriptor));
1675 return InterchangeObject::WriteToBuffer(Buffer);
1678 //------------------------------------------------------------------------------------------
1679 // TimedTextDescriptor
1683 TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1686 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
1687 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, ResourceID));
1688 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, UCSEncoding));
1689 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, NamespaceURI));
1695 TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1698 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
1699 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, ResourceID));
1700 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
1701 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, NamespaceURI));
1707 TimedTextDescriptor::Dump(FILE* stream)
1709 char identbuf[IdentBufferLen];
1715 GenericDataEssenceDescriptor::Dump(stream);
1716 fprintf(stream, " %22s = %s\n", "ResourceID", ResourceID.EncodeString(identbuf, IdentBufferLen));
1717 fprintf(stream, " %22s = %s\n", "UCSEncoding", UCSEncoding.EncodeString(identbuf, IdentBufferLen));
1718 fprintf(stream, " %22s = %s\n", "NamespaceURI", NamespaceURI.EncodeString(identbuf, IdentBufferLen));
1723 TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1726 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextDescriptor));
1727 return InterchangeObject::InitFromBuffer(p, l);
1732 TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1735 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextDescriptor));
1736 return InterchangeObject::WriteToBuffer(Buffer);
1739 //------------------------------------------------------------------------------------------
1740 // TimedTextResourceSubDescriptor
1744 TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1747 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1748 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
1749 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
1750 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
1756 TimedTextResourceSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1759 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1760 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
1761 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
1762 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
1768 TimedTextResourceSubDescriptor::Dump(FILE* stream)
1770 char identbuf[IdentBufferLen];
1776 InterchangeObject::Dump(stream);
1777 fprintf(stream, " %22s = %s\n", "AncillaryResourceID", AncillaryResourceID.EncodeString(identbuf, IdentBufferLen));
1778 fprintf(stream, " %22s = %s\n", "MIMEMediaType", MIMEMediaType.EncodeString(identbuf, IdentBufferLen));
1779 fprintf(stream, " %22s = %d\n", "EssenceStreamID", EssenceStreamID);
1784 TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1787 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextResourceSubDescriptor));
1788 return InterchangeObject::InitFromBuffer(p, l);
1793 TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1796 m_Typeinfo = &(m_Dict->Type(MDD_TimedTextResourceSubDescriptor));
1797 return InterchangeObject::WriteToBuffer(Buffer);
1800 //------------------------------------------------------------------------------------------
1801 // StereoscopicPictureSubDescriptor
1805 StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1808 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1814 StereoscopicPictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1817 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1823 StereoscopicPictureSubDescriptor::Dump(FILE* stream)
1825 char identbuf[IdentBufferLen];
1831 InterchangeObject::Dump(stream);
1836 StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1839 m_Typeinfo = &(m_Dict->Type(MDD_StereoscopicPictureSubDescriptor));
1840 return InterchangeObject::InitFromBuffer(p, l);
1845 StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1848 m_Typeinfo = &(m_Dict->Type(MDD_StereoscopicPictureSubDescriptor));
1849 return InterchangeObject::WriteToBuffer(Buffer);