2 Copyright (c) 2005-2007, 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* DCTimedTextDescriptor_Factory() { return new DCTimedTextDescriptor; }
69 static InterchangeObject* DCTimedTextResourceDescriptor_Factory() { return new DCTimedTextResourceDescriptor; }
72 ASDCP::MXF::Metadata_InitTypes()
74 SetObjectFactory(Dict::ul(MDD_Preface), Preface_Factory);
75 SetObjectFactory(Dict::ul(MDD_IndexTableSegment), IndexTableSegment_Factory);
77 SetObjectFactory(Dict::ul(MDD_Identification), Identification_Factory);
78 SetObjectFactory(Dict::ul(MDD_ContentStorage), ContentStorage_Factory);
79 SetObjectFactory(Dict::ul(MDD_EssenceContainerData), EssenceContainerData_Factory);
80 SetObjectFactory(Dict::ul(MDD_MaterialPackage), MaterialPackage_Factory);
81 SetObjectFactory(Dict::ul(MDD_SourcePackage), SourcePackage_Factory);
82 SetObjectFactory(Dict::ul(MDD_StaticTrack), StaticTrack_Factory);
83 SetObjectFactory(Dict::ul(MDD_Track), Track_Factory);
84 SetObjectFactory(Dict::ul(MDD_Sequence), Sequence_Factory);
85 SetObjectFactory(Dict::ul(MDD_SourceClip), SourceClip_Factory);
86 SetObjectFactory(Dict::ul(MDD_TimecodeComponent), TimecodeComponent_Factory);
87 SetObjectFactory(Dict::ul(MDD_FileDescriptor), FileDescriptor_Factory);
88 SetObjectFactory(Dict::ul(MDD_GenericSoundEssenceDescriptor), GenericSoundEssenceDescriptor_Factory);
89 SetObjectFactory(Dict::ul(MDD_WaveAudioDescriptor), WaveAudioDescriptor_Factory);
90 SetObjectFactory(Dict::ul(MDD_GenericPictureEssenceDescriptor), GenericPictureEssenceDescriptor_Factory);
91 SetObjectFactory(Dict::ul(MDD_RGBAEssenceDescriptor), RGBAEssenceDescriptor_Factory);
92 SetObjectFactory(Dict::ul(MDD_JPEG2000PictureSubDescriptor), JPEG2000PictureSubDescriptor_Factory);
93 SetObjectFactory(Dict::ul(MDD_CDCIEssenceDescriptor), CDCIEssenceDescriptor_Factory);
94 SetObjectFactory(Dict::ul(MDD_MPEG2VideoDescriptor), MPEG2VideoDescriptor_Factory);
95 SetObjectFactory(Dict::ul(MDD_DMSegment), DMSegment_Factory);
96 SetObjectFactory(Dict::ul(MDD_CryptographicFramework), CryptographicFramework_Factory);
97 SetObjectFactory(Dict::ul(MDD_CryptographicContext), CryptographicContext_Factory);
98 SetObjectFactory(Dict::ul(MDD_GenericDataEssenceDescriptor), GenericDataEssenceDescriptor_Factory);
99 SetObjectFactory(Dict::ul(MDD_DCTimedTextDescriptor), DCTimedTextDescriptor_Factory);
100 SetObjectFactory(Dict::ul(MDD_DCTimedTextResourceDescriptor), DCTimedTextResourceDescriptor_Factory);
103 //------------------------------------------------------------------------------------------
108 //------------------------------------------------------------------------------------------
113 Identification::InitFromTLVSet(TLVReader& TLVSet)
115 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
116 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ThisGenerationUID));
117 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, CompanyName));
118 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductName));
119 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductVersion));
120 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, VersionString));
121 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ProductUID));
122 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ModificationDate));
123 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, ToolkitVersion));
124 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Identification, Platform));
130 Identification::WriteToTLVSet(TLVWriter& TLVSet)
132 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
133 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ThisGenerationUID));
134 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, CompanyName));
135 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductName));
136 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductVersion));
137 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, VersionString));
138 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ProductUID));
139 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ModificationDate));
140 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, ToolkitVersion));
141 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Identification, Platform));
147 Identification::Dump(FILE* stream)
149 char identbuf[IdentBufferLen];
155 InterchangeObject::Dump(stream);
156 fprintf(stream, " %22s = %s\n", "ThisGenerationUID", ThisGenerationUID.EncodeString(identbuf, IdentBufferLen));
157 fprintf(stream, " %22s = %s\n", "CompanyName", CompanyName.EncodeString(identbuf, IdentBufferLen));
158 fprintf(stream, " %22s = %s\n", "ProductName", ProductName.EncodeString(identbuf, IdentBufferLen));
159 fprintf(stream, " %22s = %s\n", "ProductVersion", ProductVersion.EncodeString(identbuf, IdentBufferLen));
160 fprintf(stream, " %22s = %s\n", "VersionString", VersionString.EncodeString(identbuf, IdentBufferLen));
161 fprintf(stream, " %22s = %s\n", "ProductUID", ProductUID.EncodeString(identbuf, IdentBufferLen));
162 fprintf(stream, " %22s = %s\n", "ModificationDate", ModificationDate.EncodeString(identbuf, IdentBufferLen));
163 fprintf(stream, " %22s = %s\n", "ToolkitVersion", ToolkitVersion.EncodeString(identbuf, IdentBufferLen));
164 fprintf(stream, " %22s = %s\n", "Platform", Platform.EncodeString(identbuf, IdentBufferLen));
169 Identification::InitFromBuffer(const byte_t* p, ui32_t l)
171 m_Typeinfo = &Dict::Type(MDD_Identification);
172 return InterchangeObject::InitFromBuffer(p, l);
177 Identification::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
179 m_Typeinfo = &Dict::Type(MDD_Identification);
180 return InterchangeObject::WriteToBuffer(Buffer);
183 //------------------------------------------------------------------------------------------
188 ContentStorage::InitFromTLVSet(TLVReader& TLVSet)
190 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
191 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, Packages));
192 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(ContentStorage, EssenceContainerData));
198 ContentStorage::WriteToTLVSet(TLVWriter& TLVSet)
200 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
201 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, Packages));
202 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(ContentStorage, EssenceContainerData));
208 ContentStorage::Dump(FILE* stream)
210 char identbuf[IdentBufferLen];
216 InterchangeObject::Dump(stream);
217 fprintf(stream, " %22s:\n", "Packages");
218 Packages.Dump(stream);
219 fprintf(stream, " %22s:\n", "EssenceContainerData");
220 EssenceContainerData.Dump(stream);
225 ContentStorage::InitFromBuffer(const byte_t* p, ui32_t l)
227 m_Typeinfo = &Dict::Type(MDD_ContentStorage);
228 return InterchangeObject::InitFromBuffer(p, l);
233 ContentStorage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
235 m_Typeinfo = &Dict::Type(MDD_ContentStorage);
236 return InterchangeObject::WriteToBuffer(Buffer);
239 //------------------------------------------------------------------------------------------
240 // EssenceContainerData
244 EssenceContainerData::InitFromTLVSet(TLVReader& TLVSet)
246 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
247 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(EssenceContainerData, LinkedPackageUID));
248 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, IndexSID));
249 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(EssenceContainerData, BodySID));
255 EssenceContainerData::WriteToTLVSet(TLVWriter& TLVSet)
257 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
258 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(EssenceContainerData, LinkedPackageUID));
259 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, IndexSID));
260 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(EssenceContainerData, BodySID));
266 EssenceContainerData::Dump(FILE* stream)
268 char identbuf[IdentBufferLen];
274 InterchangeObject::Dump(stream);
275 fprintf(stream, " %22s = %s\n", "LinkedPackageUID", LinkedPackageUID.EncodeString(identbuf, IdentBufferLen));
276 fprintf(stream, " %22s = %d\n", "IndexSID", IndexSID);
277 fprintf(stream, " %22s = %d\n", "BodySID", BodySID);
282 EssenceContainerData::InitFromBuffer(const byte_t* p, ui32_t l)
284 m_Typeinfo = &Dict::Type(MDD_EssenceContainerData);
285 return InterchangeObject::InitFromBuffer(p, l);
290 EssenceContainerData::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
292 m_Typeinfo = &Dict::Type(MDD_EssenceContainerData);
293 return InterchangeObject::WriteToBuffer(Buffer);
296 //------------------------------------------------------------------------------------------
301 GenericPackage::InitFromTLVSet(TLVReader& TLVSet)
303 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
304 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageUID));
305 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Name));
306 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageCreationDate));
307 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, PackageModifiedDate));
308 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPackage, Tracks));
314 GenericPackage::WriteToTLVSet(TLVWriter& TLVSet)
316 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
317 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageUID));
318 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Name));
319 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageCreationDate));
320 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, PackageModifiedDate));
321 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPackage, Tracks));
327 GenericPackage::Dump(FILE* stream)
329 char identbuf[IdentBufferLen];
335 InterchangeObject::Dump(stream);
336 fprintf(stream, " %22s = %s\n", "PackageUID", PackageUID.EncodeString(identbuf, IdentBufferLen));
337 fprintf(stream, " %22s = %s\n", "Name", Name.EncodeString(identbuf, IdentBufferLen));
338 fprintf(stream, " %22s = %s\n", "PackageCreationDate", PackageCreationDate.EncodeString(identbuf, IdentBufferLen));
339 fprintf(stream, " %22s = %s\n", "PackageModifiedDate", PackageModifiedDate.EncodeString(identbuf, IdentBufferLen));
340 fprintf(stream, " %22s:\n", "Tracks");
345 //------------------------------------------------------------------------------------------
350 MaterialPackage::InitFromTLVSet(TLVReader& TLVSet)
352 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
358 MaterialPackage::WriteToTLVSet(TLVWriter& TLVSet)
360 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
366 MaterialPackage::Dump(FILE* stream)
368 char identbuf[IdentBufferLen];
374 GenericPackage::Dump(stream);
379 MaterialPackage::InitFromBuffer(const byte_t* p, ui32_t l)
381 m_Typeinfo = &Dict::Type(MDD_MaterialPackage);
382 return InterchangeObject::InitFromBuffer(p, l);
387 MaterialPackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
389 m_Typeinfo = &Dict::Type(MDD_MaterialPackage);
390 return InterchangeObject::WriteToBuffer(Buffer);
393 //------------------------------------------------------------------------------------------
398 SourcePackage::InitFromTLVSet(TLVReader& TLVSet)
400 Result_t result = GenericPackage::InitFromTLVSet(TLVSet);
401 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourcePackage, Descriptor));
407 SourcePackage::WriteToTLVSet(TLVWriter& TLVSet)
409 Result_t result = GenericPackage::WriteToTLVSet(TLVSet);
410 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourcePackage, Descriptor));
416 SourcePackage::Dump(FILE* stream)
418 char identbuf[IdentBufferLen];
424 GenericPackage::Dump(stream);
425 fprintf(stream, " %22s = %s\n", "Descriptor", Descriptor.EncodeString(identbuf, IdentBufferLen));
430 SourcePackage::InitFromBuffer(const byte_t* p, ui32_t l)
432 m_Typeinfo = &Dict::Type(MDD_SourcePackage);
433 return InterchangeObject::InitFromBuffer(p, l);
438 SourcePackage::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
440 m_Typeinfo = &Dict::Type(MDD_SourcePackage);
441 return InterchangeObject::WriteToBuffer(Buffer);
444 //------------------------------------------------------------------------------------------
449 GenericTrack::InitFromTLVSet(TLVReader& TLVSet)
451 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
452 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackID));
453 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericTrack, TrackNumber));
454 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, TrackName));
455 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericTrack, Sequence));
461 GenericTrack::WriteToTLVSet(TLVWriter& TLVSet)
463 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
464 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackID));
465 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericTrack, TrackNumber));
466 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, TrackName));
467 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericTrack, Sequence));
473 GenericTrack::Dump(FILE* stream)
475 char identbuf[IdentBufferLen];
481 InterchangeObject::Dump(stream);
482 fprintf(stream, " %22s = %d\n", "TrackID", TrackID);
483 fprintf(stream, " %22s = %d\n", "TrackNumber", TrackNumber);
484 fprintf(stream, " %22s = %s\n", "TrackName", TrackName.EncodeString(identbuf, IdentBufferLen));
485 fprintf(stream, " %22s = %s\n", "Sequence", Sequence.EncodeString(identbuf, IdentBufferLen));
489 //------------------------------------------------------------------------------------------
494 StaticTrack::InitFromTLVSet(TLVReader& TLVSet)
496 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
502 StaticTrack::WriteToTLVSet(TLVWriter& TLVSet)
504 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
510 StaticTrack::Dump(FILE* stream)
512 char identbuf[IdentBufferLen];
518 GenericTrack::Dump(stream);
523 StaticTrack::InitFromBuffer(const byte_t* p, ui32_t l)
525 m_Typeinfo = &Dict::Type(MDD_StaticTrack);
526 return InterchangeObject::InitFromBuffer(p, l);
531 StaticTrack::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
533 m_Typeinfo = &Dict::Type(MDD_StaticTrack);
534 return InterchangeObject::WriteToBuffer(Buffer);
537 //------------------------------------------------------------------------------------------
542 Track::InitFromTLVSet(TLVReader& TLVSet)
544 Result_t result = GenericTrack::InitFromTLVSet(TLVSet);
545 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Track, EditRate));
546 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(Track, Origin));
552 Track::WriteToTLVSet(TLVWriter& TLVSet)
554 Result_t result = GenericTrack::WriteToTLVSet(TLVSet);
555 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Track, EditRate));
556 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(Track, Origin));
562 Track::Dump(FILE* stream)
564 char identbuf[IdentBufferLen];
570 GenericTrack::Dump(stream);
571 fprintf(stream, " %22s = %s\n", "EditRate", EditRate.EncodeString(identbuf, IdentBufferLen));
572 fprintf(stream, " %22s = %s\n", "Origin", i64sz(Origin, identbuf));
577 Track::InitFromBuffer(const byte_t* p, ui32_t l)
579 m_Typeinfo = &Dict::Type(MDD_Track);
580 return InterchangeObject::InitFromBuffer(p, l);
585 Track::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
587 m_Typeinfo = &Dict::Type(MDD_Track);
588 return InterchangeObject::WriteToBuffer(Buffer);
591 //------------------------------------------------------------------------------------------
592 // StructuralComponent
596 StructuralComponent::InitFromTLVSet(TLVReader& TLVSet)
598 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
599 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(StructuralComponent, DataDefinition));
600 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(StructuralComponent, Duration));
606 StructuralComponent::WriteToTLVSet(TLVWriter& TLVSet)
608 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
609 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(StructuralComponent, DataDefinition));
610 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(StructuralComponent, Duration));
616 StructuralComponent::Dump(FILE* stream)
618 char identbuf[IdentBufferLen];
624 InterchangeObject::Dump(stream);
625 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
626 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
630 //------------------------------------------------------------------------------------------
635 Sequence::InitFromTLVSet(TLVReader& TLVSet)
637 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
638 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(Sequence, StructuralComponents));
644 Sequence::WriteToTLVSet(TLVWriter& TLVSet)
646 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
647 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(Sequence, StructuralComponents));
653 Sequence::Dump(FILE* stream)
655 char identbuf[IdentBufferLen];
661 StructuralComponent::Dump(stream);
662 fprintf(stream, " %22s:\n", "StructuralComponents");
663 StructuralComponents.Dump(stream);
668 Sequence::InitFromBuffer(const byte_t* p, ui32_t l)
670 m_Typeinfo = &Dict::Type(MDD_Sequence);
671 return InterchangeObject::InitFromBuffer(p, l);
676 Sequence::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
678 m_Typeinfo = &Dict::Type(MDD_Sequence);
679 return InterchangeObject::WriteToBuffer(Buffer);
682 //------------------------------------------------------------------------------------------
687 SourceClip::InitFromTLVSet(TLVReader& TLVSet)
689 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
690 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(SourceClip, StartPosition));
691 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(SourceClip, SourcePackageID));
692 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(SourceClip, SourceTrackID));
698 SourceClip::WriteToTLVSet(TLVWriter& TLVSet)
700 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
701 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(SourceClip, StartPosition));
702 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(SourceClip, SourcePackageID));
703 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(SourceClip, SourceTrackID));
709 SourceClip::Dump(FILE* stream)
711 char identbuf[IdentBufferLen];
717 StructuralComponent::Dump(stream);
718 fprintf(stream, " %22s = %s\n", "StartPosition", i64sz(StartPosition, identbuf));
719 fprintf(stream, " %22s = %s\n", "SourcePackageID", SourcePackageID.EncodeString(identbuf, IdentBufferLen));
720 fprintf(stream, " %22s = %d\n", "SourceTrackID", SourceTrackID);
725 SourceClip::InitFromBuffer(const byte_t* p, ui32_t l)
727 m_Typeinfo = &Dict::Type(MDD_SourceClip);
728 return InterchangeObject::InitFromBuffer(p, l);
733 SourceClip::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
735 m_Typeinfo = &Dict::Type(MDD_SourceClip);
736 return InterchangeObject::WriteToBuffer(Buffer);
739 //------------------------------------------------------------------------------------------
744 TimecodeComponent::InitFromTLVSet(TLVReader& TLVSet)
746 Result_t result = StructuralComponent::InitFromTLVSet(TLVSet);
747 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(TimecodeComponent, RoundedTimecodeBase));
748 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(TimecodeComponent, StartTimecode));
749 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(TimecodeComponent, DropFrame));
755 TimecodeComponent::WriteToTLVSet(TLVWriter& TLVSet)
757 Result_t result = StructuralComponent::WriteToTLVSet(TLVSet);
758 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(TimecodeComponent, RoundedTimecodeBase));
759 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(TimecodeComponent, StartTimecode));
760 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(TimecodeComponent, DropFrame));
766 TimecodeComponent::Dump(FILE* stream)
768 char identbuf[IdentBufferLen];
774 StructuralComponent::Dump(stream);
775 fprintf(stream, " %22s = %d\n", "RoundedTimecodeBase", RoundedTimecodeBase);
776 fprintf(stream, " %22s = %s\n", "StartTimecode", i64sz(StartTimecode, identbuf));
777 fprintf(stream, " %22s = %d\n", "DropFrame", DropFrame);
782 TimecodeComponent::InitFromBuffer(const byte_t* p, ui32_t l)
784 m_Typeinfo = &Dict::Type(MDD_TimecodeComponent);
785 return InterchangeObject::InitFromBuffer(p, l);
790 TimecodeComponent::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
792 m_Typeinfo = &Dict::Type(MDD_TimecodeComponent);
793 return InterchangeObject::WriteToBuffer(Buffer);
796 //------------------------------------------------------------------------------------------
801 GenericDescriptor::InitFromTLVSet(TLVReader& TLVSet)
803 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
804 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, Locators));
805 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDescriptor, SubDescriptors));
811 GenericDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
813 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
814 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, Locators));
815 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDescriptor, SubDescriptors));
821 GenericDescriptor::Dump(FILE* stream)
823 char identbuf[IdentBufferLen];
829 InterchangeObject::Dump(stream);
830 fprintf(stream, " %22s:\n", "Locators");
831 Locators.Dump(stream);
832 fprintf(stream, " %22s:\n", "SubDescriptors");
833 SubDescriptors.Dump(stream);
837 //------------------------------------------------------------------------------------------
842 FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
844 Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
845 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(FileDescriptor, LinkedTrackID));
846 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, SampleRate));
847 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(FileDescriptor, ContainerDuration));
848 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, EssenceContainer));
849 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(FileDescriptor, Codec));
855 FileDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
857 Result_t result = GenericDescriptor::WriteToTLVSet(TLVSet);
858 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(FileDescriptor, LinkedTrackID));
859 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, SampleRate));
860 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(FileDescriptor, ContainerDuration));
861 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, EssenceContainer));
862 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(FileDescriptor, Codec));
868 FileDescriptor::Dump(FILE* stream)
870 char identbuf[IdentBufferLen];
876 GenericDescriptor::Dump(stream);
877 fprintf(stream, " %22s = %d\n", "LinkedTrackID", LinkedTrackID);
878 fprintf(stream, " %22s = %s\n", "SampleRate", SampleRate.EncodeString(identbuf, IdentBufferLen));
879 fprintf(stream, " %22s = %s\n", "ContainerDuration", i64sz(ContainerDuration, identbuf));
880 fprintf(stream, " %22s = %s\n", "EssenceContainer", EssenceContainer.EncodeString(identbuf, IdentBufferLen));
881 fprintf(stream, " %22s = %s\n", "Codec", Codec.EncodeString(identbuf, IdentBufferLen));
886 FileDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
888 m_Typeinfo = &Dict::Type(MDD_FileDescriptor);
889 return InterchangeObject::InitFromBuffer(p, l);
894 FileDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
896 m_Typeinfo = &Dict::Type(MDD_FileDescriptor);
897 return InterchangeObject::WriteToBuffer(Buffer);
900 //------------------------------------------------------------------------------------------
901 // GenericSoundEssenceDescriptor
905 GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
907 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
908 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
909 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, Locked));
910 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
911 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
912 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
913 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, DialNorm));
919 GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
921 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
922 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioSamplingRate));
923 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, Locked));
924 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, AudioRefLevel));
925 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ChannelCount));
926 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits));
927 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, DialNorm));
933 GenericSoundEssenceDescriptor::Dump(FILE* stream)
935 char identbuf[IdentBufferLen];
941 FileDescriptor::Dump(stream);
942 fprintf(stream, " %22s = %s\n", "AudioSamplingRate", AudioSamplingRate.EncodeString(identbuf, IdentBufferLen));
943 fprintf(stream, " %22s = %d\n", "Locked", Locked);
944 fprintf(stream, " %22s = %d\n", "AudioRefLevel", AudioRefLevel);
945 fprintf(stream, " %22s = %d\n", "ChannelCount", ChannelCount);
946 fprintf(stream, " %22s = %d\n", "QuantizationBits", QuantizationBits);
947 fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm);
952 GenericSoundEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
954 m_Typeinfo = &Dict::Type(MDD_GenericSoundEssenceDescriptor);
955 return InterchangeObject::InitFromBuffer(p, l);
960 GenericSoundEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
962 m_Typeinfo = &Dict::Type(MDD_GenericSoundEssenceDescriptor);
963 return InterchangeObject::WriteToBuffer(Buffer);
966 //------------------------------------------------------------------------------------------
967 // WaveAudioDescriptor
971 WaveAudioDescriptor::InitFromTLVSet(TLVReader& TLVSet)
973 Result_t result = GenericSoundEssenceDescriptor::InitFromTLVSet(TLVSet);
974 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(WaveAudioDescriptor, BlockAlign));
975 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(WaveAudioDescriptor, SequenceOffset));
976 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(WaveAudioDescriptor, AvgBps));
982 WaveAudioDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
984 Result_t result = GenericSoundEssenceDescriptor::WriteToTLVSet(TLVSet);
985 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(WaveAudioDescriptor, BlockAlign));
986 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(WaveAudioDescriptor, SequenceOffset));
987 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(WaveAudioDescriptor, AvgBps));
993 WaveAudioDescriptor::Dump(FILE* stream)
995 char identbuf[IdentBufferLen];
1001 GenericSoundEssenceDescriptor::Dump(stream);
1002 fprintf(stream, " %22s = %d\n", "BlockAlign", BlockAlign);
1003 fprintf(stream, " %22s = %d\n", "SequenceOffset", SequenceOffset);
1004 fprintf(stream, " %22s = %d\n", "AvgBps", AvgBps);
1009 WaveAudioDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1011 m_Typeinfo = &Dict::Type(MDD_WaveAudioDescriptor);
1012 return InterchangeObject::InitFromBuffer(p, l);
1017 WaveAudioDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1019 m_Typeinfo = &Dict::Type(MDD_WaveAudioDescriptor);
1020 return InterchangeObject::WriteToBuffer(Buffer);
1023 //------------------------------------------------------------------------------------------
1024 // GenericPictureEssenceDescriptor
1028 GenericPictureEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1030 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1031 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1032 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1033 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1034 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1040 GenericPictureEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1042 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1043 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, FrameLayout));
1044 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredWidth));
1045 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, StoredHeight));
1046 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericPictureEssenceDescriptor, AspectRatio));
1052 GenericPictureEssenceDescriptor::Dump(FILE* stream)
1054 char identbuf[IdentBufferLen];
1060 FileDescriptor::Dump(stream);
1061 fprintf(stream, " %22s = %d\n", "FrameLayout", FrameLayout);
1062 fprintf(stream, " %22s = %d\n", "StoredWidth", StoredWidth);
1063 fprintf(stream, " %22s = %d\n", "StoredHeight", StoredHeight);
1064 fprintf(stream, " %22s = %s\n", "AspectRatio", AspectRatio.EncodeString(identbuf, IdentBufferLen));
1069 GenericPictureEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1071 m_Typeinfo = &Dict::Type(MDD_GenericPictureEssenceDescriptor);
1072 return InterchangeObject::InitFromBuffer(p, l);
1077 GenericPictureEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1079 m_Typeinfo = &Dict::Type(MDD_GenericPictureEssenceDescriptor);
1080 return InterchangeObject::WriteToBuffer(Buffer);
1083 //------------------------------------------------------------------------------------------
1084 // RGBAEssenceDescriptor
1088 RGBAEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1090 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1091 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1092 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1098 RGBAEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1100 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1101 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMaxRef));
1102 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(RGBAEssenceDescriptor, ComponentMinRef));
1108 RGBAEssenceDescriptor::Dump(FILE* stream)
1110 char identbuf[IdentBufferLen];
1116 GenericPictureEssenceDescriptor::Dump(stream);
1117 fprintf(stream, " %22s = %d\n", "ComponentMaxRef", ComponentMaxRef);
1118 fprintf(stream, " %22s = %d\n", "ComponentMinRef", ComponentMinRef);
1123 RGBAEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1125 m_Typeinfo = &Dict::Type(MDD_RGBAEssenceDescriptor);
1126 return InterchangeObject::InitFromBuffer(p, l);
1131 RGBAEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1133 m_Typeinfo = &Dict::Type(MDD_RGBAEssenceDescriptor);
1134 return InterchangeObject::WriteToBuffer(Buffer);
1137 //------------------------------------------------------------------------------------------
1138 // JPEG2000PictureSubDescriptor
1142 JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1144 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1145 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1146 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1147 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1148 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1149 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1150 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1151 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1152 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1153 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1154 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi16(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, Csize));
1155 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1156 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1157 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1163 JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1165 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1166 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Rsize));
1167 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Xsize));
1168 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Ysize));
1169 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XOsize));
1170 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YOsize));
1171 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTsize));
1172 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTsize));
1173 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, XTOsize));
1174 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, YTOsize));
1175 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, Csize));
1176 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, PictureComponentSizing));
1177 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, CodingStyleDefault));
1178 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(JPEG2000PictureSubDescriptor, QuantizationDefault));
1184 JPEG2000PictureSubDescriptor::Dump(FILE* stream)
1186 char identbuf[IdentBufferLen];
1192 InterchangeObject::Dump(stream);
1193 fprintf(stream, " %22s = %d\n", "Rsize", Rsize);
1194 fprintf(stream, " %22s = %d\n", "Xsize", Xsize);
1195 fprintf(stream, " %22s = %d\n", "Ysize", Ysize);
1196 fprintf(stream, " %22s = %d\n", "XOsize", XOsize);
1197 fprintf(stream, " %22s = %d\n", "YOsize", YOsize);
1198 fprintf(stream, " %22s = %d\n", "XTsize", XTsize);
1199 fprintf(stream, " %22s = %d\n", "YTsize", YTsize);
1200 fprintf(stream, " %22s = %d\n", "XTOsize", XTOsize);
1201 fprintf(stream, " %22s = %d\n", "YTOsize", YTOsize);
1202 fprintf(stream, " %22s = %d\n", "Csize", Csize);
1203 fprintf(stream, " %22s = %s\n", "PictureComponentSizing", PictureComponentSizing.EncodeString(identbuf, IdentBufferLen));
1204 fprintf(stream, " %22s = %s\n", "CodingStyleDefault", CodingStyleDefault.EncodeString(identbuf, IdentBufferLen));
1205 fprintf(stream, " %22s = %s\n", "QuantizationDefault", QuantizationDefault.EncodeString(identbuf, IdentBufferLen));
1210 JPEG2000PictureSubDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1212 m_Typeinfo = &Dict::Type(MDD_JPEG2000PictureSubDescriptor);
1213 return InterchangeObject::InitFromBuffer(p, l);
1218 JPEG2000PictureSubDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1220 m_Typeinfo = &Dict::Type(MDD_JPEG2000PictureSubDescriptor);
1221 return InterchangeObject::WriteToBuffer(Buffer);
1224 //------------------------------------------------------------------------------------------
1225 // CDCIEssenceDescriptor
1229 CDCIEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1231 Result_t result = GenericPictureEssenceDescriptor::InitFromTLVSet(TLVSet);
1232 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1233 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1234 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1235 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(CDCIEssenceDescriptor, ColorSiting));
1241 CDCIEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1243 Result_t result = GenericPictureEssenceDescriptor::WriteToTLVSet(TLVSet);
1244 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ComponentDepth));
1245 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, HorizontalSubsampling));
1246 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, VerticalSubsampling));
1247 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(CDCIEssenceDescriptor, ColorSiting));
1253 CDCIEssenceDescriptor::Dump(FILE* stream)
1255 char identbuf[IdentBufferLen];
1261 GenericPictureEssenceDescriptor::Dump(stream);
1262 fprintf(stream, " %22s = %d\n", "ComponentDepth", ComponentDepth);
1263 fprintf(stream, " %22s = %d\n", "HorizontalSubsampling", HorizontalSubsampling);
1264 fprintf(stream, " %22s = %d\n", "VerticalSubsampling", VerticalSubsampling);
1265 fprintf(stream, " %22s = %d\n", "ColorSiting", ColorSiting);
1270 CDCIEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1272 m_Typeinfo = &Dict::Type(MDD_CDCIEssenceDescriptor);
1273 return InterchangeObject::InitFromBuffer(p, l);
1278 CDCIEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1280 m_Typeinfo = &Dict::Type(MDD_CDCIEssenceDescriptor);
1281 return InterchangeObject::WriteToBuffer(Buffer);
1284 //------------------------------------------------------------------------------------------
1285 // MPEG2VideoDescriptor
1289 MPEG2VideoDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1291 Result_t result = CDCIEssenceDescriptor::InitFromTLVSet(TLVSet);
1292 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, CodedContentType));
1293 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, LowDelay));
1294 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(MPEG2VideoDescriptor, BitRate));
1295 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi8(OBJ_READ_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1301 MPEG2VideoDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1303 Result_t result = CDCIEssenceDescriptor::WriteToTLVSet(TLVSet);
1304 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, CodedContentType));
1305 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, LowDelay));
1306 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, BitRate));
1307 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS(MPEG2VideoDescriptor, ProfileAndLevel));
1313 MPEG2VideoDescriptor::Dump(FILE* stream)
1315 char identbuf[IdentBufferLen];
1321 CDCIEssenceDescriptor::Dump(stream);
1322 fprintf(stream, " %22s = %d\n", "CodedContentType", CodedContentType);
1323 fprintf(stream, " %22s = %d\n", "LowDelay", LowDelay);
1324 fprintf(stream, " %22s = %d\n", "BitRate", BitRate);
1325 fprintf(stream, " %22s = %d\n", "ProfileAndLevel", ProfileAndLevel);
1330 MPEG2VideoDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1332 m_Typeinfo = &Dict::Type(MDD_MPEG2VideoDescriptor);
1333 return InterchangeObject::InitFromBuffer(p, l);
1338 MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1340 m_Typeinfo = &Dict::Type(MDD_MPEG2VideoDescriptor);
1341 return InterchangeObject::WriteToBuffer(Buffer);
1344 //------------------------------------------------------------------------------------------
1349 DMSegment::InitFromTLVSet(TLVReader& TLVSet)
1351 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1352 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition));
1353 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition));
1354 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration));
1355 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment));
1356 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework));
1362 DMSegment::WriteToTLVSet(TLVWriter& TLVSet)
1364 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1365 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition));
1366 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition));
1367 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration));
1368 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment));
1369 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework));
1375 DMSegment::Dump(FILE* stream)
1377 char identbuf[IdentBufferLen];
1383 InterchangeObject::Dump(stream);
1384 fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen));
1385 fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf));
1386 fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf));
1387 fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen));
1388 fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen));
1393 DMSegment::InitFromBuffer(const byte_t* p, ui32_t l)
1395 m_Typeinfo = &Dict::Type(MDD_DMSegment);
1396 return InterchangeObject::InitFromBuffer(p, l);
1401 DMSegment::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1403 m_Typeinfo = &Dict::Type(MDD_DMSegment);
1404 return InterchangeObject::WriteToBuffer(Buffer);
1407 //------------------------------------------------------------------------------------------
1408 // CryptographicFramework
1412 CryptographicFramework::InitFromTLVSet(TLVReader& TLVSet)
1414 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1415 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicFramework, ContextSR));
1421 CryptographicFramework::WriteToTLVSet(TLVWriter& TLVSet)
1423 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1424 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicFramework, ContextSR));
1430 CryptographicFramework::Dump(FILE* stream)
1432 char identbuf[IdentBufferLen];
1438 InterchangeObject::Dump(stream);
1439 fprintf(stream, " %22s = %s\n", "ContextSR", ContextSR.EncodeString(identbuf, IdentBufferLen));
1444 CryptographicFramework::InitFromBuffer(const byte_t* p, ui32_t l)
1446 m_Typeinfo = &Dict::Type(MDD_CryptographicFramework);
1447 return InterchangeObject::InitFromBuffer(p, l);
1452 CryptographicFramework::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1454 m_Typeinfo = &Dict::Type(MDD_CryptographicFramework);
1455 return InterchangeObject::WriteToBuffer(Buffer);
1458 //------------------------------------------------------------------------------------------
1459 // CryptographicContext
1463 CryptographicContext::InitFromTLVSet(TLVReader& TLVSet)
1465 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1466 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, ContextID));
1467 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, SourceEssenceContainer));
1468 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CipherAlgorithm));
1469 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, MICAlgorithm));
1470 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(CryptographicContext, CryptographicKeyID));
1476 CryptographicContext::WriteToTLVSet(TLVWriter& TLVSet)
1478 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1479 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, ContextID));
1480 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, SourceEssenceContainer));
1481 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CipherAlgorithm));
1482 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, MICAlgorithm));
1483 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(CryptographicContext, CryptographicKeyID));
1489 CryptographicContext::Dump(FILE* stream)
1491 char identbuf[IdentBufferLen];
1497 InterchangeObject::Dump(stream);
1498 fprintf(stream, " %22s = %s\n", "ContextID", ContextID.EncodeString(identbuf, IdentBufferLen));
1499 fprintf(stream, " %22s = %s\n", "SourceEssenceContainer", SourceEssenceContainer.EncodeString(identbuf, IdentBufferLen));
1500 fprintf(stream, " %22s = %s\n", "CipherAlgorithm", CipherAlgorithm.EncodeString(identbuf, IdentBufferLen));
1501 fprintf(stream, " %22s = %s\n", "MICAlgorithm", MICAlgorithm.EncodeString(identbuf, IdentBufferLen));
1502 fprintf(stream, " %22s = %s\n", "CryptographicKeyID", CryptographicKeyID.EncodeString(identbuf, IdentBufferLen));
1507 CryptographicContext::InitFromBuffer(const byte_t* p, ui32_t l)
1509 m_Typeinfo = &Dict::Type(MDD_CryptographicContext);
1510 return InterchangeObject::InitFromBuffer(p, l);
1515 CryptographicContext::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1517 m_Typeinfo = &Dict::Type(MDD_CryptographicContext);
1518 return InterchangeObject::WriteToBuffer(Buffer);
1521 //------------------------------------------------------------------------------------------
1522 // GenericDataEssenceDescriptor
1526 GenericDataEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1528 Result_t result = FileDescriptor::InitFromTLVSet(TLVSet);
1529 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1535 GenericDataEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1537 Result_t result = FileDescriptor::WriteToTLVSet(TLVSet);
1538 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericDataEssenceDescriptor, DataEssenceCoding));
1544 GenericDataEssenceDescriptor::Dump(FILE* stream)
1546 char identbuf[IdentBufferLen];
1552 FileDescriptor::Dump(stream);
1553 fprintf(stream, " %22s = %s\n", "DataEssenceCoding", DataEssenceCoding.EncodeString(identbuf, IdentBufferLen));
1558 GenericDataEssenceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1560 m_Typeinfo = &Dict::Type(MDD_GenericDataEssenceDescriptor);
1561 return InterchangeObject::InitFromBuffer(p, l);
1566 GenericDataEssenceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1568 m_Typeinfo = &Dict::Type(MDD_GenericDataEssenceDescriptor);
1569 return InterchangeObject::WriteToBuffer(Buffer);
1572 //------------------------------------------------------------------------------------------
1573 // DCTimedTextDescriptor
1577 DCTimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1579 Result_t result = GenericDataEssenceDescriptor::InitFromTLVSet(TLVSet);
1580 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DCTimedTextDescriptor, AssetID));
1581 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DCTimedTextDescriptor, UTFEncoding));
1582 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DCTimedTextDescriptor, RootNamespaceName));
1588 DCTimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1590 Result_t result = GenericDataEssenceDescriptor::WriteToTLVSet(TLVSet);
1591 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DCTimedTextDescriptor, AssetID));
1592 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DCTimedTextDescriptor, UTFEncoding));
1593 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DCTimedTextDescriptor, RootNamespaceName));
1599 DCTimedTextDescriptor::Dump(FILE* stream)
1601 char identbuf[IdentBufferLen];
1607 GenericDataEssenceDescriptor::Dump(stream);
1608 fprintf(stream, " %22s = %s\n", "AssetID", AssetID.EncodeString(identbuf, IdentBufferLen));
1609 fprintf(stream, " %22s = %s\n", "UTFEncoding", UTFEncoding.EncodeString(identbuf, IdentBufferLen));
1610 fprintf(stream, " %22s = %s\n", "RootNamespaceName", RootNamespaceName.EncodeString(identbuf, IdentBufferLen));
1615 DCTimedTextDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1617 m_Typeinfo = &Dict::Type(MDD_DCTimedTextDescriptor);
1618 return InterchangeObject::InitFromBuffer(p, l);
1623 DCTimedTextDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1625 m_Typeinfo = &Dict::Type(MDD_DCTimedTextDescriptor);
1626 return InterchangeObject::WriteToBuffer(Buffer);
1629 //------------------------------------------------------------------------------------------
1630 // DCTimedTextResourceDescriptor
1634 DCTimedTextResourceDescriptor::InitFromTLVSet(TLVReader& TLVSet)
1636 Result_t result = InterchangeObject::InitFromTLVSet(TLVSet);
1637 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DCTimedTextResourceDescriptor, ResourceID));
1638 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DCTimedTextResourceDescriptor, ResourceMIMEType));
1639 if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi32(OBJ_READ_ARGS(DCTimedTextResourceDescriptor, ResourceSID));
1645 DCTimedTextResourceDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
1647 Result_t result = InterchangeObject::WriteToTLVSet(TLVSet);
1648 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DCTimedTextResourceDescriptor, ResourceID));
1649 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DCTimedTextResourceDescriptor, ResourceMIMEType));
1650 if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(DCTimedTextResourceDescriptor, ResourceSID));
1656 DCTimedTextResourceDescriptor::Dump(FILE* stream)
1658 char identbuf[IdentBufferLen];
1664 InterchangeObject::Dump(stream);
1665 fprintf(stream, " %22s = %s\n", "ResourceID", ResourceID.EncodeString(identbuf, IdentBufferLen));
1666 fprintf(stream, " %22s = %s\n", "ResourceMIMEType", ResourceMIMEType.EncodeString(identbuf, IdentBufferLen));
1667 fprintf(stream, " %22s = %d\n", "ResourceSID", ResourceSID);
1672 DCTimedTextResourceDescriptor::InitFromBuffer(const byte_t* p, ui32_t l)
1674 m_Typeinfo = &Dict::Type(MDD_DCTimedTextResourceDescriptor);
1675 return InterchangeObject::InitFromBuffer(p, l);
1680 DCTimedTextResourceDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer)
1682 m_Typeinfo = &Dict::Type(MDD_DCTimedTextResourceDescriptor);
1683 return InterchangeObject::WriteToBuffer(Buffer);