@imferno/schema 0.1.3 → 1.0.0

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 CHANGED
@@ -29,15 +29,12 @@ if (validate(data)) {
29
29
 
30
30
  | Export | Description |
31
31
  |--------|-------------|
32
- | `imfReport` | Full IMF package report (source assets + validation + delivery comparison) |
32
+ | `imfReport` | Full IMF package report (metadata + validation + CPL analysis) |
33
33
  | `validationReport` | Validation issues and diagnostics |
34
34
  | `compositionPlaylist` | SMPTE ST 2067-3 Composition Playlist |
35
35
  | `assetMap` | SMPTE ST 2067-2 Asset Map |
36
36
  | `packingList` | SMPTE ST 2067-2 Packing List |
37
37
  | `volumeIndex` | SMPTE ST 429-9 Volume Index |
38
- | `sourceAsset` | Extracted source asset metadata (tracks, formats, durations) |
39
- | `deliveryRequest` | Delivery specification request |
40
- | `deliveryComparison` | Delivery comparison result |
41
38
  | `rulesConfig` | ESLint-style rules configuration for validation |
42
39
 
43
40
  All schemas are also available via the `schemas` named export:
package/index.d.ts CHANGED
@@ -7,9 +7,6 @@ export declare const compositionPlaylist: JsonSchema;
7
7
  export declare const assetMap: JsonSchema;
8
8
  export declare const packingList: JsonSchema;
9
9
  export declare const volumeIndex: JsonSchema;
10
- export declare const sourceAsset: JsonSchema;
11
- export declare const deliveryRequest: JsonSchema;
12
- export declare const deliveryComparison: JsonSchema;
13
10
  export declare const rulesConfig: JsonSchema;
14
11
 
15
12
  export declare const schemas: {
@@ -19,8 +16,5 @@ export declare const schemas: {
19
16
  assetMap: JsonSchema;
20
17
  packingList: JsonSchema;
21
18
  volumeIndex: JsonSchema;
22
- sourceAsset: JsonSchema;
23
- deliveryRequest: JsonSchema;
24
- deliveryComparison: JsonSchema;
25
19
  rulesConfig: JsonSchema;
26
20
  };
package/index.js CHANGED
@@ -15,9 +15,6 @@ export const compositionPlaylist = loadSchema("composition-playlist");
15
15
  export const assetMap = loadSchema("asset-map");
16
16
  export const packingList = loadSchema("packing-list");
17
17
  export const volumeIndex = loadSchema("volume-index");
18
- export const sourceAsset = loadSchema("source-asset");
19
- export const deliveryRequest = loadSchema("delivery-request");
20
- export const deliveryComparison = loadSchema("delivery-comparison");
21
18
  export const rulesConfig = loadSchema("rules-config");
22
19
 
23
20
  export const schemas = {
@@ -27,8 +24,5 @@ export const schemas = {
27
24
  assetMap,
28
25
  packingList,
29
26
  volumeIndex,
30
- sourceAsset,
31
- deliveryRequest,
32
- deliveryComparison,
33
27
  rulesConfig,
34
28
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imferno/schema",
3
- "version": "0.1.3",
3
+ "version": "1.0.0",
4
4
  "description": "JSON Schema definitions for SMPTE ST 2067 IMF types — validates imferno export output",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -22,180 +22,6 @@
22
22
  }
23
23
  },
24
24
  "definitions": {
25
- "AudioContentKind": {
26
- "oneOf": [
27
- {
28
- "description": "Primary",
29
- "type": "string",
30
- "enum": [
31
- "PRM"
32
- ]
33
- },
34
- {
35
- "description": "Visually Impaired",
36
- "type": "string",
37
- "enum": [
38
- "VI"
39
- ]
40
- }
41
- ]
42
- },
43
- "AudioTrack": {
44
- "type": "object",
45
- "required": [
46
- "audioContentKind",
47
- "channelCount",
48
- "fragmentDuration",
49
- "language",
50
- "trackDuration",
51
- "trackIdentifier",
52
- "trackNumber",
53
- "type"
54
- ],
55
- "properties": {
56
- "atmosType": {
57
- "type": [
58
- "string",
59
- "null"
60
- ]
61
- },
62
- "audioContentKind": {
63
- "$ref": "#/definitions/AudioContentKind"
64
- },
65
- "channelCount": {
66
- "type": "integer",
67
- "format": "uint32",
68
- "minimum": 0.0
69
- },
70
- "fragmentDuration": {
71
- "type": "string"
72
- },
73
- "language": {
74
- "type": "string"
75
- },
76
- "mcaTagName": {
77
- "description": "MCA tag name, e.g. \"5.1\", \"7.1\", \"Atmos\", \"Lt-Rt\"",
78
- "type": [
79
- "string",
80
- "null"
81
- ]
82
- },
83
- "mcaTagSymbol": {
84
- "description": "MCA tag symbol, e.g. \"sg51\", \"sg71\", \"sgAtmos\", \"sgLtRt\"",
85
- "type": [
86
- "string",
87
- "null"
88
- ]
89
- },
90
- "sequenceNumber": {
91
- "type": [
92
- "integer",
93
- "null"
94
- ],
95
- "format": "uint32",
96
- "minimum": 0.0
97
- },
98
- "sequenceTrackId": {
99
- "type": [
100
- "string",
101
- "null"
102
- ]
103
- },
104
- "trackDuration": {
105
- "type": "integer",
106
- "format": "uint64",
107
- "minimum": 0.0
108
- },
109
- "trackFile": {
110
- "type": [
111
- "string",
112
- "null"
113
- ]
114
- },
115
- "trackIdentifier": {
116
- "type": "string"
117
- },
118
- "trackNumber": {
119
- "type": "integer",
120
- "format": "uint32",
121
- "minimum": 0.0
122
- },
123
- "type": {
124
- "$ref": "#/definitions/AudioType"
125
- }
126
- }
127
- },
128
- "AudioType": {
129
- "type": "string",
130
- "enum": [
131
- "STEREO",
132
- "DOLBY_DIGITAL",
133
- "DOLBY_DIGITAL_PLUS",
134
- "DOLBY_ATMOS"
135
- ]
136
- },
137
- "ComparisonResult": {
138
- "oneOf": [
139
- {
140
- "type": "object",
141
- "required": [
142
- "status"
143
- ],
144
- "properties": {
145
- "status": {
146
- "type": "string",
147
- "enum": [
148
- "match"
149
- ]
150
- }
151
- }
152
- },
153
- {
154
- "type": "object",
155
- "required": [
156
- "found",
157
- "requested",
158
- "status"
159
- ],
160
- "properties": {
161
- "found": {
162
- "type": "string"
163
- },
164
- "requested": {
165
- "type": "string"
166
- },
167
- "status": {
168
- "type": "string",
169
- "enum": [
170
- "exceeded"
171
- ]
172
- }
173
- }
174
- },
175
- {
176
- "type": "object",
177
- "required": [
178
- "found",
179
- "requested",
180
- "status"
181
- ],
182
- "properties": {
183
- "found": {
184
- "type": "string"
185
- },
186
- "requested": {
187
- "type": "string"
188
- },
189
- "status": {
190
- "type": "string",
191
- "enum": [
192
- "insufficient"
193
- ]
194
- }
195
- }
196
- }
197
- ]
198
- },
199
25
  "CplMarker": {
200
26
  "type": "object",
201
27
  "required": [
@@ -226,7 +52,6 @@
226
52
  "isSupplemental",
227
53
  "markers",
228
54
  "segmentCount",
229
- "sourceAsset",
230
55
  "title",
231
56
  "unresolvedAncestorAssetIds"
232
57
  ],
@@ -238,16 +63,6 @@
238
63
  "null"
239
64
  ]
240
65
  },
241
- "deliveryComparison": {
242
- "anyOf": [
243
- {
244
- "$ref": "#/definitions/DeliveryComparison"
245
- },
246
- {
247
- "type": "null"
248
- }
249
- ]
250
- },
251
66
  "id": {
252
67
  "type": "string"
253
68
  },
@@ -267,9 +82,6 @@
267
82
  "format": "uint",
268
83
  "minimum": 0.0
269
84
  },
270
- "sourceAsset": {
271
- "$ref": "#/definitions/SourceAsset"
272
- },
273
85
  "timecodeStart": {
274
86
  "description": "Timecode start address, e.g. \"01:00:00:00\"",
275
87
  "type": [
@@ -289,90 +101,6 @@
289
101
  }
290
102
  }
291
103
  },
