ginormo merge-back with Kumu, SMPTE MIC key and MPEG parser fix
[asdcplib.git] / src / MDD.h
1 /*
2 Copyright (c) 2006, John Hurst
3 All rights reserved.
4
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
7 are met:
8 1. Redistributions of source code must retain the above copyright
9    notice, this list of conditions and the following disclaimer.
10 2. Redistributions in binary form must reproduce the above copyright
11    notice, this list of conditions and the following disclaimer in the
12    documentation and/or other materials provided with the distribution.
13 3. The name of the author may not be used to endorse or promote products
14    derived from this software without specific prior written permission.
15
16 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 /*! \file    MDD.[h|cpp]
28     \version $Id$
29     \brief   MXF Metadata Dictionary
30 */
31
32 #ifndef _MDD_H_
33 #define _MDD_H_
34
35 //
36 namespace ASDCP {
37     enum MDD_t {
38         MDD_MICAlgorithm_NONE,  // 0
39         MDD_MXFInterop_OPAtom,  // 1
40         MDD_OPAtom,  // 2
41         MDD_OP1a,  // 3
42         MDD_GCMulti,  // 4
43         MDD_PictureDataDef,  // 5
44         MDD_SoundDataDef,  // 6
45         MDD_TimecodeDataDef,  // 7
46         MDD_DescriptiveMetaDataDef,  // 8
47         MDD_WAVWrapping,  // 9
48         MDD_MPEG2_VESWrapping,  // 10
49         MDD_JPEG_2000Wrapping,  // 11
50         MDD_JPEG2000Essence,  // 12
51         MDD_MPEG2Essence,  // 13
52         MDD_MXFInterop_CryptEssence,  // 14
53         MDD_CryptEssence,  // 15
54         MDD_WAVEssence,  // 16
55         MDD_JP2KEssenceCompression,  // 17
56         MDD_CipherAlgorithm_AES,  // 18
57         MDD_MICAlgorithm_HMAC_SHA1,  // 19
58         MDD_KLVFill,  // 20
59         MDD_PartitionMetadata_MajorVersion,  // 21
60         MDD_PartitionMetadata_MinorVersion,  // 22
61         MDD_PartitionMetadata_KAGSize,  // 23
62         MDD_PartitionMetadata_ThisPartition,  // 24
63         MDD_PartitionMetadata_PreviousPartition,  // 25
64         MDD_PartitionMetadata_FooterPartition,  // 26
65         MDD_PartitionMetadata_HeaderByteCount,  // 27
66         MDD_PartitionMetadata_IndexByteCount,  // 28
67         MDD_PartitionMetadata_IndexSID,  // 29
68         MDD_PartitionMetadata_BodyOffset,  // 30
69         MDD_PartitionMetadata_BodySID,  // 31
70         MDD_PartitionMetadata_OperationalPattern,  // 32
71         MDD_PartitionMetadata_EssenceContainers,  // 33
72         MDD_OpenHeader,  // 34
73         MDD_OpenCompleteHeader,  // 35
74         MDD_ClosedHeader,  // 36
75         MDD_ClosedCompleteHeader,  // 37
76         MDD_OpenBodyPartition,  // 38
77         MDD_OpenCompleteBodyPartition,  // 39
78         MDD_ClosedBodyPartition,  // 40
79         MDD_ClosedCompleteBodyPartition,  // 41
80         MDD_Footer,  // 42
81         MDD_CompleteFooter,  // 43
82         MDD_Primer,  // 44
83         MDD_Primer_LocalTagEntryBatch,  // 45
84         MDD_LocalTagEntryBatch_Primer_LocalTag,  // 46
85         MDD_LocalTagEntryBatch_Primer_UID,  // 47
86         MDD_InterchangeObject_InstanceUID,  // 48
87         MDD_GenerationInterchangeObject_GenerationUID,  // 49
88         MDD_DefaultObject,  // 50
89         MDD_IndexTableSegmentBase_IndexEditRate,  // 51
90         MDD_IndexTableSegmentBase_IndexStartPosition,  // 52
91         MDD_IndexTableSegmentBase_IndexDuration,  // 53
92         MDD_IndexTableSegmentBase_EditUnitByteCount,  // 54
93         MDD_IndexTableSegmentBase_IndexSID,  // 55
94         MDD_IndexTableSegmentBase_BodySID,  // 56
95         MDD_IndexTableSegmentBase_SliceCount,  // 57
96         MDD_IndexTableSegmentBase_PosTableCount,  // 58
97         MDD_IndexTableSegment,  // 59
98         MDD_IndexTableSegment_DeltaEntryArray,  // 60
99         MDD_DeltaEntryArray_IndexTableSegment_PosTableIndex,  // 61
100         MDD_DeltaEntryArray_IndexTableSegment_Slice,  // 62
101         MDD_DeltaEntryArray_IndexTableSegment_ElementDelta,  // 63
102         MDD_IndexTableSegment_IndexEntryArray,  // 64
103         MDD_IndexEntryArray_IndexTableSegment_TemporalOffset,  // 65
104         MDD_IndexEntryArray_IndexTableSegment_AnchorOffset,  // 66
105         MDD_IndexEntryArray_IndexTableSegment_Flags,  // 67
106         MDD_IndexEntryArray_IndexTableSegment_StreamOffset,  // 68
107         MDD_IndexEntryArray_IndexTableSegment_SliceOffsetArray,  // 69
108         MDD_IndexEntryArray_IndexTableSegment_PosTableArray,  // 70
109         MDD_RandomIndexMetadata,  // 71
110         MDD_PartitionArray_RandomIndexMetadata_BodySID,  // 72
111         MDD_PartitionArray_RandomIndexMetadata_ByteOffset,  // 73
112         MDD_RandomIndexMetadata_Length,  // 74
113         MDD_RandomIndexMetadataV10,  // 75
114         MDD_Preface,  // 76
115         MDD_Preface_LastModifiedDate,  // 77
116         MDD_Preface_Version,  // 78
117         MDD_Preface_ObjectModelVersion,  // 79
118         MDD_Preface_PrimaryPackage,  // 80
119         MDD_Preface_Identifications,  // 81
120         MDD_Preface_ContentStorage,  // 82
121         MDD_Preface_OperationalPattern,  // 83
122         MDD_Preface_EssenceContainers,  // 84
123         MDD_Preface_DMSchemes,  // 85
124         MDD_Identification,  // 86
125         MDD_Identification_ThisGenerationUID,  // 87
126         MDD_Identification_CompanyName,  // 88
127         MDD_Identification_ProductName,  // 89
128         MDD_Identification_ProductVersion,  // 90
129         MDD_Identification_VersionString,  // 91
130         MDD_Identification_ProductUID,  // 92
131         MDD_Identification_ModificationDate,  // 93
132         MDD_Identification_ToolkitVersion,  // 94
133         MDD_Identification_Platform,  // 95
134         MDD_ContentStorage,  // 96
135         MDD_ContentStorage_Packages,  // 97
136         MDD_ContentStorage_EssenceContainerData,  // 98
137         MDD_ContentStorageKludge_V10Packages,  // 99
138         MDD_EssenceContainerData,  // 100
139         MDD_EssenceContainerData_LinkedPackageUID,  // 101
140         MDD_EssenceContainerData_IndexSID,  // 102
141         MDD_EssenceContainerData_BodySID,  // 103
142         MDD_GenericPackage_PackageUID,  // 104
143         MDD_GenericPackage_Name,  // 105
144         MDD_GenericPackage_PackageCreationDate,  // 106
145         MDD_GenericPackage_PackageModifiedDate,  // 107
146         MDD_GenericPackage_Tracks,  // 108
147         MDD_NetworkLocator,  // 109
148         MDD_NetworkLocator_URLString,  // 110
149         MDD_TextLocator,  // 111
150         MDD_TextLocator_LocatorName,  // 112
151         MDD_GenericTrack_TrackID,  // 113
152         MDD_GenericTrack_TrackNumber,  // 114
153         MDD_GenericTrack_TrackName,  // 115
154         MDD_GenericTrack_Sequence,  // 116
155         MDD_StaticTrack,  // 117
156         MDD_Track,  // 118
157         MDD_Track_EditRate,  // 119
158         MDD_Track_Origin,  // 120
159         MDD_EventTrack,  // 121
160         MDD_EventTrack_EventEditRate,  // 122
161         MDD_EventTrack_EventOrigin,  // 123
162         MDD_StructuralComponent_DataDefinition,  // 124
163         MDD_StructuralComponent_Duration,  // 125
164         MDD_Sequence,  // 126
165         MDD_Sequence_StructuralComponents,  // 127
166         MDD_TimecodeComponent,  // 128
167         MDD_TimecodeComponent_RoundedTimecodeBase,  // 129
168         MDD_TimecodeComponent_StartTimecode,  // 130
169         MDD_TimecodeComponent_DropFrame,  // 131
170         MDD_SourceClip,  // 132
171         MDD_SourceClip_StartPosition,  // 133
172         MDD_SourceClip_SourcePackageID,  // 134
173         MDD_SourceClip_SourceTrackID,  // 135
174         MDD_DMSegment,  // 136
175         MDD_DMSegment_EventStartPosition,  // 137
176         MDD_DMSegment_EventComment,  // 138
177         MDD_DMSegment_TrackIDs,  // 139
178         MDD_DMSegment_DMFramework,  // 140
179         MDD_DMSourceClip,  // 141
180         MDD_DMSourceClip_DMSourceClipTrackIDs,  // 142
181         MDD_MaterialPackage,  // 143
182         MDD_SourcePackage,  // 144
183         MDD_SourcePackage_Descriptor,  // 145
184         MDD_GenericDescriptor_Locators,  // 146
185         MDD_GenericDescriptor_SubDescriptors,  // 147
186         MDD_FileDescriptor,  // 148
187         MDD_FileDescriptor_LinkedTrackID,  // 149
188         MDD_FileDescriptor_SampleRate,  // 150
189         MDD_FileDescriptor_ContainerDuration,  // 151
190         MDD_FileDescriptor_EssenceContainer,  // 152
191         MDD_FileDescriptor_Codec,  // 153
192         MDD_GenericPictureEssenceDescriptor,  // 154
193         MDD_GenericPictureEssenceDescriptor_SignalStandard,  // 155
194         MDD_GenericPictureEssenceDescriptor_FrameLayout,  // 156
195         MDD_GenericPictureEssenceDescriptor_StoredWidth,  // 157
196         MDD_GenericPictureEssenceDescriptor_StoredHeight,  // 158
197         MDD_GenericPictureEssenceDescriptor_StoredF2Offset,  // 159
198         MDD_GenericPictureEssenceDescriptor_SampledWidth,  // 160
199         MDD_GenericPictureEssenceDescriptor_SampledHeight,  // 161
200         MDD_GenericPictureEssenceDescriptor_SampledXOffset,  // 162
201         MDD_GenericPictureEssenceDescriptor_SampledYOffset,  // 163
202         MDD_GenericPictureEssenceDescriptor_DisplayHeight,  // 164
203         MDD_GenericPictureEssenceDescriptor_DisplayWidth,  // 165
204         MDD_GenericPictureEssenceDescriptor_DisplayXOffset,  // 166
205         MDD_GenericPictureEssenceDescriptor_DisplayYOffset,  // 167
206         MDD_GenericPictureEssenceDescriptor_DisplayF2Offset,  // 168
207         MDD_GenericPictureEssenceDescriptor_AspectRatio,  // 169
208         MDD_GenericPictureEssenceDescriptor_ActiveFormatDescriptor,  // 170
209         MDD_GenericPictureEssenceDescriptor_VideoLineMap,  // 171
210         MDD_GenericPictureEssenceDescriptor_AlphaTransparency,  // 172
211         MDD_GenericPictureEssenceDescriptor_Gamma,  // 173
212         MDD_GenericPictureEssenceDescriptor_ImageAlignmentOffset,  // 174
213         MDD_GenericPictureEssenceDescriptor_ImageStartOffset,  // 175
214         MDD_GenericPictureEssenceDescriptor_ImageEndOffset,  // 176
215         MDD_GenericPictureEssenceDescriptor_FieldDominance,  // 177
216         MDD_GenericPictureEssenceDescriptor_PictureEssenceCoding,  // 178
217         MDD_CDCIEssenceDescriptor,  // 179
218         MDD_CDCIEssenceDescriptor_ComponentDepth,  // 180
219         MDD_CDCIEssenceDescriptor_HorizontalSubsampling,  // 181
220         MDD_CDCIEssenceDescriptor_VerticalSubsampling,  // 182
221         MDD_CDCIEssenceDescriptor_ColorSiting,  // 183
222         MDD_CDCIEssenceDescriptor_ReversedByteOrder,  // 184
223         MDD_CDCIEssenceDescriptor_PaddingBits,  // 185
224         MDD_CDCIEssenceDescriptor_AlphaSampleDepth,  // 186
225         MDD_CDCIEssenceDescriptor_BlackRefLevel,  // 187
226         MDD_CDCIEssenceDescriptor_WhiteReflevel,  // 188
227         MDD_CDCIEssenceDescriptor_ColorRange,  // 189
228         MDD_RGBAEssenceDescriptor,  // 190
229         MDD_RGBAEssenceDescriptor_ComponentMaxRef,  // 191
230         MDD_RGBAEssenceDescriptor_ComponentMinRef,  // 192
231         MDD_RGBAEssenceDescriptor_AlphaMaxRef,  // 193
232         MDD_RGBAEssenceDescriptor_AlphaMinRef,  // 194
233         MDD_RGBAEssenceDescriptor_ScanningDirection,  // 195
234         MDD_RGBAEssenceDescriptor_PixelLayout,  // 196
235         MDD_RGBAEssenceDescriptor_Palette,  // 197
236         MDD_RGBAEssenceDescriptor_PaletteLayout,  // 198
237         MDD_GenericSoundEssenceDescriptor,  // 199
238         MDD_GenericSoundEssenceDescriptor_AudioSamplingRate,  // 200
239         MDD_GenericSoundEssenceDescriptor_Locked,  // 201
240         MDD_GenericSoundEssenceDescriptor_AudioRefLevel,  // 202
241         MDD_GenericSoundEssenceDescriptor_ElectroSpatialFormulation,  // 203
242         MDD_GenericSoundEssenceDescriptor_ChannelCount,  // 204
243         MDD_GenericSoundEssenceDescriptor_QuantizationBits,  // 205
244         MDD_GenericSoundEssenceDescriptor_DialNorm,  // 206
245         MDD_GenericSoundEssenceDescriptor_SoundEssenceCompression,  // 207
246         MDD_GenericDataEssenceDescriptor,  // 208
247         MDD_GenericDataEssenceDescriptor_DataEssenceCoding,  // 209
248         MDD_MultipleDescriptor,  // 210
249         MDD_MultipleDescriptor_SubDescriptorUIDs,  // 211
250         MDD_MPEG2VideoDescriptor,  // 212
251         MDD_MPEG2VideoDescriptor_SingleSequence,  // 213
252         MDD_MPEG2VideoDescriptor_ConstantBFrames,  // 214
253         MDD_MPEG2VideoDescriptor_CodedContentType,  // 215
254         MDD_MPEG2VideoDescriptor_LowDelay,  // 216
255         MDD_MPEG2VideoDescriptor_ClosedGOP,  // 217
256         MDD_MPEG2VideoDescriptor_IdenticalGOP,  // 218
257         MDD_MPEG2VideoDescriptor_MaxGOP,  // 219
258         MDD_MPEG2VideoDescriptor_BPictureCount,  // 220
259         MDD_MPEG2VideoDescriptor_BitRate,  // 221
260         MDD_MPEG2VideoDescriptor_ProfileAndLevel,  // 222
261         MDD_WaveAudioDescriptor,  // 223
262         MDD_WaveAudioDescriptor_BlockAlign,  // 224
263         MDD_WaveAudioDescriptor_SequenceOffset,  // 225
264         MDD_WaveAudioDescriptor_AvgBps,  // 226
265         MDD_WaveAudioDescriptor_PeakEnvelope,  // 227
266         MDD_JPEG2000PictureSubDescriptor,  // 228
267         MDD_JPEG2000PictureSubDescriptor_Rsize,  // 229
268         MDD_JPEG2000PictureSubDescriptor_Xsize,  // 230
269         MDD_JPEG2000PictureSubDescriptor_Ysize,  // 231
270         MDD_JPEG2000PictureSubDescriptor_XOsize,  // 232
271         MDD_JPEG2000PictureSubDescriptor_YOsize,  // 233
272         MDD_JPEG2000PictureSubDescriptor_XTsize,  // 234
273         MDD_JPEG2000PictureSubDescriptor_YTsize,  // 235
274         MDD_JPEG2000PictureSubDescriptor_XTOsize,  // 236
275         MDD_JPEG2000PictureSubDescriptor_YTOsize,  // 237
276         MDD_JPEG2000PictureSubDescriptor_Csize,  // 238
277         MDD_JPEG2000PictureSubDescriptor_PictureComponentSizing,  // 239
278         MDD_JPEG2000PictureSubDescriptor_CodingStyleDefault,  // 240
279         MDD_JPEG2000PictureSubDescriptor_QuantizationDefault,  // 241
280         MDD_DM_Framework,  // 242
281         MDD_DM_Set,  // 243
282         MDD_EncryptedContainerLabel,  // 244
283         MDD_CryptographicFrameworkLabel,  // 245
284         MDD_CryptographicFramework,  // 246
285         MDD_CryptographicFramework_ContextSR,  // 247
286         MDD_CryptographicContext,  // 248
287         MDD_CryptographicContext_ContextID,  // 249
288         MDD_CryptographicContext_SourceEssenceContainer,  // 250
289         MDD_CryptographicContext_CipherAlgorithm,  // 251
290         MDD_CryptographicContext_MICAlgorithm,  // 252
291         MDD_CryptographicContext_CryptographicKeyID,  // 253
292     }; // enum MDD_t
293 } // namespaceASDCP
294
295
296 #endif // _MDD_H_
297
298 //
299 // end MDD.h
300 //