@imferno/schema 0.1.2

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.
@@ -0,0 +1,2748 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "CompositionPlaylist",
4
+ "description": "Root CPL structure - defines a complete IMF composition",
5
+ "type": "object",
6
+ "required": [
7
+ "ContentTitle",
8
+ "Id",
9
+ "IssueDate",
10
+ "SegmentList"
11
+ ],
12
+ "properties": {
13
+ "Annotation": {
14
+ "default": null,
15
+ "anyOf": [
16
+ {
17
+ "$ref": "#/definitions/LanguageString"
18
+ },
19
+ {
20
+ "type": "null"
21
+ }
22
+ ]
23
+ },
24
+ "CompositionTimecode": {
25
+ "default": null,
26
+ "anyOf": [
27
+ {
28
+ "$ref": "#/definitions/CompositionTimecode"
29
+ },
30
+ {
31
+ "type": "null"
32
+ }
33
+ ]
34
+ },
35
+ "ContentKind": {
36
+ "default": "unknown",
37
+ "allOf": [
38
+ {
39
+ "$ref": "#/definitions/ContentKindElement"
40
+ }
41
+ ]
42
+ },
43
+ "ContentOriginator": {
44
+ "default": null,
45
+ "anyOf": [
46
+ {
47
+ "$ref": "#/definitions/LanguageString"
48
+ },
49
+ {
50
+ "type": "null"
51
+ }
52
+ ]
53
+ },
54
+ "ContentTitle": {
55
+ "$ref": "#/definitions/LanguageString"
56
+ },
57
+ "ContentVersionList": {
58
+ "default": null,
59
+ "anyOf": [
60
+ {
61
+ "$ref": "#/definitions/ContentVersionList"
62
+ },
63
+ {
64
+ "type": "null"
65
+ }
66
+ ]
67
+ },
68
+ "Creator": {
69
+ "default": null,
70
+ "anyOf": [
71
+ {
72
+ "$ref": "#/definitions/LanguageString"
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ]
78
+ },
79
+ "EditRate": {
80
+ "default": null,
81
+ "anyOf": [
82
+ {
83
+ "$ref": "#/definitions/EditRate"
84
+ },
85
+ {
86
+ "type": "null"
87
+ }
88
+ ]
89
+ },
90
+ "EssenceDescriptorList": {
91
+ "default": null,
92
+ "anyOf": [
93
+ {
94
+ "$ref": "#/definitions/EssenceDescriptorList"
95
+ },
96
+ {
97
+ "type": "null"
98
+ }
99
+ ]
100
+ },
101
+ "ExtensionProperties": {
102
+ "default": null,
103
+ "anyOf": [
104
+ {
105
+ "$ref": "#/definitions/ExtensionProperties"
106
+ },
107
+ {
108
+ "type": "null"
109
+ }
110
+ ]
111
+ },
112
+ "Id": {
113
+ "$ref": "#/definitions/ImfUuid"
114
+ },
115
+ "IssueDate": {
116
+ "type": "string"
117
+ },
118
+ "Issuer": {
119
+ "default": null,
120
+ "anyOf": [
121
+ {
122
+ "$ref": "#/definitions/LanguageString"
123
+ },
124
+ {
125
+ "type": "null"
126
+ }
127
+ ]
128
+ },
129
+ "LocaleList": {
130
+ "default": null,
131
+ "anyOf": [
132
+ {
133
+ "$ref": "#/definitions/LocaleList"
134
+ },
135
+ {
136
+ "type": "null"
137
+ }
138
+ ]
139
+ },
140
+ "SegmentList": {
141
+ "$ref": "#/definitions/SegmentList"
142
+ },
143
+ "TotalRunningTime": {
144
+ "default": null,
145
+ "type": [
146
+ "string",
147
+ "null"
148
+ ]
149
+ }
150
+ },
151
+ "definitions": {
152
+ "AudienceElement": {
153
+ "description": "The `<Audience>` element carries an optional `scope` attribute.",
154
+ "type": "object",
155
+ "properties": {
156
+ "$text": {
157
+ "default": null,
158
+ "type": [
159
+ "string",
160
+ "null"
161
+ ]
162
+ },
163
+ "@scope": {
164
+ "default": null,
165
+ "type": [
166
+ "string",
167
+ "null"
168
+ ]
169
+ }
170
+ }
171
+ },
172
+ "AudioSubDescriptors": {
173
+ "description": "SubDescriptors for audio (WAVEPCMDescriptor)",
174
+ "type": "object",
175
+ "properties": {
176
+ "SoundfieldGroupLabelSubDescriptor": {
177
+ "default": null,
178
+ "anyOf": [
179
+ {
180
+ "$ref": "#/definitions/SoundfieldGroupLabelSubDescriptor"
181
+ },
182
+ {
183
+ "type": "null"
184
+ }
185
+ ]
186
+ }
187
+ }
188
+ },
189
+ "CDCIDescriptor": {
190
+ "description": "CDCI video descriptor (YCbCr content)",
191
+ "type": "object",
192
+ "properties": {
193
+ "ActiveHeight": {
194
+ "default": null,
195
+ "type": [
196
+ "integer",
197
+ "null"
198
+ ],
199
+ "format": "uint32",
200
+ "minimum": 0.0
201
+ },
202
+ "ActiveWidth": {
203
+ "default": null,
204
+ "type": [
205
+ "integer",
206
+ "null"
207
+ ],
208
+ "format": "uint32",
209
+ "minimum": 0.0
210
+ },
211
+ "AlphaSampleDepth": {
212
+ "description": "Table 12: AlphaSampleDepth — shall not be present",
213
+ "default": null,
214
+ "type": [
215
+ "integer",
216
+ "null"
217
+ ],
218
+ "format": "uint32",
219
+ "minimum": 0.0
220
+ },
221
+ "AlphaTransparency": {
222
+ "description": "Table 8: AlphaTransparency — shall not be present",
223
+ "default": null,
224
+ "type": [
225
+ "string",
226
+ "null"
227
+ ]
228
+ },
229
+ "BlackRefLevel": {
230
+ "description": "CDCI Descriptor: Black Ref Level (Table 13)",
231
+ "default": null,
232
+ "type": [
233
+ "integer",
234
+ "null"
235
+ ],
236
+ "format": "uint32",
237
+ "minimum": 0.0
238
+ },
239
+ "CodingEquations": {
240
+ "default": null,
241
+ "anyOf": [
242
+ {
243
+ "$ref": "#/definitions/CodingEquations"
244
+ },
245
+ {
246
+ "type": "null"
247
+ }
248
+ ]
249
+ },
250
+ "ColorPrimaries": {
251
+ "default": null,
252
+ "anyOf": [
253
+ {
254
+ "$ref": "#/definitions/ColorPrimaries"
255
+ },
256
+ {
257
+ "type": "null"
258
+ }
259
+ ]
260
+ },
261
+ "ColorRange": {
262
+ "description": "CDCI Descriptor: Color Range (Table 13)",
263
+ "default": null,
264
+ "type": [
265
+ "integer",
266
+ "null"
267
+ ],
268
+ "format": "uint32",
269
+ "minimum": 0.0
270
+ },
271
+ "ColorSiting": {
272
+ "description": "CDCI Descriptor: Color Siting (Table 12) Shall be 0 (CoSiting) but some encoders write a label string (e.g. \"CoSiting\").",
273
+ "default": null,
274
+ "type": [
275
+ "integer",
276
+ "null"
277
+ ],
278
+ "format": "uint32",
279
+ "minimum": 0.0
280
+ },
281
+ "ComponentDepth": {
282
+ "default": null,
283
+ "type": [
284
+ "integer",
285
+ "null"
286
+ ],
287
+ "format": "uint32",
288
+ "minimum": 0.0
289
+ },
290
+ "DisplayF2Offset": {
291
+ "description": "Generic Picture Essence Descriptor: DisplayF2Offset",
292
+ "default": null,
293
+ "type": [
294
+ "integer",
295
+ "null"
296
+ ],
297
+ "format": "int32"
298
+ },
299
+ "DisplayHeight": {
300
+ "default": null,
301
+ "type": [
302
+ "integer",
303
+ "null"
304
+ ],
305
+ "format": "uint32",
306
+ "minimum": 0.0
307
+ },
308
+ "DisplayWidth": {
309
+ "default": null,
310
+ "type": [
311
+ "integer",
312
+ "null"
313
+ ],
314
+ "format": "uint32",
315
+ "minimum": 0.0
316
+ },
317
+ "FieldDominance": {
318
+ "description": "Table 8: FieldDominance — shall be present if interlaced, shall not be present if progressive",
319
+ "default": null,
320
+ "type": [
321
+ "integer",
322
+ "null"
323
+ ],
324
+ "format": "uint32",
325
+ "minimum": 0.0
326
+ },
327
+ "FrameLayout": {
328
+ "description": "Generic Picture Essence Descriptor: Frame Layout \"FullFrame\" (00h, progressive) or \"SeparateFields\" (01h, interlaced)",
329
+ "default": null,
330
+ "type": [
331
+ "string",
332
+ "null"
333
+ ]
334
+ },
335
+ "HorizontalSubsampling": {
336
+ "description": "CDCI Descriptor: Horizontal Subsampling (Table 12) 1 = 4:4:4, 2 = 4:2:2",
337
+ "default": null,
338
+ "type": [
339
+ "integer",
340
+ "null"
341
+ ],
342
+ "format": "uint32",
343
+ "minimum": 0.0
344
+ },
345
+ "ImageAlignmentOffset": {
346
+ "description": "Table 8: ImageAlignmentOffset — shall not be present",
347
+ "default": null,
348
+ "type": [
349
+ "integer",
350
+ "null"
351
+ ],
352
+ "format": "uint32",
353
+ "minimum": 0.0
354
+ },
355
+ "ImageAspectRatio": {
356
+ "default": null,
357
+ "type": [
358
+ "string",
359
+ "null"
360
+ ]
361
+ },
362
+ "ImageEndOffset": {
363
+ "description": "Table 8: ImageEndOffset — shall not be present",
364
+ "default": null,
365
+ "type": [
366
+ "integer",
367
+ "null"
368
+ ],
369
+ "format": "uint32",
370
+ "minimum": 0.0
371
+ },
372
+ "ImageStartOffset": {
373
+ "description": "Table 8: ImageStartOffset — shall not be present",
374
+ "default": null,
375
+ "type": [
376
+ "integer",
377
+ "null"
378
+ ],
379
+ "format": "uint32",
380
+ "minimum": 0.0
381
+ },
382
+ "InstanceUID": {
383
+ "default": null,
384
+ "type": [
385
+ "string",
386
+ "null"
387
+ ]
388
+ },
389
+ "LinkedTrackID": {
390
+ "default": null,
391
+ "type": [
392
+ "integer",
393
+ "null"
394
+ ],
395
+ "format": "uint32",
396
+ "minimum": 0.0
397
+ },
398
+ "PaddingBits": {
399
+ "description": "Table 12: PaddingBits — shall not be present",
400
+ "default": null,
401
+ "type": [
402
+ "integer",
403
+ "null"
404
+ ],
405
+ "format": "int32"
406
+ },
407
+ "PictureCompression": {
408
+ "default": null,
409
+ "anyOf": [
410
+ {
411
+ "$ref": "#/definitions/VideoCodec"
412
+ },
413
+ {
414
+ "type": "null"
415
+ }
416
+ ]
417
+ },
418
+ "ReversedByteOrder": {
419
+ "description": "Table 12: ReversedByteOrder — shall not be present",
420
+ "default": null,
421
+ "type": [
422
+ "string",
423
+ "null"
424
+ ]
425
+ },
426
+ "SampleRate": {
427
+ "default": null,
428
+ "anyOf": [
429
+ {
430
+ "$ref": "#/definitions/EditRate"
431
+ },
432
+ {
433
+ "type": "null"
434
+ }
435
+ ]
436
+ },
437
+ "SampledHeight": {
438
+ "description": "Table 8: SampledHeight — shall not be present or shall be equal to StoredHeight",
439
+ "default": null,
440
+ "type": [
441
+ "integer",
442
+ "null"
443
+ ],
444
+ "format": "uint32",
445
+ "minimum": 0.0
446
+ },
447
+ "SampledWidth": {
448
+ "description": "Table 8: SampledWidth — shall not be present or shall be equal to StoredWidth",
449
+ "default": null,
450
+ "type": [
451
+ "integer",
452
+ "null"
453
+ ],
454
+ "format": "uint32",
455
+ "minimum": 0.0
456
+ },
457
+ "SampledXOffset": {
458
+ "description": "Table 8: SampledXOffset — shall not be present or shall be 0",
459
+ "default": null,
460
+ "type": [
461
+ "integer",
462
+ "null"
463
+ ],
464
+ "format": "uint32",
465
+ "minimum": 0.0
466
+ },
467
+ "SampledYOffset": {
468
+ "description": "Table 8: SampledYOffset — shall not be present or shall be 0",
469
+ "default": null,
470
+ "type": [
471
+ "integer",
472
+ "null"
473
+ ],
474
+ "format": "uint32",
475
+ "minimum": 0.0
476
+ },
477
+ "StoredF2Offset": {
478
+ "description": "Table 8: StoredF2Offset — shall not be present",
479
+ "default": null,
480
+ "type": [
481
+ "integer",
482
+ "null"
483
+ ],
484
+ "format": "int32"
485
+ },
486
+ "StoredHeight": {
487
+ "default": null,
488
+ "type": [
489
+ "integer",
490
+ "null"
491
+ ],
492
+ "format": "uint32",
493
+ "minimum": 0.0
494
+ },
495
+ "StoredWidth": {
496
+ "default": null,
497
+ "type": [
498
+ "integer",
499
+ "null"
500
+ ],
501
+ "format": "uint32",
502
+ "minimum": 0.0
503
+ },
504
+ "SubDescriptors": {
505
+ "default": null,
506
+ "anyOf": [
507
+ {
508
+ "$ref": "#/definitions/VideoSubDescriptors"
509
+ },
510
+ {
511
+ "type": "null"
512
+ }
513
+ ]
514
+ },
515
+ "TransferCharacteristic": {
516
+ "default": null,
517
+ "anyOf": [
518
+ {
519
+ "$ref": "#/definitions/TransferCharacteristic"
520
+ },
521
+ {
522
+ "type": "null"
523
+ }
524
+ ]
525
+ },
526
+ "VerticalSubsampling": {
527
+ "description": "CDCI Descriptor: Vertical Subsampling (Table 12) Shall be 1",
528
+ "default": null,
529
+ "type": [
530
+ "integer",
531
+ "null"
532
+ ],
533
+ "format": "uint32",
534
+ "minimum": 0.0
535
+ },
536
+ "WhiteRefLevel": {
537
+ "description": "CDCI Descriptor: White Ref Level (Table 13)",
538
+ "default": null,
539
+ "type": [
540
+ "integer",
541
+ "null"
542
+ ],
543
+ "format": "uint32",
544
+ "minimum": 0.0
545
+ }
546
+ }
547
+ },
548
+ "CodingEquations": {
549
+ "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).",
550
+ "oneOf": [
551
+ {
552
+ "description": "ITU-R BT.601 — COLOR.1/COLOR.2 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.02010000`",
553
+ "type": "string",
554
+ "enum": [
555
+ "Bt601"
556
+ ]
557
+ },
558
+ {
559
+ "description": "ITU-R BT.709 — COLOR.3/COLOR.4 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.02020000`",
560
+ "type": "string",
561
+ "enum": [
562
+ "Bt709"
563
+ ]
564
+ },
565
+ {
566
+ "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`",
567
+ "type": "string",
568
+ "enum": [
569
+ "Bt2020Ncl"
570
+ ]
571
+ },
572
+ {
573
+ "description": "Unrecognised UL; the original string is preserved.",
574
+ "type": "object",
575
+ "required": [
576
+ "Unknown"
577
+ ],
578
+ "properties": {
579
+ "Unknown": {
580
+ "type": "string"
581
+ }
582
+ },
583
+ "additionalProperties": false
584
+ }
585
+ ]
586
+ },
587
+ "ColorPrimaries": {
588
+ "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).",
589
+ "oneOf": [
590
+ {
591
+ "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)",
592
+ "type": "string",
593
+ "enum": [
594
+ "Bt601_625"
595
+ ]
596
+ },
597
+ {
598
+ "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)",
599
+ "type": "string",
600
+ "enum": [
601
+ "Bt601_525"
602
+ ]
603
+ },
604
+ {
605
+ "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)",
606
+ "type": "string",
607
+ "enum": [
608
+ "Bt709"
609
+ ]
610
+ },
611
+ {
612
+ "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)",
613
+ "type": "string",
614
+ "enum": [
615
+ "Bt2020"
616
+ ]
617
+ },
618
+ {
619
+ "description": "DCI P3 (theatre projection, D60 white point) Canonical UL: `060e2b34.04010100.04010101.03050000` (byte 8 masked)",
620
+ "type": "string",
621
+ "enum": [
622
+ "DciP3"
623
+ ]
624
+ },
625
+ {
626
+ "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)",
627
+ "type": "string",
628
+ "enum": [
629
+ "P3D65"
630
+ ]
631
+ },
632
+ {
633
+ "description": "Unrecognised UL; the original string is preserved.",
634
+ "type": "object",
635
+ "required": [
636
+ "Unknown"
637
+ ],
638
+ "properties": {
639
+ "Unknown": {
640
+ "type": "string"
641
+ }
642
+ },
643
+ "additionalProperties": false
644
+ }
645
+ ]
646
+ },
647
+ "CompositionTimecode": {
648
+ "type": "object",
649
+ "properties": {
650
+ "TimecodeDropFrame": {
651
+ "type": [
652
+ "boolean",
653
+ "null"
654
+ ]
655
+ },
656
+ "TimecodeRate": {
657
+ "type": [
658
+ "integer",
659
+ "null"
660
+ ],
661
+ "format": "uint32",
662
+ "minimum": 0.0
663
+ },
664
+ "TimecodeStartAddress": {
665
+ "type": [
666
+ "string",
667
+ "null"
668
+ ]
669
+ }
670
+ }
671
+ },
672
+ "ContainerConstraintsSubDescriptor": {
673
+ "description": "ContainerConstraintsSubDescriptor — presence required by ST 2067-202 §5",
674
+ "type": "object",
675
+ "properties": {
676
+ "InstanceID": {
677
+ "default": null,
678
+ "type": [
679
+ "string",
680
+ "null"
681
+ ]
682
+ }
683
+ }
684
+ },
685
+ "ContentKindElement": {
686
+ "anyOf": [
687
+ {
688
+ "type": "string"
689
+ },
690
+ {
691
+ "type": "object",
692
+ "required": [
693
+ "$text"
694
+ ],
695
+ "properties": {
696
+ "$text": {
697
+ "type": "string"
698
+ },
699
+ "@scope": {
700
+ "type": [
701
+ "string",
702
+ "null"
703
+ ]
704
+ }
705
+ }
706
+ }
707
+ ]
708
+ },
709
+ "ContentMaturityRating": {
710
+ "description": "A single content maturity rating entry per ST 2067-3 / ST 2067-21 §5.1.3.",
711
+ "type": "object",
712
+ "required": [
713
+ "Agency"
714
+ ],
715
+ "properties": {
716
+ "Agency": {
717
+ "type": "string"
718
+ },
719
+ "Audience": {
720
+ "default": null,
721
+ "anyOf": [
722
+ {
723
+ "$ref": "#/definitions/AudienceElement"
724
+ },
725
+ {
726
+ "type": "null"
727
+ }
728
+ ]
729
+ },
730
+ "Rating": {
731
+ "default": null,
732
+ "type": [
733
+ "string",
734
+ "null"
735
+ ]
736
+ }
737
+ }
738
+ },
739
+ "ContentMaturityRatingList": {
740
+ "type": "object",
741
+ "required": [
742
+ "ContentMaturityRating"
743
+ ],
744
+ "properties": {
745
+ "ContentMaturityRating": {
746
+ "type": "array",
747
+ "items": {
748
+ "$ref": "#/definitions/ContentMaturityRating"
749
+ }
750
+ }
751
+ }
752
+ },
753
+ "ContentVersion": {
754
+ "type": "object",
755
+ "required": [
756
+ "Id"
757
+ ],
758
+ "properties": {
759
+ "Id": {
760
+ "type": "string"
761
+ },
762
+ "LabelText": {
763
+ "default": null,
764
+ "anyOf": [
765
+ {
766
+ "$ref": "#/definitions/LanguageString"
767
+ },
768
+ {
769
+ "type": "null"
770
+ }
771
+ ]
772
+ }
773
+ }
774
+ },
775
+ "ContentVersionList": {
776
+ "type": "object",
777
+ "required": [
778
+ "ContentVersion"
779
+ ],
780
+ "properties": {
781
+ "ContentVersion": {
782
+ "type": "array",
783
+ "items": {
784
+ "$ref": "#/definitions/ContentVersion"
785
+ }
786
+ }
787
+ }
788
+ },
789
+ "DCTimedTextDescriptor": {
790
+ "description": "DC Timed Text descriptor (subtitles/captions)",
791
+ "type": "object",
792
+ "properties": {
793
+ "InstanceID": {
794
+ "default": null,
795
+ "type": [
796
+ "string",
797
+ "null"
798
+ ]
799
+ },
800
+ "LinkedTrackID": {
801
+ "default": null,
802
+ "type": [
803
+ "integer",
804
+ "null"
805
+ ],
806
+ "format": "uint32",
807
+ "minimum": 0.0
808
+ },
809
+ "NamespaceURI": {
810
+ "default": null,
811
+ "type": [
812
+ "string",
813
+ "null"
814
+ ]
815
+ },
816
+ "RFC5646LanguageTagList": {
817
+ "description": "Comma-separated RFC 5646 language tags for this timed text track",
818
+ "default": [],
819
+ "type": "array",
820
+ "items": {
821
+ "$ref": "#/definitions/LanguageTag"
822
+ }
823
+ },
824
+ "SampleRate": {
825
+ "default": null,
826
+ "anyOf": [
827
+ {
828
+ "$ref": "#/definitions/EditRate"
829
+ },
830
+ {
831
+ "type": "null"
832
+ }
833
+ ]
834
+ }
835
+ }
836
+ },
837
+ "EditRate": {
838
+ "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`.",
839
+ "type": "object",
840
+ "required": [
841
+ "denominator",
842
+ "numerator"
843
+ ],
844
+ "properties": {
845
+ "denominator": {
846
+ "type": "integer",
847
+ "format": "uint32",
848
+ "minimum": 0.0
849
+ },
850
+ "numerator": {
851
+ "type": "integer",
852
+ "format": "uint32",
853
+ "minimum": 0.0
854
+ }
855
+ }
856
+ },
857
+ "EssenceDescriptor": {
858
+ "type": "object",
859
+ "required": [
860
+ "Id"
861
+ ],
862
+ "properties": {
863
+ "CDCIDescriptor": {
864
+ "default": null,
865
+ "anyOf": [
866
+ {
867
+ "$ref": "#/definitions/CDCIDescriptor"
868
+ },
869
+ {
870
+ "type": "null"
871
+ }
872
+ ]
873
+ },
874
+ "DCTimedTextDescriptor": {
875
+ "default": null,
876
+ "anyOf": [
877
+ {
878
+ "$ref": "#/definitions/DCTimedTextDescriptor"
879
+ },
880
+ {
881
+ "type": "null"
882
+ }
883
+ ]
884
+ },
885
+ "IABEssenceDescriptor": {
886
+ "default": null,
887
+ "anyOf": [
888
+ {
889
+ "$ref": "#/definitions/IABEssenceDescriptor"
890
+ },
891
+ {
892
+ "type": "null"
893
+ }
894
+ ]
895
+ },
896
+ "ISXDDataEssenceDescriptor": {
897
+ "default": null,
898
+ "anyOf": [
899
+ {
900
+ "$ref": "#/definitions/ISXDDataEssenceDescriptor"
901
+ },
902
+ {
903
+ "type": "null"
904
+ }
905
+ ]
906
+ },
907
+ "Id": {
908
+ "$ref": "#/definitions/ImfUuid"
909
+ },
910
+ "RGBADescriptor": {
911
+ "default": null,
912
+ "anyOf": [
913
+ {
914
+ "$ref": "#/definitions/RGBADescriptor"
915
+ },
916
+ {
917
+ "type": "null"
918
+ }
919
+ ]
920
+ },
921
+ "WAVEPCMDescriptor": {
922
+ "default": null,
923
+ "anyOf": [
924
+ {
925
+ "$ref": "#/definitions/WAVEPCMDescriptor"
926
+ },
927
+ {
928
+ "type": "null"
929
+ }
930
+ ]
931
+ }
932
+ }
933
+ },
934
+ "EssenceDescriptorList": {
935
+ "type": "object",
936
+ "required": [
937
+ "EssenceDescriptor"
938
+ ],
939
+ "properties": {
940
+ "EssenceDescriptor": {
941
+ "type": "array",
942
+ "items": {
943
+ "$ref": "#/definitions/EssenceDescriptor"
944
+ }
945
+ }
946
+ }
947
+ },
948
+ "ExtensionProperties": {
949
+ "type": "object",
950
+ "properties": {
951
+ "ApplicationIdentification": {
952
+ "default": null,
953
+ "type": [
954
+ "string",
955
+ "null"
956
+ ]
957
+ },
958
+ "MaxCLL": {
959
+ "default": null,
960
+ "type": [
961
+ "integer",
962
+ "null"
963
+ ],
964
+ "format": "uint32",
965
+ "minimum": 0.0
966
+ },
967
+ "MaxFALL": {
968
+ "default": null,
969
+ "type": [
970
+ "integer",
971
+ "null"
972
+ ],
973
+ "format": "uint32",
974
+ "minimum": 0.0
975
+ }
976
+ }
977
+ },
978
+ "ForcedNarrativeSequence": {
979
+ "type": "object",
980
+ "required": [
981
+ "Id",
982
+ "ResourceList",
983
+ "TrackId"
984
+ ],
985
+ "properties": {
986
+ "Id": {
987
+ "$ref": "#/definitions/ImfUuid"
988
+ },
989
+ "ResourceList": {
990
+ "$ref": "#/definitions/ResourceList"
991
+ },
992
+ "TrackId": {
993
+ "$ref": "#/definitions/ImfUuid"
994
+ }
995
+ }
996
+ },
997
+ "HearingImpairedCaptionsSequence": {
998
+ "type": "object",
999
+ "required": [
1000
+ "Id",
1001
+ "ResourceList",
1002
+ "TrackId"
1003
+ ],
1004
+ "properties": {
1005
+ "Id": {
1006
+ "$ref": "#/definitions/ImfUuid"
1007
+ },
1008
+ "ResourceList": {
1009
+ "$ref": "#/definitions/ResourceList"
1010
+ },
1011
+ "TrackId": {
1012
+ "$ref": "#/definitions/ImfUuid"
1013
+ }
1014
+ }
1015
+ },
1016
+ "IABEssenceDescriptor": {
1017
+ "description": "IAB (Immersive Audio Bitstream) essence descriptor — Dolby Atmos",
1018
+ "type": "object",
1019
+ "properties": {
1020
+ "AudioSampleRate": {
1021
+ "default": null,
1022
+ "anyOf": [
1023
+ {
1024
+ "$ref": "#/definitions/EditRate"
1025
+ },
1026
+ {
1027
+ "type": "null"
1028
+ }
1029
+ ]
1030
+ },
1031
+ "ChannelCount": {
1032
+ "default": null,
1033
+ "type": [
1034
+ "integer",
1035
+ "null"
1036
+ ],
1037
+ "format": "uint32",
1038
+ "minimum": 0.0
1039
+ },
1040
+ "Codec": {
1041
+ "description": "ST 2067-201 §5.9: Codec item shall NOT be present.",
1042
+ "default": null,
1043
+ "type": [
1044
+ "string",
1045
+ "null"
1046
+ ]
1047
+ },
1048
+ "ContainerFormat": {
1049
+ "description": "ST 2067-201 §5.3: ContainerFormat shall be the IAB essence container UL.",
1050
+ "default": null,
1051
+ "type": [
1052
+ "string",
1053
+ "null"
1054
+ ]
1055
+ },
1056
+ "ElectrospatialFormulation": {
1057
+ "description": "ST 2067-201 §5.9: ElectrospatialFormulation shall NOT be present.",
1058
+ "default": null,
1059
+ "type": [
1060
+ "integer",
1061
+ "null"
1062
+ ],
1063
+ "format": "uint32",
1064
+ "minimum": 0.0
1065
+ },
1066
+ "InstanceID": {
1067
+ "default": null,
1068
+ "type": [
1069
+ "string",
1070
+ "null"
1071
+ ]
1072
+ },
1073
+ "LinkedTrackID": {
1074
+ "default": null,
1075
+ "type": [
1076
+ "integer",
1077
+ "null"
1078
+ ],
1079
+ "format": "uint32",
1080
+ "minimum": 0.0
1081
+ },
1082
+ "QuantizationBits": {
1083
+ "description": "ST 2067-201 §5.9: QuantizationBits shall be 24.",
1084
+ "default": null,
1085
+ "type": [
1086
+ "integer",
1087
+ "null"
1088
+ ],
1089
+ "format": "uint32",
1090
+ "minimum": 0.0
1091
+ },
1092
+ "SampleRate": {
1093
+ "default": null,
1094
+ "anyOf": [
1095
+ {
1096
+ "$ref": "#/definitions/EditRate"
1097
+ },
1098
+ {
1099
+ "type": "null"
1100
+ }
1101
+ ]
1102
+ },
1103
+ "SoundCompression": {
1104
+ "default": null,
1105
+ "type": [
1106
+ "string",
1107
+ "null"
1108
+ ]
1109
+ },
1110
+ "SubDescriptors": {
1111
+ "default": null,
1112
+ "anyOf": [
1113
+ {
1114
+ "$ref": "#/definitions/IABSubDescriptors"
1115
+ },
1116
+ {
1117
+ "type": "null"
1118
+ }
1119
+ ]
1120
+ }
1121
+ }
1122
+ },
1123
+ "IABSequence": {
1124
+ "type": "object",
1125
+ "required": [
1126
+ "Id",
1127
+ "ResourceList",
1128
+ "TrackId"
1129
+ ],
1130
+ "properties": {
1131
+ "Id": {
1132
+ "$ref": "#/definitions/ImfUuid"
1133
+ },
1134
+ "ResourceList": {
1135
+ "$ref": "#/definitions/ResourceList"
1136
+ },
1137
+ "TrackId": {
1138
+ "$ref": "#/definitions/ImfUuid"
1139
+ }
1140
+ }
1141
+ },
1142
+ "IABSoundfieldLabelSubDescriptor": {
1143
+ "description": "IAB soundfield label sub-descriptor — contains language for Atmos tracks",
1144
+ "type": "object",
1145
+ "properties": {
1146
+ "InstanceID": {
1147
+ "default": null,
1148
+ "type": [
1149
+ "string",
1150
+ "null"
1151
+ ]
1152
+ },
1153
+ "MCALabelDictionaryID": {
1154
+ "description": "ST 2067-201 §5.9: MCALabelDictionaryID shall be `urn:smpte:ul:060e2b34.0401010d.03020221.00000000`.",
1155
+ "default": null,
1156
+ "type": [
1157
+ "string",
1158
+ "null"
1159
+ ]
1160
+ },
1161
+ "MCATagName": {
1162
+ "default": null,
1163
+ "type": [
1164
+ "string",
1165
+ "null"
1166
+ ]
1167
+ },
1168
+ "MCATagSymbol": {
1169
+ "default": null,
1170
+ "anyOf": [
1171
+ {
1172
+ "$ref": "#/definitions/McaTagSymbol"
1173
+ },
1174
+ {
1175
+ "type": "null"
1176
+ }
1177
+ ]
1178
+ },
1179
+ "RFC5646SpokenLanguage": {
1180
+ "default": null,
1181
+ "anyOf": [
1182
+ {
1183
+ "$ref": "#/definitions/LanguageTag"
1184
+ },
1185
+ {
1186
+ "type": "null"
1187
+ }
1188
+ ]
1189
+ }
1190
+ }
1191
+ },
1192
+ "IABSubDescriptors": {
1193
+ "description": "SubDescriptors for IAB essence",
1194
+ "type": "object",
1195
+ "properties": {
1196
+ "IABSoundfieldLabelSubDescriptor": {
1197
+ "default": null,
1198
+ "anyOf": [
1199
+ {
1200
+ "$ref": "#/definitions/IABSoundfieldLabelSubDescriptor"
1201
+ },
1202
+ {
1203
+ "type": "null"
1204
+ }
1205
+ ]
1206
+ }
1207
+ }
1208
+ },
1209
+ "ISXDDataEssenceDescriptor": {
1210
+ "description": "ISXD (Immersive Sound XML Data) essence descriptor — Dolby Atmos sidecar format",
1211
+ "type": "object",
1212
+ "properties": {
1213
+ "DataEssenceCoding": {
1214
+ "default": null,
1215
+ "type": [
1216
+ "string",
1217
+ "null"
1218
+ ]
1219
+ },
1220
+ "InstanceID": {
1221
+ "default": null,
1222
+ "type": [
1223
+ "string",
1224
+ "null"
1225
+ ]
1226
+ },
1227
+ "LinkedTrackID": {
1228
+ "default": null,
1229
+ "type": [
1230
+ "integer",
1231
+ "null"
1232
+ ],
1233
+ "format": "uint32",
1234
+ "minimum": 0.0
1235
+ },
1236
+ "NamespaceURI": {
1237
+ "default": null,
1238
+ "type": [
1239
+ "string",
1240
+ "null"
1241
+ ]
1242
+ },
1243
+ "SampleRate": {
1244
+ "default": null,
1245
+ "anyOf": [
1246
+ {
1247
+ "$ref": "#/definitions/EditRate"
1248
+ },
1249
+ {
1250
+ "type": "null"
1251
+ }
1252
+ ]
1253
+ },
1254
+ "SubDescriptors": {
1255
+ "default": null,
1256
+ "anyOf": [
1257
+ {
1258
+ "$ref": "#/definitions/IsxdSubDescriptors"
1259
+ },
1260
+ {
1261
+ "type": "null"
1262
+ }
1263
+ ]
1264
+ }
1265
+ }
1266
+ },
1267
+ "ISXDSequence": {
1268
+ "type": "object",
1269
+ "required": [
1270
+ "Id",
1271
+ "ResourceList",
1272
+ "TrackId"
1273
+ ],
1274
+ "properties": {
1275
+ "Id": {
1276
+ "$ref": "#/definitions/ImfUuid"
1277
+ },
1278
+ "ResourceList": {
1279
+ "$ref": "#/definitions/ResourceList"
1280
+ },
1281
+ "TrackId": {
1282
+ "$ref": "#/definitions/ImfUuid"
1283
+ }
1284
+ }
1285
+ },
1286
+ "ImfUuid": {
1287
+ "description": "A SMPTE IMF UUID, serialised as a bare UUID string (e.g. \"0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85\")",
1288
+ "type": "string",
1289
+ "format": "uuid"
1290
+ },
1291
+ "IsxdSubDescriptors": {
1292
+ "description": "SubDescriptors for ISXD essence descriptor",
1293
+ "type": "object",
1294
+ "properties": {
1295
+ "ContainerConstraintsSubDescriptor": {
1296
+ "description": "ST 2067-202: ContainerConstraintsSubDescriptor shall be present.",
1297
+ "default": null,
1298
+ "anyOf": [
1299
+ {
1300
+ "$ref": "#/definitions/ContainerConstraintsSubDescriptor"
1301
+ },
1302
+ {
1303
+ "type": "null"
1304
+ }
1305
+ ]
1306
+ }
1307
+ }
1308
+ },
1309
+ "J2CLayout": {
1310
+ "description": "J2CLayout — pixel component layout for JPEG 2000 (§6.5.2)",
1311
+ "type": "object",
1312
+ "properties": {
1313
+ "RGBAComponent": {
1314
+ "default": [],
1315
+ "type": "array",
1316
+ "items": {
1317
+ "$ref": "#/definitions/RGBALayoutComponent"
1318
+ }
1319
+ }
1320
+ }
1321
+ },
1322
+ "J2KComponentSizing": {
1323
+ "description": "Individual J2K component sizing",
1324
+ "type": "object",
1325
+ "properties": {
1326
+ "Ssiz": {
1327
+ "description": "Component bit depth minus 1",
1328
+ "default": null,
1329
+ "type": [
1330
+ "integer",
1331
+ "null"
1332
+ ],
1333
+ "format": "uint32",
1334
+ "minimum": 0.0
1335
+ },
1336
+ "XRSiz": {
1337
+ "description": "Horizontal separation of sample",
1338
+ "default": null,
1339
+ "type": [
1340
+ "integer",
1341
+ "null"
1342
+ ],
1343
+ "format": "uint32",
1344
+ "minimum": 0.0
1345
+ },
1346
+ "YRSiz": {
1347
+ "description": "Vertical separation of sample",
1348
+ "default": null,
1349
+ "type": [
1350
+ "integer",
1351
+ "null"
1352
+ ],
1353
+ "format": "uint32",
1354
+ "minimum": 0.0
1355
+ }
1356
+ }
1357
+ },
1358
+ "J2KExtendedCapabilities": {
1359
+ "description": "J2K Extended Capabilities (ISO/IEC 15444-15)",
1360
+ "type": "object",
1361
+ "properties": {
1362
+ "Pcap": {
1363
+ "description": "Profile capabilities (Pcap)",
1364
+ "default": null,
1365
+ "type": [
1366
+ "integer",
1367
+ "null"
1368
+ ],
1369
+ "format": "uint64",
1370
+ "minimum": 0.0
1371
+ }
1372
+ }
1373
+ },
1374
+ "JPEG2000SubDescriptor": {
1375
+ "description": "JPEG 2000 Picture Sub Descriptor (ST 422 / ST 2067-21 Table 14)",
1376
+ "type": "object",
1377
+ "properties": {
1378
+ "CodingStyleDefault": {
1379
+ "description": "Table 14: Coding Style — shall be present",
1380
+ "default": null,
1381
+ "type": [
1382
+ "string",
1383
+ "null"
1384
+ ]
1385
+ },
1386
+ "Csiz": {
1387
+ "description": "Number of components (Csiz)",
1388
+ "default": null,
1389
+ "type": [
1390
+ "integer",
1391
+ "null"
1392
+ ],
1393
+ "format": "uint32",
1394
+ "minimum": 0.0
1395
+ },
1396
+ "InstanceID": {
1397
+ "default": null,
1398
+ "type": [
1399
+ "string",
1400
+ "null"
1401
+ ]
1402
+ },
1403
+ "J2CLayout": {
1404
+ "description": "Table 14: J2CLayout — shall be present (§6.5.2)",
1405
+ "default": null,
1406
+ "anyOf": [
1407
+ {
1408
+ "$ref": "#/definitions/J2CLayout"
1409
+ },
1410
+ {
1411
+ "type": "null"
1412
+ }
1413
+ ]
1414
+ },
1415
+ "J2KExtendedCapabilities": {
1416
+ "description": "Table 14: J2KExtendedCapabilities — shall be present if ISO/IEC 15444-15 coding",
1417
+ "default": null,
1418
+ "anyOf": [
1419
+ {
1420
+ "$ref": "#/definitions/J2KExtendedCapabilities"
1421
+ },
1422
+ {
1423
+ "type": "null"
1424
+ }
1425
+ ]
1426
+ },
1427
+ "PictureComponentSizing": {
1428
+ "description": "Picture component sizing information",
1429
+ "default": null,
1430
+ "anyOf": [
1431
+ {
1432
+ "$ref": "#/definitions/PictureComponentSizing"
1433
+ },
1434
+ {
1435
+ "type": "null"
1436
+ }
1437
+ ]
1438
+ },
1439
+ "QuantizationDefault": {
1440
+ "description": "Quantization Default",
1441
+ "default": null,
1442
+ "type": [
1443
+ "string",
1444
+ "null"
1445
+ ]
1446
+ },
1447
+ "Rsiz": {
1448
+ "description": "Decoder capabilities (Rsiz)",
1449
+ "default": null,
1450
+ "type": [
1451
+ "integer",
1452
+ "null"
1453
+ ],
1454
+ "format": "uint32",
1455
+ "minimum": 0.0
1456
+ },
1457
+ "XOsiz": {
1458
+ "description": "Image X offset (XOsiz)",
1459
+ "default": null,
1460
+ "type": [
1461
+ "integer",
1462
+ "null"
1463
+ ],
1464
+ "format": "uint32",
1465
+ "minimum": 0.0
1466
+ },
1467
+ "XTOsiz": {
1468
+ "description": "Tile X offset (XTOsiz)",
1469
+ "default": null,
1470
+ "type": [
1471
+ "integer",
1472
+ "null"
1473
+ ],
1474
+ "format": "uint32",
1475
+ "minimum": 0.0
1476
+ },
1477
+ "XTsiz": {
1478
+ "description": "Tile width (XTsiz)",
1479
+ "default": null,
1480
+ "type": [
1481
+ "integer",
1482
+ "null"
1483
+ ],
1484
+ "format": "uint32",
1485
+ "minimum": 0.0
1486
+ },
1487
+ "Xsiz": {
1488
+ "description": "Image width (Xsiz)",
1489
+ "default": null,
1490
+ "type": [
1491
+ "integer",
1492
+ "null"
1493
+ ],
1494
+ "format": "uint32",
1495
+ "minimum": 0.0
1496
+ },
1497
+ "YOsiz": {
1498
+ "description": "Image Y offset (YOsiz)",
1499
+ "default": null,
1500
+ "type": [
1501
+ "integer",
1502
+ "null"
1503
+ ],
1504
+ "format": "uint32",
1505
+ "minimum": 0.0
1506
+ },
1507
+ "YTOsiz": {
1508
+ "description": "Tile Y offset (YTOsiz)",
1509
+ "default": null,
1510
+ "type": [
1511
+ "integer",
1512
+ "null"
1513
+ ],
1514
+ "format": "uint32",
1515
+ "minimum": 0.0
1516
+ },
1517
+ "YTsiz": {
1518
+ "description": "Tile height (YTsiz)",
1519
+ "default": null,
1520
+ "type": [
1521
+ "integer",
1522
+ "null"
1523
+ ],
1524
+ "format": "uint32",
1525
+ "minimum": 0.0
1526
+ },
1527
+ "Ysiz": {
1528
+ "description": "Image height (Ysiz)",
1529
+ "default": null,
1530
+ "type": [
1531
+ "integer",
1532
+ "null"
1533
+ ],
1534
+ "format": "uint32",
1535
+ "minimum": 0.0
1536
+ }
1537
+ }
1538
+ },
1539
+ "LanguageList": {
1540
+ "type": "object",
1541
+ "required": [
1542
+ "Language"
1543
+ ],
1544
+ "properties": {
1545
+ "Language": {
1546
+ "type": "array",
1547
+ "items": {
1548
+ "$ref": "#/definitions/LanguageTag"
1549
+ }
1550
+ }
1551
+ }
1552
+ },
1553
+ "LanguageString": {
1554
+ "anyOf": [
1555
+ {
1556
+ "type": "string"
1557
+ },
1558
+ {
1559
+ "type": "object",
1560
+ "required": [
1561
+ "$text"
1562
+ ],
1563
+ "properties": {
1564
+ "$text": {
1565
+ "type": "string"
1566
+ },
1567
+ "@language": {
1568
+ "type": [
1569
+ "string",
1570
+ "null"
1571
+ ]
1572
+ }
1573
+ }
1574
+ }
1575
+ ]
1576
+ },
1577
+ "LanguageTag": {
1578
+ "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.",
1579
+ "type": "string"
1580
+ },
1581
+ "Locale": {
1582
+ "type": "object",
1583
+ "properties": {
1584
+ "ContentMaturityRatingList": {
1585
+ "default": null,
1586
+ "anyOf": [
1587
+ {
1588
+ "$ref": "#/definitions/ContentMaturityRatingList"
1589
+ },
1590
+ {
1591
+ "type": "null"
1592
+ }
1593
+ ]
1594
+ },
1595
+ "LanguageList": {
1596
+ "default": null,
1597
+ "anyOf": [
1598
+ {
1599
+ "$ref": "#/definitions/LanguageList"
1600
+ },
1601
+ {
1602
+ "type": "null"
1603
+ }
1604
+ ]
1605
+ },
1606
+ "RegionList": {
1607
+ "default": null,
1608
+ "anyOf": [
1609
+ {
1610
+ "$ref": "#/definitions/RegionList"
1611
+ },
1612
+ {
1613
+ "type": "null"
1614
+ }
1615
+ ]
1616
+ }
1617
+ }
1618
+ },
1619
+ "LocaleList": {
1620
+ "description": "LocaleList - Content locale information",
1621
+ "type": "object",
1622
+ "required": [
1623
+ "Locale"
1624
+ ],
1625
+ "properties": {
1626
+ "Locale": {
1627
+ "type": "array",
1628
+ "items": {
1629
+ "$ref": "#/definitions/Locale"
1630
+ }
1631
+ }
1632
+ }
1633
+ },
1634
+ "MainAudioSequence": {
1635
+ "type": "object",
1636
+ "required": [
1637
+ "Id",
1638
+ "ResourceList",
1639
+ "TrackId"
1640
+ ],
1641
+ "properties": {
1642
+ "Id": {
1643
+ "$ref": "#/definitions/ImfUuid"
1644
+ },
1645
+ "ResourceList": {
1646
+ "$ref": "#/definitions/ResourceList"
1647
+ },
1648
+ "TrackId": {
1649
+ "$ref": "#/definitions/ImfUuid"
1650
+ }
1651
+ }
1652
+ },
1653
+ "MainImageSequence": {
1654
+ "type": "object",
1655
+ "required": [
1656
+ "Id",
1657
+ "ResourceList",
1658
+ "TrackId"
1659
+ ],
1660
+ "properties": {
1661
+ "Id": {
1662
+ "$ref": "#/definitions/ImfUuid"
1663
+ },
1664
+ "ResourceList": {
1665
+ "$ref": "#/definitions/ResourceList"
1666
+ },
1667
+ "TrackId": {
1668
+ "$ref": "#/definitions/ImfUuid"
1669
+ }
1670
+ }
1671
+ },
1672
+ "MarkerInfo": {
1673
+ "type": "object",
1674
+ "required": [
1675
+ "Label",
1676
+ "Offset"
1677
+ ],
1678
+ "properties": {
1679
+ "Annotation": {
1680
+ "default": null,
1681
+ "type": [
1682
+ "string",
1683
+ "null"
1684
+ ]
1685
+ },
1686
+ "Label": {
1687
+ "$ref": "#/definitions/MarkerLabelElement"
1688
+ },
1689
+ "Offset": {
1690
+ "type": "integer",
1691
+ "format": "uint64",
1692
+ "minimum": 0.0
1693
+ }
1694
+ }
1695
+ },
1696
+ "MarkerLabelElement": {
1697
+ "anyOf": [
1698
+ {
1699
+ "type": "string"
1700
+ },
1701
+ {
1702
+ "type": "object",
1703
+ "required": [
1704
+ "$text"
1705
+ ],
1706
+ "properties": {
1707
+ "$text": {
1708
+ "type": "string"
1709
+ },
1710
+ "@scope": {
1711
+ "type": [
1712
+ "string",
1713
+ "null"
1714
+ ]
1715
+ }
1716
+ }
1717
+ }
1718
+ ]
1719
+ },
1720
+ "MarkerSequence": {
1721
+ "type": "object",
1722
+ "required": [
1723
+ "Id",
1724
+ "ResourceList",
1725
+ "TrackId"
1726
+ ],
1727
+ "properties": {
1728
+ "Id": {
1729
+ "$ref": "#/definitions/ImfUuid"
1730
+ },
1731
+ "ResourceList": {
1732
+ "$ref": "#/definitions/ResourceList"
1733
+ },
1734
+ "TrackId": {
1735
+ "$ref": "#/definitions/ImfUuid"
1736
+ }
1737
+ }
1738
+ },
1739
+ "McaTagSymbol": {
1740
+ "description": "MCA (Multi-Channel Audio) tag symbol per SMPTE ST 377-4.\n\nUsed in `<MCATagSymbol>` in `SoundfieldGroupLabelSubDescriptor` and `AudioChannelLabelSubDescriptor`.",
1741
+ "oneOf": [
1742
+ {
1743
+ "type": "string",
1744
+ "enum": [
1745
+ "Left",
1746
+ "Right",
1747
+ "Center",
1748
+ "Lfe",
1749
+ "LeftSurround",
1750
+ "RightSurround",
1751
+ "LeftSideSurround",
1752
+ "RightSideSurround",
1753
+ "LeftRearSurround",
1754
+ "RightRearSurround"
1755
+ ]
1756
+ },
1757
+ {
1758
+ "description": "5.1 Surround",
1759
+ "type": "string",
1760
+ "enum": [
1761
+ "Sg51"
1762
+ ]
1763
+ },
1764
+ {
1765
+ "description": "7.1 Surround",
1766
+ "type": "string",
1767
+ "enum": [
1768
+ "Sg71"
1769
+ ]
1770
+ },
1771
+ {
1772
+ "description": "7.1 DS (Dolby Surround)",
1773
+ "type": "string",
1774
+ "enum": [
1775
+ "Sg71Ds"
1776
+ ]
1777
+ },
1778
+ {
1779
+ "description": "Stereo / Lt-Rt matrixed",
1780
+ "type": "string",
1781
+ "enum": [
1782
+ "SgSt"
1783
+ ]
1784
+ },
1785
+ {
1786
+ "description": "Mono",
1787
+ "type": "string",
1788
+ "enum": [
1789
+ "SgMono"
1790
+ ]
1791
+ },
1792
+ {
1793
+ "description": "IAB (Immersive Audio Bitstream / Dolby Atmos)",
1794
+ "type": "string",
1795
+ "enum": [
1796
+ "Iab"
1797
+ ]
1798
+ },
1799
+ {
1800
+ "description": "Unrecognised; the original string is preserved.",
1801
+ "type": "object",
1802
+ "required": [
1803
+ "Other"
1804
+ ],
1805
+ "properties": {
1806
+ "Other": {
1807
+ "type": "string"
1808
+ }
1809
+ },
1810
+ "additionalProperties": false
1811
+ }
1812
+ ]
1813
+ },
1814
+ "PHDRMetadataTrackSubDescriptor": {
1815
+ "description": "PHDR (Dolby Vision) metadata track sub-descriptor",
1816
+ "type": "object",
1817
+ "properties": {
1818
+ "InstanceID": {
1819
+ "default": null,
1820
+ "type": [
1821
+ "string",
1822
+ "null"
1823
+ ]
1824
+ },
1825
+ "PHDRMetadataTrackSubDescriptor_DataDefinition": {
1826
+ "default": null,
1827
+ "type": [
1828
+ "string",
1829
+ "null"
1830
+ ]
1831
+ },
1832
+ "PHDRMetadataTrackSubDescriptor_SimplePayloadSID": {
1833
+ "default": null,
1834
+ "type": [
1835
+ "integer",
1836
+ "null"
1837
+ ],
1838
+ "format": "uint32",
1839
+ "minimum": 0.0
1840
+ },
1841
+ "PHDRMetadataTrackSubDescriptor_SourceTrackID": {
1842
+ "default": null,
1843
+ "type": [
1844
+ "integer",
1845
+ "null"
1846
+ ],
1847
+ "format": "uint32",
1848
+ "minimum": 0.0
1849
+ }
1850
+ }
1851
+ },
1852
+ "PictureComponentSizing": {
1853
+ "description": "Picture component sizing information",
1854
+ "type": "object",
1855
+ "properties": {
1856
+ "J2KComponentSizing": {
1857
+ "default": [],
1858
+ "type": "array",
1859
+ "items": {
1860
+ "$ref": "#/definitions/J2KComponentSizing"
1861
+ }
1862
+ }
1863
+ }
1864
+ },
1865
+ "RGBADescriptor": {
1866
+ "description": "RGBA video descriptor (JPEG 2000 RGB content)",
1867
+ "type": "object",
1868
+ "properties": {
1869
+ "AlphaMaxRef": {
1870
+ "description": "Table 10: AlphaMaxRef — shall not be present",
1871
+ "default": null,
1872
+ "type": [
1873
+ "integer",
1874
+ "null"
1875
+ ],
1876
+ "format": "uint32",
1877
+ "minimum": 0.0
1878
+ },
1879
+ "AlphaMinRef": {
1880
+ "description": "Table 10: AlphaMinRef — shall not be present",
1881
+ "default": null,
1882
+ "type": [
1883
+ "integer",
1884
+ "null"
1885
+ ],
1886
+ "format": "uint32",
1887
+ "minimum": 0.0
1888
+ },
1889
+ "AlphaTransparency": {
1890
+ "description": "Table 8: AlphaTransparency — shall not be present",
1891
+ "default": null,
1892
+ "type": [
1893
+ "string",
1894
+ "null"
1895
+ ]
1896
+ },
1897
+ "CodingEquations": {
1898
+ "default": null,
1899
+ "anyOf": [
1900
+ {
1901
+ "$ref": "#/definitions/CodingEquations"
1902
+ },
1903
+ {
1904
+ "type": "null"
1905
+ }
1906
+ ]
1907
+ },
1908
+ "ColorPrimaries": {
1909
+ "default": null,
1910
+ "anyOf": [
1911
+ {
1912
+ "$ref": "#/definitions/ColorPrimaries"
1913
+ },
1914
+ {
1915
+ "type": "null"
1916
+ }
1917
+ ]
1918
+ },
1919
+ "ComponentMaxRef": {
1920
+ "description": "RGBA Descriptor: Component Max Ref (Table 10/11)",
1921
+ "default": null,
1922
+ "type": [
1923
+ "integer",
1924
+ "null"
1925
+ ],
1926
+ "format": "uint32",
1927
+ "minimum": 0.0
1928
+ },
1929
+ "ComponentMinRef": {
1930
+ "description": "RGBA Descriptor: Component Min Ref (Table 10/11)",
1931
+ "default": null,
1932
+ "type": [
1933
+ "integer",
1934
+ "null"
1935
+ ],
1936
+ "format": "uint32",
1937
+ "minimum": 0.0
1938
+ },
1939
+ "DisplayF2Offset": {
1940
+ "description": "Generic Picture Essence Descriptor: DisplayF2Offset",
1941
+ "default": null,
1942
+ "type": [
1943
+ "integer",
1944
+ "null"
1945
+ ],
1946
+ "format": "int32"
1947
+ },
1948
+ "DisplayHeight": {
1949
+ "default": null,
1950
+ "type": [
1951
+ "integer",
1952
+ "null"
1953
+ ],
1954
+ "format": "uint32",
1955
+ "minimum": 0.0
1956
+ },
1957
+ "DisplayWidth": {
1958
+ "default": null,
1959
+ "type": [
1960
+ "integer",
1961
+ "null"
1962
+ ],
1963
+ "format": "uint32",
1964
+ "minimum": 0.0
1965
+ },
1966
+ "FieldDominance": {
1967
+ "description": "Table 8: FieldDominance — shall be present if interlaced, shall not be present if progressive",
1968
+ "default": null,
1969
+ "type": [
1970
+ "integer",
1971
+ "null"
1972
+ ],
1973
+ "format": "uint32",
1974
+ "minimum": 0.0
1975
+ },
1976
+ "FrameLayout": {
1977
+ "description": "Generic Picture Essence Descriptor: Frame Layout \"FullFrame\" (00h, progressive) or \"SeparateFields\" (01h, interlaced)",
1978
+ "default": null,
1979
+ "type": [
1980
+ "string",
1981
+ "null"
1982
+ ]
1983
+ },
1984
+ "ImageAlignmentOffset": {
1985
+ "description": "Table 8: ImageAlignmentOffset — shall not be present",
1986
+ "default": null,
1987
+ "type": [
1988
+ "integer",
1989
+ "null"
1990
+ ],
1991
+ "format": "uint32",
1992
+ "minimum": 0.0
1993
+ },
1994
+ "ImageAspectRatio": {
1995
+ "default": null,
1996
+ "type": [
1997
+ "string",
1998
+ "null"
1999
+ ]
2000
+ },
2001
+ "ImageEndOffset": {
2002
+ "description": "Table 8: ImageEndOffset — shall not be present",
2003
+ "default": null,
2004
+ "type": [
2005
+ "integer",
2006
+ "null"
2007
+ ],
2008
+ "format": "uint32",
2009
+ "minimum": 0.0
2010
+ },
2011
+ "ImageStartOffset": {
2012
+ "description": "Table 8: ImageStartOffset — shall not be present",
2013
+ "default": null,
2014
+ "type": [
2015
+ "integer",
2016
+ "null"
2017
+ ],
2018
+ "format": "uint32",
2019
+ "minimum": 0.0
2020
+ },
2021
+ "InstanceID": {
2022
+ "default": null,
2023
+ "type": [
2024
+ "string",
2025
+ "null"
2026
+ ]
2027
+ },
2028
+ "LinkedTrackID": {
2029
+ "default": null,
2030
+ "type": [
2031
+ "integer",
2032
+ "null"
2033
+ ],
2034
+ "format": "uint32",
2035
+ "minimum": 0.0
2036
+ },
2037
+ "Palette": {
2038
+ "description": "Table 10: Palette — shall not be present",
2039
+ "default": null,
2040
+ "type": [
2041
+ "string",
2042
+ "null"
2043
+ ]
2044
+ },
2045
+ "PaletteLayout": {
2046
+ "description": "Table 10: PaletteLayout — shall not be present",
2047
+ "default": null,
2048
+ "type": [
2049
+ "string",
2050
+ "null"
2051
+ ]
2052
+ },
2053
+ "PictureCompression": {
2054
+ "default": null,
2055
+ "anyOf": [
2056
+ {
2057
+ "$ref": "#/definitions/VideoCodec"
2058
+ },
2059
+ {
2060
+ "type": "null"
2061
+ }
2062
+ ]
2063
+ },
2064
+ "SampleRate": {
2065
+ "default": null,
2066
+ "anyOf": [
2067
+ {
2068
+ "$ref": "#/definitions/EditRate"
2069
+ },
2070
+ {
2071
+ "type": "null"
2072
+ }
2073
+ ]
2074
+ },
2075
+ "SampledHeight": {
2076
+ "description": "Table 8: SampledHeight — shall not be present or shall be equal to StoredHeight",
2077
+ "default": null,
2078
+ "type": [
2079
+ "integer",
2080
+ "null"
2081
+ ],
2082
+ "format": "uint32",
2083
+ "minimum": 0.0
2084
+ },
2085
+ "SampledWidth": {
2086
+ "description": "Table 8: SampledWidth — shall not be present or shall be equal to StoredWidth",
2087
+ "default": null,
2088
+ "type": [
2089
+ "integer",
2090
+ "null"
2091
+ ],
2092
+ "format": "uint32",
2093
+ "minimum": 0.0
2094
+ },
2095
+ "SampledXOffset": {
2096
+ "description": "Table 8: SampledXOffset — shall not be present or shall be 0",
2097
+ "default": null,
2098
+ "type": [
2099
+ "integer",
2100
+ "null"
2101
+ ],
2102
+ "format": "uint32",
2103
+ "minimum": 0.0
2104
+ },
2105
+ "SampledYOffset": {
2106
+ "description": "Table 8: SampledYOffset — shall not be present or shall be 0",
2107
+ "default": null,
2108
+ "type": [
2109
+ "integer",
2110
+ "null"
2111
+ ],
2112
+ "format": "uint32",
2113
+ "minimum": 0.0
2114
+ },
2115
+ "ScanningDirection": {
2116
+ "description": "RGBA Descriptor: Scanning Direction (Table 10) Shall be \"ScanningDirection_LeftToRightTopToBottom\" (00h)",
2117
+ "default": null,
2118
+ "type": [
2119
+ "string",
2120
+ "null"
2121
+ ]
2122
+ },
2123
+ "StoredF2Offset": {
2124
+ "description": "Table 8: StoredF2Offset — shall not be present",
2125
+ "default": null,
2126
+ "type": [
2127
+ "integer",
2128
+ "null"
2129
+ ],
2130
+ "format": "int32"
2131
+ },
2132
+ "StoredHeight": {
2133
+ "default": null,
2134
+ "type": [
2135
+ "integer",
2136
+ "null"
2137
+ ],
2138
+ "format": "uint32",
2139
+ "minimum": 0.0
2140
+ },
2141
+ "StoredWidth": {
2142
+ "default": null,
2143
+ "type": [
2144
+ "integer",
2145
+ "null"
2146
+ ],
2147
+ "format": "uint32",
2148
+ "minimum": 0.0
2149
+ },
2150
+ "SubDescriptors": {
2151
+ "default": null,
2152
+ "anyOf": [
2153
+ {
2154
+ "$ref": "#/definitions/VideoSubDescriptors"
2155
+ },
2156
+ {
2157
+ "type": "null"
2158
+ }
2159
+ ]
2160
+ },
2161
+ "TransferCharacteristic": {
2162
+ "default": null,
2163
+ "anyOf": [
2164
+ {
2165
+ "$ref": "#/definitions/TransferCharacteristic"
2166
+ },
2167
+ {
2168
+ "type": "null"
2169
+ }
2170
+ ]
2171
+ }
2172
+ }
2173
+ },
2174
+ "RGBALayoutComponent": {
2175
+ "description": "RGBA component entry within J2CLayout or PixelLayout",
2176
+ "type": "object",
2177
+ "properties": {
2178
+ "Code": {
2179
+ "description": "Absent in intentionally malformed corpus files (e.g. RGBAError1). Default to empty string so the parser succeeds; the validator flags missing codes.",
2180
+ "default": "",
2181
+ "type": "string"
2182
+ },
2183
+ "ComponentSize": {
2184
+ "default": 0,
2185
+ "type": "integer",
2186
+ "format": "uint32",
2187
+ "minimum": 0.0
2188
+ }
2189
+ }
2190
+ },
2191
+ "RegionList": {
2192
+ "type": "object",
2193
+ "required": [
2194
+ "Region"
2195
+ ],
2196
+ "properties": {
2197
+ "Region": {
2198
+ "type": "array",
2199
+ "items": {
2200
+ "type": "string"
2201
+ }
2202
+ }
2203
+ }
2204
+ },
2205
+ "Resource": {
2206
+ "type": "object",
2207
+ "required": [
2208
+ "Id",
2209
+ "IntrinsicDuration"
2210
+ ],
2211
+ "properties": {
2212
+ "Annotation": {
2213
+ "default": null,
2214
+ "anyOf": [
2215
+ {
2216
+ "$ref": "#/definitions/LanguageString"
2217
+ },
2218
+ {
2219
+ "type": "null"
2220
+ }
2221
+ ]
2222
+ },
2223
+ "EditRate": {
2224
+ "default": null,
2225
+ "anyOf": [
2226
+ {
2227
+ "$ref": "#/definitions/EditRate"
2228
+ },
2229
+ {
2230
+ "type": "null"
2231
+ }
2232
+ ]
2233
+ },
2234
+ "EntryPoint": {
2235
+ "default": null,
2236
+ "type": [
2237
+ "integer",
2238
+ "null"
2239
+ ],
2240
+ "format": "uint64",
2241
+ "minimum": 0.0
2242
+ },
2243
+ "Hash": {
2244
+ "default": null,
2245
+ "type": [
2246
+ "string",
2247
+ "null"
2248
+ ]
2249
+ },
2250
+ "Id": {
2251
+ "$ref": "#/definitions/ImfUuid"
2252
+ },
2253
+ "IntrinsicDuration": {
2254
+ "type": "integer",
2255
+ "format": "uint64",
2256
+ "minimum": 0.0
2257
+ },
2258
+ "KeyId": {
2259
+ "default": null,
2260
+ "anyOf": [
2261
+ {
2262
+ "$ref": "#/definitions/ImfUuid"
2263
+ },
2264
+ {
2265
+ "type": "null"
2266
+ }
2267
+ ]
2268
+ },
2269
+ "Marker": {
2270
+ "default": [],
2271
+ "type": "array",
2272
+ "items": {
2273
+ "$ref": "#/definitions/MarkerInfo"
2274
+ }
2275
+ },
2276
+ "RepeatCount": {
2277
+ "default": null,
2278
+ "type": [
2279
+ "integer",
2280
+ "null"
2281
+ ],
2282
+ "format": "uint64",
2283
+ "minimum": 0.0
2284
+ },
2285
+ "SourceDuration": {
2286
+ "default": null,
2287
+ "type": [
2288
+ "integer",
2289
+ "null"
2290
+ ],
2291
+ "format": "uint64",
2292
+ "minimum": 0.0
2293
+ },
2294
+ "SourceEncoding": {
2295
+ "default": null,
2296
+ "anyOf": [
2297
+ {
2298
+ "$ref": "#/definitions/ImfUuid"
2299
+ },
2300
+ {
2301
+ "type": "null"
2302
+ }
2303
+ ]
2304
+ },
2305
+ "TrackFileId": {
2306
+ "default": null,
2307
+ "anyOf": [
2308
+ {
2309
+ "$ref": "#/definitions/ImfUuid"
2310
+ },
2311
+ {
2312
+ "type": "null"
2313
+ }
2314
+ ]
2315
+ }
2316
+ }
2317
+ },
2318
+ "ResourceList": {
2319
+ "type": "object",
2320
+ "properties": {
2321
+ "Resource": {
2322
+ "default": [],
2323
+ "type": "array",
2324
+ "items": {
2325
+ "$ref": "#/definitions/Resource"
2326
+ }
2327
+ }
2328
+ }
2329
+ },
2330
+ "Segment": {
2331
+ "type": "object",
2332
+ "required": [
2333
+ "Id",
2334
+ "SequenceList"
2335
+ ],
2336
+ "properties": {
2337
+ "Id": {
2338
+ "$ref": "#/definitions/ImfUuid"
2339
+ },
2340
+ "SequenceList": {
2341
+ "$ref": "#/definitions/SequenceList"
2342
+ }
2343
+ }
2344
+ },
2345
+ "SegmentList": {
2346
+ "type": "object",
2347
+ "required": [
2348
+ "Segment"
2349
+ ],
2350
+ "properties": {
2351
+ "Segment": {
2352
+ "type": "array",
2353
+ "items": {
2354
+ "$ref": "#/definitions/Segment"
2355
+ }
2356
+ }
2357
+ }
2358
+ },
2359
+ "SequenceList": {
2360
+ "type": "object",
2361
+ "properties": {
2362
+ "ForcedNarrativeSequence": {
2363
+ "default": [],
2364
+ "type": "array",
2365
+ "items": {
2366
+ "$ref": "#/definitions/ForcedNarrativeSequence"
2367
+ }
2368
+ },
2369
+ "HearingImpairedCaptionsSequence": {
2370
+ "default": [],
2371
+ "type": "array",
2372
+ "items": {
2373
+ "$ref": "#/definitions/HearingImpairedCaptionsSequence"
2374
+ }
2375
+ },
2376
+ "IABSequence": {
2377
+ "default": [],
2378
+ "type": "array",
2379
+ "items": {
2380
+ "$ref": "#/definitions/IABSequence"
2381
+ }
2382
+ },
2383
+ "ISXDSequence": {
2384
+ "default": [],
2385
+ "type": "array",
2386
+ "items": {
2387
+ "$ref": "#/definitions/ISXDSequence"
2388
+ }
2389
+ },
2390
+ "MainAudioSequence": {
2391
+ "default": [],
2392
+ "type": "array",
2393
+ "items": {
2394
+ "$ref": "#/definitions/MainAudioSequence"
2395
+ }
2396
+ },
2397
+ "MainImageSequence": {
2398
+ "default": [],
2399
+ "type": "array",
2400
+ "items": {
2401
+ "$ref": "#/definitions/MainImageSequence"
2402
+ }
2403
+ },
2404
+ "MarkerSequence": {
2405
+ "default": [],
2406
+ "type": "array",
2407
+ "items": {
2408
+ "$ref": "#/definitions/MarkerSequence"
2409
+ }
2410
+ },
2411
+ "SubtitlesSequence": {
2412
+ "default": [],
2413
+ "type": "array",
2414
+ "items": {
2415
+ "$ref": "#/definitions/SubtitlesSequence"
2416
+ }
2417
+ }
2418
+ }
2419
+ },
2420
+ "SoundfieldGroupLabelSubDescriptor": {
2421
+ "description": "Soundfield group label sub-descriptor — contains language and audio content kind",
2422
+ "type": "object",
2423
+ "properties": {
2424
+ "MCAAudioContentKind": {
2425
+ "default": null,
2426
+ "type": [
2427
+ "string",
2428
+ "null"
2429
+ ]
2430
+ },
2431
+ "MCATagName": {
2432
+ "default": null,
2433
+ "type": [
2434
+ "string",
2435
+ "null"
2436
+ ]
2437
+ },
2438
+ "MCATagSymbol": {
2439
+ "default": null,
2440
+ "anyOf": [
2441
+ {
2442
+ "$ref": "#/definitions/McaTagSymbol"
2443
+ },
2444
+ {
2445
+ "type": "null"
2446
+ }
2447
+ ]
2448
+ },
2449
+ "RFC5646SpokenLanguage": {
2450
+ "description": "RFC 5646 language tag — field name varies between vendors",
2451
+ "default": null,
2452
+ "anyOf": [
2453
+ {
2454
+ "$ref": "#/definitions/LanguageTag"
2455
+ },
2456
+ {
2457
+ "type": "null"
2458
+ }
2459
+ ]
2460
+ }
2461
+ }
2462
+ },
2463
+ "SubtitlesSequence": {
2464
+ "type": "object",
2465
+ "required": [
2466
+ "Id",
2467
+ "ResourceList",
2468
+ "TrackId"
2469
+ ],
2470
+ "properties": {
2471
+ "Id": {
2472
+ "$ref": "#/definitions/ImfUuid"
2473
+ },
2474
+ "ResourceList": {
2475
+ "$ref": "#/definitions/ResourceList"
2476
+ },
2477
+ "TrackId": {
2478
+ "$ref": "#/definitions/ImfUuid"
2479
+ }
2480
+ }
2481
+ },
2482
+ "TransferCharacteristic": {
2483
+ "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).",
2484
+ "oneOf": [
2485
+ {
2486
+ "description": "Linear (scene-referred, e.g. ACES) Canonical UL: `060e2b34.04010100.04010101.01010000`",
2487
+ "type": "string",
2488
+ "enum": [
2489
+ "Linear"
2490
+ ]
2491
+ },
2492
+ {
2493
+ "description": "ITU-R BT.709 — COLOR.1/2/3 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.01020000`",
2494
+ "type": "string",
2495
+ "enum": [
2496
+ "Bt709"
2497
+ ]
2498
+ },
2499
+ {
2500
+ "description": "SMPTE 240M (legacy 1080i) Canonical UL: `060e2b34.04010100.04010101.01030000`",
2501
+ "type": "string",
2502
+ "enum": [
2503
+ "Smpte240M"
2504
+ ]
2505
+ },
2506
+ {
2507
+ "description": "xvYCC 709 — COLOR.4 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.01080000`",
2508
+ "type": "string",
2509
+ "enum": [
2510
+ "XvYcc709"
2511
+ ]
2512
+ },
2513
+ {
2514
+ "description": "ITU-R BT.2020 (Annex A) — COLOR.5 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.01090000`",
2515
+ "type": "string",
2516
+ "enum": [
2517
+ "Bt2020"
2518
+ ]
2519
+ },
2520
+ {
2521
+ "description": "SMPTE ST 2084 (PQ / Perceptual Quantiser) — COLOR.6/7 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.010a0000`",
2522
+ "type": "string",
2523
+ "enum": [
2524
+ "PqSt2084"
2525
+ ]
2526
+ },
2527
+ {
2528
+ "description": "ITU-R BT.2100 Hybrid Log-Gamma — COLOR.8 per ST 2067-21:2023 Table 3 Canonical UL: `060e2b34.04010100.04010101.010b0000`",
2529
+ "type": "string",
2530
+ "enum": [
2531
+ "Hlg"
2532
+ ]
2533
+ },
2534
+ {
2535
+ "description": "Unrecognised UL; the original string is preserved.",
2536
+ "type": "object",
2537
+ "required": [
2538
+ "Unknown"
2539
+ ],
2540
+ "properties": {
2541
+ "Unknown": {
2542
+ "type": "string"
2543
+ }
2544
+ },
2545
+ "additionalProperties": false
2546
+ }
2547
+ ]
2548
+ },
2549
+ "VideoCodec": {
2550
+ "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.",
2551
+ "oneOf": [
2552
+ {
2553
+ "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.",
2554
+ "type": "string",
2555
+ "enum": [
2556
+ "Jpeg2000"
2557
+ ]
2558
+ },
2559
+ {
2560
+ "description": "JPEG 2000 — IMF 2K profile (ST 422 §A.2, byte [14]=0x02). Supports stored widths ≤ 2048 per ST 2067-21.",
2561
+ "type": "string",
2562
+ "enum": [
2563
+ "Jpeg2000Imf2k"
2564
+ ]
2565
+ },
2566
+ {
2567
+ "description": "JPEG 2000 — IMF 4K profile (ST 422 §A.3, byte [14]=0x03). Supports stored widths 2049–4096 per ST 2067-21.",
2568
+ "type": "string",
2569
+ "enum": [
2570
+ "Jpeg2000Imf4k"
2571
+ ]
2572
+ },
2573
+ {
2574
+ "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.",
2575
+ "type": "string",
2576
+ "enum": [
2577
+ "Jpeg2000Broadcast"
2578
+ ]
2579
+ },
2580
+ {
2581
+ "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.",
2582
+ "type": "string",
2583
+ "enum": [
2584
+ "Jpeg2000Ht"
2585
+ ]
2586
+ },
2587
+ {
2588
+ "description": "VC-5 (SMPTE ST 2117)",
2589
+ "type": "string",
2590
+ "enum": [
2591
+ "Vc5"
2592
+ ]
2593
+ },
2594
+ {
2595
+ "description": "MPEG-2 (ISO 13818-2)",
2596
+ "type": "string",
2597
+ "enum": [
2598
+ "Mpeg2"
2599
+ ]
2600
+ },
2601
+ {
2602
+ "description": "H.264 / AVC (ISO 14496-10)",
2603
+ "type": "string",
2604
+ "enum": [
2605
+ "H264"
2606
+ ]
2607
+ },
2608
+ {
2609
+ "description": "H.265 / HEVC (ISO 23008-2)",
2610
+ "type": "string",
2611
+ "enum": [
2612
+ "H265"
2613
+ ]
2614
+ },
2615
+ {
2616
+ "description": "Apple ProRes (used in some IMF Application profiles)",
2617
+ "type": "string",
2618
+ "enum": [
2619
+ "ProRes"
2620
+ ]
2621
+ },
2622
+ {
2623
+ "description": "AV1 (AOMedia Video 1)",
2624
+ "type": "string",
2625
+ "enum": [
2626
+ "Av1"
2627
+ ]
2628
+ },
2629
+ {
2630
+ "description": "Unrecognised UL; the original string is preserved.",
2631
+ "type": "object",
2632
+ "required": [
2633
+ "Unknown"
2634
+ ],
2635
+ "properties": {
2636
+ "Unknown": {
2637
+ "type": "string"
2638
+ }
2639
+ },
2640
+ "additionalProperties": false
2641
+ }
2642
+ ]
2643
+ },
2644
+ "VideoSubDescriptors": {
2645
+ "description": "SubDescriptors for video (RGBA/CDCI) descriptors",
2646
+ "type": "object",
2647
+ "properties": {
2648
+ "JPEG2000SubDescriptor": {
2649
+ "description": "JPEG 2000 Picture Sub Descriptor — Table 14 constraints",
2650
+ "default": null,
2651
+ "anyOf": [
2652
+ {
2653
+ "$ref": "#/definitions/JPEG2000SubDescriptor"
2654
+ },
2655
+ {
2656
+ "type": "null"
2657
+ }
2658
+ ]
2659
+ },
2660
+ "PHDRMetadataTrackSubDescriptor": {
2661
+ "description": "Presence indicates Dolby Vision HDR",
2662
+ "default": null,
2663
+ "anyOf": [
2664
+ {
2665
+ "$ref": "#/definitions/PHDRMetadataTrackSubDescriptor"
2666
+ },
2667
+ {
2668
+ "type": "null"
2669
+ }
2670
+ ]
2671
+ }
2672
+ }
2673
+ },
2674
+ "WAVEPCMDescriptor": {
2675
+ "description": "WAVE PCM audio descriptor",
2676
+ "type": "object",
2677
+ "properties": {
2678
+ "AudioSampleRate": {
2679
+ "default": null,
2680
+ "anyOf": [
2681
+ {
2682
+ "$ref": "#/definitions/EditRate"
2683
+ },
2684
+ {
2685
+ "type": "null"
2686
+ }
2687
+ ]
2688
+ },
2689
+ "ChannelCount": {
2690
+ "default": null,
2691
+ "type": [
2692
+ "integer",
2693
+ "null"
2694
+ ],
2695
+ "format": "uint32",
2696
+ "minimum": 0.0
2697
+ },
2698
+ "InstanceID": {
2699
+ "default": null,
2700
+ "type": [
2701
+ "string",
2702
+ "null"
2703
+ ]
2704
+ },
2705
+ "LinkedTrackID": {
2706
+ "default": null,
2707
+ "type": [
2708
+ "integer",
2709
+ "null"
2710
+ ],
2711
+ "format": "uint32",
2712
+ "minimum": 0.0
2713
+ },
2714
+ "QuantizationBits": {
2715
+ "default": null,
2716
+ "type": [
2717
+ "integer",
2718
+ "null"
2719
+ ],
2720
+ "format": "uint32",
2721
+ "minimum": 0.0
2722
+ },
2723
+ "SampleRate": {
2724
+ "default": null,
2725
+ "anyOf": [
2726
+ {
2727
+ "$ref": "#/definitions/EditRate"
2728
+ },
2729
+ {
2730
+ "type": "null"
2731
+ }
2732
+ ]
2733
+ },
2734
+ "SubDescriptors": {
2735
+ "default": null,
2736
+ "anyOf": [
2737
+ {
2738
+ "$ref": "#/definitions/AudioSubDescriptors"
2739
+ },
2740
+ {
2741
+ "type": "null"
2742
+ }
2743
+ ]
2744
+ }
2745
+ }
2746
+ }
2747
+ }
2748
+ }