292
- "DeliveryComparison": {
293
- "type": "object",
294
- "required": [
295
- "audioTypeMatch",
296
- "extraAudioLanguages",
297
- "extraSubtitleLanguages",
298
- "matches",
299
- "missingAudioLanguages",
300
- "missingCaptionLanguages",
301
- "missingForcedNarrativeLanguages",
302
- "missingSubtitleLanguages",
303
- "videoDynamicRangeMatch",
304
- "videoQualityMatch"
305
- ],
306
- "properties": {
307
- "audioTypeMatch": {
308
- "$ref": "#/definitions/ComparisonResult"
309
- },
310
- "extraAudioLanguages": {
311
- "type": "array",
312
- "items": {
313
- "type": "string"
314
- }
315
- },
316
- "extraSubtitleLanguages": {
317
- "type": "array",
318
- "items": {
319
- "type": "string"
320
- }
321
- },
322
- "matches": {
323
- "type": "boolean"
324
- },
325
- "missingAudioLanguages": {
326
- "type": "array",
327
- "items": {
328
- "type": "string"
329
- }
330
- },
331
- "missingCaptionLanguages": {
332
- "type": "array",
333
- "items": {
334
- "type": "string"
335
- }
336
- },
337
- "missingForcedNarrativeLanguages": {
338
- "type": "array",
339
- "items": {
340
- "type": "string"
341
- }
342
- },
343
- "missingSubtitleLanguages": {
344
- "type": "array",
345
- "items": {
346
- "type": "string"
347
- }
348
- },
349
- "videoDynamicRangeMatch": {
350
- "$ref": "#/definitions/ComparisonResult"
351
- },
352
- "videoQualityMatch": {
353
- "$ref": "#/definitions/ComparisonResult"
354
- }
355
- }
356
- },
357
- "Hdr10Metadata": {
358
- "type": "object",
359
- "required": [
360
- "maxCll",
361
- "maxFall"
362
- ],
363
- "properties": {
364
- "maxCll": {
365
- "type": "integer",
366
- "format": "uint32",
367
- "minimum": 0.0
368
- },
369
- "maxFall": {
370
- "type": "integer",
371
- "format": "uint32",
372
- "minimum": 0.0
373
- }
374
- }
375
- },
376
104
  "PackageSummary": {
377
105
  "type": "object",
378
106
  "required": [
@@ -424,262 +152,6 @@
424
152
  }
425
153
  }
