@imferno/schema 3.0.2-fix-working-group-resolutions.9aee1e2 → 3.0.2-fix-napi-typescript-types.ddf740f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/index.d.ts +6 -0
- package/index.js +4 -0
- package/package.json +1 -1
- package/schemas/imferno-package.json +3391 -0
- package/schemas/validation-result.json +3842 -0
|
@@ -0,0 +1,3842 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ValidationResult",
|
|
4
|
+
"description": "Result of parsing and validating an IMF package.\n\nThis is the primary return type — contains the full parsed package and all validation findings.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"package",
|
|
8
|
+
"validation"
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"package": {
|
|
12
|
+
"description": "The fully parsed IMF package.",
|
|
13
|
+
"allOf": [
|
|
14
|
+
{
|
|
15
|
+
"$ref": "#/definitions/Imferno"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"validation": {
|
|
20
|
+
"description": "Validation findings (spec violations, warnings, info).",
|
|
21
|
+
"allOf": [
|
|
22
|
+
{
|
|
23
|
+
"$ref": "#/definitions/ValidationReport"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"definitions": {
|
|
29
|
+
"Asset": {
|
|
30
|
+
"description": "A single asset entry in ASSETMAP.xml.",
|
|
31
|
+
"type": "object",
|
|
32
|
+
"required": [
|
|
33
|
+
"chunkList",
|
|
34
|
+
"id"
|
|
35
|
+
],
|
|
36
|
+
"properties": {
|
|
37
|
+
"chunkList": {
|
|
38
|
+
"$ref": "#/definitions/ChunkList"
|
|
39
|
+
},
|
|
40
|
+
"id": {
|
|
41
|
+
"description": "UUID identifying this asset.",
|
|
42
|
+
"allOf": [
|
|
43
|
+
{
|
|
44
|
+
"$ref": "#/definitions/ImfUuid"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"packingList": {
|
|
49
|
+
"description": "Present and `true` when this entry refers to the Packing List file.",
|
|
50
|
+
"type": [
|
|
51
|
+
"boolean",
|
|
52
|
+
"null"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"AssetHash": {
|
|
58
|
+
"description": "A decoded asset hash from a Packing List, per SMPTE ST 2067-2 §9.\n\nPKL files carry base64-encoded SHA-1 or SHA-256 digests for each tracked asset.",
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": [
|
|
61
|
+
"algorithm",
|
|
62
|
+
"bytes"
|
|
63
|
+
],
|
|
64
|
+
"properties": {
|
|
65
|
+
"algorithm": {
|
|
66
|
+
"$ref": "#/definitions/HashAlgorithm"
|
|
67
|
+
},
|
|
68
|
+
"bytes": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"items": {
|
|
71
|
+
"type": "integer",
|
|
72
|
+
"format": "uint8",
|
|
73
|
+
"minimum": 0.0
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"AssetList": {
|
|
79
|
+
"description": "The `<AssetList>` element in ASSETMAP.xml.",
|
|
80
|
+
"type": "object",
|
|
81
|
+
"required": [
|
|
82
|
+
"assets"
|
|
83
|
+
],
|
|
84
|
+
"properties": {
|
|
85
|
+
"assets": {
|
|
86
|
+
"type": "array",
|
|
87
|
+
"items": {
|
|
88
|
+
"$ref": "#/definitions/Asset"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"AssetMap": {
|
|
94
|
+
"description": "ASSETMAP.xml — maps UUIDs to physical file paths (ST 429-9 §6).",
|
|
95
|
+
"type": "object",
|
|
96
|
+
"required": [
|
|
97
|
+
"assetList",
|
|
98
|
+
"id",
|
|
99
|
+
"issueDate",
|
|
100
|
+
"volumeCount"
|
|
101
|
+
],
|
|
102
|
+
"properties": {
|
|
103
|
+
"annotationText": {
|
|
104
|
+
"type": [
|
|
105
|
+
"string",
|
|
106
|
+
"null"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"assetList": {
|
|
110
|
+
"$ref": "#/definitions/AssetList"
|
|
111
|
+
},
|
|
112
|
+
"creator": {
|
|
113
|
+
"type": [
|
|
114
|
+
"string",
|
|
115
|
+
"null"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"id": {
|
|
119
|
+
"description": "Unique identifier for this AssetMap (ST 429-9 §6.2).",
|
|
120
|
+
"allOf": [
|
|
121
|
+
{
|
|
122
|
+
"$ref": "#/definitions/ImfUuid"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"issueDate": {
|
|
127
|
+
"description": "ISO 8601 issue date (e.g. `\"2016-10-06T08:35:02-00:00\"`).",
|
|
128
|
+
"type": "string"
|
|
129
|
+
},
|
|
130
|
+
"issuer": {
|
|
131
|
+
"type": [
|
|
132
|
+
"string",
|
|
133
|
+
"null"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"volumeCount": {
|
|
137
|
+
"type": "integer",
|
|
138
|
+
"format": "uint32",
|
|
139
|
+
"minimum": 0.0
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"AudienceElement": {
|
|
144
|
+
"description": "The `<Audience>` element carries an optional `scope` attribute.",
|
|
145
|
+
"type": "object",
|
|
146
|
+
"properties": {
|
|
147
|
+
"$text": {
|
|
148
|
+
"default": null,
|
|
149
|
+
"type": [
|
|
150
|
+
"string",
|
|
151
|
+
"null"
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"@scope": {
|
|
155
|
+
"default": null,
|
|
156
|
+
"type": [
|
|
157
|
+
"string",
|
|
158
|
+
"null"
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"AudioSubDescriptors": {
|
|
164
|
+
"description": "SubDescriptors for audio (WAVEPCMDescriptor)",
|
|
165
|
+
"type": "object",
|
|
166
|
+
"properties": {
|
|
167
|
+
"SoundfieldGroupLabelSubDescriptor": {
|
|
168
|
+
"default": null,
|
|
169
|
+
"anyOf": [
|
|
170
|
+
{
|
|
171
|
+
"$ref": "#/definitions/SoundfieldGroupLabelSubDescriptor"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"type": "null"
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"CDCIDescriptor": {
|
|
181
|
+
"description": "CDCI video descriptor (YCbCr content)",
|
|
182
|
+
"type": "object",
|
|
183
|
+
"properties": {
|
|
184
|
+
"ActiveHeight": {
|
|
185
|
+
"default": null,
|
|
186
|
+
"type": [
|
|
187
|
+
"integer",
|
|
188
|
+
"null"
|
|
189
|
+
],
|
|
190
|
+
"format": "uint32",
|
|
191
|
+
"minimum": 0.0
|
|
192
|
+
},
|
|
193
|
+
"ActiveWidth": {
|
|
194
|
+
"default": null,
|
|
195
|
+
"type": [
|
|
196
|
+
"integer",
|
|
197
|
+
"null"
|
|
198
|
+
],
|
|
199
|
+
"format": "uint32",
|
|
200
|
+
"minimum": 0.0
|
|
201
|
+
},
|
|
202
|
+
"AlphaSampleDepth": {
|
|
203
|
+
"description": "Table 12: AlphaSampleDepth — shall not be present",
|
|
204
|
+
"default": null,
|
|
205
|
+
"type": [
|
|
206
|
+
"integer",
|
|
207
|
+
"null"
|
|
208
|
+
],
|
|
209
|
+
"format": "uint32",
|
|
210
|
+
"minimum": 0.0
|
|
211
|
+
},
|
|
212
|
+
"AlphaTransparency": {
|
|
213
|
+
"description": "Table 8: AlphaTransparency — shall not be present",
|
|
214
|
+
"default": null,
|
|
215
|
+
"type": [
|
|
216
|
+
"string",
|
|
217
|
+
"null"
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
"BlackRefLevel": {
|
|
221
|
+
"description": "CDCI Descriptor: Black Ref Level (Table 13)",
|
|
222
|
+
"default": null,
|
|
223
|
+
"type": [
|
|
224
|
+
"integer",
|
|
225
|
+
"null"
|
|
226
|
+
],
|
|
227
|
+
"format": "uint32",
|
|
228
|
+
"minimum": 0.0
|
|
229
|
+
},
|
|
230
|
+
"CodingEquations": {
|
|
231
|
+
"default": null,
|
|
232
|
+
"anyOf": [
|
|
233
|
+
{
|
|
234
|
+
"$ref": "#/definitions/CodingEquations"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"type": "null"
|
|
238
|
+
}
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
"ColorPrimaries": {
|
|
242
|
+
"default": null,
|
|
243
|
+
"anyOf": [
|
|
244
|
+
{
|
|
245
|
+
"$ref": "#/definitions/ColorPrimaries"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"type": "null"
|
|
249
|
+
}
|
|
250
|
+
]
|
|
251
|
+
},
|
|
252
|
+
"ColorRange": {
|
|
253
|
+
"description": "CDCI Descriptor: Color Range (Table 13)",
|
|
254
|
+
"default": null,
|
|
255
|
+
"type": [
|
|
256
|
+
"integer",
|
|
257
|
+
"null"
|
|
258
|
+
],
|
|
259
|
+
"format": "uint32",
|
|
260
|
+
"minimum": 0.0
|
|
261
|
+
},
|
|
262
|
+
"ColorSiting": {
|
|
263
|
+
"description": "CDCI Descriptor: Color Siting (Table 12) Shall be 0 (CoSiting) but some encoders write a label string (e.g. \"CoSiting\").",
|
|
264
|
+
"default": null,
|
|
265
|
+
"type": [
|
|
266
|
+
"integer",
|
|
267
|
+
"null"
|
|
268
|
+
],
|
|
269
|
+
"format": "uint32",
|
|
270
|
+
"minimum": 0.0
|
|
271
|
+
},
|
|
272
|
+
"ComponentDepth": {
|
|
273
|
+
"default": null,
|
|
274
|
+
"type": [
|
|
275
|
+
"integer",
|
|
276
|
+
"null"
|
|
277
|
+
],
|
|
278
|
+
"format": "uint32",
|
|
279
|
+
"minimum": 0.0
|
|
280
|
+
},
|
|
281
|
+
"DisplayF2Offset": {
|
|
282
|
+
"description": "Generic Picture Essence Descriptor: DisplayF2Offset",
|
|
283
|
+
"default": null,
|
|
284
|
+
"type": [
|
|
285
|
+
"integer",
|
|
286
|
+
"null"
|
|
287
|
+
],
|
|
288
|
+
"format": "int32"
|
|
289
|
+
},
|
|
290
|
+
"DisplayHeight": {
|
|
291
|
+
"default": null,
|
|
292
|
+
"type": [
|
|
293
|
+
"integer",
|
|
294
|
+
"null"
|
|
295
|
+
],
|
|
296
|
+
"format": "uint32",
|
|
297
|
+
"minimum": 0.0
|
|
298
|
+
},
|
|
299
|
+
"DisplayWidth": {
|
|
300
|
+
"default": null,
|
|
301
|
+
"type": [
|
|
302
|
+
"integer",
|
|
303
|
+
"null"
|
|
304
|
+
],
|
|
305
|
+
"format": "uint32",
|
|
306
|
+
"minimum": 0.0
|
|
307
|
+
},
|
|
308
|
+
"FieldDominance": {
|
|
309
|
+
"description": "Table 8: FieldDominance — shall be present if interlaced, shall not be present if progressive",
|
|
310
|
+
"default": null,
|
|
311
|
+
"type": [
|
|
312
|
+
"integer",
|
|
313
|
+
"null"
|
|
314
|
+
],
|
|
315
|
+
"format": "uint32",
|
|
316
|
+
"minimum": 0.0
|
|
317
|
+
},
|
|
318
|
+
"FrameLayout": {
|
|
319
|
+
"description": "Generic Picture Essence Descriptor: Frame Layout \"FullFrame\" (00h, progressive) or \"SeparateFields\" (01h, interlaced)",
|
|
320
|
+
"default": null,
|
|
321
|
+
"type": [
|
|
322
|
+
"string",
|
|
323
|
+
"null"
|
|
324
|
+
]
|
|
325
|
+
},
|
|
326
|
+
"HorizontalSubsampling": {
|
|
327
|
+
"description": "CDCI Descriptor: Horizontal Subsampling (Table 12) 1 = 4:4:4, 2 = 4:2:2",
|
|
328
|
+
"default": null,
|
|
329
|
+
"type": [
|
|
330
|
+
"integer",
|
|
331
|
+
"null"
|
|
332
|
+
],
|
|
333
|
+
"format": "uint32",
|
|
334
|
+
"minimum": 0.0
|
|
335
|
+
},
|
|
336
|
+
"ImageAlignmentOffset": {
|
|
337
|
+
"description": "Table 8: ImageAlignmentOffset — shall not be present",
|
|
338
|
+
"default": null,
|
|
339
|
+
"type": [
|
|
340
|
+
"integer",
|
|
341
|
+
"null"
|
|
342
|
+
],
|
|
343
|
+
"format": "uint32",
|
|
344
|
+
"minimum": 0.0
|
|
345
|
+
},
|
|
346
|
+
"ImageAspectRatio": {
|
|
347
|
+
"default": null,
|
|
348
|
+
"type": [
|
|
349
|
+
"string",
|
|
350
|
+
"null"
|
|
351
|
+
]
|
|
352
|
+
},
|
|
353
|
+
"ImageEndOffset": {
|
|
354
|
+
"description": "Table 8: ImageEndOffset — shall not be present",
|
|
355
|
+
"default": null,
|
|
356
|
+
"type": [
|
|
357
|
+
"integer",
|
|
358
|
+
"null"
|
|
359
|
+
],
|
|
360
|
+
"format": "uint32",
|
|
361
|
+
"minimum": 0.0
|
|
362
|
+
},
|
|
363
|
+
"ImageStartOffset": {
|
|
364
|
+
"description": "Table 8: ImageStartOffset — shall not be present",
|
|
365
|
+
"default": null,
|
|
366
|
+
"type": [
|
|
367
|
+
"integer",
|
|
368
|
+
"null"
|
|
369
|
+
],
|
|
370
|
+
"format": "uint32",
|
|
371
|
+
"minimum": 0.0
|
|
372
|
+
},
|
|
373
|
+
"InstanceUID": {
|
|
374
|
+
"default": null,
|
|
375
|
+
"type": [
|
|
376
|
+
"string",
|
|
377
|
+
"null"
|
|
378
|
+
]
|
|
379
|
+
},
|
|
380
|
+
"LinkedTrackID": {
|
|
381
|
+
"default": null,
|
|
382
|
+
"type": [
|
|
383
|
+
"integer",
|
|
384
|
+
"null"
|
|
385
|
+
],
|
|
386
|
+
"format": "uint32",
|
|
387
|
+
"minimum": 0.0
|
|
388
|
+
},
|
|
389
|
+
"PaddingBits": {
|
|
390
|
+
"description": "Table 12: PaddingBits — shall not be present",
|
|
391
|
+
"default": null,
|
|
392
|
+
"type": [
|
|
393
|
+
"integer",
|
|
394
|
+
"null"
|
|
395
|
+
],
|
|
396
|
+
"format": "int32"
|
|
397
|
+
},
|
|
398
|
+
"PictureCompression": {
|
|
399
|
+
"default": null,
|
|
400
|
+
"anyOf": [
|
|
401
|
+
{
|
|
402
|
+
"$ref": "#/definitions/VideoCodec"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"type": "null"
|
|
406
|
+
}
|
|
407
|
+
]
|
|
408
|
+
},
|
|
409
|
+
"ReversedByteOrder": {
|
|
410
|
+
"description": "Table 12: ReversedByteOrder — shall not be present",
|
|
411
|
+
"default": null,
|
|
412
|
+
"type": [
|
|
413
|
+
"string",
|
|
414
|
+
"null"
|
|
415
|
+
]
|
|
416
|
+
},
|
|
417
|
+
"SampleRate": {
|
|
418
|
+
"default": null,
|
|
419
|
+
"anyOf": [
|
|
420
|
+
{
|
|
421
|
+
"$ref": "#/definitions/EditRate"
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"type": "null"
|
|
425
|
+
}
|
|
426
|
+
]
|
|
427
|
+
},
|
|
428
|
+
"SampledHeight": {
|
|
429
|
+
"description": "Table 8: SampledHeight — shall not be present or shall be equal to StoredHeight",
|
|
430
|
+
"default": null,
|
|
431
|
+
"type": [
|
|
432
|
+
"integer",
|
|
433
|
+
"null"
|
|
434
|
+
],
|
|
435
|
+
"format": "uint32",
|
|
436
|
+
"minimum": 0.0
|
|
437
|
+
},
|
|
438
|
+
"SampledWidth": {
|
|
439
|
+
"description": "Table 8: SampledWidth — shall not be present or shall be equal to StoredWidth",
|
|
440
|
+
"default": null,
|
|
441
|
+
"type": [
|
|
442
|
+
"integer",
|
|
443
|
+
"null"
|
|
444
|
+
],
|
|
445
|
+
"format": "uint32",
|
|
446
|
+
"minimum": 0.0
|
|
447
|
+
},
|
|
448
|
+
"SampledXOffset": {
|
|
449
|
+
"description": "Table 8: SampledXOffset — shall not be present or shall be 0",
|
|
450
|
+
"default": null,
|
|
451
|
+
"type": [
|
|
452
|
+
"integer",
|
|
453
|
+
"null"
|
|
454
|
+
],
|
|
455
|
+
"format": "uint32",
|
|
456
|
+
"minimum": 0.0
|
|
457
|
+
},
|
|
458
|
+
"SampledYOffset": {
|
|
459
|
+
"description": "Table 8: SampledYOffset — shall not be present or shall be 0",
|
|
460
|
+
"default": null,
|
|
461
|
+
"type": [
|
|
462
|
+
"integer",
|
|
463
|
+
"null"
|
|
464
|
+
],
|
|
465
|
+
"format": "uint32",
|
|
466
|
+
"minimum": 0.0
|
|
467
|
+
},
|
|
468
|
+
"StoredF2Offset": {
|
|
469
|
+
"description": "Table 8: StoredF2Offset — shall not be present",
|
|
470
|
+
"default": null,
|
|
471
|
+
"type": [
|
|
472
|
+
"integer",
|
|
473
|
+
"null"
|
|
474
|
+
],
|
|
475
|
+
"format": "int32"
|
|
476
|
+
},
|
|
477
|
+
"StoredHeight": {
|
|
478
|
+
"default": null,
|
|
479
|
+
"type": [
|
|
480
|
+
"integer",
|
|
481
|
+
"null"
|
|
482
|
+
],
|
|
483
|
+
"format": "uint32",
|
|
484
|
+
"minimum": 0.0
|
|
485
|
+
},
|
|
486
|
+
"StoredWidth": {
|
|
487
|
+
"default": null,
|
|
488
|
+
"type": [
|
|
489
|
+
"integer",
|
|
490
|
+
"null"
|
|
491
|
+
],
|
|
492
|
+
"format": "uint32",
|
|
493
|
+
"minimum": 0.0
|
|
494
|
+
},
|
|
495
|
+
"SubDescriptors": {
|
|
496
|
+
"default": null,
|
|
497
|
+
"anyOf": [
|
|
498
|
+
{
|
|
499
|
+
"$ref": "#/definitions/VideoSubDescriptors"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"type": "null"
|
|
503
|
+
}
|
|
504
|
+
]
|
|
505
|
+
},
|
|
506
|
+
"TransferCharacteristic": {
|
|
507
|
+
"default": null,
|
|
508
|
+
"anyOf": [
|
|
509
|
+
{
|
|
510
|
+
"$ref": "#/definitions/TransferCharacteristic"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"type": "null"
|
|
514
|
+
}
|
|
515
|
+
]
|
|
516
|
+
},
|
|
517
|
+
"VerticalSubsampling": {
|
|
518
|
+
"description": "CDCI Descriptor: Vertical Subsampling (Table 12) Shall be 1",
|
|
519
|
+
"default": null,
|
|
520
|
+
"type": [
|
|
521
|
+
"integer",
|
|
522
|
+
"null"
|
|
523
|
+
],
|
|
524
|
+
"format": "uint32",
|
|
525
|
+
"minimum": 0.0
|
|
526
|
+
},
|
|
527
|
+
"WhiteRefLevel": {
|
|
528
|
+
"description": "CDCI Descriptor: White Ref Level (Table 13)",
|
|
529
|
+
"default": null,
|
|
530
|
+
"type": [
|
|
531
|
+
"integer",
|
|
532
|
+
"null"
|
|
533
|
+
],
|
|
534
|
+
"format": "uint32",
|
|
535
|
+
"minimum": 0.0
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
"Category": {
|
|
540
|
+
"description": "Category of validation issue",
|
|
541
|
+
"oneOf": [
|
|
542
|
+
{
|
|
543
|
+
"description": "XML structure and syntax issues",
|
|
544
|
+
"type": "string",
|
|
545
|
+
"enum": [
|
|
546
|
+
"Structure"
|
|
547
|
+
]
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"description": "SMPTE schema compliance",
|
|
551
|
+
"type": "string",
|
|
552
|
+
"enum": [
|
|
553
|
+
"Schema"
|
|
554
|
+
]
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"description": "UUID and reference resolution",
|
|
558
|
+
"type": "string",
|
|
559
|
+
"enum": [
|
|
560
|
+
"Reference"
|
|
561
|
+
]
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"description": "Asset file availability and integrity",
|
|
565
|
+
"type": "string",
|
|
566
|
+
"enum": [
|
|
567
|
+
"Asset"
|
|
568
|
+
]
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"description": "Timing, frame rate, and duration issues",
|
|
572
|
+
"type": "string",
|
|
573
|
+
"enum": [
|
|
574
|
+
"Timing"
|
|
575
|
+
]
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"description": "Codec-level encoding issues (J2K profiles, JPEG-XS, AAC params, PCM bit depth, etc.). For *container*-level concerns (MXF wrapping, partition layout) use `Container`.",
|
|
579
|
+
"type": "string",
|
|
580
|
+
"enum": [
|
|
581
|
+
"Encoding"
|
|
582
|
+
]
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"description": "MXF / wrapping container constraints — distinct from `Encoding` which covers the codec carried inside the container.",
|
|
586
|
+
"type": "string",
|
|
587
|
+
"enum": [
|
|
588
|
+
"Container"
|
|
589
|
+
]
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"description": "Audio configuration issues",
|
|
593
|
+
"type": "string",
|
|
594
|
+
"enum": [
|
|
595
|
+
"Audio"
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"description": "Video configuration issues",
|
|
600
|
+
"type": "string",
|
|
601
|
+
"enum": [
|
|
602
|
+
"Video"
|
|
603
|
+
]
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"description": "Subtitle and caption issues",
|
|
607
|
+
"type": "string",
|
|
608
|
+
"enum": [
|
|
609
|
+
"Subtitle"
|
|
610
|
+
]
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"description": "Data essence (ISXD, dynamic metadata sidecars, ancillary data tracks). NOT for *metadata about* essence — that's `Metadata`.",
|
|
614
|
+
"type": "string",
|
|
615
|
+
"enum": [
|
|
616
|
+
"Data"
|
|
617
|
+
]
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"description": "Metadata and labeling issues",
|
|
621
|
+
"type": "string",
|
|
622
|
+
"enum": [
|
|
623
|
+
"Metadata"
|
|
624
|
+
]
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"description": "Security and DRM issues",
|
|
628
|
+
"type": "string",
|
|
629
|
+
"enum": [
|
|
630
|
+
"Security"
|
|
631
|
+
]
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"description": "Studio-specific requirements",
|
|
635
|
+
"type": "object",
|
|
636
|
+
"required": [
|
|
637
|
+
"StudioSpecific"
|
|
638
|
+
],
|
|
639
|
+
"properties": {
|
|
640
|
+
"StudioSpecific": {
|
|
641
|
+
"type": "string"
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
"additionalProperties": false
|
|
645
|
+
}
|
|
646
|
+
]
|
|
647
|
+
},
|
|
648
|
+
"Chunk": {
|
|
649
|
+
"description": "A single file path entry in a ChunkList.",
|
|
650
|
+
"type": "object",
|
|
651
|
+
"required": [
|
|
652
|
+
"path",
|
|
653
|
+
"volumeIndex"
|
|
654
|
+
],
|
|
655
|
+
"properties": {
|
|
656
|
+
"path": {
|
|
657
|
+
"description": "File path relative to the IMP root directory.",
|
|
658
|
+
"type": "string"
|
|
659
|
+
},
|
|
660
|
+
"volumeIndex": {
|
|
661
|
+
"type": "integer",
|
|
662
|
+
"format": "uint32",
|
|
663
|
+
"minimum": 0.0
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
},
|
|
667
|
+
"ChunkList": {
|
|
668
|
+
"description": "A list of file chunks for a single asset.",
|
|
669
|
+
"type": "object",
|
|
670
|
+
"required": [
|
|
671
|
+
"chunks"
|
|
672
|
+
],
|
|
673
|
+
"properties": {
|
|
674
|
+
"chunks": {
|
|
675
|
+
"type": "array",
|
|
676
|
+
"items": {
|
|
677
|
+
"$ref": "#/definitions/Chunk"
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
"CodingEquations": {
|
|
683
|
+
"description": "Coding equations SMPTE Universal Label, per ST 2067-21:2023 §7.2.3.\n\nDefines the Y'C'BC'R matrix coefficients. Required for CDCI descriptors; R'G'B' descriptors (COLOR.6) do not use CodingEquations. Byte 8 (registry version) is masked per ST 298M (Architecture Decision 1).",
|
|
684
|
+
"oneOf": [
|
|
685
|
+
{
|
|
686
|
+
"description": "ITU-R BT.601 — COLOR.1/COLOR.2 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.02010000`",
|
|
687
|
+
"type": "string",
|
|
688
|
+
"enum": [
|
|
689
|
+
"Bt601"
|
|
690
|
+
]
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"description": "ITU-R BT.709 — COLOR.3/COLOR.4 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.02020000`",
|
|
694
|
+
"type": "string",
|
|
695
|
+
"enum": [
|
|
696
|
+
"Bt709"
|
|
697
|
+
]
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"description": "ITU-R BT.2020 Non-Constant Luminance (Annex D) — COLOR.5/7/8 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.02060000`",
|
|
701
|
+
"type": "string",
|
|
702
|
+
"enum": [
|
|
703
|
+
"Bt2020Ncl"
|
|
704
|
+
]
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"description": "Unrecognised UL; the original string is preserved.",
|
|
708
|
+
"type": "object",
|
|
709
|
+
"required": [
|
|
710
|
+
"Unknown"
|
|
711
|
+
],
|
|
712
|
+
"properties": {
|
|
713
|
+
"Unknown": {
|
|
714
|
+
"type": "string"
|
|
715
|
+
}
|
|
716
|
+
},
|
|
717
|
+
"additionalProperties": false
|
|
718
|
+
}
|
|
719
|
+
]
|
|
720
|
+
},
|
|
721
|
+
"ColorPrimaries": {
|
|
722
|
+
"description": "Color primaries SMPTE Universal Label, per ST 2067-21:2023 §7.2.4 and SMPTE Registers.\n\nDiscriminating bytes are in positions 13-16 of the UL (last 4 bytes of the 16-byte label), with the common prefix `060e2b34.0401XXXX.04010101.03......`. Byte 8 (the registry version) is masked per ST 298M (Architecture Decision 1).",
|
|
723
|
+
"oneOf": [
|
|
724
|
+
{
|
|
725
|
+
"description": "ITU-R BT.601-7 625-line system — COLOR.1 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.03020000` (byte 8 masked)",
|
|
726
|
+
"type": "string",
|
|
727
|
+
"enum": [
|
|
728
|
+
"Bt601_625"
|
|
729
|
+
]
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"description": "ITU-R BT.601-7 525-line system — COLOR.2 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.03010000` (byte 8 masked)",
|
|
733
|
+
"type": "string",
|
|
734
|
+
"enum": [
|
|
735
|
+
"Bt601_525"
|
|
736
|
+
]
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
"description": "ITU-R BT.709 / SMPTE 274M — COLOR.3/COLOR.4 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.03030000` (byte 8 masked)",
|
|
740
|
+
"type": "string",
|
|
741
|
+
"enum": [
|
|
742
|
+
"Bt709"
|
|
743
|
+
]
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"description": "ITU-R BT.2020 / BT.2100 — COLOR.5/COLOR.7/COLOR.8 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.03040000` (byte 8 masked)",
|
|
747
|
+
"type": "string",
|
|
748
|
+
"enum": [
|
|
749
|
+
"Bt2020"
|
|
750
|
+
]
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"description": "DCI P3 (theatre projection, D60 white point) Canonical UL: `060e2b34.04010100.04010101.03050000` (byte 8 masked)",
|
|
754
|
+
"type": "string",
|
|
755
|
+
"enum": [
|
|
756
|
+
"DciP3"
|
|
757
|
+
]
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
"description": "P3 D65 (display P3, D65 white point) — COLOR.6 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.03060000` (byte 8 masked)",
|
|
761
|
+
"type": "string",
|
|
762
|
+
"enum": [
|
|
763
|
+
"P3D65"
|
|
764
|
+
]
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
"description": "Unrecognised UL; the original string is preserved.",
|
|
768
|
+
"type": "object",
|
|
769
|
+
"required": [
|
|
770
|
+
"Unknown"
|
|
771
|
+
],
|
|
772
|
+
"properties": {
|
|
773
|
+
"Unknown": {
|
|
774
|
+
"type": "string"
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"additionalProperties": false
|
|
778
|
+
}
|
|
779
|
+
]
|
|
780
|
+
},
|
|
781
|
+
"CompositionPlaylist": {
|
|
782
|
+
"description": "Root CPL structure — defines a complete IMF composition.\n\n# Spec-required vs `Option<T>` policy (FIX-7 audit)\n\nThe parser is intentionally lenient: every spec-required element that isn't strictly necessary to **construct** a valid `CompositionPlaylist` is exposed as `Option<T>` (or via a `default = \"…\"` serde attribute). Missing-required-field violations are surfaced as catalogue diagnostics by the validator (`validate_cpl`) rather than as parse errors, so a caller can still inspect the parsed structure of a non-conformant CPL.\n\nField-by-field map against ST 2067-3 §6 / §7 (2013 / 2016 — the 2020 edition reuses the 2016 schema verbatim):\n\n| Field | Type | Spec status | |---------------------------|------------------|-------------------------------------------| | `id` | `ImfUuid` | required §6.1 — parse error if missing | | `annotation` | `Option<…>` | optional §6.2 | | `issue_date` | `String` | required §6.3 — parse error if missing | | `issuer` | `Option<…>` | optional §6.4 | | `creator` | `Option<…>` | optional §6.5 | | `content_originator` | `Option<…>` | optional §6.6 | | `content_title` | `LanguageString` | required §6.7 — parse error if missing | | `content_kind` | concrete (default) | required §6.8 — `default_content_kind` | | `content_version_list` | `Option<…>` | optional §6.10 | | `essence_descriptor_list` | `Option<…>` | **required** per ST 2067-2 §6.1.5 — | | | | parser-lenient; absence is reported by | | | | `validate_cpl` as Error | | `edit_rate` | `Option<…>` | required §6.13 — parser-lenient; absence | | | | reported by `validate_cpl` | | `total_running_time` | `Option<String>` | optional §6.14 | | `locale_list` | `Option<…>` | optional §6.15 | | `extension_properties` | `Option<…>` | optional §6.16 | | `composition_timecode` | `Option<…>` | optional §6.9 | | `segment_list` | `SegmentList` | required §6.17 — parse error if missing | | `has_signer`/`has_signature` | `bool` | reflect presence in raw XML (§8 signatures unparsed) | | `source_xml` | `Option<String>` | retained when parsed from XML; absent for JSON-deserialised |\n\nFive fields are spec-required but stored as `Option<T>` (with `default` on the serde side) to support the parser-lenient model: `content_kind` (defaults via `default_content_kind`), `content_version_list`, `essence_descriptor_list`, `edit_rate`, `locale_list`. The validator surfaces missing-required findings against the ST 2067-3 prose.",
|
|
783
|
+
"type": "object",
|
|
784
|
+
"required": [
|
|
785
|
+
"ContentTitle",
|
|
786
|
+
"Id",
|
|
787
|
+
"IssueDate",
|
|
788
|
+
"SegmentList"
|
|
789
|
+
],
|
|
790
|
+
"properties": {
|
|
791
|
+
"Annotation": {
|
|
792
|
+
"default": null,
|
|
793
|
+
"anyOf": [
|
|
794
|
+
{
|
|
795
|
+
"$ref": "#/definitions/LanguageString"
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"type": "null"
|
|
799
|
+
}
|
|
800
|
+
]
|
|
801
|
+
},
|
|
802
|
+
"CompositionTimecode": {
|
|
803
|
+
"default": null,
|
|
804
|
+
"anyOf": [
|
|
805
|
+
{
|
|
806
|
+
"$ref": "#/definitions/CompositionTimecode"
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"type": "null"
|
|
810
|
+
}
|
|
811
|
+
]
|
|
812
|
+
},
|
|
813
|
+
"ContentKind": {
|
|
814
|
+
"default": "unknown",
|
|
815
|
+
"allOf": [
|
|
816
|
+
{
|
|
817
|
+
"$ref": "#/definitions/ContentKindElement"
|
|
818
|
+
}
|
|
819
|
+
]
|
|
820
|
+
},
|
|
821
|
+
"ContentOriginator": {
|
|
822
|
+
"default": null,
|
|
823
|
+
"anyOf": [
|
|
824
|
+
{
|
|
825
|
+
"$ref": "#/definitions/LanguageString"
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"type": "null"
|
|
829
|
+
}
|
|
830
|
+
]
|
|
831
|
+
},
|
|
832
|
+
"ContentTitle": {
|
|
833
|
+
"$ref": "#/definitions/LanguageString"
|
|
834
|
+
},
|
|
835
|
+
"ContentVersionList": {
|
|
836
|
+
"default": null,
|
|
837
|
+
"anyOf": [
|
|
838
|
+
{
|
|
839
|
+
"$ref": "#/definitions/ContentVersionList"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"type": "null"
|
|
843
|
+
}
|
|
844
|
+
]
|
|
845
|
+
},
|
|
846
|
+
"Creator": {
|
|
847
|
+
"default": null,
|
|
848
|
+
"anyOf": [
|
|
849
|
+
{
|
|
850
|
+
"$ref": "#/definitions/LanguageString"
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"type": "null"
|
|
854
|
+
}
|
|
855
|
+
]
|
|
856
|
+
},
|
|
857
|
+
"EditRate": {
|
|
858
|
+
"default": null,
|
|
859
|
+
"anyOf": [
|
|
860
|
+
{
|
|
861
|
+
"$ref": "#/definitions/EditRate"
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"type": "null"
|
|
865
|
+
}
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
"EssenceDescriptorList": {
|
|
869
|
+
"default": null,
|
|
870
|
+
"anyOf": [
|
|
871
|
+
{
|
|
872
|
+
"$ref": "#/definitions/EssenceDescriptorList"
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
"type": "null"
|
|
876
|
+
}
|
|
877
|
+
]
|
|
878
|
+
},
|
|
879
|
+
"ExtensionProperties": {
|
|
880
|
+
"default": null,
|
|
881
|
+
"anyOf": [
|
|
882
|
+
{
|
|
883
|
+
"$ref": "#/definitions/ExtensionProperties"
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"type": "null"
|
|
887
|
+
}
|
|
888
|
+
]
|
|
889
|
+
},
|
|
890
|
+
"Id": {
|
|
891
|
+
"$ref": "#/definitions/ImfUuid"
|
|
892
|
+
},
|
|
893
|
+
"IssueDate": {
|
|
894
|
+
"type": "string"
|
|
895
|
+
},
|
|
896
|
+
"Issuer": {
|
|
897
|
+
"default": null,
|
|
898
|
+
"anyOf": [
|
|
899
|
+
{
|
|
900
|
+
"$ref": "#/definitions/LanguageString"
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
"type": "null"
|
|
904
|
+
}
|
|
905
|
+
]
|
|
906
|
+
},
|
|
907
|
+
"LocaleList": {
|
|
908
|
+
"default": null,
|
|
909
|
+
"anyOf": [
|
|
910
|
+
{
|
|
911
|
+
"$ref": "#/definitions/LocaleList"
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"type": "null"
|
|
915
|
+
}
|
|
916
|
+
]
|
|
917
|
+
},
|
|
918
|
+
"SegmentList": {
|
|
919
|
+
"$ref": "#/definitions/SegmentList"
|
|
920
|
+
},
|
|
921
|
+
"TotalRunningTime": {
|
|
922
|
+
"default": null,
|
|
923
|
+
"type": [
|
|
924
|
+
"string",
|
|
925
|
+
"null"
|
|
926
|
+
]
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
},
|
|
930
|
+
"CompositionTimecode": {
|
|
931
|
+
"type": "object",
|
|
932
|
+
"properties": {
|
|
933
|
+
"TimecodeDropFrame": {
|
|
934
|
+
"type": [
|
|
935
|
+
"boolean",
|
|
936
|
+
"null"
|
|
937
|
+
]
|
|
938
|
+
},
|
|
939
|
+
"TimecodeRate": {
|
|
940
|
+
"type": [
|
|
941
|
+
"integer",
|
|
942
|
+
"null"
|
|
943
|
+
],
|
|
944
|
+
"format": "uint32",
|
|
945
|
+
"minimum": 0.0
|
|
946
|
+
},
|
|
947
|
+
"TimecodeStartAddress": {
|
|
948
|
+
"type": [
|
|
949
|
+
"string",
|
|
950
|
+
"null"
|
|
951
|
+
]
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
},
|
|
955
|
+
"ContainerConstraintsSubDescriptor": {
|
|
956
|
+
"description": "ContainerConstraintsSubDescriptor — presence required by ST 2067-202 §5",
|
|
957
|
+
"type": "object",
|
|
958
|
+
"properties": {
|
|
959
|
+
"InstanceID": {
|
|
960
|
+
"default": null,
|
|
961
|
+
"type": [
|
|
962
|
+
"string",
|
|
963
|
+
"null"
|
|
964
|
+
]
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
},
|
|
968
|
+
"ContentKindElement": {
|
|
969
|
+
"anyOf": [
|
|
970
|
+
{
|
|
971
|
+
"type": "string"
|
|
972
|
+
},
|
|
973
|
+
{
|
|
974
|
+
"type": "object",
|
|
975
|
+
"required": [
|
|
976
|
+
"$text"
|
|
977
|
+
],
|
|
978
|
+
"properties": {
|
|
979
|
+
"$text": {
|
|
980
|
+
"type": "string"
|
|
981
|
+
},
|
|
982
|
+
"@scope": {
|
|
983
|
+
"type": [
|
|
984
|
+
"string",
|
|
985
|
+
"null"
|
|
986
|
+
]
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
]
|
|
991
|
+
},
|
|
992
|
+
"ContentMaturityRating": {
|
|
993
|
+
"description": "A single content maturity rating entry per ST 2067-3 / ST 2067-21 §5.1.3.",
|
|
994
|
+
"type": "object",
|
|
995
|
+
"required": [
|
|
996
|
+
"Agency"
|
|
997
|
+
],
|
|
998
|
+
"properties": {
|
|
999
|
+
"Agency": {
|
|
1000
|
+
"type": "string"
|
|
1001
|
+
},
|
|
1002
|
+
"Audience": {
|
|
1003
|
+
"default": null,
|
|
1004
|
+
"anyOf": [
|
|
1005
|
+
{
|
|
1006
|
+
"$ref": "#/definitions/AudienceElement"
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"type": "null"
|
|
1010
|
+
}
|
|
1011
|
+
]
|
|
1012
|
+
},
|
|
1013
|
+
"Rating": {
|
|
1014
|
+
"default": null,
|
|
1015
|
+
"type": [
|
|
1016
|
+
"string",
|
|
1017
|
+
"null"
|
|
1018
|
+
]
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
},
|
|
1022
|
+
"ContentMaturityRatingList": {
|
|
1023
|
+
"type": "object",
|
|
1024
|
+
"required": [
|
|
1025
|
+
"ContentMaturityRating"
|
|
1026
|
+
],
|
|
1027
|
+
"properties": {
|
|
1028
|
+
"ContentMaturityRating": {
|
|
1029
|
+
"type": "array",
|
|
1030
|
+
"items": {
|
|
1031
|
+
"$ref": "#/definitions/ContentMaturityRating"
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
"ContentVersion": {
|
|
1037
|
+
"type": "object",
|
|
1038
|
+
"required": [
|
|
1039
|
+
"Id"
|
|
1040
|
+
],
|
|
1041
|
+
"properties": {
|
|
1042
|
+
"Id": {
|
|
1043
|
+
"type": "string"
|
|
1044
|
+
},
|
|
1045
|
+
"LabelText": {
|
|
1046
|
+
"default": null,
|
|
1047
|
+
"anyOf": [
|
|
1048
|
+
{
|
|
1049
|
+
"$ref": "#/definitions/LanguageString"
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
"type": "null"
|
|
1053
|
+
}
|
|
1054
|
+
]
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
"ContentVersionList": {
|
|
1059
|
+
"type": "object",
|
|
1060
|
+
"required": [
|
|
1061
|
+
"ContentVersion"
|
|
1062
|
+
],
|
|
1063
|
+
"properties": {
|
|
1064
|
+
"ContentVersion": {
|
|
1065
|
+
"type": "array",
|
|
1066
|
+
"items": {
|
|
1067
|
+
"$ref": "#/definitions/ContentVersion"
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
},
|
|
1072
|
+
"DCTimedTextDescriptor": {
|
|
1073
|
+
"description": "DC Timed Text descriptor (subtitles/captions)",
|
|
1074
|
+
"type": "object",
|
|
1075
|
+
"properties": {
|
|
1076
|
+
"InstanceID": {
|
|
1077
|
+
"default": null,
|
|
1078
|
+
"type": [
|
|
1079
|
+
"string",
|
|
1080
|
+
"null"
|
|
1081
|
+
]
|
|
1082
|
+
},
|
|
1083
|
+
"LinkedTrackID": {
|
|
1084
|
+
"default": null,
|
|
1085
|
+
"type": [
|
|
1086
|
+
"integer",
|
|
1087
|
+
"null"
|
|
1088
|
+
],
|
|
1089
|
+
"format": "uint32",
|
|
1090
|
+
"minimum": 0.0
|
|
1091
|
+
},
|
|
1092
|
+
"NamespaceURI": {
|
|
1093
|
+
"default": null,
|
|
1094
|
+
"type": [
|
|
1095
|
+
"string",
|
|
1096
|
+
"null"
|
|
1097
|
+
]
|
|
1098
|
+
},
|
|
1099
|
+
"RFC5646LanguageTagList": {
|
|
1100
|
+
"description": "Comma-separated RFC 5646 language tags for this timed text track",
|
|
1101
|
+
"default": [],
|
|
1102
|
+
"type": "array",
|
|
1103
|
+
"items": {
|
|
1104
|
+
"$ref": "#/definitions/LanguageTag"
|
|
1105
|
+
}
|
|
1106
|
+
},
|
|
1107
|
+
"SampleRate": {
|
|
1108
|
+
"default": null,
|
|
1109
|
+
"anyOf": [
|
|
1110
|
+
{
|
|
1111
|
+
"$ref": "#/definitions/EditRate"
|
|
1112
|
+
},
|
|
1113
|
+
{
|
|
1114
|
+
"type": "null"
|
|
1115
|
+
}
|
|
1116
|
+
]
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
},
|
|
1120
|
+
"EditRate": {
|
|
1121
|
+
"description": "A rational frame/sample rate as specified in SMPTE ST 2067-3 §6.\n\nIn XML the value is a space-separated pair: `\"60000 1001\"`. Common values: `24000/1001` (≈23.976), `24/1`, `25/1`, `30/1`, `30000/1001` (≈29.97), `48000/1`, `96000/1`.",
|
|
1122
|
+
"type": "object",
|
|
1123
|
+
"required": [
|
|
1124
|
+
"denominator",
|
|
1125
|
+
"numerator"
|
|
1126
|
+
],
|
|
1127
|
+
"properties": {
|
|
1128
|
+
"denominator": {
|
|
1129
|
+
"type": "integer",
|
|
1130
|
+
"format": "uint32",
|
|
1131
|
+
"minimum": 0.0
|
|
1132
|
+
},
|
|
1133
|
+
"numerator": {
|
|
1134
|
+
"type": "integer",
|
|
1135
|
+
"format": "uint32",
|
|
1136
|
+
"minimum": 0.0
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
},
|
|
1140
|
+
"EssenceDescriptor": {
|
|
1141
|
+
"type": "object",
|
|
1142
|
+
"required": [
|
|
1143
|
+
"Id"
|
|
1144
|
+
],
|
|
1145
|
+
"properties": {
|
|
1146
|
+
"CDCIDescriptor": {
|
|
1147
|
+
"default": null,
|
|
1148
|
+
"anyOf": [
|
|
1149
|
+
{
|
|
1150
|
+
"$ref": "#/definitions/CDCIDescriptor"
|
|
1151
|
+
},
|
|
1152
|
+
{
|
|
1153
|
+
"type": "null"
|
|
1154
|
+
}
|
|
1155
|
+
]
|
|
1156
|
+
},
|
|
1157
|
+
"DCTimedTextDescriptor": {
|
|
1158
|
+
"default": null,
|
|
1159
|
+
"anyOf": [
|
|
1160
|
+
{
|
|
1161
|
+
"$ref": "#/definitions/DCTimedTextDescriptor"
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"type": "null"
|
|
1165
|
+
}
|
|
1166
|
+
]
|
|
1167
|
+
},
|
|
1168
|
+
"IABEssenceDescriptor": {
|
|
1169
|
+
"default": null,
|
|
1170
|
+
"anyOf": [
|
|
1171
|
+
{
|
|
1172
|
+
"$ref": "#/definitions/IABEssenceDescriptor"
|
|
1173
|
+
},
|
|
1174
|
+
{
|
|
1175
|
+
"type": "null"
|
|
1176
|
+
}
|
|
1177
|
+
]
|
|
1178
|
+
},
|
|
1179
|
+
"ISXDDataEssenceDescriptor": {
|
|
1180
|
+
"default": null,
|
|
1181
|
+
"anyOf": [
|
|
1182
|
+
{
|
|
1183
|
+
"$ref": "#/definitions/ISXDDataEssenceDescriptor"
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"type": "null"
|
|
1187
|
+
}
|
|
1188
|
+
]
|
|
1189
|
+
},
|
|
1190
|
+
"Id": {
|
|
1191
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1192
|
+
},
|
|
1193
|
+
"RGBADescriptor": {
|
|
1194
|
+
"default": null,
|
|
1195
|
+
"anyOf": [
|
|
1196
|
+
{
|
|
1197
|
+
"$ref": "#/definitions/RGBADescriptor"
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
"type": "null"
|
|
1201
|
+
}
|
|
1202
|
+
]
|
|
1203
|
+
},
|
|
1204
|
+
"WAVEPCMDescriptor": {
|
|
1205
|
+
"default": null,
|
|
1206
|
+
"anyOf": [
|
|
1207
|
+
{
|
|
1208
|
+
"$ref": "#/definitions/WAVEPCMDescriptor"
|
|
1209
|
+
},
|
|
1210
|
+
{
|
|
1211
|
+
"type": "null"
|
|
1212
|
+
}
|
|
1213
|
+
]
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
},
|
|
1217
|
+
"EssenceDescriptorList": {
|
|
1218
|
+
"type": "object",
|
|
1219
|
+
"required": [
|
|
1220
|
+
"EssenceDescriptor"
|
|
1221
|
+
],
|
|
1222
|
+
"properties": {
|
|
1223
|
+
"EssenceDescriptor": {
|
|
1224
|
+
"type": "array",
|
|
1225
|
+
"items": {
|
|
1226
|
+
"$ref": "#/definitions/EssenceDescriptor"
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
},
|
|
1231
|
+
"ExtensionProperties": {
|
|
1232
|
+
"type": "object",
|
|
1233
|
+
"properties": {
|
|
1234
|
+
"ApplicationIdentification": {
|
|
1235
|
+
"default": null,
|
|
1236
|
+
"type": [
|
|
1237
|
+
"string",
|
|
1238
|
+
"null"
|
|
1239
|
+
]
|
|
1240
|
+
},
|
|
1241
|
+
"MaxCLL": {
|
|
1242
|
+
"default": null,
|
|
1243
|
+
"type": [
|
|
1244
|
+
"integer",
|
|
1245
|
+
"null"
|
|
1246
|
+
],
|
|
1247
|
+
"format": "uint32",
|
|
1248
|
+
"minimum": 0.0
|
|
1249
|
+
},
|
|
1250
|
+
"MaxFALL": {
|
|
1251
|
+
"default": null,
|
|
1252
|
+
"type": [
|
|
1253
|
+
"integer",
|
|
1254
|
+
"null"
|
|
1255
|
+
],
|
|
1256
|
+
"format": "uint32",
|
|
1257
|
+
"minimum": 0.0
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1261
|
+
"ForcedNarrativeSequence": {
|
|
1262
|
+
"type": "object",
|
|
1263
|
+
"required": [
|
|
1264
|
+
"Id",
|
|
1265
|
+
"ResourceList",
|
|
1266
|
+
"TrackId"
|
|
1267
|
+
],
|
|
1268
|
+
"properties": {
|
|
1269
|
+
"Id": {
|
|
1270
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1271
|
+
},
|
|
1272
|
+
"ResourceList": {
|
|
1273
|
+
"$ref": "#/definitions/ResourceList"
|
|
1274
|
+
},
|
|
1275
|
+
"TrackId": {
|
|
1276
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1279
|
+
},
|
|
1280
|
+
"HashAlgorithm": {
|
|
1281
|
+
"description": "The hash algorithm used for a PKL asset digest.\n\nPer SMPTE ST 2067-2:2020 §9, SHA-1 is the default algorithm. SHA-256 is supported via the `<HashAlgorithm>` element using XML Digital Signature algorithm URIs.",
|
|
1282
|
+
"oneOf": [
|
|
1283
|
+
{
|
|
1284
|
+
"description": "SHA-1 (default per ST 2067-2 §9). URI: `http://www.w3.org/2000/09/xmldsig#sha1`",
|
|
1285
|
+
"type": "string",
|
|
1286
|
+
"enum": [
|
|
1287
|
+
"Sha1"
|
|
1288
|
+
]
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
"description": "SHA-256. URI: `http://www.w3.org/2001/04/xmlenc#sha256`",
|
|
1292
|
+
"type": "string",
|
|
1293
|
+
"enum": [
|
|
1294
|
+
"Sha256"
|
|
1295
|
+
]
|
|
1296
|
+
}
|
|
1297
|
+
]
|
|
1298
|
+
},
|
|
1299
|
+
"HearingImpairedCaptionsSequence": {
|
|
1300
|
+
"type": "object",
|
|
1301
|
+
"required": [
|
|
1302
|
+
"Id",
|
|
1303
|
+
"ResourceList",
|
|
1304
|
+
"TrackId"
|
|
1305
|
+
],
|
|
1306
|
+
"properties": {
|
|
1307
|
+
"Id": {
|
|
1308
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1309
|
+
},
|
|
1310
|
+
"ResourceList": {
|
|
1311
|
+
"$ref": "#/definitions/ResourceList"
|
|
1312
|
+
},
|
|
1313
|
+
"TrackId": {
|
|
1314
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
},
|
|
1318
|
+
"IABChannelSubDescriptor": {
|
|
1319
|
+
"description": "Presence-only stub for ST 2067-201:2026 Annex E `IABChannelSubDescriptor`.\n\nThe 2026 spec defines the full item set in Table E.1 (`IABBedMetaID`, `IABChannelID`, `IABAudioDescription`, `IABAudioDescriptionText`); imferno's CPL parser only needs to count occurrences to fire the `IabChannelSubDescriptorRecommended` warning, so the inner shape is intentionally permissive — any nested content deserialises into the catch-all map without affecting presence.",
|
|
1320
|
+
"type": "object",
|
|
1321
|
+
"properties": {
|
|
1322
|
+
"IABBedMetaID": {
|
|
1323
|
+
"description": "Annex E §E.2 — IAB Bed MetaID of the associated BedDefinition.",
|
|
1324
|
+
"default": null,
|
|
1325
|
+
"type": [
|
|
1326
|
+
"integer",
|
|
1327
|
+
"null"
|
|
1328
|
+
],
|
|
1329
|
+
"format": "uint32",
|
|
1330
|
+
"minimum": 0.0
|
|
1331
|
+
},
|
|
1332
|
+
"IABChannelID": {
|
|
1333
|
+
"description": "Annex E §E.2 — Channel ID within the bed.",
|
|
1334
|
+
"default": null,
|
|
1335
|
+
"type": [
|
|
1336
|
+
"integer",
|
|
1337
|
+
"null"
|
|
1338
|
+
],
|
|
1339
|
+
"format": "uint32",
|
|
1340
|
+
"minimum": 0.0
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
},
|
|
1344
|
+
"IABEssenceDescriptor": {
|
|
1345
|
+
"description": "IAB (Immersive Audio Bitstream) essence descriptor — Dolby Atmos",
|
|
1346
|
+
"type": "object",
|
|
1347
|
+
"properties": {
|
|
1348
|
+
"AudioSampleRate": {
|
|
1349
|
+
"default": null,
|
|
1350
|
+
"anyOf": [
|
|
1351
|
+
{
|
|
1352
|
+
"$ref": "#/definitions/EditRate"
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"type": "null"
|
|
1356
|
+
}
|
|
1357
|
+
]
|
|
1358
|
+
},
|
|
1359
|
+
"ChannelCount": {
|
|
1360
|
+
"default": null,
|
|
1361
|
+
"type": [
|
|
1362
|
+
"integer",
|
|
1363
|
+
"null"
|
|
1364
|
+
],
|
|
1365
|
+
"format": "uint32",
|
|
1366
|
+
"minimum": 0.0
|
|
1367
|
+
},
|
|
1368
|
+
"Codec": {
|
|
1369
|
+
"description": "ST 2067-201 §5.9: Codec item shall NOT be present.",
|
|
1370
|
+
"default": null,
|
|
1371
|
+
"type": [
|
|
1372
|
+
"string",
|
|
1373
|
+
"null"
|
|
1374
|
+
]
|
|
1375
|
+
},
|
|
1376
|
+
"ContainerFormat": {
|
|
1377
|
+
"description": "ST 2067-201 §5.3: ContainerFormat shall be the IAB essence container UL.",
|
|
1378
|
+
"default": null,
|
|
1379
|
+
"type": [
|
|
1380
|
+
"string",
|
|
1381
|
+
"null"
|
|
1382
|
+
]
|
|
1383
|
+
},
|
|
1384
|
+
"ElectrospatialFormulation": {
|
|
1385
|
+
"description": "ST 2067-201 §5.9: ElectrospatialFormulation shall NOT be present.",
|
|
1386
|
+
"default": null,
|
|
1387
|
+
"type": [
|
|
1388
|
+
"integer",
|
|
1389
|
+
"null"
|
|
1390
|
+
],
|
|
1391
|
+
"format": "uint32",
|
|
1392
|
+
"minimum": 0.0
|
|
1393
|
+
},
|
|
1394
|
+
"InstanceID": {
|
|
1395
|
+
"default": null,
|
|
1396
|
+
"type": [
|
|
1397
|
+
"string",
|
|
1398
|
+
"null"
|
|
1399
|
+
]
|
|
1400
|
+
},
|
|
1401
|
+
"LinkedTrackID": {
|
|
1402
|
+
"default": null,
|
|
1403
|
+
"type": [
|
|
1404
|
+
"integer",
|
|
1405
|
+
"null"
|
|
1406
|
+
],
|
|
1407
|
+
"format": "uint32",
|
|
1408
|
+
"minimum": 0.0
|
|
1409
|
+
},
|
|
1410
|
+
"QuantizationBits": {
|
|
1411
|
+
"description": "ST 2067-201 §5.9: QuantizationBits shall be 24.",
|
|
1412
|
+
"default": null,
|
|
1413
|
+
"type": [
|
|
1414
|
+
"integer",
|
|
1415
|
+
"null"
|
|
1416
|
+
],
|
|
1417
|
+
"format": "uint32",
|
|
1418
|
+
"minimum": 0.0
|
|
1419
|
+
},
|
|
1420
|
+
"SampleRate": {
|
|
1421
|
+
"default": null,
|
|
1422
|
+
"anyOf": [
|
|
1423
|
+
{
|
|
1424
|
+
"$ref": "#/definitions/EditRate"
|
|
1425
|
+
},
|
|
1426
|
+
{
|
|
1427
|
+
"type": "null"
|
|
1428
|
+
}
|
|
1429
|
+
]
|
|
1430
|
+
},
|
|
1431
|
+
"SoundCompression": {
|
|
1432
|
+
"default": null,
|
|
1433
|
+
"type": [
|
|
1434
|
+
"string",
|
|
1435
|
+
"null"
|
|
1436
|
+
]
|
|
1437
|
+
},
|
|
1438
|
+
"SubDescriptors": {
|
|
1439
|
+
"default": null,
|
|
1440
|
+
"anyOf": [
|
|
1441
|
+
{
|
|
1442
|
+
"$ref": "#/definitions/IABSubDescriptors"
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
"type": "null"
|
|
1446
|
+
}
|
|
1447
|
+
]
|
|
1448
|
+
}
|
|
1449
|
+
}
|
|
1450
|
+
},
|
|
1451
|
+
"IABSequence": {
|
|
1452
|
+
"type": "object",
|
|
1453
|
+
"required": [
|
|
1454
|
+
"Id",
|
|
1455
|
+
"ResourceList",
|
|
1456
|
+
"TrackId"
|
|
1457
|
+
],
|
|
1458
|
+
"properties": {
|
|
1459
|
+
"Id": {
|
|
1460
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1461
|
+
},
|
|
1462
|
+
"ResourceList": {
|
|
1463
|
+
"$ref": "#/definitions/ResourceList"
|
|
1464
|
+
},
|
|
1465
|
+
"TrackId": {
|
|
1466
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
},
|
|
1470
|
+
"IABSoundfieldLabelSubDescriptor": {
|
|
1471
|
+
"description": "IAB soundfield label sub-descriptor — contains language for Atmos tracks",
|
|
1472
|
+
"type": "object",
|
|
1473
|
+
"properties": {
|
|
1474
|
+
"InstanceID": {
|
|
1475
|
+
"default": null,
|
|
1476
|
+
"type": [
|
|
1477
|
+
"string",
|
|
1478
|
+
"null"
|
|
1479
|
+
]
|
|
1480
|
+
},
|
|
1481
|
+
"MCALabelDictionaryID": {
|
|
1482
|
+
"description": "ST 2067-201 §5.9: MCALabelDictionaryID shall be `urn:smpte:ul:060e2b34.0401010d.03020221.00000000`.",
|
|
1483
|
+
"default": null,
|
|
1484
|
+
"type": [
|
|
1485
|
+
"string",
|
|
1486
|
+
"null"
|
|
1487
|
+
]
|
|
1488
|
+
},
|
|
1489
|
+
"MCATagName": {
|
|
1490
|
+
"default": null,
|
|
1491
|
+
"type": [
|
|
1492
|
+
"string",
|
|
1493
|
+
"null"
|
|
1494
|
+
]
|
|
1495
|
+
},
|
|
1496
|
+
"MCATagSymbol": {
|
|
1497
|
+
"default": null,
|
|
1498
|
+
"anyOf": [
|
|
1499
|
+
{
|
|
1500
|
+
"$ref": "#/definitions/McaTagSymbol"
|
|
1501
|
+
},
|
|
1502
|
+
{
|
|
1503
|
+
"type": "null"
|
|
1504
|
+
}
|
|
1505
|
+
]
|
|
1506
|
+
},
|
|
1507
|
+
"RFC5646SpokenLanguage": {
|
|
1508
|
+
"default": null,
|
|
1509
|
+
"anyOf": [
|
|
1510
|
+
{
|
|
1511
|
+
"$ref": "#/definitions/LanguageTag"
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
"type": "null"
|
|
1515
|
+
}
|
|
1516
|
+
]
|
|
1517
|
+
}
|
|
1518
|
+
}
|
|
1519
|
+
},
|
|
1520
|
+
"IABSubDescriptors": {
|
|
1521
|
+
"description": "SubDescriptors for IAB essence",
|
|
1522
|
+
"type": "object",
|
|
1523
|
+
"properties": {
|
|
1524
|
+
"IABChannelSubDescriptor": {
|
|
1525
|
+
"description": "ST 2067-201:2026 Annex E — IAB Channel SubDescriptor entries. Optional in 2021 (and earlier — silently dropped), recommended in 2026 (\"should contain one instance for each channel of each BedDefinition\"). Captured as a raw count via a bag struct so downstream code can probe presence without the parser needing to model every field defined in Annex E Table E.1.",
|
|
1526
|
+
"default": [],
|
|
1527
|
+
"type": "array",
|
|
1528
|
+
"items": {
|
|
1529
|
+
"$ref": "#/definitions/IABChannelSubDescriptor"
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
"IABSoundfieldLabelSubDescriptor": {
|
|
1533
|
+
"default": null,
|
|
1534
|
+
"anyOf": [
|
|
1535
|
+
{
|
|
1536
|
+
"$ref": "#/definitions/IABSoundfieldLabelSubDescriptor"
|
|
1537
|
+
},
|
|
1538
|
+
{
|
|
1539
|
+
"type": "null"
|
|
1540
|
+
}
|
|
1541
|
+
]
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
},
|
|
1545
|
+
"ISXDDataEssenceDescriptor": {
|
|
1546
|
+
"description": "ISXD (Immersive Sound XML Data) essence descriptor — Dolby Atmos sidecar format",
|
|
1547
|
+
"type": "object",
|
|
1548
|
+
"properties": {
|
|
1549
|
+
"DataEssenceCoding": {
|
|
1550
|
+
"default": null,
|
|
1551
|
+
"type": [
|
|
1552
|
+
"string",
|
|
1553
|
+
"null"
|
|
1554
|
+
]
|
|
1555
|
+
},
|
|
1556
|
+
"InstanceID": {
|
|
1557
|
+
"default": null,
|
|
1558
|
+
"type": [
|
|
1559
|
+
"string",
|
|
1560
|
+
"null"
|
|
1561
|
+
]
|
|
1562
|
+
},
|
|
1563
|
+
"LinkedTrackID": {
|
|
1564
|
+
"default": null,
|
|
1565
|
+
"type": [
|
|
1566
|
+
"integer",
|
|
1567
|
+
"null"
|
|
1568
|
+
],
|
|
1569
|
+
"format": "uint32",
|
|
1570
|
+
"minimum": 0.0
|
|
1571
|
+
},
|
|
1572
|
+
"NamespaceURI": {
|
|
1573
|
+
"default": null,
|
|
1574
|
+
"type": [
|
|
1575
|
+
"string",
|
|
1576
|
+
"null"
|
|
1577
|
+
]
|
|
1578
|
+
},
|
|
1579
|
+
"SampleRate": {
|
|
1580
|
+
"default": null,
|
|
1581
|
+
"anyOf": [
|
|
1582
|
+
{
|
|
1583
|
+
"$ref": "#/definitions/EditRate"
|
|
1584
|
+
},
|
|
1585
|
+
{
|
|
1586
|
+
"type": "null"
|
|
1587
|
+
}
|
|
1588
|
+
]
|
|
1589
|
+
},
|
|
1590
|
+
"SubDescriptors": {
|
|
1591
|
+
"default": null,
|
|
1592
|
+
"anyOf": [
|
|
1593
|
+
{
|
|
1594
|
+
"$ref": "#/definitions/IsxdSubDescriptors"
|
|
1595
|
+
},
|
|
1596
|
+
{
|
|
1597
|
+
"type": "null"
|
|
1598
|
+
}
|
|
1599
|
+
]
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
},
|
|
1603
|
+
"ISXDSequence": {
|
|
1604
|
+
"type": "object",
|
|
1605
|
+
"required": [
|
|
1606
|
+
"Id",
|
|
1607
|
+
"ResourceList",
|
|
1608
|
+
"TrackId"
|
|
1609
|
+
],
|
|
1610
|
+
"properties": {
|
|
1611
|
+
"Id": {
|
|
1612
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1613
|
+
},
|
|
1614
|
+
"ResourceList": {
|
|
1615
|
+
"$ref": "#/definitions/ResourceList"
|
|
1616
|
+
},
|
|
1617
|
+
"TrackId": {
|
|
1618
|
+
"$ref": "#/definitions/ImfUuid"
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
},
|
|
1622
|
+
"ImfUuid": {
|
|
1623
|
+
"description": "A SMPTE IMF UUID, serialised as a bare UUID string (e.g. \"0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85\")",
|
|
1624
|
+
"type": "string",
|
|
1625
|
+
"format": "uuid"
|
|
1626
|
+
},
|
|
1627
|
+
"Imferno": {
|
|
1628
|
+
"description": "High-level IMF package representation.\n\nThis is the full parsed package — all CPLs, PKLs, AssetMap, SCMs, and cross-references. Serializable to JSON for WASM/NAPI consumers.",
|
|
1629
|
+
"type": "object",
|
|
1630
|
+
"required": [
|
|
1631
|
+
"assetMap",
|
|
1632
|
+
"assetPaths",
|
|
1633
|
+
"compositionPlaylists",
|
|
1634
|
+
"outputProfileLists",
|
|
1635
|
+
"packingLists",
|
|
1636
|
+
"rootPath",
|
|
1637
|
+
"sidecarCompositionMaps",
|
|
1638
|
+
"volumeIndex"
|
|
1639
|
+
],
|
|
1640
|
+
"properties": {
|
|
1641
|
+
"assetMap": {
|
|
1642
|
+
"description": "Asset map (ASSETMAP.xml)",
|
|
1643
|
+
"allOf": [
|
|
1644
|
+
{
|
|
1645
|
+
"$ref": "#/definitions/AssetMap"
|
|
1646
|
+
}
|
|
1647
|
+
]
|
|
1648
|
+
},
|
|
1649
|
+
"assetPaths": {
|
|
1650
|
+
"description": "Asset UUID to file path mapping",
|
|
1651
|
+
"type": "object",
|
|
1652
|
+
"additionalProperties": {
|
|
1653
|
+
"type": "string"
|
|
1654
|
+
}
|
|
1655
|
+
},
|
|
1656
|
+
"compositionPlaylists": {
|
|
1657
|
+
"description": "Parsed CPL files mapped by UUID",
|
|
1658
|
+
"type": "object",
|
|
1659
|
+
"additionalProperties": {
|
|
1660
|
+
"$ref": "#/definitions/CompositionPlaylist"
|
|
1661
|
+
}
|
|
1662
|
+
},
|
|
1663
|
+
"outputProfileLists": {
|
|
1664
|
+
"description": "Parsed Output Profile Lists mapped by UUID",
|
|
1665
|
+
"type": "object",
|
|
1666
|
+
"additionalProperties": {
|
|
1667
|
+
"$ref": "#/definitions/OutputProfileList"
|
|
1668
|
+
}
|
|
1669
|
+
},
|
|
1670
|
+
"packingLists": {
|
|
1671
|
+
"description": "Parsed Packing Lists mapped by UUID",
|
|
1672
|
+
"type": "object",
|
|
1673
|
+
"additionalProperties": {
|
|
1674
|
+
"$ref": "#/definitions/PackingList"
|
|
1675
|
+
}
|
|
1676
|
+
},
|
|
1677
|
+
"rootPath": {
|
|
1678
|
+
"description": "Package root directory",
|
|
1679
|
+
"type": "string"
|
|
1680
|
+
},
|
|
1681
|
+
"sidecarCompositionMaps": {
|
|
1682
|
+
"description": "Parsed Sidecar Composition Maps mapped by UUID (ST 2067-9:2018)",
|
|
1683
|
+
"type": "object",
|
|
1684
|
+
"additionalProperties": {
|
|
1685
|
+
"$ref": "#/definitions/SidecarCompositionMap"
|
|
1686
|
+
}
|
|
1687
|
+
},
|
|
1688
|
+
"volumeIndex": {
|
|
1689
|
+
"description": "Volume index (VOLINDEX.xml)",
|
|
1690
|
+
"allOf": [
|
|
1691
|
+
{
|
|
1692
|
+
"$ref": "#/definitions/VolumeIndex"
|
|
1693
|
+
}
|
|
1694
|
+
]
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1697
|
+
},
|
|
1698
|
+
"IssueSource": {
|
|
1699
|
+
"description": "Which authority produced a validation finding.\n\nEncodes the \"prose vs XSD\" provenance distinction that SMPTE ST 2067-3 §5.1 calls out (\"the prose document takes precedence on conflict\"), so callers can filter, group, or apply per-source severity overrides without inspecting the code string.\n\nCurrently *inferred* from the code prefix on a `ValidationIssue` (see `ValidationIssue::source`) — no engine code needs to set it explicitly. If inference ever becomes ambiguous (e.g. a non-XSD engine internal rule that wants the `XSD/` prefix for catalogue reasons), we can add a `with_source()` builder without changing the public shape.",
|
|
1700
|
+
"oneOf": [
|
|
1701
|
+
{
|
|
1702
|
+
"description": "Came from the runtime XSD validator (uppsala). Schema-layer: the structural subset of the spec that the XSD DSL can express.",
|
|
1703
|
+
"type": "string",
|
|
1704
|
+
"enum": [
|
|
1705
|
+
"XsdLayer"
|
|
1706
|
+
]
|
|
1707
|
+
},
|
|
1708
|
+
{
|
|
1709
|
+
"description": "Came from a hand-rolled prose-cited rule. Semantic/cross-field/ value-set checks that XSD can't express; the rule's code typically cites a SMPTE prose section (e.g. `ST2067-2:2020:6.4.2`).",
|
|
1710
|
+
"type": "string",
|
|
1711
|
+
"enum": [
|
|
1712
|
+
"ProseRule"
|
|
1713
|
+
]
|
|
1714
|
+
},
|
|
1715
|
+
{
|
|
1716
|
+
"description": "Came from imferno engine internals — parse failures, package structure checks, manifest issues — not directly traceable to a single SMPTE spec section.",
|
|
1717
|
+
"type": "string",
|
|
1718
|
+
"enum": [
|
|
1719
|
+
"EngineInternal"
|
|
1720
|
+
]
|
|
1721
|
+
}
|
|
1722
|
+
]
|
|
1723
|
+
},
|
|
1724
|
+
"IsxdSubDescriptors": {
|
|
1725
|
+
"description": "SubDescriptors for ISXD essence descriptor",
|
|
1726
|
+
"type": "object",
|
|
1727
|
+
"properties": {
|
|
1728
|
+
"ContainerConstraintsSubDescriptor": {
|
|
1729
|
+
"description": "ST 2067-202: ContainerConstraintsSubDescriptor shall be present.",
|
|
1730
|
+
"default": null,
|
|
1731
|
+
"anyOf": [
|
|
1732
|
+
{
|
|
1733
|
+
"$ref": "#/definitions/ContainerConstraintsSubDescriptor"
|
|
1734
|
+
},
|
|
1735
|
+
{
|
|
1736
|
+
"type": "null"
|
|
1737
|
+
}
|
|
1738
|
+
]
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
},
|
|
1742
|
+
"J2CLayout": {
|
|
1743
|
+
"description": "J2CLayout — pixel component layout for JPEG 2000 (§6.5.2)",
|
|
1744
|
+
"type": "object",
|
|
1745
|
+
"properties": {
|
|
1746
|
+
"RGBAComponent": {
|
|
1747
|
+
"default": [],
|
|
1748
|
+
"type": "array",
|
|
1749
|
+
"items": {
|
|
1750
|
+
"$ref": "#/definitions/RGBALayoutComponent"
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
"J2KCcapi": {
|
|
1756
|
+
"description": "`Ccapi` array of `J2KExtendedCapabilities`.",
|
|
1757
|
+
"type": "object",
|
|
1758
|
+
"properties": {
|
|
1759
|
+
"UInt16": {
|
|
1760
|
+
"default": [],
|
|
1761
|
+
"type": "array",
|
|
1762
|
+
"items": {
|
|
1763
|
+
"type": "integer",
|
|
1764
|
+
"format": "uint16",
|
|
1765
|
+
"minimum": 0.0
|
|
1766
|
+
}
|
|
1767
|
+
}
|
|
1768
|
+
}
|
|
1769
|
+
},
|
|
1770
|
+
"J2KComponentSizing": {
|
|
1771
|
+
"description": "Individual J2K component sizing",
|
|
1772
|
+
"type": "object",
|
|
1773
|
+
"properties": {
|
|
1774
|
+
"Ssiz": {
|
|
1775
|
+
"description": "Component bit depth minus 1",
|
|
1776
|
+
"default": null,
|
|
1777
|
+
"type": [
|
|
1778
|
+
"integer",
|
|
1779
|
+
"null"
|
|
1780
|
+
],
|
|
1781
|
+
"format": "uint32",
|
|
1782
|
+
"minimum": 0.0
|
|
1783
|
+
},
|
|
1784
|
+
"XRSiz": {
|
|
1785
|
+
"description": "Horizontal separation of sample",
|
|
1786
|
+
"default": null,
|
|
1787
|
+
"type": [
|
|
1788
|
+
"integer",
|
|
1789
|
+
"null"
|
|
1790
|
+
],
|
|
1791
|
+
"format": "uint32",
|
|
1792
|
+
"minimum": 0.0
|
|
1793
|
+
},
|
|
1794
|
+
"YRSiz": {
|
|
1795
|
+
"description": "Vertical separation of sample",
|
|
1796
|
+
"default": null,
|
|
1797
|
+
"type": [
|
|
1798
|
+
"integer",
|
|
1799
|
+
"null"
|
|
1800
|
+
],
|
|
1801
|
+
"format": "uint32",
|
|
1802
|
+
"minimum": 0.0
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
},
|
|
1806
|
+
"J2KExtendedCapabilities": {
|
|
1807
|
+
"description": "J2K Extended Capabilities (ISO/IEC 15444-15)",
|
|
1808
|
+
"type": "object",
|
|
1809
|
+
"properties": {
|
|
1810
|
+
"Ccapi": {
|
|
1811
|
+
"description": "Codestream capabilities (Ccap^i), one UInt16 per Pcap bit set, in increasing order of i (ISO/IEC 15444-1 CAP marker).",
|
|
1812
|
+
"default": null,
|
|
1813
|
+
"anyOf": [
|
|
1814
|
+
{
|
|
1815
|
+
"$ref": "#/definitions/J2KCcapi"
|
|
1816
|
+
},
|
|
1817
|
+
{
|
|
1818
|
+
"type": "null"
|
|
1819
|
+
}
|
|
1820
|
+
]
|
|
1821
|
+
},
|
|
1822
|
+
"Pcap": {
|
|
1823
|
+
"description": "Profile capabilities (Pcap)",
|
|
1824
|
+
"default": null,
|
|
1825
|
+
"type": [
|
|
1826
|
+
"integer",
|
|
1827
|
+
"null"
|
|
1828
|
+
],
|
|
1829
|
+
"format": "uint64",
|
|
1830
|
+
"minimum": 0.0
|
|
1831
|
+
}
|
|
1832
|
+
}
|
|
1833
|
+
},
|
|
1834
|
+
"JPEG2000SubDescriptor": {
|
|
1835
|
+
"description": "JPEG 2000 Picture Sub Descriptor (ST 422 / ST 2067-21 Table 14)",
|
|
1836
|
+
"type": "object",
|
|
1837
|
+
"properties": {
|
|
1838
|
+
"CodingStyleDefault": {
|
|
1839
|
+
"description": "Table 14: Coding Style — shall be present",
|
|
1840
|
+
"default": null,
|
|
1841
|
+
"type": [
|
|
1842
|
+
"string",
|
|
1843
|
+
"null"
|
|
1844
|
+
]
|
|
1845
|
+
},
|
|
1846
|
+
"Csiz": {
|
|
1847
|
+
"description": "Number of components (Csiz)",
|
|
1848
|
+
"default": null,
|
|
1849
|
+
"type": [
|
|
1850
|
+
"integer",
|
|
1851
|
+
"null"
|
|
1852
|
+
],
|
|
1853
|
+
"format": "uint32",
|
|
1854
|
+
"minimum": 0.0
|
|
1855
|
+
},
|
|
1856
|
+
"InstanceID": {
|
|
1857
|
+
"default": null,
|
|
1858
|
+
"type": [
|
|
1859
|
+
"string",
|
|
1860
|
+
"null"
|
|
1861
|
+
]
|
|
1862
|
+
},
|
|
1863
|
+
"J2CLayout": {
|
|
1864
|
+
"description": "Table 14: J2CLayout — shall be present (§6.5.2)",
|
|
1865
|
+
"default": null,
|
|
1866
|
+
"anyOf": [
|
|
1867
|
+
{
|
|
1868
|
+
"$ref": "#/definitions/J2CLayout"
|
|
1869
|
+
},
|
|
1870
|
+
{
|
|
1871
|
+
"type": "null"
|
|
1872
|
+
}
|
|
1873
|
+
]
|
|
1874
|
+
},
|
|
1875
|
+
"J2KExtendedCapabilities": {
|
|
1876
|
+
"description": "Table 14: J2KExtendedCapabilities — shall be present if ISO/IEC 15444-15 coding",
|
|
1877
|
+
"default": null,
|
|
1878
|
+
"anyOf": [
|
|
1879
|
+
{
|
|
1880
|
+
"$ref": "#/definitions/J2KExtendedCapabilities"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
"type": "null"
|
|
1884
|
+
}
|
|
1885
|
+
]
|
|
1886
|
+
},
|
|
1887
|
+
"PictureComponentSizing": {
|
|
1888
|
+
"description": "Picture component sizing information",
|
|
1889
|
+
"default": null,
|
|
1890
|
+
"anyOf": [
|
|
1891
|
+
{
|
|
1892
|
+
"$ref": "#/definitions/PictureComponentSizing"
|
|
1893
|
+
},
|
|
1894
|
+
{
|
|
1895
|
+
"type": "null"
|
|
1896
|
+
}
|
|
1897
|
+
]
|
|
1898
|
+
},
|
|
1899
|
+
"QuantizationDefault": {
|
|
1900
|
+
"description": "Quantization Default",
|
|
1901
|
+
"default": null,
|
|
1902
|
+
"type": [
|
|
1903
|
+
"string",
|
|
1904
|
+
"null"
|
|
1905
|
+
]
|
|
1906
|
+
},
|
|
1907
|
+
"Rsiz": {
|
|
1908
|
+
"description": "Decoder capabilities (Rsiz)",
|
|
1909
|
+
"default": null,
|
|
1910
|
+
"type": [
|
|
1911
|
+
"integer",
|
|
1912
|
+
"null"
|
|
1913
|
+
],
|
|
1914
|
+
"format": "uint32",
|
|
1915
|
+
"minimum": 0.0
|
|
1916
|
+
},
|
|
1917
|
+
"XOsiz": {
|
|
1918
|
+
"description": "Image X offset (XOsiz)",
|
|
1919
|
+
"default": null,
|
|
1920
|
+
"type": [
|
|
1921
|
+
"integer",
|
|
1922
|
+
"null"
|
|
1923
|
+
],
|
|
1924
|
+
"format": "uint32",
|
|
1925
|
+
"minimum": 0.0
|
|
1926
|
+
},
|
|
1927
|
+
"XTOsiz": {
|
|
1928
|
+
"description": "Tile X offset (XTOsiz)",
|
|
1929
|
+
"default": null,
|
|
1930
|
+
"type": [
|
|
1931
|
+
"integer",
|
|
1932
|
+
"null"
|
|
1933
|
+
],
|
|
1934
|
+
"format": "uint32",
|
|
1935
|
+
"minimum": 0.0
|
|
1936
|
+
},
|
|
1937
|
+
"XTsiz": {
|
|
1938
|
+
"description": "Tile width (XTsiz)",
|
|
1939
|
+
"default": null,
|
|
1940
|
+
"type": [
|
|
1941
|
+
"integer",
|
|
1942
|
+
"null"
|
|
1943
|
+
],
|
|
1944
|
+
"format": "uint32",
|
|
1945
|
+
"minimum": 0.0
|
|
1946
|
+
},
|
|
1947
|
+
"Xsiz": {
|
|
1948
|
+
"description": "Image width (Xsiz)",
|
|
1949
|
+
"default": null,
|
|
1950
|
+
"type": [
|
|
1951
|
+
"integer",
|
|
1952
|
+
"null"
|
|
1953
|
+
],
|
|
1954
|
+
"format": "uint32",
|
|
1955
|
+
"minimum": 0.0
|
|
1956
|
+
},
|
|
1957
|
+
"YOsiz": {
|
|
1958
|
+
"description": "Image Y offset (YOsiz)",
|
|
1959
|
+
"default": null,
|
|
1960
|
+
"type": [
|
|
1961
|
+
"integer",
|
|
1962
|
+
"null"
|
|
1963
|
+
],
|
|
1964
|
+
"format": "uint32",
|
|
1965
|
+
"minimum": 0.0
|
|
1966
|
+
},
|
|
1967
|
+
"YTOsiz": {
|
|
1968
|
+
"description": "Tile Y offset (YTOsiz)",
|
|
1969
|
+
"default": null,
|
|
1970
|
+
"type": [
|
|
1971
|
+
"integer",
|
|
1972
|
+
"null"
|
|
1973
|
+
],
|
|
1974
|
+
"format": "uint32",
|
|
1975
|
+
"minimum": 0.0
|
|
1976
|
+
},
|
|
1977
|
+
"YTsiz": {
|
|
1978
|
+
"description": "Tile height (YTsiz)",
|
|
1979
|
+
"default": null,
|
|
1980
|
+
"type": [
|
|
1981
|
+
"integer",
|
|
1982
|
+
"null"
|
|
1983
|
+
],
|
|
1984
|
+
"format": "uint32",
|
|
1985
|
+
"minimum": 0.0
|
|
1986
|
+
},
|
|
1987
|
+
"Ysiz": {
|
|
1988
|
+
"description": "Image height (Ysiz)",
|
|
1989
|
+
"default": null,
|
|
1990
|
+
"type": [
|
|
1991
|
+
"integer",
|
|
1992
|
+
"null"
|
|
1993
|
+
],
|
|
1994
|
+
"format": "uint32",
|
|
1995
|
+
"minimum": 0.0
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
},
|
|
1999
|
+
"LanguageList": {
|
|
2000
|
+
"type": "object",
|
|
2001
|
+
"required": [
|
|
2002
|
+
"Language"
|
|
2003
|
+
],
|
|
2004
|
+
"properties": {
|
|
2005
|
+
"Language": {
|
|
2006
|
+
"type": "array",
|
|
2007
|
+
"items": {
|
|
2008
|
+
"$ref": "#/definitions/LanguageTag"
|
|
2009
|
+
}
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
},
|
|
2013
|
+
"LanguageString": {
|
|
2014
|
+
"anyOf": [
|
|
2015
|
+
{
|
|
2016
|
+
"type": "string"
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
"type": "object",
|
|
2020
|
+
"required": [
|
|
2021
|
+
"$text"
|
|
2022
|
+
],
|
|
2023
|
+
"properties": {
|
|
2024
|
+
"$text": {
|
|
2025
|
+
"type": "string"
|
|
2026
|
+
},
|
|
2027
|
+
"@language": {
|
|
2028
|
+
"type": [
|
|
2029
|
+
"string",
|
|
2030
|
+
"null"
|
|
2031
|
+
]
|
|
2032
|
+
}
|
|
2033
|
+
}
|
|
2034
|
+
}
|
|
2035
|
+
]
|
|
2036
|
+
},
|
|
2037
|
+
"LanguageTag": {
|
|
2038
|
+
"description": "An RFC 5646 language tag, e.g. `\"en\"`, `\"fr-CA\"`, `\"zh-Hant\"`.\n\nValidation is minimal (non-empty, trimmed). Full BCP 47 validation is out of scope for the parser layer.",
|
|
2039
|
+
"type": "string"
|
|
2040
|
+
},
|
|
2041
|
+
"Locale": {
|
|
2042
|
+
"type": "object",
|
|
2043
|
+
"properties": {
|
|
2044
|
+
"ContentMaturityRatingList": {
|
|
2045
|
+
"default": null,
|
|
2046
|
+
"anyOf": [
|
|
2047
|
+
{
|
|
2048
|
+
"$ref": "#/definitions/ContentMaturityRatingList"
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
"type": "null"
|
|
2052
|
+
}
|
|
2053
|
+
]
|
|
2054
|
+
},
|
|
2055
|
+
"LanguageList": {
|
|
2056
|
+
"default": null,
|
|
2057
|
+
"anyOf": [
|
|
2058
|
+
{
|
|
2059
|
+
"$ref": "#/definitions/LanguageList"
|
|
2060
|
+
},
|
|
2061
|
+
{
|
|
2062
|
+
"type": "null"
|
|
2063
|
+
}
|
|
2064
|
+
]
|
|
2065
|
+
},
|
|
2066
|
+
"RegionList": {
|
|
2067
|
+
"default": null,
|
|
2068
|
+
"anyOf": [
|
|
2069
|
+
{
|
|
2070
|
+
"$ref": "#/definitions/RegionList"
|
|
2071
|
+
},
|
|
2072
|
+
{
|
|
2073
|
+
"type": "null"
|
|
2074
|
+
}
|
|
2075
|
+
]
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
},
|
|
2079
|
+
"LocaleList": {
|
|
2080
|
+
"description": "LocaleList - Content locale information",
|
|
2081
|
+
"type": "object",
|
|
2082
|
+
"properties": {
|
|
2083
|
+
"Locale": {
|
|
2084
|
+
"default": [],
|
|
2085
|
+
"type": "array",
|
|
2086
|
+
"items": {
|
|
2087
|
+
"$ref": "#/definitions/Locale"
|
|
2088
|
+
}
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2091
|
+
},
|
|
2092
|
+
"Location": {
|
|
2093
|
+
"description": "Location where the issue was found",
|
|
2094
|
+
"type": "object",
|
|
2095
|
+
"properties": {
|
|
2096
|
+
"cpl_filename": {
|
|
2097
|
+
"description": "CPL filename if applicable",
|
|
2098
|
+
"type": [
|
|
2099
|
+
"string",
|
|
2100
|
+
"null"
|
|
2101
|
+
]
|
|
2102
|
+
},
|
|
2103
|
+
"cpl_id": {
|
|
2104
|
+
"description": "CPL UUID if applicable",
|
|
2105
|
+
"anyOf": [
|
|
2106
|
+
{
|
|
2107
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
"type": "null"
|
|
2111
|
+
}
|
|
2112
|
+
]
|
|
2113
|
+
},
|
|
2114
|
+
"cpl_title": {
|
|
2115
|
+
"description": "CPL content title if applicable",
|
|
2116
|
+
"type": [
|
|
2117
|
+
"string",
|
|
2118
|
+
"null"
|
|
2119
|
+
]
|
|
2120
|
+
},
|
|
2121
|
+
"file": {
|
|
2122
|
+
"description": "File path if applicable",
|
|
2123
|
+
"type": [
|
|
2124
|
+
"string",
|
|
2125
|
+
"null"
|
|
2126
|
+
]
|
|
2127
|
+
},
|
|
2128
|
+
"line": {
|
|
2129
|
+
"description": "Line number in XML file",
|
|
2130
|
+
"type": [
|
|
2131
|
+
"integer",
|
|
2132
|
+
"null"
|
|
2133
|
+
],
|
|
2134
|
+
"format": "uint",
|
|
2135
|
+
"minimum": 0.0
|
|
2136
|
+
},
|
|
2137
|
+
"path": {
|
|
2138
|
+
"description": "XPath or field path",
|
|
2139
|
+
"type": [
|
|
2140
|
+
"string",
|
|
2141
|
+
"null"
|
|
2142
|
+
]
|
|
2143
|
+
},
|
|
2144
|
+
"resource_id": {
|
|
2145
|
+
"description": "Resource UUID if applicable",
|
|
2146
|
+
"type": [
|
|
2147
|
+
"string",
|
|
2148
|
+
"null"
|
|
2149
|
+
]
|
|
2150
|
+
},
|
|
2151
|
+
"segment": {
|
|
2152
|
+
"description": "Segment index (0-based)",
|
|
2153
|
+
"type": [
|
|
2154
|
+
"integer",
|
|
2155
|
+
"null"
|
|
2156
|
+
],
|
|
2157
|
+
"format": "uint",
|
|
2158
|
+
"minimum": 0.0
|
|
2159
|
+
},
|
|
2160
|
+
"sequence_id": {
|
|
2161
|
+
"description": "Sequence UUID if applicable",
|
|
2162
|
+
"type": [
|
|
2163
|
+
"string",
|
|
2164
|
+
"null"
|
|
2165
|
+
]
|
|
2166
|
+
},
|
|
2167
|
+
"timecode": {
|
|
2168
|
+
"description": "Timecode if applicable",
|
|
2169
|
+
"type": [
|
|
2170
|
+
"string",
|
|
2171
|
+
"null"
|
|
2172
|
+
]
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
},
|
|
2176
|
+
"MainAudioSequence": {
|
|
2177
|
+
"type": "object",
|
|
2178
|
+
"required": [
|
|
2179
|
+
"Id",
|
|
2180
|
+
"ResourceList",
|
|
2181
|
+
"TrackId"
|
|
2182
|
+
],
|
|
2183
|
+
"properties": {
|
|
2184
|
+
"Id": {
|
|
2185
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2186
|
+
},
|
|
2187
|
+
"ResourceList": {
|
|
2188
|
+
"$ref": "#/definitions/ResourceList"
|
|
2189
|
+
},
|
|
2190
|
+
"TrackId": {
|
|
2191
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
},
|
|
2195
|
+
"MainImageSequence": {
|
|
2196
|
+
"type": "object",
|
|
2197
|
+
"required": [
|
|
2198
|
+
"Id",
|
|
2199
|
+
"ResourceList",
|
|
2200
|
+
"TrackId"
|
|
2201
|
+
],
|
|
2202
|
+
"properties": {
|
|
2203
|
+
"Id": {
|
|
2204
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2205
|
+
},
|
|
2206
|
+
"ResourceList": {
|
|
2207
|
+
"$ref": "#/definitions/ResourceList"
|
|
2208
|
+
},
|
|
2209
|
+
"TrackId": {
|
|
2210
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
},
|
|
2214
|
+
"MarkerInfo": {
|
|
2215
|
+
"type": "object",
|
|
2216
|
+
"required": [
|
|
2217
|
+
"Label",
|
|
2218
|
+
"Offset"
|
|
2219
|
+
],
|
|
2220
|
+
"properties": {
|
|
2221
|
+
"Annotation": {
|
|
2222
|
+
"default": null,
|
|
2223
|
+
"type": [
|
|
2224
|
+
"string",
|
|
2225
|
+
"null"
|
|
2226
|
+
]
|
|
2227
|
+
},
|
|
2228
|
+
"Label": {
|
|
2229
|
+
"$ref": "#/definitions/MarkerLabelElement"
|
|
2230
|
+
},
|
|
2231
|
+
"Offset": {
|
|
2232
|
+
"type": "integer",
|
|
2233
|
+
"format": "uint64",
|
|
2234
|
+
"minimum": 0.0
|
|
2235
|
+
}
|
|
2236
|
+
}
|
|
2237
|
+
},
|
|
2238
|
+
"MarkerLabelElement": {
|
|
2239
|
+
"anyOf": [
|
|
2240
|
+
{
|
|
2241
|
+
"type": "string"
|
|
2242
|
+
},
|
|
2243
|
+
{
|
|
2244
|
+
"type": "object",
|
|
2245
|
+
"required": [
|
|
2246
|
+
"$text"
|
|
2247
|
+
],
|
|
2248
|
+
"properties": {
|
|
2249
|
+
"$text": {
|
|
2250
|
+
"type": "string"
|
|
2251
|
+
},
|
|
2252
|
+
"@scope": {
|
|
2253
|
+
"type": [
|
|
2254
|
+
"string",
|
|
2255
|
+
"null"
|
|
2256
|
+
]
|
|
2257
|
+
}
|
|
2258
|
+
}
|
|
2259
|
+
}
|
|
2260
|
+
]
|
|
2261
|
+
},
|
|
2262
|
+
"MarkerSequence": {
|
|
2263
|
+
"type": "object",
|
|
2264
|
+
"required": [
|
|
2265
|
+
"Id",
|
|
2266
|
+
"ResourceList",
|
|
2267
|
+
"TrackId"
|
|
2268
|
+
],
|
|
2269
|
+
"properties": {
|
|
2270
|
+
"Id": {
|
|
2271
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2272
|
+
},
|
|
2273
|
+
"ResourceList": {
|
|
2274
|
+
"$ref": "#/definitions/ResourceList"
|
|
2275
|
+
},
|
|
2276
|
+
"TrackId": {
|
|
2277
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2278
|
+
}
|
|
2279
|
+
}
|
|
2280
|
+
},
|
|
2281
|
+
"McaTagSymbol": {
|
|
2282
|
+
"description": "MCA (Multi-Channel Audio) tag symbol per SMPTE ST 377-4.\n\nUsed in `<MCATagSymbol>` in `SoundfieldGroupLabelSubDescriptor` and `AudioChannelLabelSubDescriptor`.",
|
|
2283
|
+
"oneOf": [
|
|
2284
|
+
{
|
|
2285
|
+
"type": "string",
|
|
2286
|
+
"enum": [
|
|
2287
|
+
"Left",
|
|
2288
|
+
"Right",
|
|
2289
|
+
"Center",
|
|
2290
|
+
"Lfe",
|
|
2291
|
+
"LeftSurround",
|
|
2292
|
+
"RightSurround",
|
|
2293
|
+
"LeftSideSurround",
|
|
2294
|
+
"RightSideSurround",
|
|
2295
|
+
"LeftRearSurround",
|
|
2296
|
+
"RightRearSurround"
|
|
2297
|
+
]
|
|
2298
|
+
},
|
|
2299
|
+
{
|
|
2300
|
+
"description": "5.1 Surround",
|
|
2301
|
+
"type": "string",
|
|
2302
|
+
"enum": [
|
|
2303
|
+
"Sg51"
|
|
2304
|
+
]
|
|
2305
|
+
},
|
|
2306
|
+
{
|
|
2307
|
+
"description": "7.1 Surround",
|
|
2308
|
+
"type": "string",
|
|
2309
|
+
"enum": [
|
|
2310
|
+
"Sg71"
|
|
2311
|
+
]
|
|
2312
|
+
},
|
|
2313
|
+
{
|
|
2314
|
+
"description": "7.1 DS (Dolby Surround)",
|
|
2315
|
+
"type": "string",
|
|
2316
|
+
"enum": [
|
|
2317
|
+
"Sg71Ds"
|
|
2318
|
+
]
|
|
2319
|
+
},
|
|
2320
|
+
{
|
|
2321
|
+
"description": "Stereo / Lt-Rt matrixed",
|
|
2322
|
+
"type": "string",
|
|
2323
|
+
"enum": [
|
|
2324
|
+
"SgSt"
|
|
2325
|
+
]
|
|
2326
|
+
},
|
|
2327
|
+
{
|
|
2328
|
+
"description": "Mono",
|
|
2329
|
+
"type": "string",
|
|
2330
|
+
"enum": [
|
|
2331
|
+
"SgMono"
|
|
2332
|
+
]
|
|
2333
|
+
},
|
|
2334
|
+
{
|
|
2335
|
+
"description": "IAB (Immersive Audio Bitstream / Dolby Atmos)",
|
|
2336
|
+
"type": "string",
|
|
2337
|
+
"enum": [
|
|
2338
|
+
"Iab"
|
|
2339
|
+
]
|
|
2340
|
+
},
|
|
2341
|
+
{
|
|
2342
|
+
"description": "Unrecognised; the original string is preserved.",
|
|
2343
|
+
"type": "object",
|
|
2344
|
+
"required": [
|
|
2345
|
+
"Other"
|
|
2346
|
+
],
|
|
2347
|
+
"properties": {
|
|
2348
|
+
"Other": {
|
|
2349
|
+
"type": "string"
|
|
2350
|
+
}
|
|
2351
|
+
},
|
|
2352
|
+
"additionalProperties": false
|
|
2353
|
+
}
|
|
2354
|
+
]
|
|
2355
|
+
},
|
|
2356
|
+
"MimeType": {
|
|
2357
|
+
"description": "MIME type as used in `<Type>` elements in PKL assets (SMPTE ST 2067-2 §9).",
|
|
2358
|
+
"oneOf": [
|
|
2359
|
+
{
|
|
2360
|
+
"description": "`text/xml` — CPL and other XML documents",
|
|
2361
|
+
"type": "string",
|
|
2362
|
+
"enum": [
|
|
2363
|
+
"TextXml"
|
|
2364
|
+
]
|
|
2365
|
+
},
|
|
2366
|
+
{
|
|
2367
|
+
"description": "`application/xml` — alternative XML MIME type",
|
|
2368
|
+
"type": "string",
|
|
2369
|
+
"enum": [
|
|
2370
|
+
"ApplicationXml"
|
|
2371
|
+
]
|
|
2372
|
+
},
|
|
2373
|
+
{
|
|
2374
|
+
"description": "`application/mxf` — MXF essence files",
|
|
2375
|
+
"type": "string",
|
|
2376
|
+
"enum": [
|
|
2377
|
+
"ApplicationMxf"
|
|
2378
|
+
]
|
|
2379
|
+
},
|
|
2380
|
+
{
|
|
2381
|
+
"description": "Unrecognised; the original string is preserved.",
|
|
2382
|
+
"type": "object",
|
|
2383
|
+
"required": [
|
|
2384
|
+
"Other"
|
|
2385
|
+
],
|
|
2386
|
+
"properties": {
|
|
2387
|
+
"Other": {
|
|
2388
|
+
"type": "string"
|
|
2389
|
+
}
|
|
2390
|
+
},
|
|
2391
|
+
"additionalProperties": false
|
|
2392
|
+
}
|
|
2393
|
+
]
|
|
2394
|
+
},
|
|
2395
|
+
"OplMacro": {
|
|
2396
|
+
"description": "A single macro entry from an OPL `<MacroList>`.\n\nCaptures the polymorphic `xsi:type` attribute plus the common `Name` / `Annotation` fields from the abstract `MacroType`. All other children of the macro are stored as `(local_name, text)` pairs in [`Self::extra_fields`] so that vendor-specific extensions remain accessible without the parser knowing each subtype.",
|
|
2397
|
+
"type": "object",
|
|
2398
|
+
"required": [
|
|
2399
|
+
"extraFields",
|
|
2400
|
+
"name"
|
|
2401
|
+
],
|
|
2402
|
+
"properties": {
|
|
2403
|
+
"annotation": {
|
|
2404
|
+
"description": "`MacroType.Annotation` (optional, §6.5.2).",
|
|
2405
|
+
"type": [
|
|
2406
|
+
"string",
|
|
2407
|
+
"null"
|
|
2408
|
+
]
|
|
2409
|
+
},
|
|
2410
|
+
"extraFields": {
|
|
2411
|
+
"description": "Every other direct-child element of the `<Macro>` element, as `(local_name, text_body)`. Element nesting deeper than one level is flattened into the outermost name with the joined text body — callers that need structured access to nested macro extensions should re-parse the OPL with a richer model.",
|
|
2412
|
+
"type": "array",
|
|
2413
|
+
"items": {
|
|
2414
|
+
"type": "array",
|
|
2415
|
+
"items": [
|
|
2416
|
+
{
|
|
2417
|
+
"type": "string"
|
|
2418
|
+
},
|
|
2419
|
+
{
|
|
2420
|
+
"type": "string"
|
|
2421
|
+
}
|
|
2422
|
+
],
|
|
2423
|
+
"maxItems": 2,
|
|
2424
|
+
"minItems": 2
|
|
2425
|
+
}
|
|
2426
|
+
},
|
|
2427
|
+
"name": {
|
|
2428
|
+
"description": "`MacroType.Name` per ST 2067-100 §6.5.1; required by the XSD.",
|
|
2429
|
+
"type": "string"
|
|
2430
|
+
},
|
|
2431
|
+
"xsiType": {
|
|
2432
|
+
"description": "Value of the `xsi:type` attribute, e.g. `\"opl:PresetMacroType\"`. `None` when the writer omitted the attribute (non-conformant, but we don't reject — the validator can flag it).",
|
|
2433
|
+
"type": [
|
|
2434
|
+
"string",
|
|
2435
|
+
"null"
|
|
2436
|
+
]
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2439
|
+
},
|
|
2440
|
+
"OutputProfileList": {
|
|
2441
|
+
"description": "OPL XML — Output Profile List (SMPTE ST 2067-100).\n\nDefines output processing instructions for a composition: image scaling, cropping, pixel encoding, and audio routing/mixing macros.\n\n`macros` carries every `<Macro xsi:type=\"...\">` entry from the `<MacroList>`. The list is structurally extracted via a small `quick_xml` walker rather than serde because the XSD uses `xsi:type` polymorphism with vendor-specific extension namespaces (`opl:PresetMacroType`, `arm:AudioRoutingMixingMacroType`, etc.). Type-specific payload fields land in [`OplMacro::extra_fields`] as `(local_name, text)` pairs so the parser doesn't have to know every macro subtype to round-trip the list.",
|
|
2442
|
+
"type": "object",
|
|
2443
|
+
"required": [
|
|
2444
|
+
"compositionPlaylistId",
|
|
2445
|
+
"id",
|
|
2446
|
+
"issueDate"
|
|
2447
|
+
],
|
|
2448
|
+
"properties": {
|
|
2449
|
+
"annotation": {
|
|
2450
|
+
"type": [
|
|
2451
|
+
"string",
|
|
2452
|
+
"null"
|
|
2453
|
+
]
|
|
2454
|
+
},
|
|
2455
|
+
"compositionPlaylistId": {
|
|
2456
|
+
"description": "The CPL that this OPL targets.",
|
|
2457
|
+
"allOf": [
|
|
2458
|
+
{
|
|
2459
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2460
|
+
}
|
|
2461
|
+
]
|
|
2462
|
+
},
|
|
2463
|
+
"creator": {
|
|
2464
|
+
"type": [
|
|
2465
|
+
"string",
|
|
2466
|
+
"null"
|
|
2467
|
+
]
|
|
2468
|
+
},
|
|
2469
|
+
"id": {
|
|
2470
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2471
|
+
},
|
|
2472
|
+
"issueDate": {
|
|
2473
|
+
"description": "ISO 8601 issue date.",
|
|
2474
|
+
"type": "string"
|
|
2475
|
+
},
|
|
2476
|
+
"issuer": {
|
|
2477
|
+
"type": [
|
|
2478
|
+
"string",
|
|
2479
|
+
"null"
|
|
2480
|
+
]
|
|
2481
|
+
},
|
|
2482
|
+
"macros": {
|
|
2483
|
+
"description": "Each `<Macro xsi:type=\"...\">` entry from the `<MacroList>`. Empty when the OPL has no macros (or has `<MacroList/>`).",
|
|
2484
|
+
"default": [],
|
|
2485
|
+
"type": "array",
|
|
2486
|
+
"items": {
|
|
2487
|
+
"$ref": "#/definitions/OplMacro"
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
}
|
|
2491
|
+
},
|
|
2492
|
+
"PHDRMetadataTrackSubDescriptor": {
|
|
2493
|
+
"description": "PHDR (Dolby Vision) metadata track sub-descriptor",
|
|
2494
|
+
"type": "object",
|
|
2495
|
+
"properties": {
|
|
2496
|
+
"InstanceID": {
|
|
2497
|
+
"default": null,
|
|
2498
|
+
"type": [
|
|
2499
|
+
"string",
|
|
2500
|
+
"null"
|
|
2501
|
+
]
|
|
2502
|
+
},
|
|
2503
|
+
"PHDRMetadataTrackSubDescriptor_DataDefinition": {
|
|
2504
|
+
"default": null,
|
|
2505
|
+
"type": [
|
|
2506
|
+
"string",
|
|
2507
|
+
"null"
|
|
2508
|
+
]
|
|
2509
|
+
},
|
|
2510
|
+
"PHDRMetadataTrackSubDescriptor_SimplePayloadSID": {
|
|
2511
|
+
"default": null,
|
|
2512
|
+
"type": [
|
|
2513
|
+
"integer",
|
|
2514
|
+
"null"
|
|
2515
|
+
],
|
|
2516
|
+
"format": "uint32",
|
|
2517
|
+
"minimum": 0.0
|
|
2518
|
+
},
|
|
2519
|
+
"PHDRMetadataTrackSubDescriptor_SourceTrackID": {
|
|
2520
|
+
"default": null,
|
|
2521
|
+
"type": [
|
|
2522
|
+
"integer",
|
|
2523
|
+
"null"
|
|
2524
|
+
],
|
|
2525
|
+
"format": "uint32",
|
|
2526
|
+
"minimum": 0.0
|
|
2527
|
+
}
|
|
2528
|
+
}
|
|
2529
|
+
},
|
|
2530
|
+
"PackingList": {
|
|
2531
|
+
"description": "PKL XML — Packing List (SMPTE ST 2067-2 §9).\n\nAssets carry SHA-1 (default) or SHA-256 checksums. The algorithm is determined by the optional `<HashAlgorithm>` element on each asset.",
|
|
2532
|
+
"type": "object",
|
|
2533
|
+
"required": [
|
|
2534
|
+
"assetList",
|
|
2535
|
+
"id",
|
|
2536
|
+
"issueDate"
|
|
2537
|
+
],
|
|
2538
|
+
"properties": {
|
|
2539
|
+
"annotationText": {
|
|
2540
|
+
"type": [
|
|
2541
|
+
"string",
|
|
2542
|
+
"null"
|
|
2543
|
+
]
|
|
2544
|
+
},
|
|
2545
|
+
"assetList": {
|
|
2546
|
+
"$ref": "#/definitions/PklAssetList"
|
|
2547
|
+
},
|
|
2548
|
+
"creator": {
|
|
2549
|
+
"type": [
|
|
2550
|
+
"string",
|
|
2551
|
+
"null"
|
|
2552
|
+
]
|
|
2553
|
+
},
|
|
2554
|
+
"groupId": {
|
|
2555
|
+
"description": "Optional group identifier for partial deliveries (SMPTE ST 2067-2 §9).",
|
|
2556
|
+
"anyOf": [
|
|
2557
|
+
{
|
|
2558
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2559
|
+
},
|
|
2560
|
+
{
|
|
2561
|
+
"type": "null"
|
|
2562
|
+
}
|
|
2563
|
+
]
|
|
2564
|
+
},
|
|
2565
|
+
"id": {
|
|
2566
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2567
|
+
},
|
|
2568
|
+
"issueDate": {
|
|
2569
|
+
"description": "ISO 8601 issue date.",
|
|
2570
|
+
"type": "string"
|
|
2571
|
+
},
|
|
2572
|
+
"issuer": {
|
|
2573
|
+
"type": [
|
|
2574
|
+
"string",
|
|
2575
|
+
"null"
|
|
2576
|
+
]
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
},
|
|
2580
|
+
"PictureComponentSizing": {
|
|
2581
|
+
"description": "Picture component sizing information",
|
|
2582
|
+
"type": "object",
|
|
2583
|
+
"properties": {
|
|
2584
|
+
"J2KComponentSizing": {
|
|
2585
|
+
"default": [],
|
|
2586
|
+
"type": "array",
|
|
2587
|
+
"items": {
|
|
2588
|
+
"$ref": "#/definitions/J2KComponentSizing"
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
}
|
|
2592
|
+
},
|
|
2593
|
+
"PklAsset": {
|
|
2594
|
+
"description": "A single asset entry in a PKL.",
|
|
2595
|
+
"type": "object",
|
|
2596
|
+
"required": [
|
|
2597
|
+
"hash",
|
|
2598
|
+
"id",
|
|
2599
|
+
"mimeType",
|
|
2600
|
+
"size"
|
|
2601
|
+
],
|
|
2602
|
+
"properties": {
|
|
2603
|
+
"annotationText": {
|
|
2604
|
+
"type": [
|
|
2605
|
+
"string",
|
|
2606
|
+
"null"
|
|
2607
|
+
]
|
|
2608
|
+
},
|
|
2609
|
+
"hash": {
|
|
2610
|
+
"description": "SHA-1 digest decoded from the base64 `<Hash>` element (SMPTE ST 2067-2 §9.3).",
|
|
2611
|
+
"allOf": [
|
|
2612
|
+
{
|
|
2613
|
+
"$ref": "#/definitions/AssetHash"
|
|
2614
|
+
}
|
|
2615
|
+
]
|
|
2616
|
+
},
|
|
2617
|
+
"id": {
|
|
2618
|
+
"$ref": "#/definitions/ImfUuid"
|
|
2619
|
+
},
|
|
2620
|
+
"mimeType": {
|
|
2621
|
+
"description": "MIME type of the asset file (SMPTE ST 2067-2 §9.4).",
|
|
2622
|
+
"allOf": [
|
|
2623
|
+
{
|
|
2624
|
+
"$ref": "#/definitions/MimeType"
|
|
2625
|
+
}
|
|
2626
|
+
]
|
|
2627
|
+
},
|
|
2628
|
+
"originalFileName": {
|
|
2629
|
+
"type": [
|
|
2630
|
+
"string",
|
|
2631
|
+
"null"
|
|
2632
|
+
]
|
|
2633
|
+
},
|
|
2634
|
+
"size": {
|
|
2635
|
+
"description": "File size in bytes.",
|
|
2636
|
+
"type": "integer",
|
|
2637
|
+
"format": "uint64",
|
|
2638
|
+
"minimum": 0.0
|
|
2639
|
+
}
|
|
2640
|
+
}
|
|
2641
|
+
},
|
|
2642
|
+
"PklAssetList": {
|
|
2643
|
+
"description": "The `<AssetList>` element in a PKL.",
|
|
2644
|
+
"type": "object",
|
|
2645
|
+
"required": [
|
|
2646
|
+
"assets"
|
|
2647
|
+
],
|
|
2648
|
+
"properties": {
|
|
2649
|
+
"assets": {
|
|
2650
|
+
"type": "array",
|
|
2651
|
+
"items": {
|
|
2652
|
+
"$ref": "#/definitions/PklAsset"
|
|
2653
|
+
}
|
|
2654
|
+
}
|
|
2655
|
+
}
|
|
2656
|
+
},
|
|
2657
|
+
"RGBADescriptor": {
|
|
2658
|
+
"description": "RGBA video descriptor (JPEG 2000 RGB content)",
|
|
2659
|
+
"type": "object",
|
|
2660
|
+
"properties": {
|
|
2661
|
+
"AlphaMaxRef": {
|
|
2662
|
+
"description": "Table 10: AlphaMaxRef — shall not be present",
|
|
2663
|
+
"default": null,
|
|
2664
|
+
"type": [
|
|
2665
|
+
"integer",
|
|
2666
|
+
"null"
|
|
2667
|
+
],
|
|
2668
|
+
"format": "uint32",
|
|
2669
|
+
"minimum": 0.0
|
|
2670
|
+
},
|
|
2671
|
+
"AlphaMinRef": {
|
|
2672
|
+
"description": "Table 10: AlphaMinRef — shall not be present",
|
|
2673
|
+
"default": null,
|
|
2674
|
+
"type": [
|
|
2675
|
+
"integer",
|
|
2676
|
+
"null"
|
|
2677
|
+
],
|
|
2678
|
+
"format": "uint32",
|
|
2679
|
+
"minimum": 0.0
|
|
2680
|
+
},
|
|
2681
|
+
"AlphaTransparency": {
|
|
2682
|
+
"description": "Table 8: AlphaTransparency — shall not be present",
|
|
2683
|
+
"default": null,
|
|
2684
|
+
"type": [
|
|
2685
|
+
"string",
|
|
2686
|
+
"null"
|
|
2687
|
+
]
|
|
2688
|
+
},
|
|
2689
|
+
"CodingEquations": {
|
|
2690
|
+
"default": null,
|
|
2691
|
+
"anyOf": [
|
|
2692
|
+
{
|
|
2693
|
+
"$ref": "#/definitions/CodingEquations"
|
|
2694
|
+
},
|
|
2695
|
+
{
|
|
2696
|
+
"type": "null"
|
|
2697
|
+
}
|
|
2698
|
+
]
|
|
2699
|
+
},
|
|
2700
|
+
"ColorPrimaries": {
|
|
2701
|
+
"default": null,
|
|
2702
|
+
"anyOf": [
|
|
2703
|
+
{
|
|
2704
|
+
"$ref": "#/definitions/ColorPrimaries"
|
|
2705
|
+
},
|
|
2706
|
+
{
|
|
2707
|
+
"type": "null"
|
|
2708
|
+
}
|
|
2709
|
+
]
|
|
2710
|
+
},
|
|
2711
|
+
"ComponentMaxRef": {
|
|
2712
|
+
"description": "RGBA Descriptor: Component Max Ref (Table 10/11)",
|
|
2713
|
+
"default": null,
|
|
2714
|
+
"type": [
|
|
2715
|
+
"integer",
|
|
2716
|
+
"null"
|
|
2717
|
+
],
|
|
2718
|
+
"format": "uint32",
|
|
2719
|
+
"minimum": 0.0
|
|
2720
|
+
},
|
|
2721
|
+
"ComponentMinRef": {
|
|
2722
|
+
"description": "RGBA Descriptor: Component Min Ref (Table 10/11)",
|
|
2723
|
+
"default": null,
|
|
2724
|
+
"type": [
|
|
2725
|
+
"integer",
|
|
2726
|
+
"null"
|
|
2727
|
+
],
|
|
2728
|
+
"format": "uint32",
|
|
2729
|
+
"minimum": 0.0
|
|
2730
|
+
},
|
|
2731
|
+
"DisplayF2Offset": {
|
|
2732
|
+
"description": "Generic Picture Essence Descriptor: DisplayF2Offset",
|
|
2733
|
+
"default": null,
|
|
2734
|
+
"type": [
|
|
2735
|
+
"integer",
|
|
2736
|
+
"null"
|
|
2737
|
+
],
|
|
2738
|
+
"format": "int32"
|
|
2739
|
+
},
|
|
2740
|
+
"DisplayHeight": {
|
|
2741
|
+
"default": null,
|
|
2742
|
+
"type": [
|
|
2743
|
+
"integer",
|
|
2744
|
+
"null"
|
|
2745
|
+
],
|
|
2746
|
+
"format": "uint32",
|
|
2747
|
+
"minimum": 0.0
|
|
2748
|
+
},
|
|
2749
|
+
"DisplayWidth": {
|
|
2750
|
+
"default": null,
|
|
2751
|
+
"type": [
|
|
2752
|
+
"integer",
|
|
2753
|
+
"null"
|
|
2754
|
+
],
|
|
2755
|
+
"format": "uint32",
|
|
2756
|
+
"minimum": 0.0
|
|
2757
|
+
},
|
|
2758
|
+
"FieldDominance": {
|
|
2759
|
+
"description": "Table 8: FieldDominance — shall be present if interlaced, shall not be present if progressive",
|
|
2760
|
+
"default": null,
|
|
2761
|
+
"type": [
|
|
2762
|
+
"integer",
|
|
2763
|
+
"null"
|
|
2764
|
+
],
|
|
2765
|
+
"format": "uint32",
|
|
2766
|
+
"minimum": 0.0
|
|
2767
|
+
},
|
|
2768
|
+
"FrameLayout": {
|
|
2769
|
+
"description": "Generic Picture Essence Descriptor: Frame Layout \"FullFrame\" (00h, progressive) or \"SeparateFields\" (01h, interlaced)",
|
|
2770
|
+
"default": null,
|
|
2771
|
+
"type": [
|
|
2772
|
+
"string",
|
|
2773
|
+
"null"
|
|
2774
|
+
]
|
|
2775
|
+
},
|
|
2776
|
+
"ImageAlignmentOffset": {
|
|
2777
|
+
"description": "Table 8: ImageAlignmentOffset — shall not be present",
|
|
2778
|
+
"default": null,
|
|
2779
|
+
"type": [
|
|
2780
|
+
"integer",
|
|
2781
|
+
"null"
|
|
2782
|
+
],
|
|
2783
|
+
"format": "uint32",
|
|
2784
|
+
"minimum": 0.0
|
|
2785
|
+
},
|
|
2786
|
+
"ImageAspectRatio": {
|
|
2787
|
+
"default": null,
|
|
2788
|
+
"type": [
|
|
2789
|
+
"string",
|
|
2790
|
+
"null"
|
|
2791
|
+
]
|
|
2792
|
+
},
|
|
2793
|
+
"ImageEndOffset": {
|
|
2794
|
+
"description": "Table 8: ImageEndOffset — shall not be present",
|
|
2795
|
+
"default": null,
|
|
2796
|
+
"type": [
|
|
2797
|
+
"integer",
|
|
2798
|
+
"null"
|
|
2799
|
+
],
|
|
2800
|
+
"format": "uint32",
|
|
2801
|
+
"minimum": 0.0
|
|
2802
|
+
},
|
|
2803
|
+
"ImageStartOffset": {
|
|
2804
|
+
"description": "Table 8: ImageStartOffset — shall not be present",
|
|
2805
|
+
"default": null,
|
|
2806
|
+
"type": [
|
|
2807
|
+
"integer",
|
|
2808
|
+
"null"
|
|
2809
|
+
],
|
|
2810
|
+
"format": "uint32",
|
|
2811
|
+
"minimum": 0.0
|
|
2812
|
+
},
|
|
2813
|
+
"InstanceID": {
|
|
2814
|
+
"default": null,
|
|
2815
|
+
"type": [
|
|
2816
|
+
"string",
|
|
2817
|
+
"null"
|
|
2818
|
+
]
|
|
2819
|
+
},
|
|
2820
|
+
"LinkedTrackID": {
|
|
2821
|
+
"default": null,
|
|
2822
|
+
"type": [
|
|
2823
|
+
"integer",
|
|
2824
|
+
"null"
|
|
2825
|
+
],
|
|
2826
|
+
"format": "uint32",
|
|
2827
|
+
"minimum": 0.0
|
|
2828
|
+
},
|
|
2829
|
+
"Palette": {
|
|
2830
|
+
"description": "Table 10: Palette — shall not be present",
|
|
2831
|
+
"default": null,
|
|
2832
|
+
"type": [
|
|
2833
|
+
"string",
|
|
2834
|
+
"null"
|
|
2835
|
+
]
|
|
2836
|
+
},
|
|
2837
|
+
"PaletteLayout": {
|
|
2838
|
+
"description": "Table 10: PaletteLayout — shall not be present",
|
|
2839
|
+
"default": null,
|
|
2840
|
+
"type": [
|
|
2841
|
+
"string",
|
|
2842
|
+
"null"
|
|
2843
|
+
]
|
|
2844
|
+
},
|
|
2845
|
+
"PictureCompression": {
|
|
2846
|
+
"default": null,
|
|
2847
|
+
"anyOf": [
|
|
2848
|
+
{
|
|
2849
|
+
"$ref": "#/definitions/VideoCodec"
|
|
2850
|
+
},
|
|
2851
|
+
{
|
|
2852
|
+
"type": "null"
|
|
2853
|
+
}
|
|
2854
|
+
]
|
|
2855
|
+
},
|
|
2856
|
+
"SampleRate": {
|
|
2857
|
+
"default": null,
|
|
2858
|
+
"anyOf": [
|
|
2859
|
+
{
|
|
2860
|
+
"$ref": "#/definitions/EditRate"
|
|
2861
|
+
},
|
|
2862
|
+
{
|
|
2863
|
+
"type": "null"
|
|
2864
|
+
}
|
|
2865
|
+
]
|
|
2866
|
+
},
|
|
2867
|
+
"SampledHeight": {
|
|
2868
|
+
"description": "Table 8: SampledHeight — shall not be present or shall be equal to StoredHeight",
|
|
2869
|
+
"default": null,
|
|
2870
|
+
"type": [
|
|
2871
|
+
"integer",
|
|
2872
|
+
"null"
|
|
2873
|
+
],
|
|
2874
|
+
"format": "uint32",
|
|
2875
|
+
"minimum": 0.0
|
|
2876
|
+
},
|
|
2877
|
+
"SampledWidth": {
|
|
2878
|
+
"description": "Table 8: SampledWidth — shall not be present or shall be equal to StoredWidth",
|
|
2879
|
+
"default": null,
|
|
2880
|
+
"type": [
|
|
2881
|
+
"integer",
|
|
2882
|
+
"null"
|
|
2883
|
+
],
|
|
2884
|
+
"format": "uint32",
|
|
2885
|
+
"minimum": 0.0
|
|
2886
|
+
},
|
|
2887
|
+
"SampledXOffset": {
|
|
2888
|
+
"description": "Table 8: SampledXOffset — shall not be present or shall be 0",
|
|
2889
|
+
"default": null,
|
|
2890
|
+
"type": [
|
|
2891
|
+
"integer",
|
|
2892
|
+
"null"
|
|
2893
|
+
],
|
|
2894
|
+
"format": "uint32",
|
|
2895
|
+
"minimum": 0.0
|
|
2896
|
+
},
|
|
2897
|
+
"SampledYOffset": {
|
|
2898
|
+
"description": "Table 8: SampledYOffset — shall not be present or shall be 0",
|
|
2899
|
+
"default": null,
|
|
2900
|
+
"type": [
|
|
2901
|
+
"integer",
|
|
2902
|
+
"null"
|
|
2903
|
+
],
|
|
2904
|
+
"format": "uint32",
|
|
2905
|
+
"minimum": 0.0
|
|
2906
|
+
},
|
|
2907
|
+
"ScanningDirection": {
|
|
2908
|
+
"description": "RGBA Descriptor: Scanning Direction (Table 10) Shall be \"ScanningDirection_LeftToRightTopToBottom\" (00h)",
|
|
2909
|
+
"default": null,
|
|
2910
|
+
"type": [
|
|
2911
|
+
"string",
|
|
2912
|
+
"null"
|
|
2913
|
+
]
|
|
2914
|
+
},
|
|
2915
|
+
"StoredF2Offset": {
|
|
2916
|
+
"description": "Table 8: StoredF2Offset — shall not be present",
|
|
2917
|
+
"default": null,
|
|
2918
|
+
"type": [
|
|
2919
|
+
"integer",
|
|
2920
|
+
"null"
|
|
2921
|
+
],
|
|
2922
|
+
"format": "int32"
|
|
2923
|
+
},
|
|
2924
|
+
"StoredHeight": {
|
|
2925
|
+
"default": null,
|
|
2926
|
+
"type": [
|
|
2927
|
+
"integer",
|
|
2928
|
+
"null"
|
|
2929
|
+
],
|
|
2930
|
+
"format": "uint32",
|
|
2931
|
+
"minimum": 0.0
|
|
2932
|
+
},
|
|
2933
|
+
"StoredWidth": {
|
|
2934
|
+
"default": null,
|
|
2935
|
+
"type": [
|
|
2936
|
+
"integer",
|
|
2937
|
+
"null"
|
|
2938
|
+
],
|
|
2939
|
+
"format": "uint32",
|
|
2940
|
+
"minimum": 0.0
|
|
2941
|
+
},
|
|
2942
|
+
"SubDescriptors": {
|
|
2943
|
+
"default": null,
|
|
2944
|
+
"anyOf": [
|
|
2945
|
+
{
|
|
2946
|
+
"$ref": "#/definitions/VideoSubDescriptors"
|
|
2947
|
+
},
|
|
2948
|
+
{
|
|
2949
|
+
"type": "null"
|
|
2950
|
+
}
|
|
2951
|
+
]
|
|
2952
|
+
},
|
|
2953
|
+
"TransferCharacteristic": {
|
|
2954
|
+
"default": null,
|
|
2955
|
+
"anyOf": [
|
|
2956
|
+
{
|
|
2957
|
+
"$ref": "#/definitions/TransferCharacteristic"
|
|
2958
|
+
},
|
|
2959
|
+
{
|
|
2960
|
+
"type": "null"
|
|
2961
|
+
}
|
|
2962
|
+
]
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
},
|
|
2966
|
+
"RGBALayoutComponent": {
|
|
2967
|
+
"description": "RGBA component entry within J2CLayout or PixelLayout",
|
|
2968
|
+
"type": "object",
|
|
2969
|
+
"properties": {
|
|
2970
|
+
"Code": {
|
|
2971
|
+
"description": "Absent in intentionally malformed corpus files (e.g. RGBAError1). Default to empty string so the parser succeeds; the validator flags missing codes.",
|
|
2972
|
+
"default": "",
|
|
2973
|
+
"type": "string"
|
|
2974
|
+
},
|
|
2975
|
+
"ComponentSize": {
|
|
2976
|
+
"default": 0,
|
|
2977
|
+
"type": "integer",
|
|
2978
|
+
"format": "uint32",
|
|
2979
|
+
"minimum": 0.0
|
|
2980
|
+
}
|
|
2981
|
+
}
|
|
2982
|
+
},
|
|
2983
|
+
"RegionList": {
|
|
2984
|
+
"type": "object",
|
|
2985
|
+
"required": [
|
|
2986
|
+
"Region"
|
|
2987
|
+
],
|
|
2988
|
+
"properties": {
|
|
2989
|
+
"Region": {
|
|
2990
|
+
"type": "array",
|
|
2991
|
+
"items": {
|
|
2992
|
+
"type": "string"
|
|
2993
|
+
}
|
|
2994
|
+
}
|
|
2995
|
+
}
|
|
2996
|
+
},
|
|
2997
|
+
"Resource": {
|
|
2998
|
+
"type": "object",
|
|
2999
|
+
"required": [
|
|
3000
|
+
"Id",
|
|
3001
|
+
"IntrinsicDuration"
|
|
3002
|
+
],
|
|
3003
|
+
"properties": {
|
|
3004
|
+
"Annotation": {
|
|
3005
|
+
"default": null,
|
|
3006
|
+
"anyOf": [
|
|
3007
|
+
{
|
|
3008
|
+
"$ref": "#/definitions/LanguageString"
|
|
3009
|
+
},
|
|
3010
|
+
{
|
|
3011
|
+
"type": "null"
|
|
3012
|
+
}
|
|
3013
|
+
]
|
|
3014
|
+
},
|
|
3015
|
+
"EditRate": {
|
|
3016
|
+
"default": null,
|
|
3017
|
+
"anyOf": [
|
|
3018
|
+
{
|
|
3019
|
+
"$ref": "#/definitions/EditRate"
|
|
3020
|
+
},
|
|
3021
|
+
{
|
|
3022
|
+
"type": "null"
|
|
3023
|
+
}
|
|
3024
|
+
]
|
|
3025
|
+
},
|
|
3026
|
+
"EntryPoint": {
|
|
3027
|
+
"default": null,
|
|
3028
|
+
"type": [
|
|
3029
|
+
"integer",
|
|
3030
|
+
"null"
|
|
3031
|
+
],
|
|
3032
|
+
"format": "uint64",
|
|
3033
|
+
"minimum": 0.0
|
|
3034
|
+
},
|
|
3035
|
+
"Hash": {
|
|
3036
|
+
"default": null,
|
|
3037
|
+
"type": [
|
|
3038
|
+
"string",
|
|
3039
|
+
"null"
|
|
3040
|
+
]
|
|
3041
|
+
},
|
|
3042
|
+
"Id": {
|
|
3043
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3044
|
+
},
|
|
3045
|
+
"IntrinsicDuration": {
|
|
3046
|
+
"type": "integer",
|
|
3047
|
+
"format": "uint64",
|
|
3048
|
+
"minimum": 0.0
|
|
3049
|
+
},
|
|
3050
|
+
"KeyId": {
|
|
3051
|
+
"default": null,
|
|
3052
|
+
"anyOf": [
|
|
3053
|
+
{
|
|
3054
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3055
|
+
},
|
|
3056
|
+
{
|
|
3057
|
+
"type": "null"
|
|
3058
|
+
}
|
|
3059
|
+
]
|
|
3060
|
+
},
|
|
3061
|
+
"Marker": {
|
|
3062
|
+
"default": [],
|
|
3063
|
+
"type": "array",
|
|
3064
|
+
"items": {
|
|
3065
|
+
"$ref": "#/definitions/MarkerInfo"
|
|
3066
|
+
}
|
|
3067
|
+
},
|
|
3068
|
+
"RepeatCount": {
|
|
3069
|
+
"default": null,
|
|
3070
|
+
"type": [
|
|
3071
|
+
"integer",
|
|
3072
|
+
"null"
|
|
3073
|
+
],
|
|
3074
|
+
"format": "uint64",
|
|
3075
|
+
"minimum": 0.0
|
|
3076
|
+
},
|
|
3077
|
+
"SourceDuration": {
|
|
3078
|
+
"default": null,
|
|
3079
|
+
"type": [
|
|
3080
|
+
"integer",
|
|
3081
|
+
"null"
|
|
3082
|
+
],
|
|
3083
|
+
"format": "uint64",
|
|
3084
|
+
"minimum": 0.0
|
|
3085
|
+
},
|
|
3086
|
+
"SourceEncoding": {
|
|
3087
|
+
"default": null,
|
|
3088
|
+
"anyOf": [
|
|
3089
|
+
{
|
|
3090
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3091
|
+
},
|
|
3092
|
+
{
|
|
3093
|
+
"type": "null"
|
|
3094
|
+
}
|
|
3095
|
+
]
|
|
3096
|
+
},
|
|
3097
|
+
"TrackFileId": {
|
|
3098
|
+
"default": null,
|
|
3099
|
+
"anyOf": [
|
|
3100
|
+
{
|
|
3101
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3102
|
+
},
|
|
3103
|
+
{
|
|
3104
|
+
"type": "null"
|
|
3105
|
+
}
|
|
3106
|
+
]
|
|
3107
|
+
}
|
|
3108
|
+
}
|
|
3109
|
+
},
|
|
3110
|
+
"ResourceList": {
|
|
3111
|
+
"type": "object",
|
|
3112
|
+
"properties": {
|
|
3113
|
+
"Resource": {
|
|
3114
|
+
"default": [],
|
|
3115
|
+
"type": "array",
|
|
3116
|
+
"items": {
|
|
3117
|
+
"$ref": "#/definitions/Resource"
|
|
3118
|
+
}
|
|
3119
|
+
}
|
|
3120
|
+
}
|
|
3121
|
+
},
|
|
3122
|
+
"Segment": {
|
|
3123
|
+
"type": "object",
|
|
3124
|
+
"required": [
|
|
3125
|
+
"Id",
|
|
3126
|
+
"SequenceList"
|
|
3127
|
+
],
|
|
3128
|
+
"properties": {
|
|
3129
|
+
"Id": {
|
|
3130
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3131
|
+
},
|
|
3132
|
+
"SequenceList": {
|
|
3133
|
+
"$ref": "#/definitions/SequenceList"
|
|
3134
|
+
}
|
|
3135
|
+
}
|
|
3136
|
+
},
|
|
3137
|
+
"SegmentList": {
|
|
3138
|
+
"type": "object",
|
|
3139
|
+
"properties": {
|
|
3140
|
+
"Segment": {
|
|
3141
|
+
"default": [],
|
|
3142
|
+
"type": "array",
|
|
3143
|
+
"items": {
|
|
3144
|
+
"$ref": "#/definitions/Segment"
|
|
3145
|
+
}
|
|
3146
|
+
}
|
|
3147
|
+
}
|
|
3148
|
+
},
|
|
3149
|
+
"SequenceList": {
|
|
3150
|
+
"type": "object",
|
|
3151
|
+
"properties": {
|
|
3152
|
+
"ForcedNarrativeSequence": {
|
|
3153
|
+
"default": [],
|
|
3154
|
+
"type": "array",
|
|
3155
|
+
"items": {
|
|
3156
|
+
"$ref": "#/definitions/ForcedNarrativeSequence"
|
|
3157
|
+
}
|
|
3158
|
+
},
|
|
3159
|
+
"HearingImpairedCaptionsSequence": {
|
|
3160
|
+
"default": [],
|
|
3161
|
+
"type": "array",
|
|
3162
|
+
"items": {
|
|
3163
|
+
"$ref": "#/definitions/HearingImpairedCaptionsSequence"
|
|
3164
|
+
}
|
|
3165
|
+
},
|
|
3166
|
+
"IABSequence": {
|
|
3167
|
+
"default": [],
|
|
3168
|
+
"type": "array",
|
|
3169
|
+
"items": {
|
|
3170
|
+
"$ref": "#/definitions/IABSequence"
|
|
3171
|
+
}
|
|
3172
|
+
},
|
|
3173
|
+
"ISXDSequence": {
|
|
3174
|
+
"default": [],
|
|
3175
|
+
"type": "array",
|
|
3176
|
+
"items": {
|
|
3177
|
+
"$ref": "#/definitions/ISXDSequence"
|
|
3178
|
+
}
|
|
3179
|
+
},
|
|
3180
|
+
"MainAudioSequence": {
|
|
3181
|
+
"default": [],
|
|
3182
|
+
"type": "array",
|
|
3183
|
+
"items": {
|
|
3184
|
+
"$ref": "#/definitions/MainAudioSequence"
|
|
3185
|
+
}
|
|
3186
|
+
},
|
|
3187
|
+
"MainImageSequence": {
|
|
3188
|
+
"default": [],
|
|
3189
|
+
"type": "array",
|
|
3190
|
+
"items": {
|
|
3191
|
+
"$ref": "#/definitions/MainImageSequence"
|
|
3192
|
+
}
|
|
3193
|
+
},
|
|
3194
|
+
"MarkerSequence": {
|
|
3195
|
+
"default": [],
|
|
3196
|
+
"type": "array",
|
|
3197
|
+
"items": {
|
|
3198
|
+
"$ref": "#/definitions/MarkerSequence"
|
|
3199
|
+
}
|
|
3200
|
+
},
|
|
3201
|
+
"SubtitlesSequence": {
|
|
3202
|
+
"default": [],
|
|
3203
|
+
"type": "array",
|
|
3204
|
+
"items": {
|
|
3205
|
+
"$ref": "#/definitions/SubtitlesSequence"
|
|
3206
|
+
}
|
|
3207
|
+
}
|
|
3208
|
+
}
|
|
3209
|
+
},
|
|
3210
|
+
"Severity": {
|
|
3211
|
+
"description": "Severity level of validation issues",
|
|
3212
|
+
"oneOf": [
|
|
3213
|
+
{
|
|
3214
|
+
"description": "Informational - Best practice suggestions",
|
|
3215
|
+
"type": "string",
|
|
3216
|
+
"enum": [
|
|
3217
|
+
"Info"
|
|
3218
|
+
]
|
|
3219
|
+
},
|
|
3220
|
+
{
|
|
3221
|
+
"description": "Warning - Should fix but not critical",
|
|
3222
|
+
"type": "string",
|
|
3223
|
+
"enum": [
|
|
3224
|
+
"Warning"
|
|
3225
|
+
]
|
|
3226
|
+
},
|
|
3227
|
+
{
|
|
3228
|
+
"description": "Error - Must fix for compliance",
|
|
3229
|
+
"type": "string",
|
|
3230
|
+
"enum": [
|
|
3231
|
+
"Error"
|
|
3232
|
+
]
|
|
3233
|
+
},
|
|
3234
|
+
{
|
|
3235
|
+
"description": "Critical - Prevents package from being usable",
|
|
3236
|
+
"type": "string",
|
|
3237
|
+
"enum": [
|
|
3238
|
+
"Critical"
|
|
3239
|
+
]
|
|
3240
|
+
}
|
|
3241
|
+
]
|
|
3242
|
+
},
|
|
3243
|
+
"SidecarAsset": {
|
|
3244
|
+
"description": "A single sidecar asset association within an SCM document.",
|
|
3245
|
+
"type": "object",
|
|
3246
|
+
"required": [
|
|
3247
|
+
"cplIds",
|
|
3248
|
+
"id"
|
|
3249
|
+
],
|
|
3250
|
+
"properties": {
|
|
3251
|
+
"cplIds": {
|
|
3252
|
+
"description": "CPLs this sidecar asset is associated with (§7.3.1.1: one or more).",
|
|
3253
|
+
"type": "array",
|
|
3254
|
+
"items": {
|
|
3255
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3256
|
+
}
|
|
3257
|
+
},
|
|
3258
|
+
"id": {
|
|
3259
|
+
"description": "UUID of the sidecar asset (must be present in the package AssetMap).",
|
|
3260
|
+
"allOf": [
|
|
3261
|
+
{
|
|
3262
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3263
|
+
}
|
|
3264
|
+
]
|
|
3265
|
+
}
|
|
3266
|
+
}
|
|
3267
|
+
},
|
|
3268
|
+
"SidecarCompositionMap": {
|
|
3269
|
+
"description": "A parsed Sidecar Composition Map document (ST 2067-9:2018).\n\nField naming flattens the XSD's `<Properties>` wrapper into the top-level struct; on the wire the document still carries `<Properties>{Annotation,IssueDate,Issuer}</Properties>` per ST 2067-9:2018 §7.2 Table 2.",
|
|
3270
|
+
"type": "object",
|
|
3271
|
+
"required": [
|
|
3272
|
+
"hasSignature",
|
|
3273
|
+
"hasSigner",
|
|
3274
|
+
"id",
|
|
3275
|
+
"issueDate",
|
|
3276
|
+
"sidecarAssets"
|
|
3277
|
+
],
|
|
3278
|
+
"properties": {
|
|
3279
|
+
"annotation": {
|
|
3280
|
+
"type": [
|
|
3281
|
+
"string",
|
|
3282
|
+
"null"
|
|
3283
|
+
]
|
|
3284
|
+
},
|
|
3285
|
+
"hasSignature": {
|
|
3286
|
+
"description": "True if a `<Signature>` element was present (§7.2.5).",
|
|
3287
|
+
"type": "boolean"
|
|
3288
|
+
},
|
|
3289
|
+
"hasSigner": {
|
|
3290
|
+
"description": "True if a `<Signer>` element was present (§7.2.4).",
|
|
3291
|
+
"type": "boolean"
|
|
3292
|
+
},
|
|
3293
|
+
"id": {
|
|
3294
|
+
"description": "UUID of this SCM document.",
|
|
3295
|
+
"allOf": [
|
|
3296
|
+
{
|
|
3297
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3298
|
+
}
|
|
3299
|
+
]
|
|
3300
|
+
},
|
|
3301
|
+
"issueDate": {
|
|
3302
|
+
"type": "string"
|
|
3303
|
+
},
|
|
3304
|
+
"issuer": {
|
|
3305
|
+
"type": [
|
|
3306
|
+
"string",
|
|
3307
|
+
"null"
|
|
3308
|
+
]
|
|
3309
|
+
},
|
|
3310
|
+
"sidecarAssets": {
|
|
3311
|
+
"description": "Sidecar asset associations.",
|
|
3312
|
+
"type": "array",
|
|
3313
|
+
"items": {
|
|
3314
|
+
"$ref": "#/definitions/SidecarAsset"
|
|
3315
|
+
}
|
|
3316
|
+
}
|
|
3317
|
+
}
|
|
3318
|
+
},
|
|
3319
|
+
"SoundfieldGroupLabelSubDescriptor": {
|
|
3320
|
+
"description": "Soundfield group label sub-descriptor — contains language and audio content kind",
|
|
3321
|
+
"type": "object",
|
|
3322
|
+
"properties": {
|
|
3323
|
+
"MCAAudioContentKind": {
|
|
3324
|
+
"default": null,
|
|
3325
|
+
"type": [
|
|
3326
|
+
"string",
|
|
3327
|
+
"null"
|
|
3328
|
+
]
|
|
3329
|
+
},
|
|
3330
|
+
"MCATagName": {
|
|
3331
|
+
"default": null,
|
|
3332
|
+
"type": [
|
|
3333
|
+
"string",
|
|
3334
|
+
"null"
|
|
3335
|
+
]
|
|
3336
|
+
},
|
|
3337
|
+
"MCATagSymbol": {
|
|
3338
|
+
"default": null,
|
|
3339
|
+
"anyOf": [
|
|
3340
|
+
{
|
|
3341
|
+
"$ref": "#/definitions/McaTagSymbol"
|
|
3342
|
+
},
|
|
3343
|
+
{
|
|
3344
|
+
"type": "null"
|
|
3345
|
+
}
|
|
3346
|
+
]
|
|
3347
|
+
},
|
|
3348
|
+
"RFC5646SpokenLanguage": {
|
|
3349
|
+
"description": "RFC 5646 language tag — field name varies between vendors",
|
|
3350
|
+
"default": null,
|
|
3351
|
+
"anyOf": [
|
|
3352
|
+
{
|
|
3353
|
+
"$ref": "#/definitions/LanguageTag"
|
|
3354
|
+
},
|
|
3355
|
+
{
|
|
3356
|
+
"type": "null"
|
|
3357
|
+
}
|
|
3358
|
+
]
|
|
3359
|
+
}
|
|
3360
|
+
}
|
|
3361
|
+
},
|
|
3362
|
+
"SubtitlesSequence": {
|
|
3363
|
+
"type": "object",
|
|
3364
|
+
"required": [
|
|
3365
|
+
"Id",
|
|
3366
|
+
"ResourceList",
|
|
3367
|
+
"TrackId"
|
|
3368
|
+
],
|
|
3369
|
+
"properties": {
|
|
3370
|
+
"Id": {
|
|
3371
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3372
|
+
},
|
|
3373
|
+
"ResourceList": {
|
|
3374
|
+
"$ref": "#/definitions/ResourceList"
|
|
3375
|
+
},
|
|
3376
|
+
"TrackId": {
|
|
3377
|
+
"$ref": "#/definitions/ImfUuid"
|
|
3378
|
+
}
|
|
3379
|
+
}
|
|
3380
|
+
},
|
|
3381
|
+
"TransferCharacteristic": {
|
|
3382
|
+
"description": "Opto-electronic transfer function SMPTE Universal Label, per ST 2067-21:2023 §7.2.2.\n\nUsed in `<TransferCharacteristic>` elements in CPL EssenceDescriptors. Byte 8 (registry version) is masked per ST 298M (Architecture Decision 1).",
|
|
3383
|
+
"oneOf": [
|
|
3384
|
+
{
|
|
3385
|
+
"description": "Linear (scene-referred, e.g. ACES) Canonical UL: `060e2b34.04010100.04010101.01010000`",
|
|
3386
|
+
"type": "string",
|
|
3387
|
+
"enum": [
|
|
3388
|
+
"Linear"
|
|
3389
|
+
]
|
|
3390
|
+
},
|
|
3391
|
+
{
|
|
3392
|
+
"description": "ITU-R BT.709 — COLOR.1/2/3 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.01020000`",
|
|
3393
|
+
"type": "string",
|
|
3394
|
+
"enum": [
|
|
3395
|
+
"Bt709"
|
|
3396
|
+
]
|
|
3397
|
+
},
|
|
3398
|
+
{
|
|
3399
|
+
"description": "SMPTE 240M (legacy 1080i) Canonical UL: `060e2b34.04010100.04010101.01030000`",
|
|
3400
|
+
"type": "string",
|
|
3401
|
+
"enum": [
|
|
3402
|
+
"Smpte240M"
|
|
3403
|
+
]
|
|
3404
|
+
},
|
|
3405
|
+
{
|
|
3406
|
+
"description": "xvYCC 709 — COLOR.4 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.01080000`",
|
|
3407
|
+
"type": "string",
|
|
3408
|
+
"enum": [
|
|
3409
|
+
"XvYcc709"
|
|
3410
|
+
]
|
|
3411
|
+
},
|
|
3412
|
+
{
|
|
3413
|
+
"description": "ITU-R BT.2020 (Annex A) — COLOR.5 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.01090000`",
|
|
3414
|
+
"type": "string",
|
|
3415
|
+
"enum": [
|
|
3416
|
+
"Bt2020"
|
|
3417
|
+
]
|
|
3418
|
+
},
|
|
3419
|
+
{
|
|
3420
|
+
"description": "SMPTE ST 2084 (PQ / Perceptual Quantiser) — COLOR.6/7 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.010a0000`",
|
|
3421
|
+
"type": "string",
|
|
3422
|
+
"enum": [
|
|
3423
|
+
"PqSt2084"
|
|
3424
|
+
]
|
|
3425
|
+
},
|
|
3426
|
+
{
|
|
3427
|
+
"description": "ITU-R BT.2100 Hybrid Log-Gamma — COLOR.8 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.010b0000`",
|
|
3428
|
+
"type": "string",
|
|
3429
|
+
"enum": [
|
|
3430
|
+
"Hlg"
|
|
3431
|
+
]
|
|
3432
|
+
},
|
|
3433
|
+
{
|
|
3434
|
+
"description": "Unrecognised UL; the original string is preserved.",
|
|
3435
|
+
"type": "object",
|
|
3436
|
+
"required": [
|
|
3437
|
+
"Unknown"
|
|
3438
|
+
],
|
|
3439
|
+
"properties": {
|
|
3440
|
+
"Unknown": {
|
|
3441
|
+
"type": "string"
|
|
3442
|
+
}
|
|
3443
|
+
},
|
|
3444
|
+
"additionalProperties": false
|
|
3445
|
+
}
|
|
3446
|
+
]
|
|
3447
|
+
},
|
|
3448
|
+
"ValidationIssue": {
|
|
3449
|
+
"description": "A single validation issue",
|
|
3450
|
+
"type": "object",
|
|
3451
|
+
"required": [
|
|
3452
|
+
"category",
|
|
3453
|
+
"code",
|
|
3454
|
+
"context",
|
|
3455
|
+
"location",
|
|
3456
|
+
"message",
|
|
3457
|
+
"severity"
|
|
3458
|
+
],
|
|
3459
|
+
"properties": {
|
|
3460
|
+
"additional_instances": {
|
|
3461
|
+
"description": "Other `Location`s when this issue represents an aggregation of multiple identical-code occurrences (see [`ValidationReport::aggregate`]). Empty for fresh, un-aggregated issues. Skipped during serialisation when empty so the on-wire shape stays back-compatible for callers that don't aggregate.",
|
|
3462
|
+
"type": "array",
|
|
3463
|
+
"items": {
|
|
3464
|
+
"$ref": "#/definitions/Location"
|
|
3465
|
+
}
|
|
3466
|
+
},
|
|
3467
|
+
"category": {
|
|
3468
|
+
"description": "Category of issue",
|
|
3469
|
+
"allOf": [
|
|
3470
|
+
{
|
|
3471
|
+
"$ref": "#/definitions/Category"
|
|
3472
|
+
}
|
|
3473
|
+
]
|
|
3474
|
+
},
|
|
3475
|
+
"code": {
|
|
3476
|
+
"description": "Error code (e.g., \"ST2067-2:2020:8.3/FileNotFound\")",
|
|
3477
|
+
"type": "string"
|
|
3478
|
+
},
|
|
3479
|
+
"context": {
|
|
3480
|
+
"description": "Additional context",
|
|
3481
|
+
"type": "object",
|
|
3482
|
+
"additionalProperties": {
|
|
3483
|
+
"type": "string"
|
|
3484
|
+
}
|
|
3485
|
+
},
|
|
3486
|
+
"location": {
|
|
3487
|
+
"description": "Location where issue was found",
|
|
3488
|
+
"allOf": [
|
|
3489
|
+
{
|
|
3490
|
+
"$ref": "#/definitions/Location"
|
|
3491
|
+
}
|
|
3492
|
+
]
|
|
3493
|
+
},
|
|
3494
|
+
"message": {
|
|
3495
|
+
"description": "Human-readable message",
|
|
3496
|
+
"type": "string"
|
|
3497
|
+
},
|
|
3498
|
+
"severity": {
|
|
3499
|
+
"description": "Severity level",
|
|
3500
|
+
"allOf": [
|
|
3501
|
+
{
|
|
3502
|
+
"$ref": "#/definitions/Severity"
|
|
3503
|
+
}
|
|
3504
|
+
]
|
|
3505
|
+
},
|
|
3506
|
+
"source": {
|
|
3507
|
+
"description": "Authority that emitted this issue (XSD layer, prose rule, engine internal). Inferred from `code` at construction time so the field is always consistent with the code prefix — JS consumers can filter on `issue.source` directly without re-implementing the inference. Deserialised with a default so old reports without the field round-trip cleanly.",
|
|
3508
|
+
"default": "EngineInternal",
|
|
3509
|
+
"allOf": [
|
|
3510
|
+
{
|
|
3511
|
+
"$ref": "#/definitions/IssueSource"
|
|
3512
|
+
}
|
|
3513
|
+
]
|
|
3514
|
+
},
|
|
3515
|
+
"suggestion": {
|
|
3516
|
+
"description": "Suggestion for how to fix",
|
|
3517
|
+
"type": [
|
|
3518
|
+
"string",
|
|
3519
|
+
"null"
|
|
3520
|
+
]
|
|
3521
|
+
}
|
|
3522
|
+
}
|
|
3523
|
+
},
|
|
3524
|
+
"ValidationProfile": {
|
|
3525
|
+
"description": "Validation profile determining strictness",
|
|
3526
|
+
"oneOf": [
|
|
3527
|
+
{
|
|
3528
|
+
"description": "Minimal validation - just check if playable",
|
|
3529
|
+
"type": "string",
|
|
3530
|
+
"enum": [
|
|
3531
|
+
"Minimal"
|
|
3532
|
+
]
|
|
3533
|
+
},
|
|
3534
|
+
{
|
|
3535
|
+
"description": "Standard SMPTE compliance",
|
|
3536
|
+
"type": "string",
|
|
3537
|
+
"enum": [
|
|
3538
|
+
"SMPTE"
|
|
3539
|
+
]
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
"description": "Custom profile with specific rules",
|
|
3543
|
+
"type": "string",
|
|
3544
|
+
"enum": [
|
|
3545
|
+
"Custom"
|
|
3546
|
+
]
|
|
3547
|
+
}
|
|
3548
|
+
]
|
|
3549
|
+
},
|
|
3550
|
+
"ValidationReport": {
|
|
3551
|
+
"description": "Comprehensive validation report",
|
|
3552
|
+
"type": "object",
|
|
3553
|
+
"required": [
|
|
3554
|
+
"critical",
|
|
3555
|
+
"errors",
|
|
3556
|
+
"info",
|
|
3557
|
+
"is_compliant",
|
|
3558
|
+
"is_playable",
|
|
3559
|
+
"profile",
|
|
3560
|
+
"timestamp",
|
|
3561
|
+
"warnings"
|
|
3562
|
+
],
|
|
3563
|
+
"properties": {
|
|
3564
|
+
"critical": {
|
|
3565
|
+
"description": "Critical issues that prevent usage",
|
|
3566
|
+
"type": "array",
|
|
3567
|
+
"items": {
|
|
3568
|
+
"$ref": "#/definitions/ValidationIssue"
|
|
3569
|
+
}
|
|
3570
|
+
},
|
|
3571
|
+
"errors": {
|
|
3572
|
+
"description": "Errors that must be fixed for compliance",
|
|
3573
|
+
"type": "array",
|
|
3574
|
+
"items": {
|
|
3575
|
+
"$ref": "#/definitions/ValidationIssue"
|
|
3576
|
+
}
|
|
3577
|
+
},
|
|
3578
|
+
"info": {
|
|
3579
|
+
"description": "Informational issues",
|
|
3580
|
+
"type": "array",
|
|
3581
|
+
"items": {
|
|
3582
|
+
"$ref": "#/definitions/ValidationIssue"
|
|
3583
|
+
}
|
|
3584
|
+
},
|
|
3585
|
+
"is_compliant": {
|
|
3586
|
+
"description": "Whether the package is compliant with base SMPTE standards",
|
|
3587
|
+
"type": "boolean"
|
|
3588
|
+
},
|
|
3589
|
+
"is_playable": {
|
|
3590
|
+
"description": "Whether the package is playable despite issues",
|
|
3591
|
+
"type": "boolean"
|
|
3592
|
+
},
|
|
3593
|
+
"profile": {
|
|
3594
|
+
"description": "Validation profile used",
|
|
3595
|
+
"allOf": [
|
|
3596
|
+
{
|
|
3597
|
+
"$ref": "#/definitions/ValidationProfile"
|
|
3598
|
+
}
|
|
3599
|
+
]
|
|
3600
|
+
},
|
|
3601
|
+
"suppressed": {
|
|
3602
|
+
"description": "Issues that were suppressed by a `RuleSeverity::Off` override. These are not counted toward `is_playable`/`is_compliant` or surfaced by `has_errors`/`summary` — they exist so operators can debug their `RulesConfig` (`--show-suppressed`) without re-running validation. Each carries a `context[\"suppressed_by\"]` annotation naming the rule key that matched.\n\nSkipped during serialisation when empty so reports without suppressed rules keep the previous on-wire shape.",
|
|
3603
|
+
"type": "array",
|
|
3604
|
+
"items": {
|
|
3605
|
+
"$ref": "#/definitions/ValidationIssue"
|
|
3606
|
+
}
|
|
3607
|
+
},
|
|
3608
|
+
"timestamp": {
|
|
3609
|
+
"description": "Timestamp of validation",
|
|
3610
|
+
"type": "string"
|
|
3611
|
+
},
|
|
3612
|
+
"warnings": {
|
|
3613
|
+
"description": "Warnings that should be addressed",
|
|
3614
|
+
"type": "array",
|
|
3615
|
+
"items": {
|
|
3616
|
+
"$ref": "#/definitions/ValidationIssue"
|
|
3617
|
+
}
|
|
3618
|
+
}
|
|
3619
|
+
}
|
|
3620
|
+
},
|
|
3621
|
+
"VideoCodec": {
|
|
3622
|
+
"description": "Video codec identified by SMPTE PictureEssenceCoding Universal Label.\n\nPer ST 2067-21:2023 §7.2.5 and Annex F. The full UL-to-codec mapping lives here. Called once at parse time; no runtime string decoding in downstream crates.\n\nNote: VideoCodec ULs have varying item-specific bytes, so we match on byte patterns rather than exact 16-byte comparisons. Byte 8 is still masked.",
|
|
3623
|
+
"oneOf": [
|
|
3624
|
+
{
|
|
3625
|
+
"description": "JPEG 2000 — generic/unspecified profile (ST 422 §A, byte [14]=0x01 without a recognized broadcast sub-level, or other unspecified node UL). Not a recognized IMF Application Profile #2E profile.",
|
|
3626
|
+
"type": "string",
|
|
3627
|
+
"enum": [
|
|
3628
|
+
"Jpeg2000"
|
|
3629
|
+
]
|
|
3630
|
+
},
|
|
3631
|
+
{
|
|
3632
|
+
"description": "JPEG 2000 — IMF 2K profile (ST 422 §A.2, byte [14]=0x02). Supports stored widths ≤ 2048 per ST 2067-21.",
|
|
3633
|
+
"type": "string",
|
|
3634
|
+
"enum": [
|
|
3635
|
+
"Jpeg2000Imf2k"
|
|
3636
|
+
]
|
|
3637
|
+
},
|
|
3638
|
+
{
|
|
3639
|
+
"description": "JPEG 2000 — IMF 4K profile (ST 422 §A.3, byte [14]=0x03). Supports stored widths 2049–4096 per ST 2067-21.",
|
|
3640
|
+
"type": "string",
|
|
3641
|
+
"enum": [
|
|
3642
|
+
"Jpeg2000Imf4k"
|
|
3643
|
+
]
|
|
3644
|
+
},
|
|
3645
|
+
{
|
|
3646
|
+
"description": "JPEG 2000 — IMF 8K profiles (byte [14]=0x04 Single Tile Lossy, 0x07 Single/Multi-Tile Reversible), at the Mainlevel/Sublevel combinations ST 2067-21:2026 §6.5.2 Table 5 lists. Only the 2026 edition of ST 2067-21 permits them.",
|
|
3647
|
+
"type": "string",
|
|
3648
|
+
"enum": [
|
|
3649
|
+
"Jpeg2000Imf8k"
|
|
3650
|
+
]
|
|
3651
|
+
},
|
|
3652
|
+
{
|
|
3653
|
+
"description": "JPEG 2000 — Broadcast Contribution profile (ST 422 §A.1, byte [14]=0x01, sub-levels 0x11–0x17). Supports stored widths ≤ 3840 per ST 2067-21.",
|
|
3654
|
+
"type": "string",
|
|
3655
|
+
"enum": [
|
|
3656
|
+
"Jpeg2000Broadcast"
|
|
3657
|
+
]
|
|
3658
|
+
},
|
|
3659
|
+
{
|
|
3660
|
+
"description": "JPEG 2000 Part 15 — High Throughput (ISO 15444-15, ST 2067-21 §6.2.5). Only allowed in App #2E from spec year 2021 onward.",
|
|
3661
|
+
"type": "string",
|
|
3662
|
+
"enum": [
|
|
3663
|
+
"Jpeg2000Ht"
|
|
3664
|
+
]
|
|
3665
|
+
},
|
|
3666
|
+
{
|
|
3667
|
+
"description": "VC-5 (SMPTE ST 2117)",
|
|
3668
|
+
"type": "string",
|
|
3669
|
+
"enum": [
|
|
3670
|
+
"Vc5"
|
|
3671
|
+
]
|
|
3672
|
+
},
|
|
3673
|
+
{
|
|
3674
|
+
"description": "MPEG-2 (ISO 13818-2)",
|
|
3675
|
+
"type": "string",
|
|
3676
|
+
"enum": [
|
|
3677
|
+
"Mpeg2"
|
|
3678
|
+
]
|
|
3679
|
+
},
|
|
3680
|
+
{
|
|
3681
|
+
"description": "H.264 / AVC (ISO 14496-10)",
|
|
3682
|
+
"type": "string",
|
|
3683
|
+
"enum": [
|
|
3684
|
+
"H264"
|
|
3685
|
+
]
|
|
3686
|
+
},
|
|
3687
|
+
{
|
|
3688
|
+
"description": "H.265 / HEVC (ISO 23008-2)",
|
|
3689
|
+
"type": "string",
|
|
3690
|
+
"enum": [
|
|
3691
|
+
"H265"
|
|
3692
|
+
]
|
|
3693
|
+
},
|
|
3694
|
+
{
|
|
3695
|
+
"description": "Apple ProRes (used in some IMF Application profiles)",
|
|
3696
|
+
"type": "string",
|
|
3697
|
+
"enum": [
|
|
3698
|
+
"ProRes"
|
|
3699
|
+
]
|
|
3700
|
+
},
|
|
3701
|
+
{
|
|
3702
|
+
"description": "AV1 (AOMedia Video 1)",
|
|
3703
|
+
"type": "string",
|
|
3704
|
+
"enum": [
|
|
3705
|
+
"Av1"
|
|
3706
|
+
]
|
|
3707
|
+
},
|
|
3708
|
+
{
|
|
3709
|
+
"description": "Unrecognised UL; the original string is preserved.",
|
|
3710
|
+
"type": "object",
|
|
3711
|
+
"required": [
|
|
3712
|
+
"Unknown"
|
|
3713
|
+
],
|
|
3714
|
+
"properties": {
|
|
3715
|
+
"Unknown": {
|
|
3716
|
+
"type": "string"
|
|
3717
|
+
}
|
|
3718
|
+
},
|
|
3719
|
+
"additionalProperties": false
|
|
3720
|
+
}
|
|
3721
|
+
]
|
|
3722
|
+
},
|
|
3723
|
+
"VideoSubDescriptors": {
|
|
3724
|
+
"description": "SubDescriptors for video (RGBA/CDCI) descriptors",
|
|
3725
|
+
"type": "object",
|
|
3726
|
+
"properties": {
|
|
3727
|
+
"JPEG2000SubDescriptor": {
|
|
3728
|
+
"description": "JPEG 2000 Picture Sub Descriptor — Table 14 constraints",
|
|
3729
|
+
"default": null,
|
|
3730
|
+
"anyOf": [
|
|
3731
|
+
{
|
|
3732
|
+
"$ref": "#/definitions/JPEG2000SubDescriptor"
|
|
3733
|
+
},
|
|
3734
|
+
{
|
|
3735
|
+
"type": "null"
|
|
3736
|
+
}
|
|
3737
|
+
]
|
|
3738
|
+
},
|
|
3739
|
+
"PHDRMetadataTrackSubDescriptor": {
|
|
3740
|
+
"description": "Presence indicates Dolby Vision HDR",
|
|
3741
|
+
"default": null,
|
|
3742
|
+
"anyOf": [
|
|
3743
|
+
{
|
|
3744
|
+
"$ref": "#/definitions/PHDRMetadataTrackSubDescriptor"
|
|
3745
|
+
},
|
|
3746
|
+
{
|
|
3747
|
+
"type": "null"
|
|
3748
|
+
}
|
|
3749
|
+
]
|
|
3750
|
+
}
|
|
3751
|
+
}
|
|
3752
|
+
},
|
|
3753
|
+
"VolumeIndex": {
|
|
3754
|
+
"description": "VOLINDEX document (SMPTE ST 2067-9 §5 / ST 429-9:2014).\n\nIn practice this is always `<Index>1</Index>` for single-volume IMF packages. The spec allows multi-volume packages but they are rarely used.",
|
|
3755
|
+
"type": "object",
|
|
3756
|
+
"required": [
|
|
3757
|
+
"index"
|
|
3758
|
+
],
|
|
3759
|
+
"properties": {
|
|
3760
|
+
"index": {
|
|
3761
|
+
"description": "The volume count. Almost always `1`.",
|
|
3762
|
+
"type": "integer",
|
|
3763
|
+
"format": "uint32",
|
|
3764
|
+
"minimum": 0.0
|
|
3765
|
+
}
|
|
3766
|
+
}
|
|
3767
|
+
},
|
|
3768
|
+
"WAVEPCMDescriptor": {
|
|
3769
|
+
"description": "WAVE PCM audio descriptor",
|
|
3770
|
+
"type": "object",
|
|
3771
|
+
"properties": {
|
|
3772
|
+
"AudioSampleRate": {
|
|
3773
|
+
"default": null,
|
|
3774
|
+
"anyOf": [
|
|
3775
|
+
{
|
|
3776
|
+
"$ref": "#/definitions/EditRate"
|
|
3777
|
+
},
|
|
3778
|
+
{
|
|
3779
|
+
"type": "null"
|
|
3780
|
+
}
|
|
3781
|
+
]
|
|
3782
|
+
},
|
|
3783
|
+
"ChannelCount": {
|
|
3784
|
+
"default": null,
|
|
3785
|
+
"type": [
|
|
3786
|
+
"integer",
|
|
3787
|
+
"null"
|
|
3788
|
+
],
|
|
3789
|
+
"format": "uint32",
|
|
3790
|
+
"minimum": 0.0
|
|
3791
|
+
},
|
|
3792
|
+
"InstanceID": {
|
|
3793
|
+
"default": null,
|
|
3794
|
+
"type": [
|
|
3795
|
+
"string",
|
|
3796
|
+
"null"
|
|
3797
|
+
]
|
|
3798
|
+
},
|
|
3799
|
+
"LinkedTrackID": {
|
|
3800
|
+
"default": null,
|
|
3801
|
+
"type": [
|
|
3802
|
+
"integer",
|
|
3803
|
+
"null"
|
|
3804
|
+
],
|
|
3805
|
+
"format": "uint32",
|
|
3806
|
+
"minimum": 0.0
|
|
3807
|
+
},
|
|
3808
|
+
"QuantizationBits": {
|
|
3809
|
+
"default": null,
|
|
3810
|
+
"type": [
|
|
3811
|
+
"integer",
|
|
3812
|
+
"null"
|
|
3813
|
+
],
|
|
3814
|
+
"format": "uint32",
|
|
3815
|
+
"minimum": 0.0
|
|
3816
|
+
},
|
|
3817
|
+
"SampleRate": {
|
|
3818
|
+
"default": null,
|
|
3819
|
+
"anyOf": [
|
|
3820
|
+
{
|
|
3821
|
+
"$ref": "#/definitions/EditRate"
|
|
3822
|
+
},
|
|
3823
|
+
{
|
|
3824
|
+
"type": "null"
|
|
3825
|
+
}
|
|
3826
|
+
]
|
|
3827
|
+
},
|
|
3828
|
+
"SubDescriptors": {
|
|
3829
|
+
"default": null,
|
|
3830
|
+
"anyOf": [
|
|
3831
|
+
{
|
|
3832
|
+
"$ref": "#/definitions/AudioSubDescriptors"
|
|
3833
|
+
},
|
|
3834
|
+
{
|
|
3835
|
+
"type": "null"
|
|
3836
|
+
}
|
|
3837
|
+
]
|
|
3838
|
+
}
|
|
3839
|
+
}
|
|
3840
|
+
}
|
|
3841
|
+
}
|
|
3842
|
+
}
|