X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FMetadata.h;h=207e031daf23130e83c05c32573b49a90a187c46;hb=3bb652da6ea2765b1538d0713cefa284238c8bdb;hp=f15819402c89c20011fc2d3de71601b2286e65d4;hpb=30d642bd3b8474744dfbdcc2bdc46cdf827102c4;p=asdcplib.git diff --git a/src/Metadata.h b/src/Metadata.h index f158194..207e031 100755 --- a/src/Metadata.h +++ b/src/Metadata.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2005-2006, John Hurst +Copyright (c) 2005-2007, John Hurst All rights reserved. Redistribution and use in source and binary forms, with or without @@ -29,8 +29,8 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \brief MXF metadata objects */ -#ifndef _METADATA_H_ -#define _METADATA_H_ +#ifndef _Metadata_H_ +#define _Metadata_H_ #include "MXF.h" @@ -38,6 +38,8 @@ namespace ASDCP { namespace MXF { + void Metadata_InitTypes(); + // // @@ -382,6 +384,7 @@ namespace ASDCP ui32_t StoredWidth; ui32_t StoredHeight; Rational AspectRatio; + UL PictureEssenceCoding; GenericPictureEssenceDescriptor() : FrameLayout(0), StoredWidth(0), StoredHeight(0) {} virtual ~GenericPictureEssenceDescriptor() {} @@ -490,11 +493,13 @@ namespace ASDCP ASDCP_NO_COPY_CONSTRUCT(DMSegment); public: + UL DataDefinition; ui64_t EventStartPosition; + ui64_t Duration; UTF16String EventComment; UUID DMFramework; - DMSegment() : EventStartPosition(0) {} + DMSegment() : EventStartPosition(0), Duration(0) {} virtual ~DMSegment() {} virtual const char* HasName() { return "DMSegment"; } virtual Result_t InitFromTLVSet(TLVReader& TLVSet); @@ -544,11 +549,86 @@ namespace ASDCP virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); }; + // + class GenericDataEssenceDescriptor : public FileDescriptor + { + ASDCP_NO_COPY_CONSTRUCT(GenericDataEssenceDescriptor); + + public: + UL DataEssenceCoding; + + GenericDataEssenceDescriptor() {} + virtual ~GenericDataEssenceDescriptor() {} + virtual const char* HasName() { return "GenericDataEssenceDescriptor"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); + virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); + virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); + }; + + // + class TimedTextDescriptor : public GenericDataEssenceDescriptor + { + ASDCP_NO_COPY_CONSTRUCT(TimedTextDescriptor); + + public: + UUID ResourceID; + UTF16String UCSEncoding; + UTF16String NamespaceURI; + + TimedTextDescriptor() {} + virtual ~TimedTextDescriptor() {} + virtual const char* HasName() { return "TimedTextDescriptor"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); + virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); + virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); + }; + + // + class TimedTextResourceSubDescriptor : public InterchangeObject + { + ASDCP_NO_COPY_CONSTRUCT(TimedTextResourceSubDescriptor); + + public: + UUID AncillaryResourceID; + UTF16String MIMEMediaType; + ui32_t EssenceStreamID; + + TimedTextResourceSubDescriptor() : EssenceStreamID(0) {} + virtual ~TimedTextResourceSubDescriptor() {} + virtual const char* HasName() { return "TimedTextResourceSubDescriptor"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); + virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); + virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); + }; + + // + class StereoscopicPictureSubDescriptor : public InterchangeObject + { + ASDCP_NO_COPY_CONSTRUCT(StereoscopicPictureSubDescriptor); + + public: + + StereoscopicPictureSubDescriptor() {} + virtual ~StereoscopicPictureSubDescriptor() {} + virtual const char* HasName() { return "StereoscopicPictureSubDescriptor"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); + virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); + virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); + }; + } // namespace MXF } // namespace ASDCP -#endif // _METADATA_H_ +#endif // _Metadata_H_ // // end Metadata.h