426
154
  },
427
- "Sequence": {
428
- "type": "object",
429
- "required": [
430
- "id",
431
- "segmentId",
432
- "sequenceNumber",
433
- "sequenceResources",
434
- "trackId",
435
- "type"
436
- ],
437
- "properties": {
438
- "id": {
439
- "type": "string"
440
- },
441
- "segmentId": {
442
- "type": "string"
443
- },
444
- "sequenceNumber": {
445
- "type": "integer",
446
- "format": "uint32",
447
- "minimum": 0.0
448
- },
449
- "sequenceResources": {
450
- "type": "array",
451
- "items": {
452
- "$ref": "#/definitions/SequenceResource"
453
- }
454
- },
455
- "trackId": {
456
- "type": "string"
457
- },
458
- "type": {
459
- "type": "string"
460
- }
461
- }
462
- },
463
- "SequenceResource": {
464
- "type": "object",
465
- "required": [
466
- "id",
467
- "intrinsicDuration",
468
- "sourceDuration",
469
- "sourceEncoding",
470
- "trackFileId"
471
- ],
472
- "properties": {
473
- "annotation": {
474
- "type": [
475
- "string",
476
- "null"
477
- ]
478
- },
479
- "editRate": {
480
- "type": [
481
- "string",
482
- "null"
483
- ]
484
- },
485
- "entryPoint": {
486
- "type": [
487
- "integer",
488
- "null"
489
- ],
490
- "format": "uint64",
491
- "minimum": 0.0
492
- },
493
- "id": {
494
- "type": "string"
495
- },
496
- "intrinsicDuration": {
497
- "type": "integer",
498
- "format": "uint64",
499
- "minimum": 0.0
500
- },
501
- "sourceDuration": {
502
- "type": "integer",
503
- "format": "uint64",
504
- "minimum": 0.0
505
- },
506
- "sourceEncoding": {
507
- "type": "string"
508
- },
509
- "trackFileId": {
510
- "type": "string"
511
- }
512
- }
513
- },
514
- "SourceAsset": {
515
- "type": "object",
516
- "required": [
517
- "audioLanguages",
518
- "audioType",
519
- "captionLanguages",
520
- "contentKind",
521
- "contentTitle",
522
- "duration",
523
- "editRate",
524
- "forcedNarrativeLanguages",
525
- "frameRate",
526
- "sequences",
527
- "subtitleLanguages",
528
- "territory",
529
- "tracks",
530
- "videoDynamicRange",
531
- "videoQuality"
532
- ],
533
- "properties": {
534
- "audioLanguages": {
535
- "type": "array",
536
- "items": {
537
- "type": "string"
538
- }
539
- },
540
- "audioType": {
541
- "$ref": "#/definitions/AudioType"
542
- },
543
- "captionLanguages": {
544
- "type": "array",
545
- "items": {
546
- "type": "string"
547
- }
548
- },
549
- "contentKind": {
550
- "type": "string"
551
- },
552
- "contentTitle": {
553
- "type": "string"
554
- },
555
- "duration": {
556
- "type": "string"
557
- },
558
- "editRate": {
559
- "type": "string"
560
- },
561
- "forcedNarrativeLanguages": {
562
- "type": "array",
563
- "items": {
564
- "type": "string"
565
- }
566
- },
567
- "frameRate": {
568
- "type": "string"
569
- },
570
- "sequences": {
571
- "type": "array",
572
- "items": {
573
- "$ref": "#/definitions/Sequence"
574
- }
575
- },
576
- "subtitleLanguages": {
577
- "type": "array",
578
- "items": {
579
- "type": "string"
580
- }
581
- },
582
- "territory": {
583
- "type": "string"
584
- },
585
- "tracks": {
586
- "$ref": "#/definitions/Tracks"
587
- },
588
- "videoDynamicRange": {
589
- "$ref": "#/definitions/VideoDynamicRange"
590
- },
591
- "videoQuality": {
592
- "$ref": "#/definitions/VideoQuality"
593
- }
594
- }
595
- },
596
- "TimedTextTrack": {
597
- "type": "object",
598
- "required": [
599
- "fragmentDuration",
600
- "language",
601
- "trackDuration",
602
- "trackIdentifier",
603
- "trackNumber"
604
- ],
605
- "properties": {
606
- "fragmentDuration": {
607
- "type": "string"
608
- },
609
- "language": {
610
- "type": "string"
611
- },
612
- "sequenceNumber": {
613
- "type": [
614
- "integer",
615
- "null"
616
- ],
617
- "format": "uint32",
618
- "minimum": 0.0
619
- },
620
- "sequenceTrackId": {
621
- "type": [
622
- "string",
623
- "null"
624
- ]
625
- },
626
- "trackDuration": {
627
- "type": "integer",
628
- "format": "uint64",
629
- "minimum": 0.0
630
- },
631
- "trackIdentifier": {
632
- "type": "string"
633
- },
634
- "trackNumber": {
635
- "type": "integer",
636
- "format": "uint32",
637
- "minimum": 0.0
638
- }
639
- }
640
- },
641
- "Tracks": {
642
- "type": "object",
643
- "required": [
644
- "AUDIO",
645
- "CAPTIONS",
646
- "FORCED_NARRATIVE",
647
- "SUBTITLES",
648
- "VIDEO"
649
- ],
650
- "properties": {
651
- "AUDIO": {
652
- "type": "array",
653
- "items": {
654
- "$ref": "#/definitions/AudioTrack"
655
- }
656
- },
657
- "CAPTIONS": {
658
- "type": "array",
659
- "items": {
660
- "$ref": "#/definitions/TimedTextTrack"
661
- }
662
- },
663
- "FORCED_NARRATIVE": {
664
- "type": "array",
665
- "items": {
666
- "$ref": "#/definitions/TimedTextTrack"
667
- }
668
- },
669
- "SUBTITLES": {
670
- "type": "array",
671
- "items": {
672
- "$ref": "#/definitions/TimedTextTrack"
673
- }
674
- },
675
- "VIDEO": {
676
- "type": "array",
677
- "items": {
678
- "$ref": "#/definitions/VideoTrack"
679
- }
680
- }
681
- }
682
- },
683
155
  "ValidationIssueEntry": {
684
156
  "type": "object",
685
157
  "required": [
@@ -712,93 +184,6 @@
712
184
  "type": "boolean"
713
185
  }
714
186
  }
