removed nascent ST2052-1 support pending completion
[asdcplib.git] / src / Metadata.h
index 7ee09406b45a6ef8e3ff04c1fc283b2a70dfa0d0..5c282b34e25e2c28f917695eb143b831e2f3c81f 100755 (executable)
@@ -57,7 +57,7 @@ namespace ASDCP
           UUID ProductUID;
           Kumu::Timestamp ModificationDate;
           VersionType ToolkitVersion;
-          UTF16String Platform;
+          optional_property<UTF16String> Platform;
 
       Identification(const Dictionary*& d);
       Identification(const Identification& rhs);
@@ -105,7 +105,7 @@ namespace ASDCP
        public:
          const Dictionary*& m_Dict;
           UMID LinkedPackageUID;
-          ui32_t IndexSID;
+          optional_property<ui32_t> IndexSID;
           ui32_t BodySID;
 
       EssenceContainerData(const Dictionary*& d);
@@ -130,7 +130,7 @@ namespace ASDCP
        public:
          const Dictionary*& m_Dict;
           UMID PackageUID;
-          UTF16String Name;
+          optional_property<UTF16String> Name;
           Kumu::Timestamp PackageCreationDate;
           Kumu::Timestamp PackageModifiedDate;
           Batch<UUID> Tracks;
@@ -154,6 +154,7 @@ namespace ASDCP
 
        public:
          const Dictionary*& m_Dict;
+          optional_property<UUID> PackageMarker;
 
       MaterialPackage(const Dictionary*& d);
       MaterialPackage(const MaterialPackage& rhs);
@@ -201,8 +202,8 @@ namespace ASDCP
          const Dictionary*& m_Dict;
           ui32_t TrackID;
           ui32_t TrackNumber;
-          UTF16String TrackName;
-          UUID Sequence;
+          optional_property<UTF16String> TrackName;
+          optional_property<UUID> Sequence;
 
       GenericTrack(const Dictionary*& d);
       GenericTrack(const GenericTrack& rhs);
@@ -270,7 +271,7 @@ namespace ASDCP
        public:
          const Dictionary*& m_Dict;
           UL DataDefinition;
-          ui64_t Duration;
+          optional_property<ui64_t> Duration;
 
       StructuralComponent(const Dictionary*& d);
       StructuralComponent(const StructuralComponent& rhs);
@@ -386,11 +387,11 @@ namespace ASDCP
 
        public:
          const Dictionary*& m_Dict;
-          ui32_t LinkedTrackID;
+          optional_property<ui32_t> LinkedTrackID;
           Rational SampleRate;
-          ui64_t ContainerDuration;
+          optional_property<ui64_t> ContainerDuration;
           UL EssenceContainer;
-          UL Codec;
+          optional_property<UL> Codec;
 
       FileDescriptor(const Dictionary*& d);
       FileDescriptor(const FileDescriptor& rhs);
@@ -415,10 +416,12 @@ namespace ASDCP
          const Dictionary*& m_Dict;
           Rational AudioSamplingRate;
           ui8_t Locked;
-          ui8_t AudioRefLevel;
+          optional_property<ui8_t> AudioRefLevel;
+          optional_property<ui8_t> ElectroSpatialFormulation;
           ui32_t ChannelCount;
           ui32_t QuantizationBits;
-          ui8_t DialNorm;
+          optional_property<ui8_t> DialNorm;
+          UL SoundEssenceCoding;
 
       GenericSoundEssenceDescriptor(const Dictionary*& d);
       GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs);
@@ -442,9 +445,11 @@ namespace ASDCP
        public:
          const Dictionary*& m_Dict;
           ui16_t BlockAlign;
-          ui8_t SequenceOffset;
+          optional_property<ui8_t> SequenceOffset;
           ui32_t AvgBps;
-          UL ChannelAssignment;
+          optional_property<UL> ChannelAssignment;
+          optional_property<Rational> ReferenceImageEditRate;
+          optional_property<ui8_t> ReferenceAudioAlignmentLevel;
 
       WaveAudioDescriptor(const Dictionary*& d);
       WaveAudioDescriptor(const WaveAudioDescriptor& rhs);
@@ -467,15 +472,36 @@ namespace ASDCP
 
        public:
          const Dictionary*& m_Dict;
+          optional_property<ui8_t> SignalStandard;
           ui8_t FrameLayout;
           ui32_t StoredWidth;
           ui32_t StoredHeight;
-          Rational AspectRatio;
-          UL PictureEssenceCoding;
-          optional_property<ui32_t> DisplayWidth;
+          optional_property<ui32_t> StoredF2Offset;
+          optional_property<ui32_t> SampledWidth;
+          optional_property<ui32_t> SampledHeight;
+          optional_property<ui32_t> SampledXOffset;
+          optional_property<ui32_t> SampledYOffset;
           optional_property<ui32_t> DisplayHeight;
