@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,804 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "ImfReport",
4
+ "type": "object",
5
+ "required": [
6
+ "cpls",
7
+ "package",
8
+ "validation"
9
+ ],
10
+ "properties": {
11
+ "cpls": {
12
+ "type": "array",
13
+ "items": {
14
+ "$ref": "#/definitions/CplReport"
15
+ }
16
+ },
17
+ "package": {
18
+ "$ref": "#/definitions/PackageSummary"
19
+ },
20
+ "validation": {
21
+ "$ref": "#/definitions/ValidationSummary"
22
+ }
23
+ },
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
+ "CplMarker": {
200
+ "type": "object",
201
+ "required": [
202
+ "label",
203
+ "offset"
204
+ ],
205
+ "properties": {
206
+ "annotation": {
207
+ "type": [
208
+ "string",
209
+ "null"
210
+ ]
211
+ },
212
+ "label": {
213
+ "type": "string"
214
+ },
215
+ "offset": {
216
+ "type": "integer",
217
+ "format": "uint64",
218
+ "minimum": 0.0
219
+ }
220
+ }
221
+ },
222
+ "CplReport": {
223
+ "type": "object",
224
+ "required": [
225
+ "id",
226
+ "isSupplemental",
227
+ "markers",
228
+ "segmentCount",
229
+ "sourceAsset",
230
+ "title",
231
+ "unresolvedAncestorAssetIds"
232
+ ],
233
+ "properties": {
234
+ "applicationProfile": {
235
+ "description": "Application profile, e.g. \"App2E_2021\", \"App2E_2014\", \"App5\"",
236
+ "type": [
237
+ "string",
238
+ "null"
239
+ ]
240
+ },
241
+ "deliveryComparison": {
242
+ "anyOf": [
243
+ {
244
+ "$ref": "#/definitions/DeliveryComparison"
245
+ },
246
+ {
247
+ "type": "null"
248
+ }
249
+ ]
250
+ },
251
+ "id": {
252
+ "type": "string"
253
+ },
254
+ "isSupplemental": {
255
+ "description": "True if this CPL references track files not present in the current package (supplemental IMP)",
256
+ "type": "boolean"
257
+ },
258
+ "markers": {
259
+ "type": "array",
260
+ "items": {
261
+ "$ref": "#/definitions/CplMarker"
262
+ }
263
+ },
264
+ "segmentCount": {
265
+ "description": "Number of segments in this CPL",
266
+ "type": "integer",
267
+ "format": "uint",
268
+ "minimum": 0.0
269
+ },
270
+ "sourceAsset": {
271
+ "$ref": "#/definitions/SourceAsset"
272
+ },
273
+ "timecodeStart": {
274
+ "description": "Timecode start address, e.g. \"01:00:00:00\"",
275
+ "type": [
276
+ "string",
277
+ "null"
278
+ ]
279
+ },
280
+ "title": {
281
+ "type": "string"
282
+ },
283
+ "unresolvedAncestorAssetIds": {
284
+ "description": "Track file UUIDs referenced in this CPL that are not in the current package's AssetMap. These must be resolved from an ancestor package.",
285
+ "type": "array",
286
+ "items": {
287
+ "type": "string"
288
+ }
289
+ }
290
+ }
291
+ },
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
+ "PackageSummary": {
377
+ "type": "object",
378
+ "required": [
379
+ "assetCount",
380
+ "assetMapId",
381
+ "cplCount",
382
+ "issueDate",
383
+ "pklCount",
384
+ "volumeIndex"
385
+ ],
386
+ "properties": {
387
+ "assetCount": {
388
+ "type": "integer",
389
+ "format": "uint",
390
+ "minimum": 0.0
391
+ },
392
+ "assetMapId": {
393
+ "type": "string"
394
+ },
395
+ "cplCount": {
396
+ "type": "integer",
397
+ "format": "uint",
398
+ "minimum": 0.0
399
+ },
400
+ "creator": {
401
+ "type": [
402
+ "string",
403
+ "null"
404
+ ]
405
+ },
406
+ "issueDate": {
407
+ "type": "string"
408
+ },
409
+ "issuer": {
410
+ "type": [
411
+ "string",
412
+ "null"
413
+ ]
414
+ },
415
+ "pklCount": {
416
+ "type": "integer",
417
+ "format": "uint",
418
+ "minimum": 0.0
419
+ },
420
+ "volumeIndex": {
421
+ "type": "integer",
422
+ "format": "uint32",
423
+ "minimum": 0.0
424
+ }
425
+ }
426
+ },
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
+ "ValidationIssueEntry": {
684
+ "type": "object",
685
+ "required": [
686
+ "message",
687
+ "severity"
688
+ ],
689
+ "properties": {
690
+ "message": {
691
+ "type": "string"
692
+ },
693
+ "severity": {
694
+ "type": "string"
695
+ }
696
+ }
697
+ },
698
+ "ValidationSummary": {
699
+ "type": "object",
700
+ "required": [
701
+ "issues",
702
+ "valid"
703
+ ],
704
+ "properties": {
705
+ "issues": {
706
+ "type": "array",
707
+ "items": {
708
+ "$ref": "#/definitions/ValidationIssueEntry"
709
+ }
710
+ },
711
+ "valid": {
712
+ "type": "boolean"
713
+ }
714
+ }
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
+ }
803
+ }
804
+ }