X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FMetadata.h;h=b2466ef07a4bc652a0255159a6503a533ff5e755;hb=28235209272ef9c759a94d434b7a0ac9e5d0bf31;hp=a9d05abcaecbcaf9d8dd36676e240e2dacc8597e;hpb=a526fabf937848823b02d5486a6ec38f8442bb1c;p=asdcplib.git diff --git a/src/Metadata.h b/src/Metadata.h index a9d05ab..b2466ef 100755 --- a/src/Metadata.h +++ b/src/Metadata.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2005-2006, John Hurst +Copyright (c) 2005-2017, 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,346 +38,525 @@ namespace ASDCP { namespace MXF { - // Types - class RGBLayout : public IArchive - { - public: - struct element { - ui8_t Code; - ui8_t Depth; - } PictureElement[8]; - RGBLayout() { memset(PictureElement, 0, sizeof(PictureElement)); } - - // - Result_t ReadFrom(ASDCP::MemIOReader& Reader) { return RESULT_OK; } - Result_t WriteTo(ASDCP::MemIOWriter& Writer) { return RESULT_OK; } - }; - - class Raw : public IArchive - { - ASDCP_NO_COPY_CONSTRUCT(Raw); - - public: - byte_t* data; - Raw() {} - ~Raw() {} - - // - Result_t ReadFrom(ASDCP::MemIOReader& Reader) { return RESULT_OK; } - Result_t WriteTo(ASDCP::MemIOWriter& Writer) { return RESULT_OK; } - }; + void Metadata_InitTypes(const Dictionary*& Dict); // // class Identification : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(Identification); + Identification(); public: + const Dictionary*& m_Dict; UUID ThisGenerationUID; UTF16String CompanyName; UTF16String ProductName; - ui16_t ProductVersion; + VersionType ProductVersion; UTF16String VersionString; UUID ProductUID; - Timestamp ModificationDate; - ui16_t ToolkitVersion; - UTF16String Platform; - - Identification() : ProductVersion(0), ToolkitVersion(0) {} - virtual ~Identification() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + Kumu::Timestamp ModificationDate; + VersionType ToolkitVersion; + optional_property Platform; + + Identification(const Dictionary*& d); + Identification(const Identification& rhs); + virtual ~Identification() {} + + const Identification& operator=(const Identification& rhs) { Copy(rhs); return *this; } + virtual void Copy(const Identification& rhs); + virtual const char* HasName() { return "Identification"; } + 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 ContentStorage : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(ContentStorage); + ContentStorage(); public: + const Dictionary*& m_Dict; Batch Packages; Batch EssenceContainerData; - ContentStorage() {} - virtual ~ContentStorage() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + ContentStorage(const Dictionary*& d); + ContentStorage(const ContentStorage& rhs); + virtual ~ContentStorage() {} + + const ContentStorage& operator=(const ContentStorage& rhs) { Copy(rhs); return *this; } + virtual void Copy(const ContentStorage& rhs); + virtual const char* HasName() { return "ContentStorage"; } + 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 EssenceContainerData : public InterchangeObject + { + EssenceContainerData(); + + public: + const Dictionary*& m_Dict; + UMID LinkedPackageUID; + optional_property IndexSID; + ui32_t BodySID; + + EssenceContainerData(const Dictionary*& d); + EssenceContainerData(const EssenceContainerData& rhs); + virtual ~EssenceContainerData() {} + + const EssenceContainerData& operator=(const EssenceContainerData& rhs) { Copy(rhs); return *this; } + virtual void Copy(const EssenceContainerData& rhs); + virtual const char* HasName() { return "EssenceContainerData"; } + 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 GenericPackage : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(GenericPackage); + GenericPackage(); public: + const Dictionary*& m_Dict; UMID PackageUID; - UTF16String Name; - Timestamp PackageCreationDate; - Timestamp PackageModifiedDate; - Batch Tracks; - - GenericPackage() {} - virtual ~GenericPackage() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + optional_property Name; + Kumu::Timestamp PackageCreationDate; + Kumu::Timestamp PackageModifiedDate; + Array Tracks; + + GenericPackage(const Dictionary*& d); + GenericPackage(const GenericPackage& rhs); + virtual ~GenericPackage() {} + + const GenericPackage& operator=(const GenericPackage& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GenericPackage& rhs); + virtual const char* HasName() { return "GenericPackage"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); }; // class MaterialPackage : public GenericPackage { - ASDCP_NO_COPY_CONSTRUCT(MaterialPackage); + MaterialPackage(); public: - - MaterialPackage() {} - virtual ~MaterialPackage() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + const Dictionary*& m_Dict; + optional_property PackageMarker; + + MaterialPackage(const Dictionary*& d); + MaterialPackage(const MaterialPackage& rhs); + virtual ~MaterialPackage() {} + + const MaterialPackage& operator=(const MaterialPackage& rhs) { Copy(rhs); return *this; } + virtual void Copy(const MaterialPackage& rhs); + virtual const char* HasName() { return "MaterialPackage"; } + 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 SourcePackage : public GenericPackage { - ASDCP_NO_COPY_CONSTRUCT(SourcePackage); + SourcePackage(); public: - - SourcePackage() {} - virtual ~SourcePackage() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + const Dictionary*& m_Dict; + UUID Descriptor; + + SourcePackage(const Dictionary*& d); + SourcePackage(const SourcePackage& rhs); + virtual ~SourcePackage() {} + + const SourcePackage& operator=(const SourcePackage& rhs) { Copy(rhs); return *this; } + virtual void Copy(const SourcePackage& rhs); + virtual const char* HasName() { return "SourcePackage"; } + 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 GenericTrack : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(GenericTrack); + GenericTrack(); public: + const Dictionary*& m_Dict; ui32_t TrackID; ui32_t TrackNumber; - UTF16String TrackName; - UUID Sequence; + optional_property TrackName; + optional_property Sequence; + + GenericTrack(const Dictionary*& d); + GenericTrack(const GenericTrack& rhs); + virtual ~GenericTrack() {} + + const GenericTrack& operator=(const GenericTrack& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GenericTrack& rhs); + virtual const char* HasName() { return "GenericTrack"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); + }; - GenericTrack() : TrackID(0), TrackNumber(0) {} - virtual ~GenericTrack() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + // + class StaticTrack : public GenericTrack + { + StaticTrack(); + + public: + const Dictionary*& m_Dict; + + StaticTrack(const Dictionary*& d); + StaticTrack(const StaticTrack& rhs); + virtual ~StaticTrack() {} + + const StaticTrack& operator=(const StaticTrack& rhs) { Copy(rhs); return *this; } + virtual void Copy(const StaticTrack& rhs); + virtual const char* HasName() { return "StaticTrack"; } + 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 Track : public GenericTrack { - ASDCP_NO_COPY_CONSTRUCT(Track); + Track(); public: + const Dictionary*& m_Dict; Rational EditRate; ui64_t Origin; - Track() : Origin(0) {} - virtual ~Track() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + Track(const Dictionary*& d); + Track(const Track& rhs); + virtual ~Track() {} + + const Track& operator=(const Track& rhs) { Copy(rhs); return *this; } + virtual void Copy(const Track& rhs); + virtual const char* HasName() { return "Track"; } + 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 StructuralComponent : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(StructuralComponent); + StructuralComponent(); public: + const Dictionary*& m_Dict; UL DataDefinition; - ui64_t Duration; - - StructuralComponent() : Duration(0) {} - virtual ~StructuralComponent() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + optional_property Duration; + + StructuralComponent(const Dictionary*& d); + StructuralComponent(const StructuralComponent& rhs); + virtual ~StructuralComponent() {} + + const StructuralComponent& operator=(const StructuralComponent& rhs) { Copy(rhs); return *this; } + virtual void Copy(const StructuralComponent& rhs); + virtual const char* HasName() { return "StructuralComponent"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); }; // class Sequence : public StructuralComponent { - ASDCP_NO_COPY_CONSTRUCT(Sequence); + Sequence(); public: - Batch StructuralComponents; - - Sequence() {} - virtual ~Sequence() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + const Dictionary*& m_Dict; + Array StructuralComponents; + + Sequence(const Dictionary*& d); + Sequence(const Sequence& rhs); + virtual ~Sequence() {} + + const Sequence& operator=(const Sequence& rhs) { Copy(rhs); return *this; } + virtual void Copy(const Sequence& rhs); + virtual const char* HasName() { return "Sequence"; } + 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 SourceClip : public StructuralComponent { - ASDCP_NO_COPY_CONSTRUCT(SourceClip); + SourceClip(); public: + const Dictionary*& m_Dict; ui64_t StartPosition; UMID SourcePackageID; ui32_t SourceTrackID; - SourceClip() : StartPosition(0), SourceTrackID(0) {} - virtual ~SourceClip() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + SourceClip(const Dictionary*& d); + SourceClip(const SourceClip& rhs); + virtual ~SourceClip() {} + + const SourceClip& operator=(const SourceClip& rhs) { Copy(rhs); return *this; } + virtual void Copy(const SourceClip& rhs); + virtual const char* HasName() { return "SourceClip"; } + 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 TimecodeComponent : public StructuralComponent { - ASDCP_NO_COPY_CONSTRUCT(TimecodeComponent); + TimecodeComponent(); public: + const Dictionary*& m_Dict; ui16_t RoundedTimecodeBase; ui64_t StartTimecode; ui8_t DropFrame; - TimecodeComponent() : RoundedTimecodeBase(0), StartTimecode(0), DropFrame(0) {} - virtual ~TimecodeComponent() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + TimecodeComponent(const Dictionary*& d); + TimecodeComponent(const TimecodeComponent& rhs); + virtual ~TimecodeComponent() {} + + const TimecodeComponent& operator=(const TimecodeComponent& rhs) { Copy(rhs); return *this; } + virtual void Copy(const TimecodeComponent& rhs); + virtual const char* HasName() { return "TimecodeComponent"; } + 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 GenericDescriptor : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(GenericDescriptor); + GenericDescriptor(); public: - Batch Locators; - Batch SubDescriptors; - - GenericDescriptor() {} - virtual ~GenericDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + const Dictionary*& m_Dict; + Array Locators; + Array SubDescriptors; + + GenericDescriptor(const Dictionary*& d); + GenericDescriptor(const GenericDescriptor& rhs); + virtual ~GenericDescriptor() {} + + const GenericDescriptor& operator=(const GenericDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GenericDescriptor& rhs); + virtual const char* HasName() { return "GenericDescriptor"; } + virtual Result_t InitFromTLVSet(TLVReader& TLVSet); + virtual Result_t WriteToTLVSet(TLVWriter& TLVSet); + virtual void Dump(FILE* = 0); }; // class FileDescriptor : public GenericDescriptor { - ASDCP_NO_COPY_CONSTRUCT(FileDescriptor); + FileDescriptor(); public: - ui32_t LinkedTrackID; + const Dictionary*& m_Dict; + optional_property LinkedTrackID; Rational SampleRate; - ui64_t ContainerDuration; + optional_property ContainerDuration; UL EssenceContainer; - UL Codec; - - FileDescriptor() : LinkedTrackID(0), ContainerDuration(0) {} - virtual ~FileDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + optional_property
    Codec; + + FileDescriptor(const Dictionary*& d); + FileDescriptor(const FileDescriptor& rhs); + virtual ~FileDescriptor() {} + + const FileDescriptor& operator=(const FileDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const FileDescriptor& rhs); + virtual const char* HasName() { return "FileDescriptor"; } + 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 GenericSoundEssenceDescriptor : public FileDescriptor { - ASDCP_NO_COPY_CONSTRUCT(GenericSoundEssenceDescriptor); + GenericSoundEssenceDescriptor(); public: + const Dictionary*& m_Dict; Rational AudioSamplingRate; ui8_t Locked; - ui8_t AudioRefLevel; - ui8_t ElectroSpatialFormulation; + optional_property AudioRefLevel; + optional_property ElectroSpatialFormulation; ui32_t ChannelCount; ui32_t QuantizationBits; - ui8_t DialNorm; - UL SoundEssenceCompression; - - GenericSoundEssenceDescriptor() : Locked(0), AudioRefLevel(0), ElectroSpatialFormulation(0), ChannelCount(0), QuantizationBits(0), DialNorm(0) {} - virtual ~GenericSoundEssenceDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + optional_property DialNorm; + UL SoundEssenceCoding; + optional_property ReferenceAudioAlignmentLevel; + optional_property ReferenceImageEditRate; + + GenericSoundEssenceDescriptor(const Dictionary*& d); + GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs); + virtual ~GenericSoundEssenceDescriptor() {} + + const GenericSoundEssenceDescriptor& operator=(const GenericSoundEssenceDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GenericSoundEssenceDescriptor& rhs); + virtual const char* HasName() { return "GenericSoundEssenceDescriptor"; } + 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 WaveAudioDescriptor : public GenericSoundEssenceDescriptor { - ASDCP_NO_COPY_CONSTRUCT(WaveAudioDescriptor); + WaveAudioDescriptor(); public: + const Dictionary*& m_Dict; ui16_t BlockAlign; - ui8_t SequenceOffset; + optional_property SequenceOffset; ui32_t AvgBps; - - WaveAudioDescriptor() : BlockAlign(0), SequenceOffset(0), AvgBps(0) {} - virtual ~WaveAudioDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + optional_property
      ChannelAssignment; + + WaveAudioDescriptor(const Dictionary*& d); + WaveAudioDescriptor(const WaveAudioDescriptor& rhs); + virtual ~WaveAudioDescriptor() {} + + const WaveAudioDescriptor& operator=(const WaveAudioDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const WaveAudioDescriptor& rhs); + virtual const char* HasName() { return "WaveAudioDescriptor"; } + 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 GenericPictureEssenceDescriptor : public FileDescriptor { - ASDCP_NO_COPY_CONSTRUCT(GenericPictureEssenceDescriptor); + GenericPictureEssenceDescriptor(); public: + const Dictionary*& m_Dict; + optional_property SignalStandard; ui8_t FrameLayout; ui32_t StoredWidth; ui32_t StoredHeight; - ui32_t DisplayWidth; - ui32_t DisplayHeight; + optional_property StoredF2Offset; + optional_property SampledWidth; + optional_property SampledHeight; + optional_property SampledXOffset; + optional_property SampledYOffset; + optional_property DisplayHeight; + optional_property DisplayWidth; + optional_property DisplayXOffset; + optional_property DisplayYOffset; + optional_property DisplayF2Offset; Rational AspectRatio; - UL Gamma; + optional_property ActiveFormatDescriptor; + optional_property AlphaTransparency; + optional_property
        TransferCharacteristic; + optional_property ImageAlignmentOffset; + optional_property ImageStartOffset; + optional_property ImageEndOffset; + optional_property FieldDominance; UL PictureEssenceCoding; - - GenericPictureEssenceDescriptor() : FrameLayout(0), StoredWidth(0), StoredHeight(0), DisplayWidth(0), DisplayHeight(0) {} - virtual ~GenericPictureEssenceDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + optional_property
          CodingEquations; + optional_property
            ColorPrimaries; + optional_property > AlternativeCenterCuts; + optional_property ActiveWidth; + optional_property ActiveHeight; + optional_property ActiveXOffset; + optional_property ActiveYOffset; + optional_property VideoLineMap; + optional_property MasteringDisplayPrimaries; + optional_property MasteringDisplayWhitePointChromaticity; + optional_property MasteringDisplayMaximumLuminance; + optional_property MasteringDisplayMinimumLuminance; + + GenericPictureEssenceDescriptor(const Dictionary*& d); + GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs); + virtual ~GenericPictureEssenceDescriptor() {} + + const GenericPictureEssenceDescriptor& operator=(const GenericPictureEssenceDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GenericPictureEssenceDescriptor& rhs); + virtual const char* HasName() { return "GenericPictureEssenceDescriptor"; } + 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 RGBAEssenceDescriptor : public GenericPictureEssenceDescriptor { - ASDCP_NO_COPY_CONSTRUCT(RGBAEssenceDescriptor); + RGBAEssenceDescriptor(); public: - ui32_t ComponentMaxRef; - ui32_t ComponentMinRef; - RGBLayout PixelLayout; - - RGBAEssenceDescriptor() : ComponentMaxRef(0), ComponentMinRef(0) {} - virtual ~RGBAEssenceDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + const Dictionary*& m_Dict; + optional_property ComponentMaxRef; + optional_property ComponentMinRef; + optional_property AlphaMinRef; + optional_property AlphaMaxRef; + optional_property ScanningDirection; + RGBALayout PixelLayout; + + RGBAEssenceDescriptor(const Dictionary*& d); + RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs); + virtual ~RGBAEssenceDescriptor() {} + + const RGBAEssenceDescriptor& operator=(const RGBAEssenceDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const RGBAEssenceDescriptor& rhs); + virtual const char* HasName() { return "RGBAEssenceDescriptor"; } + 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 JPEG2000PictureSubDescriptor : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(JPEG2000PictureSubDescriptor); + JPEG2000PictureSubDescriptor(); public: + const Dictionary*& m_Dict; ui16_t Rsize; ui32_t Xsize; ui32_t Ysize; @@ -388,101 +567,735 @@ namespace ASDCP ui32_t XTOsize; ui32_t YTOsize; ui16_t Csize; - Raw PictureComponentSizing; - Raw CodingStyleDefault; - Raw QuantizationDefault; - - JPEG2000PictureSubDescriptor() : Rsize(0), Xsize(0), Ysize(0), XOsize(0), YOsize(0), XTsize(0), YTsize(0), XTOsize(0), YTOsize(0), Csize(0) {} - virtual ~JPEG2000PictureSubDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + optional_property PictureComponentSizing; + optional_property CodingStyleDefault; + optional_property QuantizationDefault; + optional_property J2CLayout; + + JPEG2000PictureSubDescriptor(const Dictionary*& d); + JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs); + virtual ~JPEG2000PictureSubDescriptor() {} + + const JPEG2000PictureSubDescriptor& operator=(const JPEG2000PictureSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const JPEG2000PictureSubDescriptor& rhs); + virtual const char* HasName() { return "JPEG2000PictureSubDescriptor"; } + 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 CDCIEssenceDescriptor : public GenericPictureEssenceDescriptor { - ASDCP_NO_COPY_CONSTRUCT(CDCIEssenceDescriptor); + CDCIEssenceDescriptor(); public: + const Dictionary*& m_Dict; ui32_t ComponentDepth; ui32_t HorizontalSubsampling; - ui32_t VerticalSubsampling; - ui8_t ColorSiting; - ui8_t ReversedByteOrder; - ui32_t BlackRefLevel; - ui32_t WhiteReflevel; - ui32_t ColorRange; - - CDCIEssenceDescriptor() : ComponentDepth(0), HorizontalSubsampling(0), VerticalSubsampling(0), ColorSiting(0), ReversedByteOrder(0), BlackRefLevel(0), WhiteReflevel(0), ColorRange(0) {} - virtual ~CDCIEssenceDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + optional_property VerticalSubsampling; + optional_property ColorSiting; + optional_property ReversedByteOrder; + optional_property PaddingBits; + optional_property AlphaSampleDepth; + optional_property BlackRefLevel; + optional_property WhiteReflevel; + optional_property ColorRange; + + CDCIEssenceDescriptor(const Dictionary*& d); + CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs); + virtual ~CDCIEssenceDescriptor() {} + + const CDCIEssenceDescriptor& operator=(const CDCIEssenceDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const CDCIEssenceDescriptor& rhs); + virtual const char* HasName() { return "CDCIEssenceDescriptor"; } + 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 MPEG2VideoDescriptor : public CDCIEssenceDescriptor { - ASDCP_NO_COPY_CONSTRUCT(MPEG2VideoDescriptor); + MPEG2VideoDescriptor(); public: - ui8_t CodedContentType; - ui8_t LowDelay; - ui32_t BitRate; - ui8_t ProfileAndLevel; + const Dictionary*& m_Dict; + optional_property SingleSequence; + optional_property ConstantBFrames; + optional_property CodedContentType; + optional_property LowDelay; + optional_property ClosedGOP; + optional_property IdenticalGOP; + optional_property MaxGOP; + optional_property BPictureCount; + optional_property BitRate; + optional_property ProfileAndLevel; + + MPEG2VideoDescriptor(const Dictionary*& d); + MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs); + virtual ~MPEG2VideoDescriptor() {} + + const MPEG2VideoDescriptor& operator=(const MPEG2VideoDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const MPEG2VideoDescriptor& rhs); + virtual const char* HasName() { return "MPEG2VideoDescriptor"; } + 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 DMSegment : public InterchangeObject + { + DMSegment(); - MPEG2VideoDescriptor() : CodedContentType(0), LowDelay(0), BitRate(0), ProfileAndLevel(0) {} - virtual ~MPEG2VideoDescriptor() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + public: + const Dictionary*& m_Dict; + UL DataDefinition; + optional_property Duration; + optional_property EventStartPosition; + optional_property EventComment; + UUID DMFramework; + + DMSegment(const Dictionary*& d); + DMSegment(const DMSegment& rhs); + virtual ~DMSegment() {} + + const DMSegment& operator=(const DMSegment& rhs) { Copy(rhs); return *this; } + virtual void Copy(const DMSegment& rhs); + virtual const char* HasName() { return "DMSegment"; } + 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 CryptographicFramework : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(CryptographicFramework); + CryptographicFramework(); public: + const Dictionary*& m_Dict; UUID ContextSR; - CryptographicFramework() {} - virtual ~CryptographicFramework() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + CryptographicFramework(const Dictionary*& d); + CryptographicFramework(const CryptographicFramework& rhs); + virtual ~CryptographicFramework() {} + + const CryptographicFramework& operator=(const CryptographicFramework& rhs) { Copy(rhs); return *this; } + virtual void Copy(const CryptographicFramework& rhs); + virtual const char* HasName() { return "CryptographicFramework"; } + 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 CryptographicContext : public InterchangeObject { - ASDCP_NO_COPY_CONSTRUCT(CryptographicContext); + CryptographicContext(); public: + const Dictionary*& m_Dict; UUID ContextID; UL SourceEssenceContainer; UL CipherAlgorithm; UL MICAlgorithm; UUID CryptographicKeyID; - CryptographicContext() {} - virtual ~CryptographicContext() {} - virtual Result_t InitFromTLVSet(TLVReader& TLVSet); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&); - virtual void Dump(FILE* = 0); + CryptographicContext(const Dictionary*& d); + CryptographicContext(const CryptographicContext& rhs); + virtual ~CryptographicContext() {} + + const CryptographicContext& operator=(const CryptographicContext& rhs) { Copy(rhs); return *this; } + virtual void Copy(const CryptographicContext& rhs); + virtual const char* HasName() { return "CryptographicContext"; } + 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 DescriptiveFramework : public InterchangeObject + { + DescriptiveFramework(); + + public: + const Dictionary*& m_Dict; + optional_property 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 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(); + + public: + const Dictionary*& m_Dict; + UL DataEssenceCoding; + + GenericDataEssenceDescriptor(const Dictionary*& d); + GenericDataEssenceDescriptor(const GenericDataEssenceDescriptor& rhs); + virtual ~GenericDataEssenceDescriptor() {} + + const GenericDataEssenceDescriptor& operator=(const GenericDataEssenceDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GenericDataEssenceDescriptor& rhs); + 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 + { + TimedTextDescriptor(); + + public: + const Dictionary*& m_Dict; + UUID ResourceID; + UTF16String UCSEncoding; + UTF16String NamespaceURI; + optional_property RFC5646LanguageTagList; + + TimedTextDescriptor(const Dictionary*& d); + TimedTextDescriptor(const TimedTextDescriptor& rhs); + virtual ~TimedTextDescriptor() {} + + const TimedTextDescriptor& operator=(const TimedTextDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const TimedTextDescriptor& rhs); + 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 + { + TimedTextResourceSubDescriptor(); + + public: + const Dictionary*& m_Dict; + UUID AncillaryResourceID; + UTF16String MIMEMediaType; + ui32_t EssenceStreamID; + + TimedTextResourceSubDescriptor(const Dictionary*& d); + TimedTextResourceSubDescriptor(const TimedTextResourceSubDescriptor& rhs); + virtual ~TimedTextResourceSubDescriptor() {} + + const TimedTextResourceSubDescriptor& operator=(const TimedTextResourceSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const TimedTextResourceSubDescriptor& rhs); + 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 + { + StereoscopicPictureSubDescriptor(); + + public: + const Dictionary*& m_Dict; + + StereoscopicPictureSubDescriptor(const Dictionary*& d); + StereoscopicPictureSubDescriptor(const StereoscopicPictureSubDescriptor& rhs); + virtual ~StereoscopicPictureSubDescriptor() {} + + const StereoscopicPictureSubDescriptor& operator=(const StereoscopicPictureSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const StereoscopicPictureSubDescriptor& rhs); + 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&); + }; + + // + class ContainerConstraintSubDescriptor : public InterchangeObject + { + ContainerConstraintSubDescriptor(); + + public: + const Dictionary*& m_Dict; + + ContainerConstraintSubDescriptor(const Dictionary*& d); + ContainerConstraintSubDescriptor(const ContainerConstraintSubDescriptor& rhs); + virtual ~ContainerConstraintSubDescriptor() {} + + const ContainerConstraintSubDescriptor& operator=(const ContainerConstraintSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const ContainerConstraintSubDescriptor& rhs); + virtual const char* HasName() { return "ContainerConstraintSubDescriptor"; } + 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 NetworkLocator : public InterchangeObject + { + NetworkLocator(); + + public: + const Dictionary*& m_Dict; + UTF16String URLString; + + NetworkLocator(const Dictionary*& d); + NetworkLocator(const NetworkLocator& rhs); + virtual ~NetworkLocator() {} + + const NetworkLocator& operator=(const NetworkLocator& rhs) { Copy(rhs); return *this; } + virtual void Copy(const NetworkLocator& rhs); + virtual const char* HasName() { return "NetworkLocator"; } + 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 MCALabelSubDescriptor : public InterchangeObject + { + MCALabelSubDescriptor(); + + public: + const Dictionary*& m_Dict; + UL MCALabelDictionaryID; + UUID MCALinkID; + UTF16String MCATagSymbol; + optional_property MCATagName; + optional_property MCAChannelID; + optional_property RFC5646SpokenLanguage; + optional_property MCATitle; + optional_property MCATitleVersion; + optional_property MCATitleSubVersion; + optional_property MCAEpisode; + optional_property MCAPartitionKind; + optional_property MCAPartitionNumber; + optional_property MCAAudioContentKind; + optional_property MCAAudioElementKind; + + MCALabelSubDescriptor(const Dictionary*& d); + MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs); + virtual ~MCALabelSubDescriptor() {} + + const MCALabelSubDescriptor& operator=(const MCALabelSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const MCALabelSubDescriptor& rhs); + virtual const char* HasName() { return "MCALabelSubDescriptor"; } + 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 AudioChannelLabelSubDescriptor : public MCALabelSubDescriptor + { + AudioChannelLabelSubDescriptor(); + + public: + const Dictionary*& m_Dict; + optional_property SoundfieldGroupLinkID; + + AudioChannelLabelSubDescriptor(const Dictionary*& d); + AudioChannelLabelSubDescriptor(const AudioChannelLabelSubDescriptor& rhs); + virtual ~AudioChannelLabelSubDescriptor() {} + + const AudioChannelLabelSubDescriptor& operator=(const AudioChannelLabelSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const AudioChannelLabelSubDescriptor& rhs); + virtual const char* HasName() { return "AudioChannelLabelSubDescriptor"; } + 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 SoundfieldGroupLabelSubDescriptor : public MCALabelSubDescriptor + { + SoundfieldGroupLabelSubDescriptor(); + + public: + const Dictionary*& m_Dict; + optional_property > GroupOfSoundfieldGroupsLinkID; + + SoundfieldGroupLabelSubDescriptor(const Dictionary*& d); + SoundfieldGroupLabelSubDescriptor(const SoundfieldGroupLabelSubDescriptor& rhs); + virtual ~SoundfieldGroupLabelSubDescriptor() {} + + const SoundfieldGroupLabelSubDescriptor& operator=(const SoundfieldGroupLabelSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const SoundfieldGroupLabelSubDescriptor& rhs); + virtual const char* HasName() { return "SoundfieldGroupLabelSubDescriptor"; } + 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 GroupOfSoundfieldGroupsLabelSubDescriptor : public MCALabelSubDescriptor + { + GroupOfSoundfieldGroupsLabelSubDescriptor(); + + public: + const Dictionary*& m_Dict; + + GroupOfSoundfieldGroupsLabelSubDescriptor(const Dictionary*& d); + GroupOfSoundfieldGroupsLabelSubDescriptor(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs); + virtual ~GroupOfSoundfieldGroupsLabelSubDescriptor() {} + + const GroupOfSoundfieldGroupsLabelSubDescriptor& operator=(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const GroupOfSoundfieldGroupsLabelSubDescriptor& rhs); + virtual const char* HasName() { return "GroupOfSoundfieldGroupsLabelSubDescriptor"; } + 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 DCDataDescriptor : public GenericDataEssenceDescriptor + { + DCDataDescriptor(); + + public: + const Dictionary*& m_Dict; + + DCDataDescriptor(const Dictionary*& d); + DCDataDescriptor(const DCDataDescriptor& rhs); + virtual ~DCDataDescriptor() {} + + const DCDataDescriptor& operator=(const DCDataDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const DCDataDescriptor& rhs); + virtual const char* HasName() { return "DCDataDescriptor"; } + 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 PrivateDCDataDescriptor : public GenericDataEssenceDescriptor + { + PrivateDCDataDescriptor(); + + public: + const Dictionary*& m_Dict; + + PrivateDCDataDescriptor(const Dictionary*& d); + PrivateDCDataDescriptor(const PrivateDCDataDescriptor& rhs); + virtual ~PrivateDCDataDescriptor() {} + + const PrivateDCDataDescriptor& operator=(const PrivateDCDataDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const PrivateDCDataDescriptor& rhs); + virtual const char* HasName() { return "PrivateDCDataDescriptor"; } + 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 DolbyAtmosSubDescriptor : public InterchangeObject + { + DolbyAtmosSubDescriptor(); + + public: + const Dictionary*& m_Dict; + UUID AtmosID; + ui32_t FirstFrame; + ui16_t MaxChannelCount; + ui16_t MaxObjectCount; + ui8_t AtmosVersion; + + DolbyAtmosSubDescriptor(const Dictionary*& d); + DolbyAtmosSubDescriptor(const DolbyAtmosSubDescriptor& rhs); + virtual ~DolbyAtmosSubDescriptor() {} + + const DolbyAtmosSubDescriptor& operator=(const DolbyAtmosSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const DolbyAtmosSubDescriptor& rhs); + virtual const char* HasName() { return "DolbyAtmosSubDescriptor"; } + 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 ACESPictureSubDescriptor : public InterchangeObject + { + ACESPictureSubDescriptor(); + + public: + const Dictionary*& m_Dict; + optional_property ACESAuthoringInformation; + optional_property ACESMasteringDisplayPrimaries; + optional_property ACESMasteringDisplayWhitePointChromaticity; + optional_property ACESMasteringDisplayMaximumLuminance; + optional_property ACESMasteringDisplayMinimumLuminance; + + ACESPictureSubDescriptor(const Dictionary*& d); + ACESPictureSubDescriptor(const ACESPictureSubDescriptor& rhs); + virtual ~ACESPictureSubDescriptor() {} + + const ACESPictureSubDescriptor& operator=(const ACESPictureSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const ACESPictureSubDescriptor& rhs); + virtual const char* HasName() { return "ACESPictureSubDescriptor"; } + 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 TargetFrameSubDescriptor : public InterchangeObject + { + TargetFrameSubDescriptor(); + + public: + const Dictionary*& m_Dict; + UUID TargetFrameAncillaryResourceID; + UTF16String MediaType; + ui64_t TargetFrameIndex; + UL TargetFrameTransferCharacteristic; + UL TargetFrameColorPrimaries; + ui32_t TargetFrameComponentMaxRef; + ui32_t TargetFrameComponentMinRef; + ui32_t TargetFrameEssenceStreamID; + optional_property ACESPictureSubDescriptorInstanceID; + optional_property
              TargetFrameViewingEnvironment; + + TargetFrameSubDescriptor(const Dictionary*& d); + TargetFrameSubDescriptor(const TargetFrameSubDescriptor& rhs); + virtual ~TargetFrameSubDescriptor() {} + + const TargetFrameSubDescriptor& operator=(const TargetFrameSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const TargetFrameSubDescriptor& rhs); + virtual const char* HasName() { return "TargetFrameSubDescriptor"; } + 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 TextBasedDMFramework : public DescriptiveFramework + { + TextBasedDMFramework(); + + public: + const Dictionary*& m_Dict; + optional_property 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 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(); + + public: + const Dictionary*& m_Dict; + UL DataDefinition; + ui32_t SourceTrackID; + ui32_t SimplePayloadSID; + + PHDRMetadataTrackSubDescriptor(const Dictionary*& d); + PHDRMetadataTrackSubDescriptor(const PHDRMetadataTrackSubDescriptor& rhs); + virtual ~PHDRMetadataTrackSubDescriptor() {} + + const PHDRMetadataTrackSubDescriptor& operator=(const PHDRMetadataTrackSubDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const PHDRMetadataTrackSubDescriptor& rhs); + virtual const char* HasName() { return "PHDRMetadataTrackSubDescriptor"; } + 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 PIMFDynamicMetadataDescriptor : public GenericDataEssenceDescriptor + { + PIMFDynamicMetadataDescriptor(); + + public: + const Dictionary*& m_Dict; + ui32_t GlobalPayloadSID; + + PIMFDynamicMetadataDescriptor(const Dictionary*& d); + PIMFDynamicMetadataDescriptor(const PIMFDynamicMetadataDescriptor& rhs); + virtual ~PIMFDynamicMetadataDescriptor() {} + + const PIMFDynamicMetadataDescriptor& operator=(const PIMFDynamicMetadataDescriptor& rhs) { Copy(rhs); return *this; } + virtual void Copy(const PIMFDynamicMetadataDescriptor& rhs); + virtual const char* HasName() { return "PIMFDynamicMetadataDescriptor"; } + 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