added aiff reader
[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_OPAtom,  // 1
40         MDD_OP1a,  // 2
41         MDD_GCMulti,  // 3
42         MDD_PictureDataDef,  // 4
43         MDD_SoundDataDef,  // 5
44         MDD_TimecodeDataDef,  // 6
45         MDD_DescriptiveMetaDataDef,  // 7
46         MDD_WAVWrapping,  // 8
47         MDD_MPEG2_VESWrapping,  // 9
48         MDD_JPEG_2000Wrapping,  // 10
49         MDD_JPEG2000Essence,  // 11
50         MDD_MPEG2Essence,  // 12
51         MDD_CryptEssence,  // 13
52         MDD_WAVEssence,  // 14
53         MDD_JP2KEssenceCompression,  // 15
54         MDD_CipherAlgorithm_AES,  // 16
55         MDD_MICAlgorithm_HMAC_SHA1,  // 17
56         MDD_KLVFill,  // 18
57         MDD_PartitionMetadata_MajorVersion,  // 19
58         MDD_PartitionMetadata_MinorVersion,  // 20
59         MDD_PartitionMetadata_KAGSize,  // 21
60         MDD_PartitionMetadata_ThisPartition,  // 22
61         MDD_PartitionMetadata_PreviousPartition,  // 23
62         MDD_PartitionMetadata_FooterPartition,  // 24
63         MDD_PartitionMetadata_HeaderByteCount,  // 25
64         MDD_PartitionMetadata_IndexByteCount,  // 26
65         MDD_PartitionMetadata_IndexSID,  // 27
66         MDD_PartitionMetadata_BodyOffset,  // 28
67         MDD_PartitionMetadata_BodySID,  // 29
68         MDD_PartitionMetadata_OperationalPattern,  // 30
69         MDD_PartitionMetadata_EssenceContainers,  // 31
70         MDD_OpenHeader,  // 32
71         MDD_OpenCompleteHeader,  // 33
72         MDD_ClosedHeader,  // 34
73         MDD_ClosedCompleteHeader,  // 35
74         MDD_OpenBodyPartition,  // 36
75         MDD_OpenCompleteBodyPartition,  // 37
76         MDD_ClosedBodyPartition,  // 38
77         MDD_ClosedCompleteBodyPartition,  // 39
78         MDD_Footer,  // 40
79         MDD_CompleteFooter,  // 41
80         MDD_Primer,  // 42
81         MDD_Primer_LocalTagEntryBatch,  // 43
82         MDD_LocalTagEntryBatch_Primer_LocalTag,  // 44
83         MDD_LocalTagEntryBatch_Primer_UID,  // 45
84         MDD_InterchangeObject_InstanceUID,  // 46
85         MDD_GenerationInterchangeObject_GenerationUID,  // 47
86         MDD_DefaultObject,  // 48
87         MDD_IndexTableSegmentBase_IndexEditRate,  // 49
88         MDD_IndexTableSegmentBase_IndexStartPosition,  // 50
89         MDD_IndexTableSegmentBase_IndexDuration,  // 51
90         MDD_IndexTableSegmentBase_EditUnitByteCount,  // 52
91         MDD_IndexTableSegmentBase_IndexSID,  // 53
92         MDD_IndexTableSegmentBase_BodySID,  // 54
93         MDD_IndexTableSegmentBase_SliceCount,  // 55
94         MDD_IndexTableSegmentBase_PosTableCount,  // 56
95         MDD_IndexTableSegment,  // 57
96         MDD_IndexTableSegment_DeltaEntryArray,  // 58
97         MDD_DeltaEntryArray_IndexTableSegment_PosTableIndex,  // 59
98         MDD_DeltaEntryArray_IndexTableSegment_Slice,  // 60
99         MDD_DeltaEntryArray_IndexTableSegment_ElementDelta,  // 61
100         MDD_IndexTableSegment_IndexEntryArray,  // 62
101         MDD_IndexEntryArray_IndexTableSegment_TemporalOffset,  // 63
102         MDD_IndexEntryArray_IndexTableSegment_AnchorOffset,  // 64
103         MDD_IndexEntryArray_IndexTableSegment_Flags,  // 65
104         MDD_IndexEntryArray_IndexTableSegment_StreamOffset,  // 66
105         MDD_IndexEntryArray_IndexTableSegment_SliceOffsetArray,  // 67
106         MDD_IndexEntryArray_IndexTableSegment_PosTableArray,  // 68
107         MDD_RandomIndexMetadata,  // 69
108         MDD_PartitionArray_RandomIndexMetadata_BodySID,  // 70
109         MDD_PartitionArray_RandomIndexMetadata_ByteOffset,  // 71
110         MDD_RandomIndexMetadata_Length,  // 72
111         MDD_RandomIndexMetadataV10,  // 73
112         MDD_Preface,  // 74
113         MDD_Preface_LastModifiedDate,  // 75
114         MDD_Preface_Version,  // 76
115         MDD_Preface_ObjectModelVersion,  // 77
116         MDD_Preface_PrimaryPackage,  // 78
117         MDD_Preface_Identifications,  // 79
118         MDD_Preface_ContentStorage,  // 80
119         MDD_Preface_OperationalPattern,  // 81
120         MDD_Preface_EssenceContainers,  // 82
121         MDD_Preface_DMSchemes,  // 83
122         MDD_Identification,  // 84
123         MDD_Identification_ThisGenerationUID,  // 85
124         MDD_Identification_CompanyName,  // 86
125         MDD_Identification_ProductName,  // 87
126         MDD_Identification_ProductVersion,  // 88
127         MDD_Identification_VersionString,  // 89
128         MDD_Identification_ProductUID,  // 90
129         MDD_Identification_ModificationDate,  // 91
130         MDD_Identification_ToolkitVersion,  // 92
131         MDD_Identification_Platform,  // 93
132         MDD_ContentStorage,  // 94
133         MDD_ContentStorage_Packages,  // 95
134         MDD_ContentStorage_EssenceContainerData,  // 96
135         MDD_ContentStorageKludge_V10Packages,  // 97
136         MDD_EssenceContainerData,  // 98
137         MDD_EssenceContainerData_LinkedPackageUID,  // 99
138         MDD_EssenceContainerData_IndexSID,  // 100
139         MDD_EssenceContainerData_BodySID,  // 101
140         MDD_GenericPackage_PackageUID,  // 102
141         MDD_GenericPackage_Name,  // 103
142         MDD_GenericPackage_PackageCreationDate,  // 104
143         MDD_GenericPackage_PackageModifiedDate,  // 105
144         MDD_GenericPackage_Tracks,  // 106
145         MDD_NetworkLocator,  // 107
146         MDD_NetworkLocator_URLString,  // 108
147         MDD_TextLocator,  // 109
148         MDD_TextLocator_LocatorName,  // 110
149         MDD_GenericTrack_TrackID,  // 111
150         MDD_GenericTrack_TrackNumber,  // 112
151         MDD_GenericTrack_TrackName,  // 113
152         MDD_GenericTrack_Sequence,  // 114
153         MDD_StaticTrack,  // 115
154         MDD_Track,  // 116
155         MDD_Track_EditRate,  // 117
156         MDD_Track_Origin,  // 118
157         MDD_EventTrack,  // 119
158         MDD_EventTrack_EventEditRate,  // 120
159         MDD_EventTrack_EventOrigin,  // 121
160         MDD_StructuralComponent_DataDefinition,  // 122
161         MDD_StructuralComponent_Duration,  // 123
162         MDD_Sequence,  // 124
163         MDD_Sequence_StructuralComponents,  // 125
164         MDD_TimecodeComponent,  // 126
165         MDD_TimecodeComponent_RoundedTimecodeBase,  // 127
166         MDD_TimecodeComponent_StartTimecode,  // 128
167         MDD_TimecodeComponent_DropFrame,  // 129
168         MDD_SourceClip,  // 130
169         MDD_SourceClip_StartPosition,  // 131
170         MDD_SourceClip_SourcePackageID,  // 132
171         MDD_SourceClip_SourceTrackID,  // 133
172         MDD_DMSegment,  // 134
173         MDD_DMSegment_EventStartPosition,  // 135
174         MDD_DMSegment_EventComment,  // 136
175         MDD_DMSegment_TrackIDs,  // 137
176         MDD_DMSegment_DMFramework,  // 138
177         MDD_DMSourceClip,  // 139
178         MDD_DMSourceClip_DMSourceClipTrackIDs,  // 140
179         MDD_MaterialPackage,  // 141
180         MDD_SourcePackage,  // 142
181         MDD_SourcePackage_Descriptor,  // 143
182         MDD_GenericDescriptor_Locators,  // 144
183         MDD_GenericDescriptor_SubDescriptors,  // 145
184         MDD_FileDescriptor,  // 146
185         MDD_FileDescriptor_LinkedTrackID,  // 147
186         MDD_FileDescriptor_SampleRate,  // 148
187         MDD_FileDescriptor_ContainerDuration,  // 149
188         MDD_FileDescriptor_EssenceContainer,  // 150
189         MDD_FileDescriptor_Codec,  // 151
190         MDD_GenericPictureEssenceDescriptor,  // 152
191         MDD_GenericPictureEssenceDescriptor_SignalStandard,  // 153
192         MDD_GenericPictureEssenceDescriptor_FrameLayout,  // 154
193         MDD_GenericPictureEssenceDescriptor_StoredWidth,  // 155
194         MDD_GenericPictureEssenceDescriptor_StoredHeight,  // 156
195         MDD_GenericPictureEssenceDescriptor_StoredF2Offset,  // 157
196         MDD_GenericPictureEssenceDescriptor_SampledWidth,  // 158
197         MDD_GenericPictureEssenceDescriptor_SampledHeight,  // 159
198         MDD_GenericPictureEssenceDescriptor_SampledXOffset,  // 160
199         MDD_GenericPictureEssenceDescriptor_SampledYOffset,  // 161
200         MDD_GenericPictureEssenceDescriptor_DisplayHeight,  // 162
201         MDD_GenericPictureEssenceDescriptor_DisplayWidth,  // 163
202         MDD_GenericPictureEssenceDescriptor_DisplayXOffset,  // 164
203         MDD_GenericPictureEssenceDescriptor_DisplayYOffset,  // 165
204         MDD_GenericPictureEssenceDescriptor_DisplayF2Offset,  // 166
205         MDD_GenericPictureEssenceDescriptor_AspectRatio,  // 167
206         MDD_GenericPictureEssenceDescriptor_ActiveFormatDescriptor,  // 168
207         MDD_GenericPictureEssenceDescriptor_VideoLineMap,  // 169
208         MDD_GenericPictureEssenceDescriptor_AlphaTransparency,  // 170
209         MDD_GenericPictureEssenceDescriptor_Gamma,  // 171
210         MDD_GenericPictureEssenceDescriptor_ImageAlignmentOffset,  // 172
211         MDD_GenericPictureEssenceDescriptor_ImageStartOffset,  // 173
212         MDD_GenericPictureEssenceDescriptor_ImageEndOffset,  // 174
213         MDD_GenericPictureEssenceDescriptor_FieldDominance,  // 175
214         MDD_GenericPictureEssenceDescriptor_PictureEssenceCoding,  // 176
215         MDD_CDCIEssenceDescriptor,  // 177
216         MDD_CDCIEssenceDescriptor_ComponentDepth,  // 178
217         MDD_CDCIEssenceDescriptor_HorizontalSubsampling,  // 179
218         MDD_CDCIEssenceDescriptor_VerticalSubsampling,  // 180
219         MDD_CDCIEssenceDescriptor_ColorSiting,  // 181
220         MDD_CDCIEssenceDescriptor_ReversedByteOrder,  // 182
221         MDD_CDCIEssenceDescriptor_PaddingBits,  // 183
222         MDD_CDCIEssenceDescriptor_AlphaSampleDepth,  // 184
223         MDD_CDCIEssenceDescriptor_BlackRefLevel,  // 185
224         MDD_CDCIEssenceDescriptor_WhiteReflevel,  // 186
225         MDD_CDCIEssenceDescriptor_ColorRange,  // 187
226         MDD_RGBAEssenceDescriptor,  // 188
227         MDD_RGBAEssenceDescriptor_ComponentMaxRef,  // 189
228         MDD_RGBAEssenceDescriptor_ComponentMinRef,  // 190
229         MDD_RGBAEssenceDescriptor_AlphaMaxRef,  // 191
230         MDD_RGBAEssenceDescriptor_AlphaMinRef,  // 192
231         MDD_RGBAEssenceDescriptor_ScanningDirection,  // 193
232         MDD_RGBAEssenceDescriptor_PixelLayout,  // 194
233         MDD_RGBAEssenceDescriptor_Palette,  // 195
234         MDD_RGBAEssenceDescriptor_PaletteLayout,  // 196
235         MDD_GenericSoundEssenceDescriptor,  // 197
236         MDD_GenericSoundEssenceDescriptor_AudioSamplingRate,  // 198
237         MDD_GenericSoundEssenceDescriptor_Locked,  // 199
238         MDD_GenericSoundEssenceDescriptor_AudioRefLevel,  // 200
239         MDD_GenericSoundEssenceDescriptor_ElectroSpatialFormulation,  // 201
240         MDD_GenericSoundEssenceDescriptor_ChannelCount,  // 202
241         MDD_GenericSoundEssenceDescriptor_QuantizationBits,  // 203
242         MDD_GenericSoundEssenceDescriptor_DialNorm,  // 204
243         MDD_GenericSoundEssenceDescriptor_SoundEssenceCompression,  // 205
244         MDD_GenericDataEssenceDescriptor,  // 206
245         MDD_GenericDataEssenceDescriptor_DataEssenceCoding,  // 207
246         MDD_MultipleDescriptor,  // 208
247         MDD_MultipleDescriptor_SubDescriptorUIDs,  // 209
248         MDD_MPEG2VideoDescriptor,  // 210
249         MDD_MPEG2VideoDescriptor_SingleSequence,  // 211
250         MDD_MPEG2VideoDescriptor_ConstantBFrames,  // 212
251         MDD_MPEG2VideoDescriptor_CodedContentType,  // 213
252         MDD_MPEG2VideoDescriptor_LowDelay,  // 214
253         MDD_MPEG2VideoDescriptor_ClosedGOP,  // 215
254         MDD_MPEG2VideoDescriptor_IdenticalGOP,  // 216
255         MDD_MPEG2VideoDescriptor_MaxGOP,  // 217
256         MDD_MPEG2VideoDescriptor_BPictureCount,  // 218
257         MDD_MPEG2VideoDescriptor_BitRate,  // 219
258         MDD_MPEG2VideoDescriptor_ProfileAndLevel,  // 220
259         MDD_WaveAudioDescriptor,  // 221
260         MDD_WaveAudioDescriptor_BlockAlign,  // 222
261         MDD_WaveAudioDescriptor_SequenceOffset,  // 223
262         MDD_WaveAudioDescriptor_AvgBps,  // 224
263         MDD_WaveAudioDescriptor_PeakEnvelope,  // 225
264         MDD_JPEG2000PictureSubDescriptor,  // 226
265         MDD_JPEG2000PictureSubDescriptor_Rsize,  // 227
266         MDD_JPEG2000PictureSubDescriptor_Xsize,  // 228
267         MDD_JPEG2000PictureSubDescriptor_Ysize,  // 229
268         MDD_JPEG2000PictureSubDescriptor_XOsize,  // 230
269         MDD_JPEG2000PictureSubDescriptor_YOsize,  // 231
270         MDD_JPEG2000PictureSubDescriptor_XTsize,  // 232
271         MDD_JPEG2000PictureSubDescriptor_YTsize,  // 233
272         MDD_JPEG2000PictureSubDescriptor_XTOsize,  // 234
273         MDD_JPEG2000PictureSubDescriptor_YTOsize,  // 235
274         MDD_JPEG2000PictureSubDescriptor_Csize,  // 236
275         MDD_JPEG2000PictureSubDescriptor_PictureComponentSizing,  // 237
276         MDD_JPEG2000PictureSubDescriptor_CodingStyleDefault,  // 238
277         MDD_JPEG2000PictureSubDescriptor_QuantizationDefault,  // 239
278         MDD_DM_Framework,  // 240
279         MDD_DM_Set,  // 241
280         MDD_EncryptedContainerLabel,  // 242
281         MDD_CryptographicFrameworkLabel,  // 243
282         MDD_CryptographicFramework,  // 244
283         MDD_CryptographicFramework_ContextSR,  // 245
284         MDD_CryptographicContext,  // 246
285         MDD_CryptographicContext_ContextID,  // 247
286         MDD_CryptographicContext_SourceEssenceContainer,  // 248
287         MDD_CryptographicContext_CipherAlgorithm,  // 249
288         MDD_CryptographicContext_MICAlgorithm,  // 250
289         MDD_CryptographicContext_CryptographicKeyID,  // 251
290         MDD_EncryptedTriplet,  // 252
291         MDD_EncryptedTriplet_ContextIDLink,  // 253
292         MDD_EncryptedTriplet_PlaintextOffset,  // 254
293         MDD_EncryptedTriplet_SourceKey,  // 255
294         MDD_EncryptedTriplet_SourceLength,  // 256
295         MDD_EncryptedTriplet_EncryptedSourceValue,  // 257
296         MDD_EncryptedTriplet_TrackFileID,  // 258
297         MDD_EncryptedTriplet_SequenceNumber,  // 259
298         MDD_EncryptedTriplet_MIC,  // 260
299         MDD_CipherAlgorithmAES128CBC,  // 261
300         MDD_HMACAlgorithmSHA1128,  // 262
301     }; // enum MDD_t
302 } // namespaceASDCP
303
304
305 #endif // _MDD_H_
306
307 //
308 // end MDD.h
309 //