3 // TODO: constructor initializers for all member variables
16 class Identification : public InterchangeObject
18 ASDCP_NO_COPY_CONSTRUCT(Identification);
21 UUID ThisGenerationUID;
22 UTF16String CompanyName;
23 UTF16String ProductName;
24 ui16_t ProductVersion;
25 UTF16String VersionString;
27 Timestamp ModificationDate;
28 ui16_t ToolkitVersion;
32 virtual ~Identification() {}
33 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
34 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
35 virtual void Dump(FILE* = 0);
40 class ContentStorage : public InterchangeObject
42 ASDCP_NO_COPY_CONSTRUCT(ContentStorage);
47 Batch<UUID> EssenceContainerData;
50 virtual ~ContentStorage() {}
51 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
52 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
53 virtual void Dump(FILE* = 0);
57 class GenericPackage : public InterchangeObject
59 ASDCP_NO_COPY_CONSTRUCT(GenericPackage);
65 Timestamp PackageCreationDate;
66 Timestamp PackageModifiedDate;
70 virtual ~GenericPackage() {}
71 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l) = 0;
72 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
73 virtual void Dump(FILE* = 0) = 0;
78 class MaterialPackage : public GenericPackage
80 ASDCP_NO_COPY_CONSTRUCT(MaterialPackage);
84 virtual ~MaterialPackage() {}
85 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
86 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
87 virtual void Dump(FILE* = 0);
92 class SourcePackage : public GenericPackage
94 ASDCP_NO_COPY_CONSTRUCT(SourcePackage);
98 virtual ~SourcePackage() {}
99 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
100 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
101 virtual void Dump(FILE* = 0);
105 class Track : public InterchangeObject
107 ASDCP_NO_COPY_CONSTRUCT(Track);
113 UTF16String TrackName;
120 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
121 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
122 virtual void Dump(FILE* = 0);
126 class Sequence : public InterchangeObject
128 ASDCP_NO_COPY_CONSTRUCT(Sequence);
134 Batch<UID> StructuralComponents;
137 virtual ~Sequence() {}
138 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
139 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
140 virtual void Dump(FILE* = 0);
144 class SourceClip : public InterchangeObject
146 ASDCP_NO_COPY_CONSTRUCT(SourceClip);
151 ui64_t StartPosition;
153 UMID SourcePackageID;
154 ui32_t SourceTrackID;
157 virtual ~SourceClip() {}
158 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
159 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
160 virtual void Dump(FILE* = 0);
164 class TimecodeComponent : public InterchangeObject
166 ASDCP_NO_COPY_CONSTRUCT(TimecodeComponent);
172 ui16_t RoundedTimecodeBase;
173 ui64_t StartTimecode;
176 TimecodeComponent() {}
177 virtual ~TimecodeComponent() {}
178 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
179 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
180 virtual void Dump(FILE* = 0);
184 class MPEG2VideoDescriptor : public ASDCP::MPEG2::VideoDescriptor, public InterchangeObject
186 ASDCP_NO_COPY_CONSTRUCT(MPEG2VideoDescriptor);
189 ui32_t LinkedTrackID;
192 MPEG2VideoDescriptor() : LinkedTrackID(0) {}
193 ~MPEG2VideoDescriptor() {}
194 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
195 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
196 virtual void Dump(FILE* = 0);
200 class FileDescriptor : public InterchangeObject
202 ASDCP_NO_COPY_CONSTRUCT(FileDescriptor);
206 Batch<UUID> Locators;
207 Batch<UUID> SubDescriptors;
208 ui32_t LinkedTrackID;
210 ui64_t ContainerDuration;
214 FileDescriptor() : LinkedTrackID(0), ContainerDuration(0) {}
216 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
217 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
218 virtual void Dump(FILE* = 0);
222 class WaveAudioDescriptor : public FileDescriptor
224 ASDCP_NO_COPY_CONSTRUCT(WaveAudioDescriptor);
227 Rational AudioSamplingRate;
230 ui8_t ElectroSpatialFormulation;
232 ui32_t QuantizationBits;
234 UL SoundEssenceCompression;
236 ui8_t SequenceOffset;
238 // Stream PeakEnvelope;
240 WaveAudioDescriptor() :
241 Locked(false), AudioRefLevel(0), ElectroSpatialFormulation(0),
242 ChannelCount(0), QuantizationBits(0), DialNorm(0), BlockAlign(0),
243 SequenceOffset(0), AvgBps(0) {}
245 ~WaveAudioDescriptor() {}
246 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
247 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
248 virtual void Dump(FILE* = 0);
252 class GenericPictureEssenceDescriptor : public FileDescriptor
254 ASDCP_NO_COPY_CONSTRUCT(GenericPictureEssenceDescriptor);
261 ui32_t DisplayHeight;
262 Rational AspectRatio;
263 ui32_t ComponentMaxRef;
264 ui32_t ComponentMinRef;
266 UL PictureEssenceCoding;
268 GenericPictureEssenceDescriptor() :
269 FrameLayout(0), StoredWidth(0), StoredHeight(0), DisplayWidth(0),
270 DisplayHeight(0), ComponentMaxRef(0), ComponentMinRef(0) {}
272 ~GenericPictureEssenceDescriptor() {}
273 // virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
274 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
275 // virtual void Dump(FILE* = 0);
279 class RGBAEssenceDescriptor : public GenericPictureEssenceDescriptor
281 ASDCP_NO_COPY_CONSTRUCT(RGBAEssenceDescriptor);
291 RGBLayout() { memset(PictureElement, 0, sizeof(PictureElement)); }
294 RGBLayout PixelLayout;
296 RGBAEssenceDescriptor() {}
297 ~RGBAEssenceDescriptor() {}
298 // virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
299 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
300 // virtual void Dump(FILE* = 0);
305 ASDCP_NO_COPY_CONSTRUCT(Raw);
315 class JPEG2000PictureSubDescriptor : public InterchangeObject
317 ASDCP_NO_COPY_CONSTRUCT(JPEG2000PictureSubDescriptor);
330 Raw PictureComponentSizing;
331 Raw CodingStyleDefault;
332 Raw QuantizationDefault;
334 JPEG2000PictureSubDescriptor() :
335 Rsize(0), Xsize(0), Ysize(0),
336 XOsize(0), YOsize(0), XTsize(0),
337 YTsize(0), XTOsize(0), YTOsize(0),
340 ~JPEG2000PictureSubDescriptor() {}
341 // virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
342 virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
343 // virtual void Dump(FILE* = 0);
348 class CryptographicFramework : public InterchangeObject
350 ASDCP_NO_COPY_CONSTRUCT(CryptographicFramework);
355 CryptographicFramework() {}
356 ~CryptographicFramework() {}
357 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
358 // virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
359 virtual void Dump(FILE* = 0);
363 class CryptographicContext : public InterchangeObject
365 ASDCP_NO_COPY_CONSTRUCT(CryptographicContext);
369 UL SourceEssenceContainer;
372 UUID CryptographicKeyID;
374 CryptographicContext() {}
375 ~CryptographicContext() {}
376 virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l);
377 // virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
378 virtual void Dump(FILE* = 0);
385 #endif // _METADATA_H_