diff options
| author | jhurst <jhurst@cinecert.com> | 2018-08-06 22:07:03 +0000 |
|---|---|---|
| committer | jhurst <> | 2018-08-06 22:07:03 +0000 |
| commit | f4061a21fffad4fdf8dbb2f193f0f0960b25421c (patch) | |
| tree | c66e09ce3c57e263690bc0c0f37d37e9a3aa75f8 /src/Metadata.h | |
| parent | 38954bfe8dd72a817fb070c58327cd111b9bd282 (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-x | src/Metadata.h | 141 |
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(); |