715
- },
716
- "VideoDynamicRange": {
717
- "type": "string",
718
- "enum": [
719
- "SDR",
720
- "HDR10",
721
- "HDR_DOLBY_VISION"
722
- ]
723
- },
724
- "VideoQuality": {
725
- "type": "string",
726
- "enum": [
727
- "SD",
728
- "HD",
729
- "UHD"
730
- ]
731
- },
732
- "VideoTrack": {
733
- "type": "object",
734
- "required": [
735
- "dynamicRange",
736
- "fragmentDuration",
737
- "height",
738
- "quality",
739
- "trackDuration",
740
- "trackIdentifier",
741
- "trackNumber",
742
- "width"
743
- ],
744
- "properties": {
745
- "dynamicRange": {
746
- "$ref": "#/definitions/VideoDynamicRange"
747
- },
748
- "fragmentDuration": {
749
- "type": "string"
750
- },
751
- "hdr10Metadata": {
752
- "anyOf": [
753
- {
754
- "$ref": "#/definitions/Hdr10Metadata"
755
- },
756
- {
757
- "type": "null"
758
- }
759
- ]
760
- },
761
- "height": {
762
- "type": "integer",
763
- "format": "uint32",
764
- "minimum": 0.0
765
- },
766
- "quality": {
767
- "$ref": "#/definitions/VideoQuality"
768
- },
769
- "sequenceNumber": {
770
- "type": [
771
- "integer",
772
- "null"
773
- ],
774
- "format": "uint32",
775
- "minimum": 0.0
776
- },
777
- "sequenceTrackId": {
778
- "type": [
779
- "string",
780
- "null"
781
- ]
782
- },
783
- "trackDuration": {
784
- "type": "integer",
785
- "format": "uint64",
786
- "minimum": 0.0
787
- },
788
- "trackIdentifier": {
789
- "type": "string"
790
- },
791
- "trackNumber": {
792
- "type": "integer",
793
- "format": "uint32",
794
- "minimum": 0.0
795
- },
796
- "width": {
797
- "type": "integer",
798
- "format": "uint32",
799
- "minimum": 0.0
800
- }
801
- }
802
187
  }
