summaryrefslogtreecommitdiff
path: root/src/Metadata.h
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2018-08-06 22:07:03 +0000
committerjhurst <>2018-08-06 22:07:03 +0000
commitf4061a21fffad4fdf8dbb2f193f0f0960b25421c (patch)
treec66e09ce3c57e263690bc0c0f37d37e9a3aa75f8 /src/Metadata.h
parent38954bfe8dd72a817fb070c58327cd111b9bd282 (diff)
o Added support for SMPTE RDD 47 "ISXD Track File"
o Added generic support for SMPTE RP 2057 "Text-Based Metadata Carriage in MXF" o Re-factored AS-02 frame-wrap index write to use a common implementation o Re-factored support for SMPTE ST 410 to use a common implementation (affects o AS-DCP and AS-02 timed-text MXF (SMPTE 429-5) o Patched several ambiguous integer casts. o Added new essence type identifiers ESS_AS02_ISXD and ESS_AS02_ACES o Fixed a bug wherein the Generic Container data tarck clip was instead being o written as a DM track o Fixed UL values DCDataDescriptor and ContainerConstraintSubDescriptor to have o a byte 6 value of 0x53 (Tag Set) instead of 0x07 (coding sentinel) o Added UL values 492 - 511 to the dictionary o Added ApplicationSchemes and ConformsToSpecifications to the Preface set o Added default initializer to MXF::LineMapPair o Added sets DescriptiveFramework, DescriptiveObject, TextBasedDMFramework, o TextBasedObject, GenericStreamTextBasedSet and ISXDDataEssenceDescriptor o Added ISXD support and options '-G', '-u' to as-02-wrap o Added ISXD support and option '-g' to as-02-unwrap
Diffstat (limited to 'src/Metadata.h')
-rwxr-xr-xsrc/Metadata.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/Metadata.h b/src/Metadata.h
index b6cfb62..cc26c70 100755
--- a/src/Metadata.h
+++ b/src/Metadata.h
@@ -728,6 +728,52 @@ namespace ASDCP
};
//
+ class DescriptiveFramework : public InterchangeObject
+ {
+ DescriptiveFramework();
+
+ public:
+ const Dictionary*& m_Dict;
+ optional_property<UUID > LinkedDescriptiveFrameworkPlugInId;
+
+ DescriptiveFramework(const Dictionary*& d);
+ DescriptiveFramework(const DescriptiveFramework& rhs);
+ virtual ~DescriptiveFramework() {}
+
+ const DescriptiveFramework& operator=(const DescriptiveFramework& rhs) { Copy(rhs); return *this; }
+ virtual void Copy(const DescriptiveFramework& rhs);
+ virtual const char* HasName() { return "DescriptiveFramework"; }
+ 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 DescriptiveObject : public InterchangeObject
+ {
+ DescriptiveObject();
+
+ public:
+ const Dictionary*& m_Dict;
+ optional_property<UUID > LinkedDescriptiveObjectPlugInId;
+
+ DescriptiveObject(const Dictionary*& d);
+ DescriptiveObject(const DescriptiveObject& rhs);
+ virtual ~DescriptiveObject() {}
+
+ const DescriptiveObject& operator=(const DescriptiveObject& rhs) { Copy(rhs); return *this; }
+ virtual void Copy(const DescriptiveObject& rhs);
+ virtual const char* HasName() { return "DescriptiveObject"; }
+ 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 GenericDataEssenceDescriptor : public FileDescriptor
{
GenericDataEssenceDescriptor();
@@ -1103,6 +1149,101 @@ namespace ASDCP
};
//
+ class TextBasedDMFramework : public DescriptiveFramework
+ {
+ TextBasedDMFramework();
+
+ public:
+ const Dictionary*& m_Dict;
+ optional_property<UUID > ObjectRef;
+
+ TextBasedDMFramework(const Dictionary*& d);
+ TextBasedDMFramework(const TextBasedDMFramework& rhs);
+ virtual ~TextBasedDMFramework() {}
+
+ const TextBasedDMFramework& operator=(const TextBasedDMFramework& rhs) { Copy(rhs); return *this; }
+ virtual void Copy(const TextBasedDMFramework& rhs);
+ virtual const char* HasName() { return "TextBasedDMFramework"; }
+ 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 TextBasedObject : public DescriptiveObject
+ {
+ TextBasedObject();
+
+ public:
+ const Dictionary*& m_Dict;
+ UL PayloadSchemeID;
+ UTF16String TextMIMEMediaType;
+ UTF16String RFC5646TextLanguageCode;
+ optional_property<UTF16String > TextDataDescription;
+
+ TextBasedObject(const Dictionary*& d);
+ TextBasedObject(const TextBasedObject& rhs);
+ virtual ~TextBasedObject() {}
+
+ const TextBasedObject& operator=(const TextBasedObject& rhs) { Copy(rhs); return *this; }
+ virtual void Copy(const TextBasedObject& rhs);
+ virtual const char* HasName() { return "TextBasedObject"; }
+ 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 GenericStreamTextBasedSet : public TextBasedObject
+ {
+ GenericStreamTextBasedSet();
+
+ public:
+ const Dictionary*& m_Dict;
+ ui32_t GenericStreamSID;
+
+ GenericStreamTextBasedSet(const Dictionary*& d);
+ GenericStreamTextBasedSet(const GenericStreamTextBasedSet& rhs);
+ virtual ~GenericStreamTextBasedSet() {}
+
+ const GenericStreamTextBasedSet& operator=(const GenericStreamTextBasedSet& rhs) { Copy(rhs); return *this; }
+ virtual void Copy(const GenericStreamTextBasedSet& rhs);
+ virtual const char* HasName() { return "GenericStreamTextBasedSet"; }
+ 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 ISXDDataEssenceDescriptor : public GenericDataEssenceDescriptor
+ {
+ ISXDDataEssenceDescriptor();
+
+ public:
+ const Dictionary*& m_Dict;
+ ISO8String NamespaceURI;
+
+ ISXDDataEssenceDescriptor(const Dictionary*& d);
+ ISXDDataEssenceDescriptor(const ISXDDataEssenceDescriptor& rhs);
+ virtual ~ISXDDataEssenceDescriptor() {}
+
+ const ISXDDataEssenceDescriptor& operator=(const ISXDDataEssenceDescriptor& rhs) { Copy(rhs); return *this; }
+ virtual void Copy(const ISXDDataEssenceDescriptor& rhs);
+ virtual const char* HasName() { return "ISXDDataEssenceDescriptor"; }
+ 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 PHDRMetadataTrackSubDescriptor : public InterchangeObject
{
PHDRMetadataTrackSubDescriptor();