-          optional_property<UL> Gamma;
+          optional_property<ui32_t> DisplayWidth;
+          optional_property<ui32_t> DisplayXOffset;
+          optional_property<ui32_t> DisplayYOffset;
+          optional_property<ui32_t> DisplayF2Offset;
+          Rational AspectRatio;
+          optional_property<ui8_t> ActiveFormatDescriptor;
+          optional_property<ui8_t> AlphaTransparency;
+          optional_property<UL> TransferCharacteristic;
+          optional_property<ui32_t> ImageAlignmentOffset;
+          optional_property<ui32_t> ImageStartOffset;
+          optional_property<ui32_t> ImageEndOffset;
           optional_property<ui8_t> FieldDominance;
+          UL PictureEssenceCoding;
+          optional_property<UL> CodingEquations;
+          optional_property<UL> ColorPrimaries;
+          Batch<UL> AlternativeCenterCuts;
+          optional_property<ui32_t> ActiveWidth;
+          optional_property<ui32_t> ActiveHeight;
+          optional_property<ui32_t> ActiveXOffset;
+          optional_property<ui32_t> ActiveYOffset;
 
       GenericPictureEssenceDescriptor(const Dictionary*& d);
       GenericPictureEssenceDescriptor(const GenericPictureEssenceDescriptor& rhs);
@@ -498,8 +524,11 @@ namespace ASDCP
 
        public:
          const Dictionary*& m_Dict;
-          ui32_t ComponentMaxRef;
-          ui32_t ComponentMinRef;
+          optional_property<ui32_t> ComponentMaxRef;
+          optional_property<ui32_t> ComponentMinRef;
+          optional_property<ui32_t> AlphaMinRef;
+          optional_property<ui32_t> AlphaMaxRef;
+          optional_property<ui8_t> ScanningDirection;
 
       RGBAEssenceDescriptor(const Dictionary*& d);
       RGBAEssenceDescriptor(const RGBAEssenceDescriptor& rhs);
@@ -532,9 +561,9 @@ namespace ASDCP
           ui32_t XTOsize;
           ui32_t YTOsize;
           ui16_t Csize;
-          Raw PictureComponentSizing;
-          Raw CodingStyleDefault;
-          Raw QuantizationDefault;
+          optional_property<Raw> PictureComponentSizing;
+          optional_property<Raw> CodingStyleDefault;
+          optional_property<Raw> QuantizationDefault;
 
       JPEG2000PictureSubDescriptor(const Dictionary*& d);
       JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs);
@@ -559,8 +588,14 @@ namespace ASDCP
          const Dictionary*& m_Dict;
           ui32_t ComponentDepth;
           ui32_t HorizontalSubsampling;
-          ui32_t VerticalSubsampling;
-          ui8_t ColorSiting;
+          optional_property<ui32_t> VerticalSubsampling;
+          optional_property<ui8_t> ColorSiting;
+          optional_property<ui8_t> ReversedByteOrder;
+          optional_property<ui16_t> PaddingBits;
+          optional_property<ui32_t> AlphaSampleDepth;
+          optional_property<ui32_t> BlackRefLevel;
+          optional_property<ui32_t> WhiteReflevel;
+          optional_property<ui32_t> ColorRange;
 
       CDCIEssenceDescriptor(const Dictionary*& d);
       CDCIEssenceDescriptor(const CDCIEssenceDescriptor& rhs);
@@ -583,10 +618,16 @@ namespace ASDCP
 
        public:
          const Dictionary*& m_Dict;
-          ui8_t CodedContentType;
-          ui8_t LowDelay;
-          ui32_t BitRate;
-          ui8_t ProfileAndLevel;
+          optional_property<ui8_t> SingleSequence;
+          optional_property<ui8_t> ConstantBFrames;
+          optional_property<ui8_t> CodedContentType;
+          optional_property<ui8_t> LowDelay;
+          optional_property<ui8_t> ClosedGOP;
+          optional_property<ui8_t> IdenticalGOP;
+          optional_property<ui8_t> MaxGOP;
+          optional_property<ui8_t> BPictureCount;
+          optional_property<ui32_t> BitRate;
+          optional_property<ui8_t> ProfileAndLevel;
 
       MPEG2VideoDescriptor(const Dictionary*& d);
       MPEG2VideoDescriptor(const MPEG2VideoDescriptor& rhs);
@@ -712,6 +753,7 @@ namespace ASDCP
           UUID ResourceID;
           UTF16String UCSEncoding;
           UTF16String NamespaceURI;
+          optional_property<UTF16String> RFC5646LanguageTagList;
 
       TimedTextDescriptor(const Dictionary*& d);
       TimedTextDescriptor(const TimedTextDescriptor& rhs);
@@ -807,9 +849,9 @@ namespace ASDCP
           UL MCALabelDictionaryID;
           UUID MCALinkID;
           UTF16String MCATagSymbol;
-          UTF16String MCATagName;
-          ui32_t MCAChannelID;
-          ISO8String RFC5646SpokenLanguage;
+          optional_property<UTF16String> MCATagName;
+          optional_property<ui32_t> MCAChannelID;
+          optional_property<ISO8String> RFC5646SpokenLanguage;
 
       MCALabelSubDescriptor(const Dictionary*& d);
       MCALabelSubDescriptor(const MCALabelSubDescriptor& rhs);