803
188
  }
804
189
  }
@@ -1,131 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "DeliveryComparison",
4
- "type": "object",
5
- "required": [
6
- "audioTypeMatch",
7
- "extraAudioLanguages",
8
- "extraSubtitleLanguages",
9
- "matches",
10
- "missingAudioLanguages",
11
- "missingCaptionLanguages",
12
- "missingForcedNarrativeLanguages",
13
- "missingSubtitleLanguages",
14
- "videoDynamicRangeMatch",
15
- "videoQualityMatch"
16
- ],
17
- "properties": {
18
- "audioTypeMatch": {
19
- "$ref": "#/definitions/ComparisonResult"
20
- },
21
- "extraAudioLanguages": {
22
- "type": "array",
23
- "items": {
24
- "type": "string"
25
- }
26
- },
27
- "extraSubtitleLanguages": {
28
- "type": "array",
29
- "items": {
30
- "type": "string"
31
- }
32
- },
33
- "matches": {
34
- "type": "boolean"
35
- },
36
- "missingAudioLanguages": {
37
- "type": "array",
38
- "items": {
39
- "type": "string"
40
- }
41
- },
42
- "missingCaptionLanguages": {
43
- "type": "array",
44
- "items": {
45
- "type": "string"
46
- }
47
- },
48
- "missingForcedNarrativeLanguages": {
49
- "type": "array",
50
- "items": {
51
- "type": "string"
52
- }
53
- },
54
- "missingSubtitleLanguages": {
55
- "type": "array",
56
- "items": {
57
- "type": "string"
58
- }
59
- },
60
- "videoDynamicRangeMatch": {
61
- "$ref": "#/definitions/ComparisonResult"
62
- },
63
- "videoQualityMatch": {
64
- "$ref": "#/definitions/ComparisonResult"
65
- }
66
- },
67
- "definitions": {
68
- "ComparisonResult": {
69
- "oneOf": [
70
- {
71
- "type": "object",
72
- "required": [
73
- "status"
74
- ],
75
- "properties": {
76
- "status": {
77
- "type": "string",
78
- "enum": [
79
- "match"
80
- ]
81
- }
82
- }
83
- },
84
- {
85
- "type": "object",
86
- "required": [
87
- "found",
88
- "requested",
89
- "status"
90
- ],
91
- "properties": {
92
- "found": {
93
- "type": "string"
94
- },
95
- "requested": {
96
- "type": "string"
97
- },
98
- "status": {
99
- "type": "string",
100
- "enum": [
101
- "exceeded"
102
- ]
103
- }
104
- }
105
- },
106
- {
107
- "type": "object",
108
- "required": [
109
- "found",
110
- "requested",
111
- "status"
112
- ],
113
- "properties": {
114
- "found": {
115
- "type": "string"
116
- },
117
- "requested": {
118
- "type": "string"
119
- },
120
- "status": {
121
- "type": "string",
122
- "enum": [
123
- "insufficient"
124
- ]
125
- }
126
- }
127
- }
128
- ]
129
- }
130
- }
131
- }
@@ -1,76 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "DeliveryRequest",
4
- "type": "object",
5
- "required": [
6
- "audioLanguages",
7
- "audioType",
8
- "subtitleLanguages",
9
- "videoDynamicRange",
10
- "videoQuality"
11
- ],
12
- "properties": {
13
- "audioLanguages": {
14
- "type": "array",
15
- "items": {
16
- "type": "string"
17
- }
18
- },
19
- "audioType": {
20
- "$ref": "#/definitions/AudioType"
21
- },
22
- "captionLanguages": {
23
- "default": [],
24
- "type": "array",
25
- "items": {
26
- "type": "string"
27
- }
28
- },
29
- "forcedNarrativeLanguages": {
30
- "default": [],
31
- "type": "array",
32
- "items": {
33
- "type": "string"
34
- }
35
- },
36
- "subtitleLanguages": {
37
- "type": "array",
38
- "items": {
39
- "type": "string"
40
- }
41
- },
42
- "videoDynamicRange": {
43
- "$ref": "#/definitions/VideoDynamicRange"
44
- },
45
- "videoQuality": {
46
- "$ref": "#/definitions/VideoQuality"
47
- }
48
- },
49
- "definitions": {
50
- "AudioType": {
51
- "type": "string",
52
- "enum": [
53
- "STEREO",
54
- "DOLBY_DIGITAL",
55
- "DOLBY_DIGITAL_PLUS",
56
- "DOLBY_ATMOS"
57
- ]
58
- },
59
- "VideoDynamicRange": {
60
- "type": "string",
61
- "enum": [
62
- "SDR",
63
- "HDR10",
64
- "HDR_DOLBY_VISION"
65
- ]
66
- },
67
- "VideoQuality": {
68
- "type": "string",
69
- "enum": [
70
- "SD",
71
- "HD",
72
- "UHD"
73
- ]
74
- }
75
- }
76
- }
@@ -1,478 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "SourceAsset",
4
- "type": "object",
5
- "required": [
6
- "audioLanguages",
7
- "audioType",
8
- "captionLanguages",
9
- "contentKind",
10
- "contentTitle",
11
- "duration",
12
- "editRate",
13
- "forcedNarrativeLanguages",
14
- "frameRate",
15
- "sequences",
16
- "subtitleLanguages",
17
- "territory",
18
- "tracks",
19
- "videoDynamicRange",
20
- "videoQuality"
21
- ],
22
- "properties": {
23
- "audioLanguages": {
24
- "type": "array",
25
- "items": {
26
- "type": "string"
27
- }
28
- },
29
- "audioType": {
30
- "$ref": "#/definitions/AudioType"
31
- },
32
- "captionLanguages": {
33
- "type": "array",
34
- "items": {
35
- "type": "string"
36
- }
37
- },
38
- "contentKind": {
39
- "type": "string"
40
- },
41
- "contentTitle": {
42
- "type": "string"
43
- },
44
- "duration": {
45
- "type": "string"
46
- },
47
- "editRate": {
48
- "type": "string"
49
- },
50
- "forcedNarrativeLanguages": {
51
- "type": "array",
52
- "items": {
53
- "type": "string"
54
- }
55
- },
56
- "frameRate": {
57
- "type": "string"
58
- },
59
- "sequences": {
60
- "type": "array",
61
- "items": {
62
- "$ref": "#/definitions/Sequence"
63
- }
64
- },
65
- "subtitleLanguages": {
66
- "type": "array",
67
- "items": {
68
- "type": "string"
69
- }
70
- },
71
- "territory": {
72
- "type": "string"
73
- },
74
- "tracks": {
75
- "$ref": "#/definitions/Tracks"
76
- },
77
- "videoDynamicRange": {
78
- "$ref": "#/definitions/VideoDynamicRange"
79
- },
80
- "videoQuality": {
81
- "$ref": "#/definitions/VideoQuality"
82
- }
83
- },
84
- "definitions": {
85
- "AudioContentKind": {
86
- "oneOf": [
87
- {
88
- "description": "Primary",
89
- "type": "string",
90
- "enum": [
91
- "PRM"
92
- ]
93
- },
94
- {
95
- "description": "Visually Impaired",
96
- "type": "string",
97
- "enum": [
98
- "VI"
99
- ]
100
- }
101
- ]
102
- },
103
- "AudioTrack": {
104
- "type": "object",
105
- "required": [
106
- "audioContentKind",
107
- "channelCount",
108
- "fragmentDuration",
109
- "language",
110
- "trackDuration",
111
- "trackIdentifier",
112
- "trackNumber",
113
- "type"
114
- ],
115
- "properties": {
116
- "atmosType": {
117
- "type": [
118
- "string",
119
- "null"
120
- ]
121
- },
122
- "audioContentKind": {
123
- "$ref": "#/definitions/AudioContentKind"
124
- },
125
- "channelCount": {
126
- "type": "integer",
127
- "format": "uint32",
128
- "minimum": 0.0
129
- },
130
- "fragmentDuration": {
131
- "type": "string"
132
- },
133
- "language": {
134
- "type": "string"
135
- },
136
- "mcaTagName": {
137
- "description": "MCA tag name, e.g. \"5.1\", \"7.1\", \"Atmos\", \"Lt-Rt\"",
138
- "type": [
139
- "string",
140
- "null"
141
- ]
142
- },
143
- "mcaTagSymbol": {
144
- "description": "MCA tag symbol, e.g. \"sg51\", \"sg71\", \"sgAtmos\", \"sgLtRt\"",
145
- "type": [
146
- "string",
147
- "null"
148
- ]
149
- },
150
- "sequenceNumber": {
151
- "type": [
152
- "integer",
153
- "null"
154
- ],
155
- "format": "uint32",
156
- "minimum": 0.0
157
- },
158
- "sequenceTrackId": {
159
- "type": [
160
- "string",
161
- "null"
162
- ]
163
- },
164
- "trackDuration": {
165
- "type": "integer",
166
- "format": "uint64",
167
- "minimum": 0.0
168
- },
169
- "trackFile": {
170
- "type": [
171
- "string",
172
- "null"
173
- ]
174
- },
175
- "trackIdentifier": {
176
- "type": "string"
177
- },
178
- "trackNumber": {
179
- "type": "integer",
180
- "format": "uint32",
181
- "minimum": 0.0
182
- },
183
- "type": {
184
- "$ref": "#/definitions/AudioType"
185
- }
186
- }
187
- },
188
- "AudioType": {
189
- "type": "string",
190
- "enum": [
191
- "STEREO",
192
- "DOLBY_DIGITAL",
193
- "DOLBY_DIGITAL_PLUS",
194
- "DOLBY_ATMOS"
195
- ]
196
- },
197
- "Hdr10Metadata": {
198
- "type": "object",
199
- "required": [
200
- "maxCll",
201
- "maxFall"
202
- ],
203
- "properties": {
204
- "maxCll": {
205
- "type": "integer",
206
- "format": "uint32",
207
- "minimum": 0.0
208
- },
209
- "maxFall": {
210
- "type": "integer",
211
- "format": "uint32",
212
- "minimum": 0.0
213
- }
214
- }
215
- },
216
- "Sequence": {
217
- "type": "object",
218
- "required": [
219
- "id",
220
- "segmentId",
221
- "sequenceNumber",
222
- "sequenceResources",
223
- "trackId",
224
- "type"
225
- ],
226
- "properties": {
227
- "id": {
228
- "type": "string"
229
- },
230
- "segmentId": {
231
- "type": "string"
232
- },
233
- "sequenceNumber": {
234
- "type": "integer",
235
- "format": "uint32",
236
- "minimum": 0.0
237
- },
238
- "sequenceResources": {
239
- "type": "array",
240
- "items": {
241
- "$ref": "#/definitions/SequenceResource"
242
- }
243
- },
244
- "trackId": {
245
- "type": "string"
246
- },
247
- "type": {
248
- "type": "string"
249
- }
250
- }
251
- },
252
- "SequenceResource": {
253
- "type": "object",
254
- "required": [
255
- "id",
256
- "intrinsicDuration",
257
- "sourceDuration",
258
- "sourceEncoding",
259
- "trackFileId"
260
- ],
261
- "properties": {
262
- "annotation": {
263
- "type": [
264
- "string",
265
- "null"
266
- ]
267
- },
268
- "editRate": {
269
- "type": [
270
- "string",
271
- "null"
272
- ]
273
- },
274
- "entryPoint": {
275
- "type": [
276
- "integer",
277
- "null"
278
- ],
279
- "format": "uint64",
280
- "minimum": 0.0
281
- },
282
- "id": {
283
- "type": "string"
284
- },
285
- "intrinsicDuration": {
286
- "type": "integer",
287
- "format": "uint64",
288
- "minimum": 0.0
289
- },
290
- "sourceDuration": {
291
- "type": "integer",
292
- "format": "uint64",
293
- "minimum": 0.0
294
- },
295
- "sourceEncoding": {
296
- "type": "string"
297
- },
298
- "trackFileId": {
299
- "type": "string"
300
- }
301
- }
302
- },
303
- "TimedTextTrack": {
304
- "type": "object",
305
- "required": [
306
- "fragmentDuration",
307
- "language",
308
- "trackDuration",
309
- "trackIdentifier",
310
- "trackNumber"
311
- ],
312
- "properties": {
313
- "fragmentDuration": {
314
- "type": "string"
315
- },
316
- "language": {
317
- "type": "string"
318
- },
319
- "sequenceNumber": {
320
- "type": [
321
- "integer",
322
- "null"
323
- ],
324
- "format": "uint32",
325
- "minimum": 0.0
326
- },
327
- "sequenceTrackId": {
328
- "type": [
329
- "string",
330
- "null"
331
- ]
332
- },
333
- "trackDuration": {
334
- "type": "integer",
335
- "format": "uint64",
336
- "minimum": 0.0
337
- },
338
- "trackIdentifier": {
339
- "type": "string"
340
- },
341
- "trackNumber": {
342
- "type": "integer",
343
- "format": "uint32",
344
- "minimum": 0.0
345
- }
346
- }
347
- },
348
- "Tracks": {
349
- "type": "object",
350
- "required": [
351
- "AUDIO",
352
- "CAPTIONS",
353
- "FORCED_NARRATIVE",
354
- "SUBTITLES",
355
- "VIDEO"
356
- ],
357
- "properties": {
358
- "AUDIO": {
359
- "type": "array",
360
- "items": {
361
- "$ref": "#/definitions/AudioTrack"
362
- }
363
- },
364
- "CAPTIONS": {
365
- "type": "array",
366
- "items": {
367
- "$ref": "#/definitions/TimedTextTrack"
368
- }
369
- },
370
- "FORCED_NARRATIVE": {
371
- "type": "array",
372
- "items": {
373
- "$ref": "#/definitions/TimedTextTrack"
374
- }
375
- },
376
- "SUBTITLES": {
377
- "type": "array",
378
- "items": {
379
- "$ref": "#/definitions/TimedTextTrack"
380
- }
381
- },
382
- "VIDEO": {
383
- "type": "array",
384
- "items": {
385
- "$ref": "#/definitions/VideoTrack"
386
- }
387
- }
388
- }
389
- },
390
- "VideoDynamicRange": {
391
- "type": "string",
392
- "enum": [
393
- "SDR",
394
- "HDR10",
395
- "HDR_DOLBY_VISION"
396
- ]
397
- },
398
- "VideoQuality": {
399
- "type": "string",
400
- "enum": [
401
- "SD",
402
- "HD",
403
- "UHD"
404
- ]
405
- },
406
- "VideoTrack": {
407
- "type": "object",
408
- "required": [
409
- "dynamicRange",
410
- "fragmentDuration",
411
- "height",
412
- "quality",
413
- "trackDuration",
414
- "trackIdentifier",
415
- "trackNumber",
416
- "width"
417
- ],
418
- "properties": {
419
- "dynamicRange": {
420
- "$ref": "#/definitions/VideoDynamicRange"
421
- },
422
- "fragmentDuration": {
423
- "type": "string"
424
- },
425
- "hdr10Metadata": {
426
- "anyOf": [
427
- {
428
- "$ref": "#/definitions/Hdr10Metadata"
429
- },
430
- {
431
- "type": "null"
432
- }
433
- ]
434
- },
435
- "height": {
436
- "type": "integer",
437
- "format": "uint32",
438
- "minimum": 0.0
439
- },
440
- "quality": {
441
- "$ref": "#/definitions/VideoQuality"
442
- },
443
- "sequenceNumber": {
444
- "type": [
445
- "integer",
446
- "null"
447
- ],
448
- "format": "uint32",
449
- "minimum": 0.0
450
- },
451
- "sequenceTrackId": {
452
- "type": [
453
- "string",
454
- "null"
455
- ]
456
- },
457
- "trackDuration": {
458
- "type": "integer",
459
- "format": "uint64",
460
- "minimum": 0.0
461
- },
462
- "trackIdentifier": {
463
- "type": "string"
464
- },
465
- "trackNumber": {
466
- "type": "integer",
467
- "format": "uint32",
468
- "minimum": 0.0
469
- },
470
- "width": {
471
- "type": "integer",
472
- "format": "uint32",
473
- "minimum": 0.0
474
- }
475
- }
476
- }
477
- }
478
- }