Permit 64-bit builds.
[asdcplib.git] / src / Metadata.h
index f15819402c89c20011fc2d3de71601b2286e65d4..207e031daf23130e83c05c32573b49a90a187c46 100755 (executable)
@@ -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