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() { return new Preface; }
44 static InterchangeObject* IndexTableSegment_Factory() { return new IndexTableSegment; }
46 static InterchangeObject* Identification_Factory() { return new Identification; }
47 static InterchangeObject* ContentStorage_Factory() { return new ContentStorage; }
48 static InterchangeObject* EssenceContainerData_Factory() { return new EssenceContainerData; }
49 static InterchangeObject* MaterialPackage_Factory() { return new MaterialPackage; }
50 static InterchangeObject* SourcePackage_Factory() { return new SourcePackage; }
51 static InterchangeObject* StaticTrack_Factory() { return new StaticTrack; }
52 static InterchangeObject* Track_Factory() { return new Track; }
53 static InterchangeObject* Sequence_Factory() { return new Sequence; }
54 static InterchangeObject* SourceClip_Factory() { return new SourceClip; }
55 static InterchangeObject* TimecodeComponent_Factory() { return new TimecodeComponent; }
56 static InterchangeObject* FileDescriptor_Factory() { return new FileDescriptor; }
57 static InterchangeObject* GenericSoundEssenceDescriptor_Factory() { return new GenericSoundEssenceDescriptor; }
58 static InterchangeObject* WaveAudioDescriptor_Factory() { return new WaveAudioDescriptor; }
59 static InterchangeObject* GenericPictureEssenceDescriptor_Factory() { return new GenericPictureEssenceDescriptor; }
60 static InterchangeObject* RGBAEssenceDescriptor_Factory() { return new RGBAEssenceDescriptor; }
61 static InterchangeObject* JPEG2000PictureSubDescriptor_Factory() { return new JPEG2000PictureSubDescriptor; }
62 static InterchangeObject* CDCIEssenceDescriptor_Factory() { return new CDCIEssenceDescriptor; }
63 static InterchangeObject* MPEG2VideoDescriptor_Factory() { return new MPEG2VideoDescriptor; }
64 static InterchangeObject* DMSegment_Factory() { return new DMSegment; }
65 static InterchangeObject* CryptographicFramework_Factory() { return new CryptographicFramework; }
66 static InterchangeObject* CryptographicContext_Factory() { return new CryptographicContext; }
67 static InterchangeObject* GenericDataEssenceDescriptor_Factory() { return new GenericDataEssenceDescriptor; }
68 static InterchangeObject* TimedTextDescriptor_Factory() { return new TimedTextDescriptor; }
69 static InterchangeObject* TimedTextResourceSubDescriptor_Factory() { return new TimedTextResourceSubDescriptor; }
70 static InterchangeObject* StereoscopicPictureSubDescriptor_Factory() { return new StereoscopicPictureSubDescriptor; }
74 ASDCP::MXF::Metadata_InitTypes()
76 SetObjectFactory(Dict::ul(MDD_Preface), Preface_Factory);
77 SetObjectFactory(Dict::ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
79 SetObjectFactory(Dict::ul(MDD_Identification), Identification_Factory);
80 SetObjectFactory(Dict::ul(MDD_ContentStorage), ContentStorage_Factory);
81 SetObjectFactory(Dict::ul(MDD_EssenceContainerData), EssenceContainerData_Factory);
82 SetObjectFactory(Dict::ul(MDD_MaterialPackage), MaterialPackage_Factory);
83 SetObjectFactory(Dict::ul(MDD_SourcePackage), SourcePackage_Factory);
84 SetObjectFactory(Dict::ul(MDD_StaticTrack), StaticTrack_Factory);
85 SetObjectFactory(Dict::ul(MDD_Track), Track_Factory);
86 SetObjectFactory(Dict::ul(MDD_Sequence), Sequence_Factory);
87 SetObjectFactory(Dict::ul(MDD_SourceClip), SourceClip_Factory);
88 SetObjectFactory(Dict::ul(MDD_TimecodeComponent), TimecodeComponent_Factory);
89 SetObjectFactory(Dict::ul(MDD_FileDescriptor), FileDescriptor_Factory);
90 SetObjectFactory(Dict::ul(MDD_GenericSoundEssenceDescriptor), GenericSoundEssenceDescriptor_Factory);
91 SetObjectFactory(Dict::ul(MDD_WaveAudioDescriptor), WaveAudioDescriptor_Factory);
92 SetObjectFactory(Dict::ul(MDD_GenericPictureEssenceDescriptor), GenericPictureEssenceDescriptor_Factory);
93 SetObjectFactory(Dict::ul(MDD_RGBAEssenceDescriptor), RGBAEssenceDescriptor_Factory);
94 SetObjectFactory(Dict::ul(MDD_JPEG2000PictureSubDescriptor), JPEG2000PictureSubDescriptor_Factory);
95 SetObjectFactory(Dict::ul(MDD_CDCIEssenceDescriptor), CDCIEssenceDescriptor_Factory);
96 SetObjectFactory(Dict::ul(MDD_MPEG2VideoDescriptor), MPEG2VideoDescriptor_Factory);
97 SetObjectFactory(Dict::ul(MDD_DMSegment), DMSegment_Factory);
98 SetObjectFactory(Dict::ul(MDD_CryptographicFramework), CryptographicFramework_Factory);
99 SetObjectFactory(Dict::ul(MDD_CryptographicContext), CryptographicContext_Factory);
100 SetObjectFactory(Dict::ul(MDD_GenericDataEssenceDescriptor), GenericDataEssenceDescriptor_Factory);
101 SetObjectFactory(Dict::ul(MDD_TimedTextDescriptor), TimedTextDescriptor_Factory);
102 SetObjectFactory(Dict::ul(MDD_TimedTextResourceSubDescriptor), TimedTextResourceSubDescriptor_Factory);
103 SetObjectFactory(Dict::ul(MDD_StereoscopicPictureSubDescriptor), StereoscopicPictureSubDescriptor_Factory);
106 //------------------------------------------------------------------------------------------
111 //------------------------------------------------------------------------------------------
116 Identification::InitFromTLVSet(TLVReader& TLVSet)
118 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
119 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
120 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
121 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductName));
122 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductVersion));
123 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, VersionString));
124 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductUID));
125 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ModificationDate));
126 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ToolkitVersion));
127 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, Platform));
133 Identification::WriteToTLVSet(TLVWriter& TLVSet)
135 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
136 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
137 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
138 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductName));
139 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductVersion));
140 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, VersionString));
141 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductUID));
142 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ModificationDate));
143 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ToolkitVersion));
144 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, Platform));
150 Identification::Dump(FILE* stream)
152 char identbuf[IdentBufferLen];
158 InterchangeObject::Dump(stream);
159 fprintf(stream, " %22s = %s\n", "ThisGenerationUID", ThisGenerationUID.EncodeString(identbuf, IdentBufferLen));
160 fprintf(stream, " %22s = %s\n", "CompanyName", CompanyName.EncodeString(identbuf, IdentBufferLen));
161 fprintf(stream, " %22s = %s\n", "ProductName", ProductName.EncodeString(identbuf, IdentBufferLen));
162 fprintf(stream, " %22s = %s\n", "ProductVersion", ProductVersion.EncodeString(identbuf, IdentBufferLen));
163 fprintf(stream, " %22s = %s\n", "VersionString", VersionString.EncodeString(identbuf, IdentBufferLen));
164 fprintf(stream, " %22s = %s\n", "ProductUID", ProductUID.EncodeString(identbuf, IdentBufferLen));
165 fprintf(stream, " %22s = %s\n", "ModificationDate", ModificationDate.EncodeString(identbuf, IdentBufferLen));
166 fprintf(stream, " %22s = %s\n", "ToolkitVersion", ToolkitVersion.EncodeString(identbuf, IdentBufferLen));
167 fprintf(stream, " %22s = %s\n", "Platform", Platform.EncodeString(identbuf, IdentBufferLen));
172 Identification::InitFromBuffer(const byte_t* p, ui32_t l)
174 m_Typeinfo = &Dict::Type(MDD_Identification);
175 return InterchangeObject::InitFromBuffer(p, l);
180 Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
182 m_Typeinfo = &Dict::Type(MDD_Identification);
183 return InterchangeObject::WriteToBuffer(Buffer);
186 //------------------------------------------------------------------------------------------
191 ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
193 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
194 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
195 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
201 ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
203 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
204 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
205 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
211 ContentStorage::Dump(FILE* stream)
213 char identbuf[IdentBufferLen];
219 InterchangeObject::Dump(stream);
220 fprintf(stream, " %22s:\n", "Packages");
221 Packages.Dump(stream);
222 fprintf(stream, " %22s:\n", "EssenceContainerData");
223 EssenceContainerData.Dump(stream);
228 ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
230 m_Typeinfo = &Dict::Type(MDD_ContentStorage);
231 return InterchangeObject::InitFromBuffer(p, l);
236 ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
238 m_Typeinfo = &Dict::Type(MDD_ContentStorage);
239 return InterchangeObject::WriteToBuffer(Buffer);
242 //------------------------------------------------------------------------------------------
243 // EssenceContainerData
247 EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
249 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
250 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
251 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
252 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
258 EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
260 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
261 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
262 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
263 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
269 EssenceContainerData::Dump(FILE* stream)
271 char identbuf[IdentBufferLen];
277 InterchangeObject::Dump(stream);
278 fprintf(stream, " %22s = %s\n", "LinkedPackageUID", LinkedPackageUID.EncodeString(identbuf, IdentBufferLen));
279 fprintf(stream, " %22s = %d\n", "IndexSID", IndexSID);
280 fprintf(stream, " %22s = %d\n", "BodySID", BodySID);
285 EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
287 m_Typeinfo = &Dict::Type(MDD_EssenceContainerData);
288 return InterchangeObject::InitFromBuffer(p, l);
293 EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
295 m_Typeinfo = &Dict::Type(MDD_EssenceContainerData);
296 return InterchangeObject::WriteToBuffer(Buffer);
299 //------------------------------------------------------------------------------------------
304 GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
306 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
307 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
308 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
309 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageCreationDate));
310 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageModifiedDate));
311 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Tracks));
317 GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
319 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
320 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
321 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
322 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageCreationDate));
323 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageModifiedDate));
324 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Tracks));
330 GenericPackage::Dump(FILE* stream)
332 char identbuf[IdentBufferLen];
338 InterchangeObject::Dump(stream);
339 fprintf(stream, " %22s = %s\n", "PackageUID", PackageUID.EncodeString(identbuf, IdentBufferLen));
340 fprintf(stream, " %22s = %s\n", "Name", Name.EncodeString(identbuf, IdentBufferLen));
341 fprintf(stream, " %22s = %s\n", "PackageCreationDate", PackageCreationDate.EncodeString(identbuf, IdentBufferLen));
342 fprintf(stream, " %22s = %s\n", "PackageModifiedDate", PackageModifiedDate.EncodeString(identbuf, IdentBufferLen));
343 fprintf(stream, " %22s:\n", "Tracks");
348 //------------------------------------------------------------------------------------------
353 MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
355 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
361 MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
363 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
369 MaterialPackage::Dump(FILE* stream)
371 char identbuf[IdentBufferLen];
377 GenericPackage::Dump(stream);
382 MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
384 m_Typeinfo = &Dict::Type(MDD_MaterialPackage);
385 return InterchangeObject::InitFromBuffer(p, l);
390 MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
392 m_Typeinfo = &Dict::Type(MDD_MaterialPackage);
393 return InterchangeObject::WriteToBuffer(Buffer);
396 //------------------------------------------------------------------------------------------
401 SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
403 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
404 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
410 SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
412 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
413 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
419 SourcePackage::Dump(FILE* stream)
421 char identbuf[IdentBufferLen];
427 GenericPackage::Dump(stream);
428 fprintf(stream, " %22s = %s\n", "Descriptor", Descriptor.EncodeString(identbuf, IdentBufferLen));
433 SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
435 m_Typeinfo = &Dict::Type(MDD_SourcePackage);
436 return InterchangeObject::InitFromBuffer(p, l);
441 SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
443 m_Typeinfo = &Dict::Type(MDD_SourcePackage);
444 return InterchangeObject::WriteToBuffer(Buffer);
447 //------------------------------------------------------------------------------------------
452 GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
454 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
455 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
456 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
457 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, TrackName));
458 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, Sequence));
464 GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
466 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
467 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
468 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
469 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, TrackName));
470 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, Sequence));
476 GenericTrack::Dump(FILE* stream)
478 char identbuf[IdentBufferLen];
484 InterchangeObject::Dump(stream);
485 fprintf(stream, " %22s = %d\n", "TrackID", TrackID);
486 fprintf(stream, " %22s = %d\n", "TrackNumber", TrackNumber);
487 fprintf(stream, " %22s = %s\n", "TrackName", TrackName.EncodeString(identbuf, IdentBufferLen));
488 fprintf(stream, " %22s = %s\n", "Sequence", Sequence.EncodeString(identbuf, IdentBufferLen));
492 //------------------------------------------------------------------------------------------
497 StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
499 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
505 StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
507 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
513 StaticTrack::Dump(FILE* stream)
515 char identbuf[IdentBufferLen];
521 GenericTrack::Dump(stream);
526 StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
528 m_Typeinfo = &Dict::Type(MDD_StaticTrack);
529 return InterchangeObject::InitFromBuffer(p, l);
534 StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
536 m_Typeinfo = &Dict::Type(MDD_StaticTrack);
537 return InterchangeObject::WriteToBuffer(Buffer);
540 //------------------------------------------------------------------------------------------
545 Track::InitFromTLVSet(TLVReader& TLVSet)
547 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
548 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
549 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
555 Track::WriteToTLVSet(TLVWriter& TLVSet)
557 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
558 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
559 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
565 Track::Dump(FILE* stream)
567 char identbuf[IdentBufferLen];
573 GenericTrack::Dump(stream);
574 fprintf(stream, " %22s = %s\n", "EditRate", EditRate.EncodeString(identbuf, IdentBufferLen));
575 fprintf(stream, " %22s = %s\n", "Origin", i64sz(Origin, identbuf));
580 Track::InitFromBuffer(const byte_t* p, ui32_t l)
582 m_Typeinfo = &Dict::Type(MDD_Track);
583 return InterchangeObject::InitFromBuffer(p, l);
588 Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
590 m_Typeinfo = &Dict::Type(MDD_Track);
591 return InterchangeObject::WriteToBuffer(Buffer);
594 //------------------------------------------------------------------------------------------
595 // StructuralComponent
599 StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
601 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
602 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
603 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
609 StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
611 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
612 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
613 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
619 StructuralComponent::Dump(FILE* stream)
621 char identbuf[IdentBufferLen];
627 InterchangeObject::Dump(stream);
628 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
629 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
633 //------------------------------------------------------------------------------------------
638 Sequence::InitFromTLVSet(TLVReader& TLVSet)
640 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
641 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
647 Sequence::WriteToTLVSet(TLVWriter& TLVSet)
649 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
650 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
656 Sequence::Dump(FILE* stream)
658 char identbuf[IdentBufferLen];
664 StructuralComponent::Dump(stream);
665 fprintf(stream, " %22s:\n", "StructuralComponents");
666 StructuralComponents.Dump(stream);
671 Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
673 m_Typeinfo = &Dict::Type(MDD_Sequence);
674 return InterchangeObject::InitFromBuffer(p, l);
679 Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
681 m_Typeinfo = &Dict::Type(MDD_Sequence);
682 return InterchangeObject::WriteToBuffer(Buffer);
685 //------------------------------------------------------------------------------------------
690 SourceClip::InitFromTLVSet(TLVReader& TLVSet)
692 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
693 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
694 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
695 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(SourceClip, SourceTrackID));
701 SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
703 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
704 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
705 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
706 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(SourceClip, SourceTrackID));
712 SourceClip::Dump(FILE* stream)
714 char identbuf[IdentBufferLen];
720 StructuralComponent::Dump(stream);
721 fprintf(stream, " %22s = %s\n", "StartPosition", i64sz(StartPosition, identbuf));
722 fprintf(stream, " %22s = %s\n", "SourcePackageID", SourcePackageID.EncodeString(identbuf, IdentBufferLen));
723 fprintf(stream, " %22s = %d\n", "SourceTrackID", SourceTrackID);
728 SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
730 m_Typeinfo = &Dict::Type(MDD_SourceClip);
731 return InterchangeObject::InitFromBuffer(p, l);
736 SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
738 m_Typeinfo = &Dict::Type(MDD_SourceClip);
739 return InterchangeObject::WriteToBuffer(Buffer);
742 //------------------------------------------------------------------------------------------
747 TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
749 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
750 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
751 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
752 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(TimecodeComponent, DropFrame));
758 TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
760 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
761 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
762 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
763 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(TimecodeComponent, DropFrame));
769 TimecodeComponent::Dump(FILE* stream)
771 char identbuf[IdentBufferLen];
777 StructuralComponent::Dump(stream);
778 fprintf(stream, " %22s = %d\n", "RoundedTimecodeBase", RoundedTimecodeBase);
779 fprintf(stream, " %22s = %s\n", "StartTimecode", i64sz(StartTimecode, identbuf));
780 fprintf(stream, " %22s = %d\n", "DropFrame", DropFrame);
785 TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
787 m_Typeinfo = &Dict::Type(MDD_TimecodeComponent);
788 return InterchangeObject::InitFromBuffer(p, l);
793 TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
795 m_Typeinfo = &Dict::Type(MDD_TimecodeComponent);
796 return InterchangeObject::WriteToBuffer(Buffer);
799 //------------------------------------------------------------------------------------------
804 GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
806 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
807 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
808 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
814 GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
816 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
817 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
818 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
824 GenericDescriptor::Dump(FILE* stream)
826 char identbuf[IdentBufferLen];
832 InterchangeObject::Dump(stream);
833 fprintf(stream, " %22s:\n", "Locators");
834 Locators.Dump(stream);
835 fprintf(stream, " %22s:\n", "SubDescriptors");
836 SubDescriptors.Dump(stream);
840 //------------------------------------------------------------------------------------------
845 FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
847 Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
848 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
849 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
850 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(FileDescriptor, ContainerDuration));
851 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, EssenceContainer));
852 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, Codec));
858 FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
860 Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
861 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
862 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
863 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(FileDescriptor, ContainerDuration));
864 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, EssenceContainer));
865 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, Codec));
871 FileDescriptor::Dump(FILE* stream)
873 char identbuf[IdentBufferLen];
879 GenericDescriptor::Dump(stream);
880 fprintf(stream, " %22s = %d\n", "LinkedTrackID", LinkedTrackID);
881 fprintf(stream, " %22s = %s\n", "SampleRate", SampleRate.EncodeString(identbuf, IdentBufferLen));
882 fprintf(stream, " %22s = %s\n", "ContainerDuration", i64sz(ContainerDuration, identbuf));
883 fprintf(stream, " %22s = %s\n", "EssenceContainer", EssenceContainer.EncodeString(identbuf, IdentBufferLen));
884 fprintf(stream, " %22s = %s\n", "Codec", Codec.EncodeString(identbuf, IdentBufferLen));
889 FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
891 m_Typeinfo = &Dict::Type(MDD_FileDescriptor);
892 return InterchangeObject::InitFromBuffer(p, l);
897 FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
899 m_Typeinfo = &Dict::Type(MDD_FileDescriptor);
900 return InterchangeObject::WriteToBuffer(Buffer);
903 //------------------------------------------------------------------------------------------
904 // GenericSoundEssenceDescriptor
908 GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
910 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
911 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
912 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
913 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
914 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
915 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
916 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, DialNorm));
922 GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
924 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
925 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
926 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
927 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
928 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
929 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
930 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, DialNorm));
936 GenericSoundEssenceDescriptor::Dump(FILE* stream)
938 char identbuf[IdentBufferLen];
944 FileDescriptor::Dump(stream);
945 fprintf(stream, " %22s = %s\n", "AudioSamplingRate", AudioSamplingRate.EncodeString(identbuf, IdentBufferLen));
946 fprintf(stream, " %22s = %d\n", "Locked", Locked);
947 fprintf(stream, " %22s = %d\n", "AudioRefLevel", AudioRefLevel);
948 fprintf(stream, " %22s = %d\n", "ChannelCount", ChannelCount);
949 fprintf(stream, " %22s = %d\n", "QuantizationBits", QuantizationBits);
950 fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm);
955 GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
957 m_Typeinfo = &Dict::Type(MDD_GenericSoundEssenceDescriptor);
958 return InterchangeObject::InitFromBuffer(p, l);
963 GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
965 m_Typeinfo = &Dict::Type(MDD_GenericSoundEssenceDescriptor);
966 return InterchangeObject::WriteToBuffer(Buffer);
969 //------------------------------------------------------------------------------------------
970 // WaveAudioDescriptor
974 WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
976 Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
977 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
978 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
979 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(WaveAudioDescriptor, AvgBps));
980 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(WaveAudioDescriptor, ChannelAssignment));
986 WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
988 Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
989 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
990 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
991 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(WaveAudioDescriptor, AvgBps));
992 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(WaveAudioDescriptor, ChannelAssignment));
998 WaveAudioDescriptor::Dump(FILE* stream)
1000 char identbuf[IdentBufferLen];
1006 GenericSoundEssenceDescriptor::Dump(stream);
1007 fprintf(stream, " %22s = %d\n", "BlockAlign", BlockAlign);
1008 fprintf(stream, " %22s = %d\n", "SequenceOffset", SequenceOffset);
1009 fprintf(stream, " %22s = %d\n", "AvgBps", AvgBps);
1010 fprintf(stream, " %22s = %s\n", "ChannelAssignment", ChannelAssignment.EncodeString(identbuf, IdentBufferLen));
1015 WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1017 m_Typeinfo = &Dict::Type(MDD_WaveAudioDescriptor);
1018 return InterchangeObject::InitFromBuffer(p, l);
1023 WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1025 m_Typeinfo = &Dict::Type(MDD_WaveAudioDescriptor);
1026 return InterchangeObject::WriteToBuffer(Buffer);
1029 //------------------------------------------------------------------------------------------
1030 // GenericPictureEssenceDescriptor
1034 GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1036 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1037 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1038 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1039 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1040 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1041 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1047 GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1049 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1050 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1051 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1052 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1053 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1054 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, PictureEssenceCoding));
1060 GenericPictureEssenceDescriptor::Dump(FILE* stream)
1062 char identbuf[IdentBufferLen];
1068 FileDescriptor::Dump(stream);
1069 fprintf(stream, " %22s = %d\n", "FrameLayout", FrameLayout);
1070 fprintf(stream, " %22s = %d\n", "StoredWidth", StoredWidth);
1071 fprintf(stream, " %22s = %d\n", "StoredHeight", StoredHeight);
1072 fprintf(stream, " %22s = %s\n", "AspectRatio", AspectRatio.EncodeString(identbuf, IdentBufferLen));
1073 fprintf(stream, " %22s = %s\n", "PictureEssenceCoding", PictureEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1078 GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1080 m_Typeinfo = &Dict::Type(MDD_GenericPictureEssenceDescriptor);
1081 return InterchangeObject::InitFromBuffer(p, l);
1086 GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1088 m_Typeinfo = &Dict::Type(MDD_GenericPictureEssenceDescriptor);
1089 return InterchangeObject::WriteToBuffer(Buffer);
1092 //------------------------------------------------------------------------------------------
1093 // RGBAEssenceDescriptor
1097 RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1099 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1100 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1101 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1107 RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1109 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1110 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1111 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1117 RGBAEssenceDescriptor::Dump(FILE* stream)
1119 char identbuf[IdentBufferLen];
1125 GenericPictureEssenceDescriptor::Dump(stream);
1126 fprintf(stream, " %22s = %d\n", "ComponentMaxRef", ComponentMaxRef);
1127 fprintf(stream, " %22s = %d\n", "ComponentMinRef", ComponentMinRef);
1132 RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1134 m_Typeinfo = &Dict::Type(MDD_RGBAEssenceDescriptor);
1135 return InterchangeObject::InitFromBuffer(p, l);
1140 RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1142 m_Typeinfo = &Dict::Type(MDD_RGBAEssenceDescriptor);
1143 return InterchangeObject::WriteToBuffer(Buffer);
1146 //------------------------------------------------------------------------------------------
1147 // JPEG2000PictureSubDescriptor
1151 JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1153 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1154 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1155 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1156 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1157 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1158 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1159 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1160 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1161 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1162 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1163 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Csize));
1164 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1165 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1166 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1172 JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1174 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1175 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1176 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1177 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1178 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1179 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1180 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1181 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1182 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1183 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1184 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Csize));
1185 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1186 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1187 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1193 JPEG2000PictureSubDescriptor::Dump(FILE* stream)
1195 char identbuf[IdentBufferLen];
1201 InterchangeObject::Dump(stream);
1202 fprintf(stream, " %22s = %d\n", "Rsize", Rsize);
1203 fprintf(stream, " %22s = %d\n", "Xsize", Xsize);
1204 fprintf(stream, " %22s = %d\n", "Ysize", Ysize);
1205 fprintf(stream, " %22s = %d\n", "XOsize", XOsize);
1206 fprintf(stream, " %22s = %d\n", "YOsize", YOsize);
1207 fprintf(stream, " %22s = %d\n", "XTsize", XTsize);
1208 fprintf(stream, " %22s = %d\n", "YTsize", YTsize);
1209 fprintf(stream, " %22s = %d\n", "XTOsize", XTOsize);
1210 fprintf(stream, " %22s = %d\n", "YTOsize", YTOsize);
1211 fprintf(stream, " %22s = %d\n", "Csize", Csize);
1212 fprintf(stream, " %22s = %s\n", "PictureComponentSizing", PictureComponentSizing.EncodeString(identbuf, IdentBufferLen));
1213 fprintf(stream, " %22s = %s\n", "CodingStyleDefault", CodingStyleDefault.EncodeString(identbuf, IdentBufferLen));
1214 fprintf(stream, " %22s = %s\n", "QuantizationDefault", QuantizationDefault.EncodeString(identbuf, IdentBufferLen));
1219 JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1221 m_Typeinfo = &Dict::Type(MDD_JPEG2000PictureSubDescriptor);
1222 return InterchangeObject::InitFromBuffer(p, l);
1227 JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1229 m_Typeinfo = &Dict::Type(MDD_JPEG2000PictureSubDescriptor);
1230 return InterchangeObject::WriteToBuffer(Buffer);
1233 //------------------------------------------------------------------------------------------
1234 // CDCIEssenceDescriptor
1238 CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1240 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1241 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1242 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1243 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1244 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(CDCIEssenceDescriptor, ColorSiting));
1250 CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1252 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1253 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1254 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1255 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1256 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ColorSiting));
1262 CDCIEssenceDescriptor::Dump(FILE* stream)
1264 char identbuf[IdentBufferLen];
1270 GenericPictureEssenceDescriptor::Dump(stream);
1271 fprintf(stream, " %22s = %d\n", "ComponentDepth", ComponentDepth);
1272 fprintf(stream, " %22s = %d\n", "HorizontalSubsampling", HorizontalSubsampling);
1273 fprintf(stream, " %22s = %d\n", "VerticalSubsampling", VerticalSubsampling);
1274 fprintf(stream, " %22s = %d\n", "ColorSiting", ColorSiting);
1279 CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1281 m_Typeinfo = &Dict::Type(MDD_CDCIEssenceDescriptor);
1282 return InterchangeObject::InitFromBuffer(p, l);
1287 CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1289 m_Typeinfo = &Dict::Type(MDD_CDCIEssenceDescriptor);
1290 return InterchangeObject::WriteToBuffer(Buffer);
1293 //------------------------------------------------------------------------------------------
1294 // MPEG2VideoDescriptor
1298 MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1300 Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
1301 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
1302 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
1303 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MPEG2VideoDescriptor, BitRate));
1304 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1310 MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1312 Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
1313 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
1314 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
1315 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, BitRate));
1316 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1322 MPEG2VideoDescriptor::Dump(FILE* stream)
1324 char identbuf[IdentBufferLen];
1330 CDCIEssenceDescriptor::Dump(stream);
1331 fprintf(stream, " %22s = %d\n", "CodedContentType", CodedContentType);
1332 fprintf(stream, " %22s = %d\n", "LowDelay", LowDelay);
1333 fprintf(stream, " %22s = %d\n", "BitRate", BitRate);
1334 fprintf(stream, " %22s = %d\n", "ProfileAndLevel", ProfileAndLevel);
1339 MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1341 m_Typeinfo = &Dict::Type(MDD_MPEG2VideoDescriptor);
1342 return InterchangeObject::InitFromBuffer(p, l);
1347 MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1349 m_Typeinfo = &Dict::Type(MDD_MPEG2VideoDescriptor);
1350 return InterchangeObject::WriteToBuffer(Buffer);
1353 //------------------------------------------------------------------------------------------
1358 DMSegment::InitFromTLVSet(TLVReader& TLVSet)
1360 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1361 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
1362 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
1363 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration));
1364 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment));
1365 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework));
1371 DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
1373 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1374 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
1375 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
1376 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration));
1377 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment));
1378 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework));
1384 DMSegment::Dump(FILE* stream)
1386 char identbuf[IdentBufferLen];
1392 InterchangeObject::Dump(stream);
1393 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
1394 fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf));
1395 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
1396 fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen));
1397 fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen));
1402 DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
1404 m_Typeinfo = &Dict::Type(MDD_DMSegment);
1405 return InterchangeObject::InitFromBuffer(p, l);
1410 DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1412 m_Typeinfo = &Dict::Type(MDD_DMSegment);
1413 return InterchangeObject::WriteToBuffer(Buffer);
1416 //------------------------------------------------------------------------------------------
1417 // CryptographicFramework
1421 CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
1423 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1424 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
1430 CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
1432 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1433 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
1439 CryptographicFramework::Dump(FILE* stream)
1441 char identbuf[IdentBufferLen];
1447 InterchangeObject::Dump(stream);
1448 fprintf(stream, " %22s = %s\n", "ContextSR", ContextSR.EncodeString(identbuf, IdentBufferLen));
1453 CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
1455 m_Typeinfo = &Dict::Type(MDD_CryptographicFramework);
1456 return InterchangeObject::InitFromBuffer(p, l);
1461 CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1463 m_Typeinfo = &Dict::Type(MDD_CryptographicFramework);
1464 return InterchangeObject::WriteToBuffer(Buffer);
1467 //------------------------------------------------------------------------------------------
1468 // CryptographicContext
1472 CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
1474 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1475 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
1476 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
1477 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CipherAlgorithm));
1478 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, MICAlgorithm));
1479 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CryptographicKeyID));
1485 CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
1487 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1488 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
1489 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
1490 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CipherAlgorithm));
1491 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, MICAlgorithm));
1492 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CryptographicKeyID));
1498 CryptographicContext::Dump(FILE* stream)
1500 char identbuf[IdentBufferLen];
1506 InterchangeObject::Dump(stream);
1507 fprintf(stream, " %22s = %s\n", "ContextID", ContextID.EncodeString(identbuf, IdentBufferLen));
1508 fprintf(stream, " %22s = %s\n", "SourceEssenceContainer", SourceEssenceContainer.EncodeString(identbuf, IdentBufferLen));
1509 fprintf(stream, " %22s = %s\n", "CipherAlgorithm", CipherAlgorithm.EncodeString(identbuf, IdentBufferLen));
1510 fprintf(stream, " %22s = %s\n", "MICAlgorithm", MICAlgorithm.EncodeString(identbuf, IdentBufferLen));
1511 fprintf(stream, " %22s = %s\n", "CryptographicKeyID", CryptographicKeyID.EncodeString(identbuf, IdentBufferLen));
1516 CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
1518 m_Typeinfo = &Dict::Type(MDD_CryptographicContext);
1519 return InterchangeObject::InitFromBuffer(p, l);
1524 CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1526 m_Typeinfo = &Dict::Type(MDD_CryptographicContext);
1527 return InterchangeObject::WriteToBuffer(Buffer);
1530 //------------------------------------------------------------------------------------------
1531 // GenericDataEssenceDescriptor
1535 GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1537 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1538 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1544 GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1546 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1547 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1553 GenericDataEssenceDescriptor::Dump(FILE* stream)
1555 char identbuf[IdentBufferLen];
1561 FileDescriptor::Dump(stream);
1562 fprintf(stream, " %22s = %s\n", "DataEssenceCoding", DataEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1567 GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1569 m_Typeinfo = &Dict::Type(MDD_GenericDataEssenceDescriptor);
1570 return InterchangeObject::InitFromBuffer(p, l);
1575 GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1577 m_Typeinfo = &Dict::Type(MDD_GenericDataEssenceDescriptor);
1578 return InterchangeObject::WriteToBuffer(Buffer);
1581 //------------------------------------------------------------------------------------------
1582 // TimedTextDescriptor
1586 TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1588 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
1589 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, ResourceID));
1590 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, UCSEncoding));
1591 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextDescriptor, NamespaceURI));
1597 TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1599 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
1600 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, ResourceID));
1601 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
1602 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, NamespaceURI));
1608 TimedTextDescriptor::Dump(FILE* stream)
1610 char identbuf[IdentBufferLen];
1616 GenericDataEssenceDescriptor::Dump(stream);
1617 fprintf(stream, " %22s = %s\n", "ResourceID", ResourceID.EncodeString(identbuf, IdentBufferLen));
1618 fprintf(stream, " %22s = %s\n", "UCSEncoding", UCSEncoding.EncodeString(identbuf, IdentBufferLen));
1619 fprintf(stream, " %22s = %s\n", "NamespaceURI", NamespaceURI.EncodeString(identbuf, IdentBufferLen));
1624 TimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1626 m_Typeinfo = &Dict::Type(MDD_TimedTextDescriptor);
1627 return InterchangeObject::InitFromBuffer(p, l);
1632 TimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1634 m_Typeinfo = &Dict::Type(MDD_TimedTextDescriptor);
1635 return InterchangeObject::WriteToBuffer(Buffer);
1638 //------------------------------------------------------------------------------------------
1639 // TimedTextResourceSubDescriptor
1643 TimedTextResourceSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1645 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1646 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
1647 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
1648 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
1654 TimedTextResourceSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1656 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1657 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, AncillaryResourceID));
1658 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, MIMEMediaType));
1659 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(TimedTextResourceSubDescriptor, EssenceStreamID));
1665 TimedTextResourceSubDescriptor::Dump(FILE* stream)
1667 char identbuf[IdentBufferLen];
1673 InterchangeObject::Dump(stream);
1674 fprintf(stream, " %22s = %s\n", "AncillaryResourceID", AncillaryResourceID.EncodeString(identbuf, IdentBufferLen));
1675 fprintf(stream, " %22s = %s\n", "MIMEMediaType", MIMEMediaType.EncodeString(identbuf, IdentBufferLen));
1676 fprintf(stream, " %22s = %d\n", "EssenceStreamID", EssenceStreamID);
1681 TimedTextResourceSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1683 m_Typeinfo = &Dict::Type(MDD_TimedTextResourceSubDescriptor);
1684 return InterchangeObject::InitFromBuffer(p, l);
1689 TimedTextResourceSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1691 m_Typeinfo = &Dict::Type(MDD_TimedTextResourceSubDescriptor);
1692 return InterchangeObject::WriteToBuffer(Buffer);
1695 //------------------------------------------------------------------------------------------
1696 // StereoscopicPictureSubDescriptor
1700 StereoscopicPictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1702 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1708 StereoscopicPictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1710 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1716 StereoscopicPictureSubDescriptor::Dump(FILE* stream)
1718 char identbuf[IdentBufferLen];
1724 InterchangeObject::Dump(stream);
1729 StereoscopicPictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1731 m_Typeinfo = &Dict::Type(MDD_StereoscopicPictureSubDescriptor);
1732 return InterchangeObject::InitFromBuffer(p, l);
1737 StereoscopicPictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1739 m_Typeinfo = &Dict::Type(MDD_StereoscopicPictureSubDescriptor);
1740 return InterchangeObject::WriteToBuffer(Buffer);