Qualify Template Schemas
Full Template Schema JSON based on engine version
QC Engine Version 2023.7.1
{
"$schema": "http://json-schema.org/schema#",
"title": "Templates Schema",
"type": "object",
"description": "Represents a Qualify job template",
"definitions": {
"audio_program": {
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
65,
66,
68,
69,
70,
33,
34,
35
]
}
},
"audio_mapping": {
"type": "array",
"items": {
"$ref": "#/definitions/audio_program"
}
},
"audio_layout": {
"type": [
"object",
"null"
],
"properties": {
"name": {
"type": "string"
},
"layout": {
"type": "array",
"items": {
"$ref": "#/definitions/audio_mapping"
}
}
},
"required": [
"name",
"layout"
]
},
"package_layout": {
"type": [
"object",
"null"
],
"properties": {
"name": {
"type": "string"
},
"video_index": {
"description": "Index of video track from ABR manifest file that will be used in checks\n",
"type": "integer",
"minimum": 1
},
"audio_indexes": {
"description": "Index of audio track from ABR manifest file that will be used in checks\n",
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
},
"subtitle_indexes": {
"description": "Index of subtitle track from ABR manifest file that will be used in check\n",
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
}
},
"required": [
"name",
"video_index",
"audio_indexes",
"subtitle_indexes"
]
},
"audio_description_test_config": {
"type": "object",
"required": [
"description",
"control"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"description": {
"title": "Audio Description Channel",
"description": "The channel where the Audio Description should be present",
"type": "integer",
"minimum": 1
},
"control": {
"title": "Control Channel",
"description": "The channel where the Audio Description Control should be present",
"type": "integer",
"minimum": 1
},
"advanced": {
"title": "Advanced",
"description": "Enable advanced options",
"type": "boolean",
"default": false
},
"ctrl_frequency": {
"title": "Control channel Frequency",
"description": "The expected frequency of the Control channel",
"type": "number",
"default": 1280,
"suffix": "Hz"
},
"ctrl_frequency_tolerance": {
"title": "Control channel Frequency Tolerance",
"description": "The tolerance of the Control channel frequency",
"type": "number",
"default": 20,
"suffix": "Hz"
},
"ctrl_amplitude": {
"title": "Control channel Amplitude",
"description": "The expected amplitude of the Control channel",
"type": "number",
"default": -36,
"suffix": "dBFS"
},
"ctrl_amplitude_tolerance": {
"title": "Control channel Amplitude Tolerance",
"description": "The tolerance of the Control channel amplitude",
"type": "number",
"default": 3,
"suffix": "dB"
}
}
}
]
},
"blackframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Black"
},
{
"value": 1,
"name": "Not Black"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"channelmapping_test_config": {
"type": "object",
"required": [
"mapping"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"mapping": {
"title": "Channel Mapping",
"type": "string",
"pattern": "^$|^\\s*(?:U|L|R|C|LFE|Ls|Rs|Lc|Rc|Cs|Lsd|Rsd|Tcs|Tfl|Tfc|Tfr|Tbl|Tbc|Tbr|Tsl|Tsr|Lw|Rw|LFE2|Lrs|Rrs|Lt|Rt|M|,|\\s)*\\s*$",
"description": "Expected channel mapping. Use comma separated channel labels."
}
}
}
]
},
"channel_position_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_center_freq": {
"title": "Minimum center channel frequency",
"type": "number",
"description": "Minimum center frequency",
"default": 80,
"minimum": 0
},
"max_center_freq": {
"title": "Maximum center channel frequency",
"type": "number",
"description": "Maximum center frequency",
"default": 6000,
"minimum": 0
},
"min_lfe_freq": {
"title": "Minimum LFE channel frequency",
"type": "number",
"description": "Minimum LFE frequency",
"default": 3,
"minimum": 0
},
"max_lfe_freq": {
"title": "Maximum LFE channel frequency",
"type": "number",
"description": "Maximum LFE frequency",
"default": 120,
"minimum": 0
}
}
}
]
},
"clicksandpops_test_config": {
"type": "object",
"required": [
"sensitivity"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"ignore_silence": {
"type": "boolean",
"title": "Ignore silence",
"description": "When turned on, silent parts will be ignored",
"default": true
},
"sensitivity": {
"$ref": "#/definitions/customizable_sensitivity",
"description": "Determines how sensitive the test will be in detecting clicks and pops"
},
"custom_sensitivity": {
"type": "number",
"description": "Custom sensitivity percentage. Higher is more sensitive",
"minimum": 0.0,
"maximum": 100.0,
"default": 68.75
}
}
},
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity"
]
}
}
]
},
"clipping_test_config": {
"type": "object",
"required": [
"sensitivity",
"percentage_check"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_threshold": {
"type": "number",
"description": "Specify custom value where samples are suppressed and do not count towards the clipping test",
"suffix": "dB",
"default": -60.0,
"minimum": -100
},
"sensitivity": {
"$ref": "#/definitions/customizable_sensitivity",
"description": "Determines the number of successive samples which must be equal before the sequence is deemed to contain clipping. Choose between High (least number of samples), Medium, and Low (most number of samples)"
},
"custom_sensitivity": {
"type": "number",
"description": "Specify custom value for successive samples which must be equal before the sequence is deemed to contain clipping"
},
"units": {
"type": "integer",
"title": "Custom Sensitivity Units",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Samples"
},
{
"value": 1,
"name": "Milliseconds"
}
]
},
"percentage_check": {
"title": "Percentage Check",
"type": "boolean",
"default": false
},
"percentage": {
"title": "Percentage",
"type": "number",
"minimum": 0,
"maximum": 100.0,
"default": 1,
"suffix": "%"
}
},
"allOf": [
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity",
"units"
]
}
},
{
"if": {
"properties": {
"percentage_check": {
"const": true
}
}
},
"then": {
"required": [
"percentage"
]
}
},
{
"if": {
"properties": {
"units": {
"const": 0
}
}
},
"then": {
"properties": {
"custom_sensitivity": {
"minimum": 2
}
}
}
},
{
"if": {
"properties": {
"units": {
"const": 1
}
}
},
"then": {
"properties": {
"custom_sensitivity": {
"minimum": 0.1
}
}
}
}
]
}
]
},
"colorbar_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "ColorBars"
},
{
"value": 1,
"name": "Not ColorBars"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"gop_structure": {
"type": "object",
"properties": {
"i_distance": {
"title": "I-Frame distance",
"type": "string"
},
"p_distance": {
"title": "P-Frame distance",
"type": "string"
},
"open_closed": {
"title": "Open/Closed",
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Either"
},
{
"value": 1,
"name": "Open"
},
{
"value": 2,
"name": "Closed"
}
]
}
}
},
"timecode": {
"type": "string",
"default": "00:00:00:00",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}[;:.][0-9]{2,3}$"
},
"bool_false": {
"type": "boolean",
"default": false
},
"bool_true": {
"type": "boolean",
"default": true
},
"bool_optional": {
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0
},
"bool_extended": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 2
},
"allowed_disallowed_required": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Allowed"
},
{
"value": 1,
"name": "Disallowed"
},
{
"value": 2,
"name": "Required"
}
]
},
"rational": {
"type": "object",
"required": [
"num",
"denom"
],
"properties": {
"num": {
"title": "Numerator",
"type": "integer",
"minimum": 0,
"default": 0
},
"denom": {
"title": "Denominator",
"type": "integer",
"minimum": 1,
"default": 1
}
}
},
"minmax": {
"type": "object",
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 0,
"default": 0
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 0,
"default": 0
}
}
},
"minmax_bits": {
"type": "object",
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
}
}
},
"audio_config_silence": {
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"audio_track_type": {
"$ref": "#/definitions/audio_track_type"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"allOf": [
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"audio_track_type"
],
"allOf": [
{
"if": {
"properties": {
"audio_track_type": {
"const": 2
}
}
},
"then": {
"required": [
"dolbye_program"
]
}
}
]
}
}
]
},
"audio_config": {
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"audio_track_type": {
"$ref": "#/definitions/audio_track_type"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"required": [
"audio_track",
"audio_track_type"
],
"allOf": [
{
"if": {
"properties": {
"audio_track_type": {
"const": 2
}
}
},
"then": {
"required": [
"dolbye_program"
]
}
}
]
},
"audio_track": {
"title": "Mix",
"type": "integer",
"description": "Audio mix to test",
"minimum": 1,
"default": 1
},
"audio_track_type": {
"title": "Mix type",
"type": "integer",
"description": "Audio mix type to test",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "PCM"
},
{
"value": 2,
"name": "DolbyE"
},
{
"value": 3,
"name": "Encoded"
}
],
"default": 0
},
"dolbye_program": {
"title": "Dolby E Program",
"type": "integer",
"description": "Dolby E program to test (only for Dolby E mixes)",
"minimum": 1,
"default": 1
},
"channel_mask": {
"title": "Channel Selection",
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"description": "Select channels using comma separated numbers. Leave empty to select all."
},
"time_units": {
"type": "integer",
"description": "Test in seconds or frames",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"base_range_type": {
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0
},
"range_limit": {
"type": "number",
"default": 0,
"minimum": 0
},
"base_range": {
"type": "object",
"required": [
"layout"
],
"properties": {
"layout": {
"title": "Layout",
"type": "string",
"enum": [
"0",
"1"
],
"default": "0",
"titleMap": [
{
"value": "0",
"name": "Test Fixed Duration"
},
{
"value": "1",
"name": "Test End Of File"
}
]
},
"start": {
"title": "Starts At",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "Ends At",
"$ref": "#/definitions/range_limit"
},
"start_from_end": {
"title": "Test Last",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "With Duration",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
}
}
},
"tolerant_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"tolerance": {
"title": "Tolerance +/-",
"type": "number",
"default": 0,
"minimum": 0
}
}
}
]
},
"video_bit_depth": {
"type": "integer",
"enum": [
8,
10,
12,
14
],
"default": 8
},
"level_8_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 16
},
"level_10_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 64
},
"level_12_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 256
},
"level_14_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 1024
},
"max_black_level_8_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 235
},
"max_black_level_10_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 940
},
"max_black_level_12_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 3760
},
"max_black_level_14_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 15040
},
"warnings_as": {
"title": "Treat Warnings as",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
}
],
"default": 1
},
"sensitivity": {
"title": "Sensitivity",
"type": "integer",
"description": "A High sensitivity will find more problems but could also find more false positives. A Low sensitivity will only detect more obvious problems",
"enum": [
0,
1,
2
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Low"
},
{
"value": 1,
"name": "Medium"
},
{
"value": 2,
"name": "High"
}
]
},
"customizable_sensitivity": {
"title": "Sensitivity",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Low"
},
{
"value": 1,
"name": "Medium"
},
{
"value": 2,
"name": "High"
},
{
"value": 3,
"name": "Custom"
}
]
},
"dialnorm_test_config": {
"type": "object",
"required": [
"minimum",
"maximum"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"minimum": {
"title": "Minimum Dialnorm Value",
"description": "Minimum valid dialnorm value is 1",
"type": "integer",
"minimum": 1,
"maximum": 31
},
"maximum": {
"title": "Maximum Dialnorm Value",
"description": "Maximum valid dialnorm value is 31",
"type": "integer",
"minimum": 1,
"maximum": 31
}
}
}
]
},
"dualmono_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"tolerance": {
"title": "Tolerance Window",
"type": "number",
"default": 1,
"description": "A dual mono section lasting less than this time window will be ignored."
}
}
}
]
},
"freezeframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Freeze"
},
{
"value": 1,
"name": "Not Freeze"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"integrated_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"description": "Specify the loudness (and tolerance range) within which loudness must lie",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"tolerance": {
"title": "Loudness Tolerance",
"description": "Specify the loudness (and tolerance range) within which loudness must lie",
"type": "number",
"default": 2.0,
"minimum": 0.0,
"suffix": "dB"
},
"mode": {
"title": "Loudness Mode",
"description": "Select standard to use for measuring integrated loudness",
"type": "integer",
"enum": [
0,
1,
2,
3,
4
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "ITU 1770-4 / EBU I"
},
{
"value": 1,
"name": "ITU 1770-1"
},
{
"value": 3,
"name": "ITU 1770-2"
},
{
"value": 4,
"name": "ITU 1770-3"
},
{
"value": 2,
"name": "ARIB TR-B32"
}
]
},
"dialog_gating": {
"title": "Dialog Gating",
"description": "Measure loudness only when dialog is present",
"type": "boolean"
}
}
}
]
},
"loudness_range_test_config": {
"type": "object",
"description": "Measure the variation in loudness over the duration of a file. The algorithm is specified in EBU-Tech 3342 and produces an output Loudness Range ('LRA') in terms of Loudness Units ('LU')",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"check_min": {
"title": "Check Minimum",
"type": "boolean"
},
"min_range": {
"title": "Min",
"description": "Minimum permitted loudness range",
"type": "number",
"suffix": "LU"
},
"check_max": {
"title": "Check Maximum",
"type": "boolean"
},
"max_range": {
"title": "Max",
"description": "Maximum permitted loudness range",
"type": "number",
"suffix": "LU"
}
},
"allOf": [
{
"if": {
"properties": {
"check_min": {
"const": true
}
}
},
"then": {
"required": [
"min_range"
]
}
},
{
"if": {
"properties": {
"check_max": {
"const": true
}
}
},
"then": {
"required": [
"max_range"
]
}
}
]
}
]
},
"minlevel_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"minlevel_elsewhere",
"level",
"duration",
"units"
],
"description": "Checks if the RMS level for a given channel drops below the given level for a window longer than the given duration",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"minlevel_elsewhere": {
"title": "Test whole file",
"description": "Evaluate minimum level across the whole file",
"type": "boolean",
"default": true
},
"level": {
"title": "Min Level Threshold (dBFS)",
"type": "number",
"default": -70.0,
"description": "The minimum acceptable level over the window duration, in dBFS RMS."
},
"duration": {
"title": "Window Duration",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/minlevel_range"
}
}
}
}
]
},
"minlevel_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Test for minimum level",
"type": "integer",
"enum": [
0,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Should be below"
},
{
"value": 2,
"name": "Don't care"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
}
]
},
"momentary_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"violations": {
"title": "Report Violations",
"description": "Max Violations will report only the worst violation",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Max Only"
},
{
"value": 1,
"name": "All Violations"
}
],
"default": 0
}
}
}
]
},
"timecode_track_test": {
"type": "object",
"required": [
"continuity"
],
"properties": {
"continuity": {
"title": "Structural Continuity",
"type": "boolean",
"default": false
},
"dropframe": {
"title": "Drop Frame",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "False"
},
{
"value": 2,
"name": "True"
}
],
"default": 0
}
}
},
"location_test": {
"type": "object",
"properties": {
"header": {
"title": "Header Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"body": {
"title": "Body Partition(s)",
"$ref": "#/definitions/allowed_disallowed_required"
},
"exclude_first": {
"title": "Exclude First Body Partition",
"type": "boolean",
"default": false
},
"footer": {
"title": "Footer Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"is_repeated": {
"title": "Repeated footer partition",
"type": "boolean",
"default": false
},
"present": {
"title": "Present In At Least One",
"type": "boolean",
"default": false
}
}
},
"partition_status_test": {
"type": "object",
"properties": {
"closedcomplete": {
"title": "Closed / Complete",
"type": "boolean"
},
"openincomplete": {
"title": "Open / Incomplete",
"type": "boolean"
},
"closedincomplete": {
"title": "Closed / Incomplete",
"type": "boolean"
},
"opencomplete": {
"title": "Open / Complete",
"type": "boolean"
},
"notpresent": {
"title": "Not Present",
"type": "boolean"
}
}
},
"pic_frame_size": {
"type": "object",
"properties": {
"size": {
"title": "Frame Size",
"type": "string",
"pattern": "^\\d+x|X\\d+$",
"suffix": "(WxH) e.g. 1920x544"
}
}
},
"sid": {
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"description": "Leave blank for any"
},
"nielsen_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"naes2": {
"title": "NAES 2",
"type": "boolean",
"default": false,
"description": "Detects and reports N2 watermarks"
},
"naes2_sids": {
"$ref": "#/definitions/sid"
},
"naes6": {
"title": "NAES 6",
"type": "boolean",
"default": false,
"description": "Detects and reports Nielsen Watermark TAM** Codes (NW) and Nielsen Watermark Commercial Codes (NWCC)"
},
"naes6_sids": {
"$ref": "#/definitions/sid"
}
}
}
]
},
"peak_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_peak_enable": {
"title": "Min Peak Enable",
"type": "boolean"
},
"min_peak_level": {
"title": "Min Peak Level",
"description": "Minimum acceptable peak level",
"type": "number"
},
"max_peak_enable": {
"title": "Max Peak Enable",
"type": "boolean"
},
"max_peak_level": {
"title": "Max Peak Level",
"description": "Maximum acceptable peak level",
"type": "number"
},
"peak_type": {
"title": "Peak Type",
"description": "dbTP (True Peak) as per Annex 2 of ITU-R BS.1770-1 or in dbFS (Full Scale)",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "dBFS"
},
{
"value": 1,
"name": "dBTP"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"min_peak_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_peak_level"
]
}
},
{
"if": {
"properties": {
"max_peak_enable": {
"const": true
}
}
},
"then": {
"required": [
"max_peak_level"
]
}
}
]
}
]
},
"phase_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_instant_phase_enable": {
"title": "Min Instant Phase Enable",
"type": "boolean"
},
"min_instant_phase": {
"title": "Min Instant Phase",
"description": "Taken over a 10ms window period, the lowest value for the stream is recorded",
"type": "number"
},
"min_mean_phase_enable": {
"title": "Min Mean Phase Enable",
"type": "boolean"
},
"min_mean_phase": {
"title": "Min Mean Phase",
"description": "Measured over the whole audio stream",
"type": "number"
},
"max_mean_phase_enable": {
"title": "Max Mean Phase Enable",
"type": "boolean"
},
"max_mean_phase": {
"title": "Max Mean Phase",
"description": "Measured over the whole audio stream",
"type": "number"
}
},
"allOf": [
{
"if": {
"properties": {
"min_instant_phase_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_instant_phase"
]
}
},
{
"if": {
"properties": {
"min_mean_phase_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_mean_phase"
]
}
},
{
"if": {
"properties": {
"max_mean_phase_enable": {
"const": true
}
}
},
"then": {
"required": [
"max_mean_phase"
]
}
}
]
}
]
},
"ppm_level_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_ppm_enable": {
"title": "Min PPM Level Enable",
"type": "boolean"
},
"min_ppm_level": {
"title": "Min PPM Level",
"type": "number"
},
"max_ppm_enable": {
"title": "Max PPM Level Enable",
"type": "boolean"
},
"max_ppm_level": {
"title": "Max PPM Level",
"type": "number"
},
"ppm_mode": {
"title": "PPM Mode",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "M3"
},
{
"value": 1,
"name": "M6"
},
{
"value": 2,
"name": "AB"
}
],
"default": 0
}
}
},
{
"if": {
"properties": {
"min_ppm_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_ppm_level"
]
}
},
{
"if": {
"properties": {
"max_ppm_enable": {
"const": true
}
}
},
"then": {
"required": [
"max_ppm_level"
]
}
}
]
},
"shortterm_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"window": {
"title": "Loudness Window",
"description": "Default window length of 3 seconds corresponds to EBU-Tech 3341 Short-term mode",
"type": "number",
"suffix": "seconds",
"default": 3.0,
"minimum": 0
},
"violations": {
"title": "Report Violations",
"description": "Max Violations will report only the worst violation",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Max Only"
},
{
"value": 1,
"name": "All Violations"
}
],
"default": 0
}
}
}
]
},
"silence_test_config": {
"type": "object",
"required": [
"silent_elsewhere"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"silent_elsewhere": {
"title": "Test whole file",
"description": "Test whole file for the presence of silence",
"type": "boolean",
"default": true
},
"silent": {
"type": "boolean",
"default": true,
"titleMap": [
{
"value": true,
"name": "Must Be Silent"
},
{
"value": false,
"name": "Must Not Be Silent"
}
]
},
"digital": {
"title": "Digital Silence",
"type": "boolean",
"description": "The track is checked for the presence or absence of audio samples"
},
"threshold": {
"title": "Silence Threshold",
"type": "number",
"default": -70.0,
"description": "The threshold below which an audio track is considered silent"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/silence_range"
}
},
"quiet": {
"type": "boolean",
"default": false
}
}
}
]
},
"silence_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Silent"
},
{
"value": 1,
"name": "Not Silent"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
}
]
},
"singlecolor_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Single Color"
},
{
"value": 1,
"name": "Not Single Color"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"tone_type": {
"title": "Tone Type",
"type": "string",
"description": "Check for presence of sine wave tone at level given in dBFS peak-to-peak (to convert from RMS add 3dB)",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6"
],
"default": "0",
"titleMap": [
{
"value": "0",
"name": "Continuous"
},
{
"value": "1",
"name": "Ebu1000Hz"
},
{
"value": "2",
"name": "Ebu440Hz"
},
{
"value": "3",
"name": "Glits1000Hz"
},
{
"value": "4",
"name": "Glits2000Hz"
},
{
"value": "5",
"name": "Blits"
},
{
"value": "6",
"name": "EAS (Emergency Alert System)"
}
]
},
"tone_test_config": {
"type": "object",
"required": [
"tone_type"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"tone_type": {
"$ref": "#/definitions/tone_type"
},
"tone_elsewhere": {
"title": "Test whole file",
"description": "Test whole file for the presence of a test tone",
"type": "boolean",
"default": true
},
"tone": {
"type": "boolean",
"default": false,
"titleMap": [
{
"value": true,
"name": "Must Be Present"
},
{
"value": false,
"name": "Must Be Absent"
}
]
},
"frequency": {
"title": "Tone frequency",
"description": "The expected frequency of the test tone",
"type": "number",
"default": 1000.0,
"suffix": "Hz"
},
"power": {
"title": "Tone level",
"type": "number",
"default": -6.0,
"suffix": "dBFS"
},
"tolerance": {
"title": "Level tolerance",
"type": "number",
"default": 0.5,
"suffix": "dB"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/tone_range"
}
},
"segment": {
"$ref": "#/definitions/tone_segment"
}
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "0"
}
}
},
"then": {
"required": [
"tolerance",
"frequency",
"power",
"tone_elsewhere"
],
"allOf": [
{
"if": {
"properties": {
"tone_elsewhere": {
"const": true
}
}
},
"then": {
"required": [
"tone"
]
}
}
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "1"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "2"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "3"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "4"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "5"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
}
]
},
"tone_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Present"
},
{
"value": 1,
"name": "Not Present"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
},
"tone_segment": {
"type": "object",
"required": [
"start",
"duration",
"units"
],
"properties": {
"start": {
"title": "Start At",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "Duration",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
}
}
}
},
"properties": {
"name": {
"description": "User given name of a template",
"type": "string",
"nullable": false
},
"id": {
"description": "Cloud ID",
"type": [
"string",
"null"
],
"nullable": true
},
"created_at": {
"description": "Cloud Created at",
"type": [
"string",
"null"
],
"regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"nullable": true
},
"updated_at": {
"description": "Cloud Updated at",
"type": [
"string",
"null"
],
"regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"nullable": true
},
"aggregate_alerts_limit": {
"description": "Option to aggregate alerts of the same ID",
"type": [
"integer",
"null"
],
"nullable": true
},
"use_starttimecode": {
"description": "Option to use the video's timecode for alert start & end times",
"type": [
"boolean",
"null"
],
"default": false,
"nullable": true
},
"audio_layout": {
"description": "Audio layout to use",
"$ref": "#/definitions/audio_layout"
},
"audio_layout_id": {
"description": "Id of audio layout to use",
"type": [
"string",
"null"
],
"nullable": true
},
"package_layout": {
"description": "Package layout to use",
"$ref": "#/definitions/package_layout"
},
"package_layout_id": {
"description": "Id of package layout to use",
"type": [
"string",
"null"
],
"nullable": true
},
"engine_version": {
"description": "Engine version",
"type": "string",
"regex": "^[0-9]{4}.[0-9]{1,2}.[1-9]{1,2}$"
},
"treat_missing_media_as": {
"description": "What type of alerts missing media should generate, e.g. Info, Warning, Error",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
}
],
"default": 1,
"nullable": true
},
"tests": {
"properties": {
"audio_description": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Audio Description Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/audio_description_test_config"
}
}
}
},
"audio_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audio_bitdepth_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Bit Depth",
"description": "Check the number of bits per audio sample per channel",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"description": "Select multiple by using comma separated values",
"default": "16",
"suffix": "bits per sample"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"audio_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Bit Rate",
"description": "Check the bit rate of the audio track as it appears in the input file",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"description": "Test specific value(s) or that bit rate lies within given range",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"description": "Select multiple by using comma separated values",
"type": "string",
"suffix": "kbps"
},
"minimum": {
"title": "Minimum",
"description": "The minimum allowed bit rate",
"type": "integer",
"minimum": 0,
"suffix": "kbps"
},
"maximum": {
"title": "Maximum",
"description": "The maximum allowed bit rate",
"type": "integer",
"minimum": 0,
"suffix": "kbps"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
}
]
},
"audio_endianness_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Check endianness of LPCM",
"type": "boolean",
"default": false,
"description": "Check the endianness of the audio LPCM data against the original audio."
},
"options": {
"title": "Endianess Required",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Little Endian"
},
{
"value": 1,
"name": "Big Endian"
}
]
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_trackcount_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Number of Tracks",
"description": "Check the number of audio tracks in the file",
"type": "boolean",
"default": false
},
"count": {
"type": "string",
"description": "Select multiple by using comma separated values",
"default": "1"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"count"
]
}
},
"audio_codec_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Codec",
"description": "Check the format of the audio elementary stream",
"type": "boolean",
"default": false
},
"codec": {
"title": "All",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"value": 0,
"name": "AAC"
},
{
"value": 1,
"name": "Dolby AC-3"
},
{
"value": 2,
"name": "Dolby Digital Plus"
},
{
"value": 3,
"name": "Dolby E"
},
{
"value": 4,
"name": "MPEG-1 / MPEG-2"
},
{
"value": 5,
"name": "PCM"
},
{
"value": 7,
"name": "SMPTE 331M"
},
{
"value": 6,
"name": "WMA"
}
]
}
},
"aac_profile": {
"title": "AAC profiles",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "HE-AAC"
},
{
"value": 1,
"name": "HE-AACv2"
},
{
"value": 2,
"name": "LC"
},
{
"value": 3,
"name": "Main"
},
{
"value": 4,
"name": "SSR"
},
{
"value": 5,
"name": "LTP"
}
]
}
},
"pcm_type": {
"title": "PCM types",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"titleMap": [
{
"value": 0,
"name": "Frame (BWF)"
},
{
"value": 1,
"name": "Clip (BWF)"
},
{
"value": 2,
"name": "Frame (AES)"
},
{
"value": 3,
"name": "Clip (AES)"
},
{
"value": 4,
"name": "Custom (BWF)"
},
{
"value": 5,
"name": "Custom (AES)"
},
{
"value": 6,
"name": "Frame"
},
{
"value": 7,
"name": "Clip"
},
{
"value": 8,
"name": "D-10"
},
{
"value": 9,
"name": "Custom"
},
{
"value": 10,
"name": "Custom: Fixed Audio Size"
}
]
}
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"codec"
],
"allOf": [
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
0
]
}
}
}
},
"then": {
"required": [
"aac_profile"
]
},
"else": {
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
5
]
}
}
}
},
"then": {
"required": [
"pcm_type"
]
}
}
}
]
}
}
]
},
"audio_languageid_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Language ID",
"description": "Check the audio language ID in the audio stream",
"type": "boolean",
"default": false
},
"options": {
"title": "Languages",
"type": "array",
"items": {
"type": "string",
"enum": [
"abk",
"ady",
"aar",
"afr",
"aka",
"sqi",
"amh",
"ara",
"arg",
"arp",
"aae",
"hye",
"rup",
"asm",
"ina",
"ava",
"ave",
"aym",
"aze",
"bam",
"bak",
"eus",
"bar",
"bel",
"ben",
"bih",
"bis",
"bos",
"bre",
"bul",
"mya",
"spa",
"cat",
"cha",
"che",
"zho",
"chv",
"cim",
"cor",
"cos",
"cre",
"crh",
"hrv",
"ces",
"dan",
"div",
"nld",
"dzo",
"eng",
"enm",
"myv",
"epo",
"est",
"ewe",
"fao",
"fij",
"fin",
"fra",
"frm",
"fur",
"frr",
"fry",
"ful",
"gla",
"glg",
"lug",
"kat",
"deu",
"ell",
"grn",
"guj",
"hat",
"hau",
"heb",
"her",
"hin",
"hmo",
"hun",
"isl",
"ido",
"ibo",
"ind",
"inh",
"ile",
"iku",
"ipk",
"gle",
"ita",
"jpn",
"jav",
"lad",
"kbd",
"kal",
"xal",
"kan",
"kau",
"krc",
"krl",
"kas",
"csb",
"kaz",
"khm",
"kik",
"kin",
"kir",
"kom",
"kon",
"kor",
"kua",
"kur",
"lao",
"lat",
"lav",
"ast",
"lim",
"lin",
"lit",
"lub",
"ltz",
"mkd",
"mlg",
"msa",
"mal",
"mlt",
"glv",
"mri",
"mar",
"chm",
"mah",
"mwl",
"mdf",
"ron",
"mon",
"nau",
"nav",
"ndo",
"nap",
"nep",
"nde",
"sme",
"nor",
"nob",
"nno",
"nya",
"oci",
"oji",
"ori",
"orm",
"oss",
"pli",
"pan",
"fas",
"pol",
"por",
"pus",
"que",
"roh",
"rom",
"run",
"rus",
"smo",
"sag",
"san",
"srd",
"sco",
"srp",
"sna",
"scn",
"snd",
"sin",
"slk",
"slv",
"som",
"wen",
"sot",
"nbl",
"sma",
"sun",
"swa",
"ssw",
"swe",
"gsw",
"tgl",
"tah",
"tgk",
"tam",
"tat",
"tel",
"tha",
"bod",
"tir",
"ton",
"tso",
"tsn",
"tur",
"tuk",
"twi",
"udm",
"uig",
"ukr",
"mis",
"urd",
"uzb",
"ven",
"vie",
"vol",
"wln",
"cym",
"wol",
"xho",
"yid",
"yor",
"zha",
"zul",
"none"
],
"titleMap": [
{
"value": "abk",
"name": "Abkhazian - abk"
},
{
"value": "ady",
"name": "Adygei, Adyghe - ady"
},
{
"value": "aar",
"name": "Afar - aar"
},
{
"value": "afr",
"name": "Afrikaans - afr"
},
{
"value": "aka",
"name": "Akan - aka"
},
{
"value": "sqi",
"name": "Albanian - sqi"
},
{
"value": "amh",
"name": "Amharic - amh"
},
{
"value": "ara",
"name": "Arabic - ara"
},
{
"value": "arg",
"name": "Aragonese - arg"
},
{
"value": "arp",
"name": "Arapaho - arp"
},
{
"value": "aae",
"name": "Arb\u00ebresh\u00eb Albanian - aae"
},
{
"value": "hye",
"name": "Armenian - hye"
},
{
"value": "rup",
"name": "Aromanian, Arumanian, Macedo-Romanian - rup"
},
{
"value": "asm",
"name": "Assamese - asm"
},
{
"value": "ina",
"name": "Auxiliary Language Association - ina"
},
{
"value": "ava",
"name": "Avaric - ava"
},
{
"value": "ave",
"name": "Avestan - ave"
},
{
"value": "aym",
"name": "Aymara - aym"
},
{
"value": "aze",
"name": "Azerbaijani - aze"
},
{
"value": "bam",
"name": "Bambara - bam"
},
{
"value": "bak",
"name": "Bashkir - bak"
},
{
"value": "eus",
"name": "Basque - eus"
},
{
"value": "bar",
"name": "Bavarian - bar"
},
{
"value": "bel",
"name": "Belarusian - bel"
},
{
"value": "ben",
"name": "Bengali - ben"
},
{
"value": "bih",
"name": "Bihari - bih"
},
{
"value": "bis",
"name": "Bislama - bis"
},
{
"value": "bos",
"name": "Bosnian - bos"
},
{
"value": "bre",
"name": "Breton - bre"
},
{
"value": "bul",
"name": "Bulgarian - bul"
},
{
"value": "mya",
"name": "Burmese - mya"
},
{
"value": "spa",
"name": "Castilian, Spanish - spa"
},
{
"value": "cat",
"name": "Catalan, Valencian - cat"
},
{
"value": "cha",
"name": "Chamorro - cha"
},
{
"value": "che",
"name": "Chechen - che"
},
{
"value": "zho",
"name": "Chinese - zho"
},
{
"value": "chv",
"name": "Chuvash - chv"
},
{
"value": "cim",
"name": "Cimbrian - cim"
},
{
"value": "cor",
"name": "Cornish - cor"
},
{
"value": "cos",
"name": "Corsican - cos"
},
{
"value": "cre",
"name": "Cree - cre"
},
{
"value": "crh",
"name": "Crimean Tatar, Crimean Turkish - crh"
},
{
"value": "hrv",
"name": "Croatian - hrv"
},
{
"value": "ces",
"name": "Czech - ces"
},
{
"value": "dan",
"name": "Danish - dan"
},
{
"value": "div",
"name": "Dhivehi, Divehi, Maldivian - div"
},
{
"value": "nld",
"name": "Dutch, Flemish - nld"
},
{
"value": "dzo",
"name": "Dzongkha - dzo"
},
{
"value": "eng",
"name": "English - eng"
},
{
"value": "enm",
"name": "Middle English - enm"
},
{
"value": "myv",
"name": "Erzya - myv"
},
{
"value": "epo",
"name": "Esperanto - epo"
},
{
"value": "est",
"name": "Estonian - est"
},
{
"value": "ewe",
"name": "Ewe - ewe"
},
{
"value": "fao",
"name": "Faroese - fao"
},
{
"value": "fij",
"name": "Fijian - fij"
},
{
"value": "fin",
"name": "Finnish - fin"
},
{
"value": "fra",
"name": "French - fra"
},
{
"value": "frm",
"name": "Middle French - frm"
},
{
"value": "fur",
"name": "Friulian - fur"
},
{
"value": "frr",
"name": "Northern Frisian - frr"
},
{
"value": "fry",
"name": "Western Frisian - fry"
},
{
"value": "ful",
"name": "Fulah - ful"
},
{
"value": "gla",
"name": "Gaelic, Scottish Gaelic - gla"
},
{
"value": "glg",
"name": "Galician - glg"
},
{
"value": "lug",
"name": "Ganda - lug"
},
{
"value": "kat",
"name": "Georgian - kat"
},
{
"value": "deu",
"name": "German - deu"
},
{
"value": "ell",
"name": "Greek - ell"
},
{
"value": "grn",
"name": "Guarani - grn"
},
{
"value": "guj",
"name": "Gujarati - guj"
},
{
"value": "hat",
"name": "Haitian, Haitian Creole - hat"
},
{
"value": "hau",
"name": "Hausa - hau"
},
{
"value": "heb",
"name": "Hebrew - heb"
},
{
"value": "her",
"name": "Herero - her"
},
{
"value": "hin",
"name": "Hindi - hin"
},
{
"value": "hmo",
"name": "Hiri Motu - hmo"
},
{
"value": "hun",
"name": "Hungarian - hun"
},
{
"value": "isl",
"name": "Icelandic - isl"
},
{
"value": "ido",
"name": "Ido - ido"
},
{
"value": "ibo",
"name": "Igbo - ibo"
},
{
"value": "ind",
"name": "Indonesian - ind"
},
{
"value": "inh",
"name": "Ingush - inh"
},
{
"value": "ile",
"name": "Interlingue, Occidental - ile"
},
{
"value": "iku",
"name": "Inuktitut - iku"
},
{
"value": "ipk",
"name": "Inupiaq - ipk"
},
{
"value": "gle",
"name": "Irish - gle"
},
{
"value": "ita",
"name": "Italian - ita"
},
{
"value": "jpn",
"name": "Japanese - jpn"
},
{
"value": "jav",
"name": "Javanese - jav"
},
{
"value": "lad",
"name": "Ladino - lad"
},
{
"value": "kbd",
"name": "Kabardian - kbd"
},
{
"value": "kal",
"name": "Greenlandic, Kalaallisut - kal"
},
{
"value": "xal",
"name": "Kalmyk, Oirat - xal"
},
{
"value": "kan",
"name": "Kannada - kan"
},
{
"value": "kau",
"name": "Kanuri - kau"
},
{
"value": "krc",
"name": "Karachay-Balkar - krc"
},
{
"value": "krl",
"name": "Karelian - krl"
},
{
"value": "kas",
"name": "Kashmiri - kas"
},
{
"value": "csb",
"name": "Kashubian - csb"
},
{
"value": "kaz",
"name": "Kazakh - kaz"
},
{
"value": "khm",
"name": "Central Khmer, Khmer - khm"
},
{
"value": "kik",
"name": "Gikuyu, Kikuyu - kik"
},
{
"value": "kin",
"name": "Kinyarwanda - kin"
},
{
"value": "kir",
"name": "Kirghiz, Kyrgyz - kir"
},
{
"value": "kom",
"name": "Komi - kom"
},
{
"value": "kon",
"name": "Kongo - kon"
},
{
"value": "kor",
"name": "Korean - kor"
},
{
"value": "kua",
"name": "Kuanyama, Kwanyama - kua"
},
{
"value": "kur",
"name": "Kurdish - kur"
},
{
"value": "lao",
"name": "Lao - lao"
},
{
"value": "lat",
"name": "Latin - lat"
},
{
"value": "lav",
"name": "Latvian - lav"
},
{
"value": "ast",
"name": "Leonese, Asturian, Asturleonese, Bable - ast"
},
{
"value": "lim",
"name": "Limburgan, Limburger, Limburgish - lim"
},
{
"value": "lin",
"name": "Lingala - lin"
},
{
"value": "lit",
"name": "Lithuanian - lit"
},
{
"value": "lub",
"name": "Luba-Katanga - lub"
},
{
"value": "ltz",
"name": "Letzeburgesch, Luxembourgish - ltz"
},
{
"value": "mkd",
"name": "Macedonian - mkd"
},
{
"value": "mlg",
"name": "Malagasy - mlg"
},
{
"value": "msa",
"name": "Malay - msa"
},
{
"value": "mal",
"name": "Malayalam - mal"
},
{
"value": "mlt",
"name": "Maltese - mlt"
},
{
"value": "glv",
"name": "Manx - glv"
},
{
"value": "mri",
"name": "Maori - mri"
},
{
"value": "mar",
"name": "Marathi - mar"
},
{
"value": "chm",
"name": "Mari (Russia) - chm"
},
{
"value": "mah",
"name": "Marshallese - mah"
},
{
"value": "mwl",
"name": "Mirandese - mwl"
},
{
"value": "mdf",
"name": "Moksha - mdf"
},
{
"value": "ron",
"name": "Moldavian, Moldovan, Romanian - ron"
},
{
"value": "mon",
"name": "Mongolian - mon"
},
{
"value": "nau",
"name": "Nauru - nau"
},
{
"value": "nav",
"name": "Navaho, Navajo - nav"
},
{
"value": "ndo",
"name": "Ndonga - ndo"
},
{
"value": "nap",
"name": "Neapolitan - nap"
},
{
"value": "nep",
"name": "Nepali - nep"
},
{
"value": "nde",
"name": "North Ndebele - nde"
},
{
"value": "sme",
"name": "Northern Sami - sme"
},
{
"value": "nor",
"name": "Norwegian - nor"
},
{
"value": "nob",
"name": "Norwegian Bokm\u00e5l - nob"
},
{
"value": "nno",
"name": "Norwegian Nynorsk - nno"
},
{
"value": "nya",
"name": "Nyanja, Chewa, Chichewa - nya"
},
{
"value": "oci",
"name": "Occitan - oci"
},
{
"value": "oji",
"name": "Ojibwa - oji"
},
{
"value": "ori",
"name": "Oriya - ori"
},
{
"value": "orm",
"name": "Oromo - orm"
},
{
"value": "oss",
"name": "Ossetian, Ossetic - oss"
},
{
"value": "pli",
"name": "Pali - pli"
},
{
"value": "pan",
"name": "Panjabi, Punjabi - pan"
},
{
"value": "fas",
"name": "Persian - fas"
},
{
"value": "pol",
"name": "Polish - pol"
},
{
"value": "por",
"name": "Portuguese - por"
},
{
"value": "pus",
"name": "Pashto, Pushto - pus"
},
{
"value": "que",
"name": "Quechua - que"
},
{
"value": "roh",
"name": "Romansh - roh"
},
{
"value": "rom",
"name": "Romany - rom"
},
{
"value": "run",
"name": "Rundi - run"
},
{
"value": "rus",
"name": "Russian - rus"
},
{
"value": "smo",
"name": "Samoan - smo"
},
{
"value": "sag",
"name": "Sango - sag"
},
{
"value": "san",
"name": "Sanskrit - san"
},
{
"value": "srd",
"name": "Sardinian - srd"
},
{
"value": "sco",
"name": "Scots - sco"
},
{
"value": "srp",
"name": "Serbian - srp"
},
{
"value": "sna",
"name": "Shona - sna"
},
{
"value": "scn",
"name": "Sicilian - scn"
},
{
"value": "snd",
"name": "Sindhi - snd"
},
{
"value": "sin",
"name": "Sinhala, Sinhalese - sin"
},
{
"value": "slk",
"name": "Slovak - slk"
},
{
"value": "slv",
"name": "Slovenian - slv"
},
{
"value": "som",
"name": "Somali - som"
},
{
"value": "wen",
"name": "Sorbian languages - wen"
},
{
"value": "sot",
"name": "Southern Sotho - sot"
},
{
"value": "nbl",
"name": "South Ndebele - nbl"
},
{
"value": "sma",
"name": "Southern Sami - sma"
},
{
"value": "sun",
"name": "Sundanese - sun"
},
{
"value": "swa",
"name": "Swahili - swa"
},
{
"value": "ssw",
"name": "Swati - ssw"
},
{
"value": "swe",
"name": "Swedish - swe"
},
{
"value": "gsw",
"name": "Swiss German, Alemannic, Alsatian - gsw"
},
{
"value": "tgl",
"name": "Tagalog - tgl"
},
{
"value": "tah",
"name": "Tahitian - tah"
},
{
"value": "tgk",
"name": "Tajik - tgk"
},
{
"value": "tam",
"name": "Tamil - tam"
},
{
"value": "tat",
"name": "Tatar - tat"
},
{
"value": "tel",
"name": "Telugu - tel"
},
{
"value": "tha",
"name": "Thai - tha"
},
{
"value": "bod",
"name": "Tibetan - bod"
},
{
"value": "tir",
"name": "Tigrinya - tir"
},
{
"value": "ton",
"name": "Tonga - ton"
},
{
"value": "tso",
"name": "Tsonga - tso"
},
{
"value": "tsn",
"name": "Tswana - tsn"
},
{
"value": "tur",
"name": "Turkish - tur"
},
{
"value": "tuk",
"name": "Turkmen - tuk"
},
{
"value": "twi",
"name": "Twi - twi"
},
{
"value": "udm",
"name": "Udmurt - udm"
},
{
"value": "uig",
"name": "Uighur, Uyghur - uig"
},
{
"value": "ukr",
"name": "Ukrainian - ukr"
},
{
"value": "mis",
"name": "Uncoded languages - mis"
},
{
"value": "urd",
"name": "Urdu - urd"
},
{
"value": "uzb",
"name": "Uzbek - uzb"
},
{
"value": "ven",
"name": "Venda - ven"
},
{
"value": "vie",
"name": "Vietnamese - vie"
},
{
"value": "vol",
"name": "Volap\u00fck - vol"
},
{
"value": "wln",
"name": "Walloon - wln"
},
{
"value": "cym",
"name": "Welsh - cym"
},
{
"value": "wol",
"name": "Wolof - wol"
},
{
"value": "xho",
"name": "Xhosa - xho"
},
{
"value": "yid",
"name": "Yiddish - yid"
},
{
"value": "yor",
"name": "Yoruba - yor"
},
{
"value": "zha",
"name": "Zhuang, Chuang - zha"
},
{
"value": "zul",
"name": "Zulu - zul"
},
{
"value": "none",
"name": "None"
}
]
},
"default": []
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"audio_numberofchannels_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Number of Channels",
"description": "Check the number of audio channels in the track",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"type": "string",
"description": "Test specific value(s) or that number of channels lie within given range",
"enum": [
"value",
"range"
],
"default": "value"
},
"maximum": {
"title": "Maximum",
"description": "The maximum allowed number of channels",
"type": "integer",
"minimum": 0,
"default": 0
},
"minimum": {
"title": "Minimum",
"description": "The minimum allowed number of channels",
"type": "integer",
"minimum": 0,
"default": 0
},
"equals": {
"title": "Equal to",
"description": "Test the channel count is equal to given value",
"type": "integer",
"minimum": 0,
"default": 0
},
"source": {
"title": "Source",
"description": "Test the number of channels per audio stream or across all audio streams",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "channels per audio stream"
},
{
"value": 1,
"name": "channels across all streams"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"mode",
"source"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"equals"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"audio_samplerate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Sample rate",
"description": "Check the number of audio samples per channel per second",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"description": "Select multiple by using comma separated values",
"suffix": "kHz"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
}
}
},
"black_frame": {
"type": "object",
"allOf": [
{
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area"
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage Of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "Percentage of frame required to be black"
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of black frames",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Black Video Allowed",
"description": "The maximum black video allowed (frames/seconds)",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Must Also Be Digitally Silent",
"description": "Test for digital silence in conjunction with black frames",
"type": "boolean"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/blackframe_range"
}
}
}
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"required": [
"silence",
"custom_level"
]
}
]
},
"cadence": {
"type": "object",
"required": [
"cadence_must_be",
"broken_cadence",
"report_all_cadences",
"poor_patterns"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"cadence_must_be": {
"title": "Cadence must be:",
"description": "Cadence expected in the stream",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"value": 0,
"name": "Progressive"
},
{
"value": 1,
"name": "2:2 (TFF)"
},
{
"value": 2,
"name": "2:2 (BFF)"
},
{
"value": 3,
"name": "2:3 (TFF)"
},
{
"value": 4,
"name": "2:3 (BFF)"
},
{
"value": 5,
"name": "24->25 fps (TFF)"
},
{
"value": 6,
"name": "24->25 fps (BFF)"
}
],
"default": 0
},
"broken_cadence": {
"title": "Check for broken 2:3 cadence (compromises Reverse Telecine)",
"type": "boolean",
"default": false,
"description": "Look for breaks in the cadence pattern such as can be caused by editing 2:3 cadence video. An interrupted pattern can cause problems with a Reverse Telecine operation"
},
"report_all_cadences": {
"title": "Report all detected cadences",
"type": "boolean",
"default": false,
"description": "Analyze the video stream and report all cadences found as Info alerts"
},
"poor_patterns": {
"title": "Check for poor patterns",
"type": "boolean",
"default": false,
"description": "Raises an alert if a cadence pattern is found that causes excessive visual 'stutter'. This includes patterns which repeat frames (e.g. 2:2:2:4) and pull-down patterns not best suited for broadcast (e.g. 'Advanced' pull-down 2:3:3:2)"
}
}
},
"caption_subtitle": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"caption_present_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Detect and report the presence of Closed Captions",
"description": "Will test for the absence of captions.",
"type": "boolean",
"default": false
},
"cc1": {
"title": "CC1 Presence",
"type": "boolean",
"description": "Find captions in CC1.",
"default": false
},
"cc2": {
"title": "CC2 Presence",
"type": "boolean",
"description": "Find captions in CC2.",
"default": false
},
"cc3": {
"title": "CC3 Presence",
"type": "boolean",
"description": "Find captions in CC3.",
"default": false
},
"cc4": {
"title": "CC4 Presence",
"type": "boolean",
"description": "Find captions in CC4.",
"default": false
},
"service1": {
"title": "Service 1 Presence",
"type": "boolean",
"description": "Find captions in Service 1.",
"default": false
},
"service2": {
"title": "Service 2 Presence",
"type": "boolean",
"description": "Find captions in Service 2.",
"default": false
},
"service3": {
"title": "Service 3 Presence",
"type": "boolean",
"description": "Find captions in Service 3.",
"default": false
},
"service4": {
"title": "Service 4 Presence",
"type": "boolean",
"description": "Find captions in Service 4.",
"default": false
},
"service5": {
"title": "Service 5 Presence",
"type": "boolean",
"description": "Find captions in Service 5.",
"default": false
},
"service6": {
"title": "Service 6 Presence",
"type": "boolean",
"description": "Find captions in Service 6.",
"default": false
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"cc1",
"cc2",
"cc3",
"cc4",
"service1",
"service2",
"service3",
"service4",
"service5",
"service6"
]
}
},
"caption_dropout_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Detect and report any Closed Caption Dropouts",
"type": "boolean",
"description": "Will test for the absence of captions in the given interval.",
"default": false
},
"no_caption_threshold": {
"title": "Max time allowed with no caption data",
"type": "number",
"minimum": 0.0,
"maximum": 3600.0,
"description": "The minimum threshold for which captions must be updated.",
"default": 10.0
},
"duration_units": {
"$ref": "#/definitions/time_units"
},
"cc1": {
"title": "CC1 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC1.",
"default": false
},
"cc2": {
"title": "CC2 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC2.",
"default": false
},
"cc3": {
"title": "CC3 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC3.",
"default": false
},
"cc4": {
"title": "CC4 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC4.",
"default": false
},
"service1": {
"title": "Service 1 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 1.",
"default": false
},
"service2": {
"title": "Service 2 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 2.",
"default": false
},
"service3": {
"title": "Service 3 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 3.",
"default": false
},
"service4": {
"title": "Service 4 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 4.",
"default": false
},
"service5": {
"title": "Service 5 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 5.",
"default": false
},
"service6": {
"title": "Service 6 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 6.",
"default": false
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"no_caption_threshold",
"duration_units",
"cc1",
"cc2",
"cc3",
"cc4",
"service1",
"service2",
"service3",
"service4",
"service5",
"service6"
]
}
}
},
"teletext_presence_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Detect and report the presence of Teletext subtitles",
"type": "boolean",
"description": "Find Teletext in specified page number.",
"default": false
},
"pages": {
"title": "Teletext page(s)",
"type": "string",
"description": "The specified page number(s) as a comma seperated list.",
"pattern": "\\s*\\d+\\s*(,\\s*\\d+\\s*)*$"
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"pages"
]
}
}
}
}
},
"channel_mapping": {
"type": "object",
"description": "Checks the channel mapping of the given track against an expected channel mapping",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Channel Mapping Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/channelmapping_test_config"
}
}
}
},
"channel_position": {
"type": "object",
"description": "Test whether 5.1 channels are in the correct place by analyzing base band and checking against what it should be",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Channel Position Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/channel_position_test_config"
}
}
}
},
"clicks_and_pops": {
"type": "object",
"description": "Detect transients or sudden changes in amplitude, such as those caused by noise on an analog or digital audio line",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Clicks and Pops Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/clicksandpops_test_config"
}
}
}
},
"clipping": {
"type": "object",
"description": "Detect audio clipping by testing for successive samples of equal value. Quiet samples (those below a fixed small value) are suppressed and do not count towards the clipping test",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Clipping Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/clipping_test_config"
}
}
}
},
"color_bars": {
"type": "object",
"description": "Detect the presence of color bars in the video to determine that they are of the correct type and/or that they are present when they should be and not present when they should not be",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"standard": {
"title": "Color Bar Standard",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "SMPTE SD"
},
{
"value": 2,
"name": "SMPTE HD"
},
{
"value": 3,
"name": "EBU 75"
},
{
"value": 4,
"name": "EBU 100"
},
{
"value": 5,
"name": "EBU UHD"
}
]
},
"color_tolerance": {
"title": "Color Level Tolerance (%)",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 3,
"description": "Percentage of allowed deviation from colorbar specification colors"
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of colorbars",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max ColorBars Allowed",
"description": "The maximum number of colorbars allowed",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/colorbar_range"
}
}
}
},
"comb_artifacts": {
"type": "object",
"description": "Detect if the input video stream has any interlacing or combing artifacts",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"consecutive_frame_count": {
"title": "Consecutive Error Frames",
"type": "integer",
"default": 1,
"suffix": "frames",
"description": "Raise an alert if number of Consecutive Error Frames exceeds this limit."
}
},
"allOf": [
{
"required": [
"consecutive_frame_count"
]
}
]
},
"corrupt_frame": {
"type": "object",
"description": "Check for corrupt or unexpected frames",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"sensitivity": {
"title": "Corrupt Frame Detection Sensitivity",
"$ref": "#/definitions/sensitivity"
}
}
},
"dialnorm": {
"type": "object",
"description": "Test the dialnorm value of Dolby AC-3 and Dolby Digital Plus audio tracks. Valid values are from 1 to 31",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Dialnorm Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/dialnorm_test_config"
}
}
}
},
"dual_mono": {
"type": "object",
"description": "Compares 2 audio streams and reports back if dual mono sections are detected between them",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "DualMono Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/dualmono_test_config"
}
}
}
},
"field_order": {
"type": "object",
"required": [
"encoded_flag"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"encoded_flag": {
"title": "Encoded Flag",
"type": "integer",
"description": "Field order that should be flagged in the stream",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Top field first"
},
{
"value": 1,
"name": "Bottom field first"
},
{
"value": 2,
"name": "Progressive"
},
{
"value": 3,
"name": "Any"
}
],
"default": 0
},
"check_baseband": {
"title": "Analyze Baseband",
"type": "boolean",
"description": "Analyze baseband against given field order"
},
"baseband_mode": {
"type": "integer",
"description": "Check that the video will play without problems or that the video is a specific field order",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Will play correctly with this flag"
},
{
"value": 1,
"name": "Field order must be"
}
]
},
"field_order_must_be": {
"title": "Field Order expected",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Top field first"
},
{
"value": 1,
"name": "Bottom field first"
},
{
"value": 2,
"name": "Progressive"
},
{
"value": 3,
"name": "Same as encoded flag"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"check_baseband": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Will play correctly with this flag"
}
}
},
"then": {
"disabled": [
"field_order_must_be"
]
}
}
},
{
"if": {
"properties": {
"check_baseband": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Field order must be"
}
}
},
"then": {
"enabled": [
"field_order_must_be"
],
"required": [
"field_order_must_be"
]
}
}
}
]
},
"file_checks": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"container_duration_test": {
"type": "object",
"properties": {
"enable": {
"title": "Duration",
"description": "Check the video duration (if a video track is present) falls within the Min/Max parameters",
"type": "boolean",
"default": false
},
"maximum": {
"title": "Maximum",
"$ref": "#/definitions/timecode"
},
"minimum": {
"title": "Minimum",
"$ref": "#/definitions/timecode"
}
},
"allOf": [
{
"if": {
"enable": {
"const": true
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
},
{
"required": [
"enable"
]
}
]
},
"container_ebpmarker_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "EBP Metadata Checks",
"type": "boolean",
"default": false
},
"mode": {
"title": "Mode",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Explicit"
},
{
"value": 1,
"name": "Implicit"
}
],
"default": 0
},
"distance": {
"type": "object",
"title": "EBP Marker Distance",
"required": [
"minimum",
"maximum"
],
"properties": {
"minimum": {
"title": "Minimum",
"type": "integer",
"suffix": "seconds",
"minimum": 0,
"default": 1
},
"maximum": {
"title": "Maximum",
"type": "integer",
"suffix": "seconds",
"minimum": 0,
"default": 10
}
}
}
},
"allOf": [
{
"if": {
"enable": {
"const": true
}
},
"then": {
"required": [
"mode",
"distance"
]
}
}
]
},
"container_filesize_test": {
"type": "object",
"properties": {
"enable": {
"title": "Size",
"description": "Check that the total file size falls within the Min/Max parameters",
"type": "boolean",
"default": false
},
"maximum": {
"title": "Maximum (bytes)",
"type": "number",
"default": 0
},
"minimum": {
"title": "Minimum (bytes)",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"enable": {
"const": true
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_format_test": {
"type": "object",
"properties": {
"enable": {
"title": "Container Format",
"description": "Check the 'wrapper' or container file used to hold the video and/or audio matches the user defined value",
"type": "boolean",
"default": false
},
"options": {
"title": "All formats",
"type": "array",
"items": {
"type": "string",
"enum": [
"3gpp",
"asf ",
"avi ",
"avs",
"dcp ",
"dpx ",
"flv ",
"gxf ",
"imf ",
"lxf ",
"m2ps",
"m2ts",
"mkv ",
"mov ",
"mp4 ",
"mxf ",
"oexr"
],
"titleMap": [
{
"value": "3gpp",
"name": "3GPP"
},
{
"value": "asf ",
"name": "ASF"
},
{
"value": "avi ",
"name": "AVI"
},
{
"value": "avs",
"name": "AVS"
},
{
"value": "dcp ",
"name": "DCP"
},
{
"value": "dpx ",
"name": "DPX"
},
{
"value": "flv ",
"name": "Flash/FLV"
},
{
"value": "gxf ",
"name": "GXF"
},
{
"value": "imf ",
"name": "IMF"
},
{
"value": "lxf ",
"name": "LXF"
},
{
"value": "m2ps",
"name": "Mpeg-2 PS"
},
{
"value": "m2ts",
"name": "Mpeg-2 TS"
},
{
"value": "mkv ",
"name": "MKV"
},
{
"value": "mov ",
"name": "MOV"
},
{
"value": "mp4 ",
"name": "MP4"
},
{
"value": "mxf ",
"name": "MXF"
},
{
"value": "oexr",
"name": "OpenEXR"
}
]
},
"default": []
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
{
"required": [
"enable"
]
}
]
},
"container_bitrate_test": {
"type": "object",
"properties": {
"enable": {
"title": "File Bit Rate",
"description": "Check the calculated bit rate of the file",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"description": "Test specific value(s) or that bit rate lies within given range",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"description": "Select multiple by using comma separated values",
"type": "string",
"suffix": "Mbit/s"
},
"minimum": {
"title": "Minimum (Mbit/s)",
"description": "The minimum allowed bit rate",
"type": "number",
"suffix": "Mbit/s",
"default": 0
},
"maximum": {
"title": "Maximum (Mbit/s)",
"description": "The maximum allowed bit rate",
"type": "number",
"suffix": "Mbit/s",
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
}
]
},
"comparestreamlengths_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Compare Stream Lengths",
"description": "Check whether the audio track is present throughout the duration of the video",
"type": "boolean",
"default": false
}
}
},
"moov_atom": {
"type": "object",
"properties": {
"enable": {
"title": "MOOV Atom",
"type": "boolean",
"default": false,
"description": "Check that there is only 1 MOOV atom in a mov/mp4 file"
}
}
},
"container_starttimecode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Container Start Timecode",
"description": "Check the Container Start Timecode",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"type": "number",
"default": 0
},
"drop_frame": {
"title": "Drop Frame",
"descrption": "Check that the container's start timecode is either drop-frame or non-drop as specified",
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Either"
},
{
"value": 1,
"name": "Drop"
},
{
"value": 2,
"name": "Non-drop"
}
]
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"timecode"
]
}
},
{
"required": [
"enable"
]
}
]
},
"container_endtimecode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Container End Timecode",
"description": "Check the Container End Timecode",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
},
{
"required": [
"enable"
]
}
]
},
"container_essence_test": {
"type": "object",
"properties": {
"enable": {
"title": "Container/Header agrees with Essence",
"type": "boolean",
"description": "Checks that the video duration in the container metadata is correct (within a small margin of error). This can indicate truncation. For MOV and MP4 files, checks that the media samples described in the header do not exceed the file's length, and is therefore also useful in detecting truncation in these file types.",
"default": false
},
"tolerance": {
"title": "Tolerance (seconds/frames)",
"type": "number",
"default": 0
},
"units": {
"title": "Tolerance Units",
"$ref": "#/definitions/time_units"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"tolerance",
"units"
]
}
},
{
"required": [
"enable"
]
}
]
},
"video_cleanaperture_test": {
"type": "object",
"properties": {
"enable": {
"title": "Clean Aperture",
"description": "Check Clean Aperture is equal to Production Aperture",
"type": "boolean",
"default": false
}
},
"required": [
"enable"
]
},
"video_goplength_test": {
"type": "object",
"properties": {
"enable": {
"title": "GOP Length",
"description": "Check the distance between successive I-frames in the encoded video",
"type": "boolean",
"default": false
},
"length": {
"title": "I-Frame distance",
"description": "Distance between I-frames",
"type": "number",
"default": 1,
"minimum": 1
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"length"
]
}
},
{
"required": [
"enable"
]
}
]
},
"video_starttimecode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Essence Start Timecode",
"description": "Check the Essence Start Timecode",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"type": "number",
"default": 0
},
"drop_frame": {
"title": "Drop Frame",
"descrption": "Check that the essence's start timecode is either drop-frame or non-drop as specified",
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Either"
},
{
"value": 1,
"name": "Drop"
},
{
"value": 2,
"name": "Non-drop"
}
]
},
"matches_container": {
"title": "Matches container",
"description": "If the file is MXF and video is H.262, compare the video start-timecode against the Material Package start-timecode",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"timecode"
]
}
},
{
"required": [
"enable"
]
}
]
},
"video_endtimecode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Essence End Timecode",
"description": "Check the Essence End Timecode",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
},
{
"required": [
"enable"
]
}
]
},
"video_advancedgop_test": {
"type": "object",
"properties": {
"enable": {
"title": "Advanced GOP Length",
"description": "A more thorough GOP test for MPEG-2 and H.264 that can test for a range of GOP lengths, test for open and closed GOPs (MPEG-2 only), and allow special handling of first and last GOPs",
"type": "boolean",
"default": false
},
"order": {
"title": "Test order",
"type": "integer",
"enum": [
0,
1
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Coded"
},
{
"value": 1,
"name": "Display"
}
]
},
"report": {
"title": "Report",
"description": "Report each unique GOP structure or all errors as specified",
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "each unique GOP structure"
},
{
"value": 1,
"name": "all errors"
}
]
},
"first_gop": {
"title": "First GOP",
"description": "Enable specific values to be given for the first GOP structure",
"type": "boolean",
"default": false
},
"first_gop_options": {
"title": "Options",
"type": "object",
"$ref": "#/definitions/gop_structure"
},
"other_gop": {
"title": "Other GOPs",
"description": "Enable specific values to be given for other GOP structures. This will apply to first and last GOPs if their specific sections are not selected",
"type": "boolean",
"default": false
},
"other_gop_options": {
"type": "object",
"$ref": "#/definitions/gop_structure"
},
"last_2gop": {
"title": "Last 2 GOPs",
"description": "Enable specific values to be given for the last two GOP structures",
"type": "boolean",
"default": false
},
"last_2gop_options": {
"type": "object",
"$ref": "#/definitions/gop_structure"
}
}
}
}
},
"freeze_frame": {
"type": "object",
"allOf": [
{
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"ignore_black_frames": {
"title": "Ignore Black Frames",
"type": "boolean"
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area"
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage Of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "Percentage of frame required to be frozen"
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of frozen frames",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Frozen Video Allowed",
"description": "The maximum frozen video allowed (frames/seconds)",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Must Also Be Digitally Silent",
"description": "Test for digital silence in conjunction with frozen frames",
"type": "boolean"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/freezeframe_range"
}
}
}
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"required": [
"silence",
"ignore_black_frames"
]
}
]
},
"hdr_area": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"luminance": {
"title": "Luminance",
"type": "number",
"default": 203,
"description": "Minimum desired Luminance value greater than 0"
},
"luminance_units": {
"title": "Luminance Units",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "NITS"
},
{
"value": 1,
"name": "Code Values"
}
],
"default": 0
},
"area_threshold": {
"title": "Area Threshold",
"type": "number",
"default": 20,
"minimum": 0,
"maximum": 100,
"suffix": "%",
"description": "Area threshold in percentage (0 to 100)"
},
"continues_for": {
"title": "Continues For",
"type": "number",
"default": 5,
"minimum": 0,
"maximum": 100,
"description": "Value in number of measurements"
}
},
"allOf": [
{
"required": [
"luminance",
"area_threshold",
"continues_for"
]
}
]
},
"hdr_change_detection": {
"type": "object",
"description": "Check each frame for changes in the HDR metadata encoded as SEI messages in the HEVC bit-stream",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"hdr_limit": {
"type": "object",
"description": "Check the luminance level that marks the boundary such that (x) percentile of pixels in a frame lie above this level and the remaining, (100-x) percentile of pixels, lie below this level. Both PQ and HLG-1000 gradings are supported",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"limit_brightest_percentage": {
"title": "First Brightest Check",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "Percentage of Pixels in a frame above luminance threshold"
},
"limit_threshold_luminance": {
"title": "Luminance",
"type": "number",
"default": 320,
"minimum": 0,
"maximum": 10000,
"description": "luminance threshold"
},
"limit_brightest_percentage_top": {
"title": "Second Brightest Check",
"type": "number",
"default": 10,
"minimum": 0,
"maximum": 100,
"description": "Percentage of Pixels in a frame above luminance threshold"
},
"limit_threshold_luminance_top": {
"title": "Luminance",
"type": "number",
"default": 150,
"minimum": 0,
"maximum": 10000,
"description": "luminance threshold"
},
"limit_darkest_percentage": {
"title": "Darkest",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "Percentage of Pixels in a frame below luminance threshold"
},
"limit_threshold_luminance_dark": {
"title": "Luminance",
"type": "number",
"default": 10,
"minimum": 0,
"maximum": 10000,
"description": "luminance threshold"
},
"luminance_units": {
"title": "Luminance Units",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "NITS"
},
{
"value": 1,
"name": "CODE VALUES"
}
],
"default": 0
},
"continues_for": {
"title": "Continues for",
"type": "number",
"default": 1,
"minimum": 0,
"description": "measurements"
}
},
"allOf": [
{
"required": [
"limit_brightest_percentage",
"limit_threshold_luminance",
"limit_brightest_percentage_top",
"limit_threshold_luminance_top",
"limit_darkest_percentage",
"limit_threshold_luminance_dark",
"luminance_units",
"continues_for"
]
}
]
},
"hdr_measurement": {
"type": "object",
"description": "Check each decoded frame in its native bit depth to calculate the MaxCLL and MaxFALL",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"integrated_loudness": {
"type": "object",
"description": "Measure Integrated loudness over the duration of the file",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Integrated Loudness Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/integrated_loudness_test_config"
}
}
}
},
"itunes_compatibility": {
"type": "object",
"description": "Test several aspects of MOV file atom structure which are relevant for iTunes submission",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"letterboxing": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"letterboxing_pillarboxing": {
"title": "Detect and report letterboxing/pillarboxing violations",
"type": "boolean",
"description": "This test is used to detect if video content has the correct letterboxing and/or pillarboxing.",
"default": false
},
"aspect_ratio": {
"title": "Aspect ratio",
"description": "The number of black lines needed at the edges is automatically calculated based on this ratio, the frame size and the pixel aspect ratio",
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Defined aspect ratio"
},
{
"value": 1,
"name": "Custom aspect ratio"
},
{
"value": 2,
"name": "Defined number of lines"
}
]
},
"active_picture_ratio_value": {
"title": "Active picture aspect ratio must be :",
"description": "Select from a number of common aspect ratios",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "4:3"
},
{
"value": 1,
"name": "14:9"
},
{
"value": 2,
"name": "16:9"
},
{
"value": 3,
"name": "1.85:1"
},
{
"value": 4,
"name": "2.35:1"
},
{
"value": 5,
"name": "2.39:1"
},
{
"value": 6,
"name": "2.40:1"
}
]
},
"custom_aspect_ratio_numerator": {
"title": "Custom aspect ratio numerator",
"type": "number",
"description": "Specify the required custom aspect ratio",
"default": 0,
"minimum": 0
},
"custom_aspect_ratio_denominator": {
"title": "Custom aspect ratio denominator",
"type": "integer",
"description": "Specify the required custom aspect ratio",
"default": 0,
"minimum": 0
},
"lines_required_top_bottom": {
"title": "Set the number of required black lines at the top/bottom",
"type": "integer",
"description": "This allows the number of required black lines at the top/bottom to be set to any value.",
"default": 0,
"minimum": 0
},
"lines_required_left_right": {
"title": "Set the number of required black lines at the left/right",
"type": "integer",
"description": "This allows the number of required black lines at the left/right to be set to any value.",
"default": 0,
"minimum": 0
},
"tolerance": {
"title": "Tolerance",
"type": "integer",
"description": "If the number of lines to give the selected active picture varies by +/- Tolerance lines then no error or warning will be given. This can be set to zero if required.",
"default": 0,
"minimum": 0
},
"report_blanking": {
"title": "Detect and report all changes in blanking",
"type": "boolean",
"description": "Will raise info alerts detailing the number of black lines bordering the active picture content",
"default": false
},
"custom_level": {
"title": "Custom Black Level",
"description": "Use custom luminance level (Y) for non-active picture area",
"type": "boolean",
"default": false
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_14_bit"
}
},
"allOf": [
{
"if": {
"properties": {
"aspect_ratio": {
"const": 0
}
}
},
"then": {
"required": [
"active_picture_ratio_value"
]
}
},
{
"if": {
"properties": {
"aspect_ratio": {
"const": 1
}
}
},
"then": {
"required": [
"custom_aspect_ratio_numerator",
"custom_aspect_ratio_denominator"
]
}
},
{
"if": {
"properties": {
"aspect_ratio": {
"const": 2
}
}
},
"then": {
"required": [
"lines_required_top_bottom",
"lines_required_left_right"
]
}
}
]
},
"luma_chroma_levels": {
"type": "object",
"description": "Check the Y, U and V levels of the video are within the given limits",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"luma_range_from": {
"title": "Low Luma Limit (%)",
"type": "number",
"default": -1,
"minimum": -9,
"maximum": 109,
"description": "Default value is 1%, as suggested in EBU R103-2000. Use 0-100 for no tolerance"
},
"luma_range_to": {
"title": "High Luma Limit (%)",
"type": "number",
"default": 103,
"minimum": -9,
"maximum": 109,
"description": "Default value is 3%, as suggested in EBU R103-2000. Use 0-100 for no tolerance"
},
"luma_max_area_outside": {
"title": "Luma Max area outside (%)",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "The maximum area of the video picture that can be outside the given range without generating an error. Typically set to 1% (as per EBU R103-2000 recommendation)"
},
"luma_low_pass_filter": {
"title": "Luma Low-pass filter",
"type": "integer",
"description": "When EBU R103 2000 is selected, a horizontal signal filter (as described in EBU R103-2000) is applied to the luma component before testing to remove transient violations. When EBU R103-2016 is selected, a quarter band signal filter is applied horizontally and a half band signal filter is applied vertically (as described in EBU R103-2016) to the luma component before testing to remove transient violations",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "EBU R103 2000"
},
{
"value": 2,
"name": "EBU R103 2016"
}
]
},
"chroma_range_from": {
"title": "Low Chroma Limit (%)",
"type": "number",
"default": -1,
"minimum": -9,
"maximum": 109,
"description": "Default value is 1%, as suggested in EBU R103-2000. Use 0-100 for no tolerance"
},
"chroma_range_to": {
"title": "High Chroma Limit (%)",
"type": "number",
"default": 103,
"minimum": -9,
"maximum": 109,
"description": "Default value is 3%, as suggested in EBU R103-2000. Use 0-100 for no tolerance"
},
"chroma_max_area_outside": {
"title": "Chroma max area outside (%)",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "The maximum area of the video picture that can be outside the given range without generating an error. Typically set to 1% (as per EBU R103-2000 recommendation)"
}
},
"required": [
"luma_range_from",
"luma_range_to",
"luma_max_area_outside",
"luma_low_pass_filter",
"chroma_range_from",
"chroma_range_to",
"chroma_max_area_outside"
]
},
"loudness_range": {
"type": "object",
"description": "Measure the variation in loudness over the duration of a file",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Loudness Range Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/loudness_range_test_config"
}
}
}
},
"macro_block": {
"type": "object",
"required": [
"duration_units"
],
"description": "Check for macroblocking artifacts where the macroblock edge is clearly visible",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"quality_score": {
"title": "Quality Score",
"type": "number",
"default": 80,
"minimum": 0,
"maximum": 100,
"description": "Minimum desired quality score, varies from 0 (poor) to 99 (excellent)"
},
"averaged_over": {
"title": "Averaged Over",
"type": "number",
"default": 5,
"description": "Duration over which the quality scores are averaged"
},
"duration_units": {
"title": "Duration Units",
"$ref": "#/definitions/time_units"
}
},
"allOf": [
{
"required": [
"quality_score",
"averaged_over",
"duration_units"
]
}
]
},
"media_offline": {
"type": "object",
"description": "Test for the presence of a media offline slate",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"minimum_level": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Minimum Level Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/minlevel_test_config"
}
}
}
},
"momentary_loudness": {
"type": "object",
"description": "Measure Momentary Loudness over a 400ms sliding rectangular time window as per EBU-Tech 3341 Momentary mode. The measurement is not gated",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Momentary Loudness Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/momentary_loudness_test_config"
}
}
}
},
"deep_mxf": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"basic_operational_pattern": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "MXF Operational Pattern",
"type": "boolean",
"default": false
},
"pattern": {
"title": "Operational Pattern",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "OP-1a"
},
{
"value": 1,
"name": "OP Atom"
}
],
"default": 0
},
"partition_closed": {
"title": "Partition must be Closed",
"type": "boolean",
"default": false
},
"partition_complete": {
"title": "Partition must be Complete",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"pattern",
"partition_closed",
"partition_complete"
]
}
}
]
},
"basic_avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "AVC SPS/PPS",
"type": "boolean",
"default": false
}
}
},
"as11_uk_dpp_metadata": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "AS-11 UK DPP Metadata",
"description": "Test MXF structural and descriptive metadata against selected shim",
"type": "boolean",
"default": false
},
"shim": {
"title": "AS-11 UK DPP Shim",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Auto"
},
{
"value": 1,
"name": "SD"
},
{
"value": 2,
"name": "HD"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"shim"
]
}
}
]
},
"as11_xprofile": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "AMWA AS-11 Rule Blocks",
"descriptiomn": "Compliance checking to AMWA AS-11 X profile specifications",
"type": "boolean",
"default": false
},
"rules": {
"title": "AMWA AS-11 Rules",
"type": "array",
"items": {
"type": "string",
"enum": [
"STRICT_FRAME_WRAPPING",
"ONE_TO_ONE_TRACK_MAPPING",
"SEGMENT_THE_ESSENCE_CONTAINER",
"INDEX_EACH_ESSENCE_CONTAINER_SEGMENT",
"GENERIC_CONTAINER",
"MXF_INDEXING_AND_PARTITIONING",
"MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE",
"MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE",
"ONE_PICTURE_TRACK",
"AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE",
"ST831_3_MAPPING",
"ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK",
"UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ",
"CONSTRAINED_ST382_WAVE_PCM_MAPPING",
"AUDIO_LAYOUT",
"AUDIO_LAYOUT_X8",
"AS11_SEGMENTATION_DM",
"SPECIFICATION_IDENTIFICATION",
"SPECIFICATION_IDENTIFICATION_X7",
"SPECIFICATION_IDENTIFICATION_X8",
"SPECIFICATION_IDENTIFICATION_X9",
"TIMECODE_TRACK_PRESENCE",
"CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE",
"TIMECODE_MODE_SIGNALLING"
]
},
"titleMap": [
{
"value": "STRICT_FRAME_WRAPPING",
"name": "Strict Frame Wrapping"
},
{
"value": "ONE_TO_ONE_TRACK_MAPPING",
"name": "One-to-one Track Mapping"
},
{
"value": "SEGMENT_THE_ESSENCE_CONTAINER",
"name": "Segment The Essence Container"
},
{
"value": "INDEX_EACH_ESSENCE_CONTAINER_SEGMENT",
"name": "Index Each Essence Container Segment"
},
{
"value": "GENERIC_CONTAINER",
"name": "Generic Container"
},
{
"value": "MXF_INDEXING_AND_PARTITIONING",
"name": "MXF Indexing and Partitioning (VBE or CBE)"
},
{
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE",
"name": "MXF Indexing and Partitioning for VBE Essence"
},
{
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE",
"name": "MXF Indexing and Partitioning for CBE Essence"
},
{
"value": "ONE_PICTURE_TRACK",
"name": "One Picture Track"
},
{
"value": "AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE",
"name": "AVC byte Stream Format Picture Essence"
},
{
"value": "ST831_3_MAPPING",
"name": "ST831-3 mapping"
},
{
"value": "ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK",
"name": "One Soundfield Group per Sound Track"
},
{
"value": "UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ",
"name": "Uncompressed 24-bit PCM Audio at 48kHz"
},
{
"value": "CONSTRAINED_ST382_WAVE_PCM_MAPPING",
"name": "Constrained ST382 Wave PCM Mapping"
},
{
"value": "AUDIO_LAYOUT",
"name": "Audio Layout"
},
{
"value": "AUDIO_LAYOUT_X8",
"name": "Audio Layout [X8]"
},
{
"value": "AS11_SEGMENTATION_DM",
"name": "AS-11 Segmentation DM"
},
{
"value": "SPECIFICATION_IDENTIFICATION",
"name": "Specification Identification"
},
{
"value": "SPECIFICATION_IDENTIFICATION_X7",
"name": "Specification Identification [X7]"
},
{
"value": "SPECIFICATION_IDENTIFICATION_X8",
"name": "Specification Identification [X8]"
},
{
"value": "SPECIFICATION_IDENTIFICATION_X9",
"name": "Specification Identification [X9]"
},
{
"value": "TIMECODE_TRACK_PRESENCE",
"name": "Timecode Track Presence"
},
{
"value": "CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE",
"name": "Constrained Timecode Track in Material Package"
},
{
"value": "TIMECODE_MODE_SIGNALLING",
"name": "Timecode Mode Signalling"
}
]
},
"embedded_xml_documents": {
"title": "Embedded XML Documents",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "XML DM for Programmes"
}
],
"default": 0
},
"extra_audio_layout_modes": {
"title": "Extra Audio Layout Modes",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "Mode 1"
},
{
"value": 2,
"name": "Modes 1 and 2"
}
],
"default": 0
},
"file_format_specification_identification_label": {
"title": "Specification Identification",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "Blocks_FF_1"
},
{
"value": 2,
"name": "Blocks_FF_2"
},
{
"value": 3,
"name": "Blocks_FF_5_WIP"
},
{
"value": 4,
"name": "Blocks_FF_6_WIP"
},
{
"value": 5,
"name": "Blocks_FF_11_WIP"
}
],
"default": 0
},
"picture_essence_constraints": {
"title": "Picture Essence Constraints",
"type": "integer",
"enum": [
0,
1,
5
],
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "X1 (AVC)"
},
{
"value": 5,
"name": "X9 (AVC)"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"rules",
"embedded_xml_documents",
"extra_audio_layout_modes",
"file_format_specification_identification_label",
"picture_essence_constraints"
]
}
}
]
},
"operational_pattern": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Operational Pattern",
"desciption": "Scan every Operational Pattern (in every partition pack and in the preface of any header metadata) to ensure that it is identical in every location, and that it matches the given constraints",
"type": "boolean",
"default": false
},
"generalized": {
"title": "Generalized",
"type": "array",
"items": {
"type": "string",
"enum": [
"Op1a",
"Op1b",
"Op1c",
"Op2a",
"Op2b",
"Op2c",
"Op3a",
"Op3b",
"Op3c"
]
}
},
"essence_reference": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "External"
},
{
"value": 2,
"name": "Internal"
}
],
"default": 0
},
"essence_streaming": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "Non-Streamable"
},
{
"value": 2,
"name": "Streamable"
}
],
"default": 0
},
"essence_containers": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "Multi-track"
},
{
"value": 2,
"name": "Uni-track"
}
],
"default": 0
},
"specialized": {
"type": "boolean",
"title": "OP-Atom",
"default": false
},
"material_package": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "Multi-source"
},
{
"value": 2,
"name": "Single-source"
}
],
"default": 0
},
"essence_tracks": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "Multi-essence"
},
{
"value": 2,
"name": "Single-essence"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"essence_reference",
"essence_streaming",
"essence_containers",
"specialized",
"material_package",
"essence_tracks"
]
}
}
]
},
"version": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Version Test",
"description": "Check for a specific MXF version. All versions within a file (inside each Preface and Partition Pack) are tested",
"type": "boolean",
"default": false
},
"mxf_version": {
"title": "MXF Version",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "SMPTE 377 2004"
},
{
"value": 1,
"name": "SMPTE 377 2011"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"mxf_version"
]
}
}
]
},
"kagsize": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "KAG Size Test",
"description": "Ensure that the file offset of every partition pack matches the stated alignment",
"type": "boolean",
"default": false
},
"size": {
"title": "KAG Size",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bytes"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"size"
]
}
}
]
},
"runin": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Run-In Test",
"description": "Ensure that any run-in does not exceed a given length. It is most often used with a value of 0 to prohibit any run-in",
"type": "boolean",
"default": false
},
"max_bytes": {
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bytes"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"max_bytes"
]
}
}
]
},
"essence_wrapping": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Essence Wrapping",
"description": "Ensure that any essence is either clip-wrapped or frame-wrapped. It looks at the Essence Container labels in every partition pack",
"type": "boolean",
"default": false
},
"type": {
"title": "Wrapping Type",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Clip Wrapped"
},
{
"value": 1,
"name": "Frame Wrapped"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"source_package_timecode": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Source Package Timecode Test",
"description": "Ensure that there is only one timecode track in the File Source Package",
"type": "boolean",
"default": false
},
"test": {
"title": "Timecode Track Test",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
},
"material_package_timecode": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Material Package Timecode Test",
"description": "Ensures that there is only one timecode track in the Material Package",
"type": "boolean",
"default": false
},
"test": {
"title": "Timecode Track Test",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
},
"sdti_timecode_continuity": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "SDTI Timecode Continuity Test",
"description": "Inspect the SDTI timestamp of every MXF Content Package and ensure that the timestamps are continuous. This test should only be enabled for MXF files conforming to the SDTI Content Package Format (see SMPTE 326M and 331M)",
"type": "boolean",
"default": false
}
}
},
"index_table": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Index Table Test",
"description": "Check each index table segment in isolation",
"type": "boolean",
"default": false
},
"edit_rate": {
"title": "Edit Rate",
"description": "Tests the numerator and denominator of the edit rate. This is typically a frame rate, e.g. 25 / 1 or 30000 / 1001",
"suffix": "Hz",
"$ref": "#/definitions/rational"
},
"duration": {
"title": "Index Duration",
"description": "Tests the duration of the index table segment, in edit rate units. 0 is a valid duration with a special meaning for constant sized edit units",
"suffix": "edit rate units",
"$ref": "#/definitions/minmax"
},
"editunit_bytecount": {
"title": "Edit Unit Bytecount",
"description": "Tests the value of the Edit Unit Byte count field. 0 is a valid byte count, meaning that each edit unit is individually indexed",
"$ref": "#/definitions/minmax"
},
"editunit_bytecount_constant": {
"title": "Edit Unit Bytecount Is Constant",
"description": "Ensure that only a single value is ever used",
"type": "boolean"
},
"slicecount": {
"title": "Slice Count",
"description": "Number of slices in each index entry, minus one",
"type": "integer"
},
"single_index_location": {
"title": "Single Index Location",
"description": "Flags are described in Amendment 2:2012 to SMPTE ST 377M",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "False"
},
{
"value": 2,
"name": "True"
}
],
"default": 0
},
"single_essence_location": {
"title": "Single Essence Location",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "False"
},
{
"value": 2,
"name": "True"
}
],
"default": 0
},
"forward_index_direction": {
"title": "Forward Index Direction",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "False"
},
{
"value": 2,
"name": "True"
}
],
"default": 0
},
"index_entry_array": {
"title": "Index Entry Array",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "Absent"
},
{
"value": 2,
"name": "Present"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"edit_rate",
"duration",
"editunit_bytecount",
"editunit_bytecount_constant",
"slicecount",
"single_index_location",
"single_essence_location",
"forward_index_direction",
"index_entry_array"
]
}
}
]
},
"index_table_location": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Index Table Location",
"description": "Restrict the places in the file where index table segments may appear",
"type": "boolean",
"default": false
},
"test": {
"title": "Location Test",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"header_partition_status": {
"type": "object",
"properties": {
"enable": {
"title": "Header Partition Status",
"description": "Ensure that the header partition is present and is restricted to a given combination of open/closed and complete/incomplete",
"type": "boolean",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"header_fill": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Header Fill Test",
"description": "Check for a KLV fill item of at least the specified length, following the header metadata",
"type": "boolean",
"default": false
},
"bytes": {
"suffix": "bytes Of KLV Fill after Header Metadata",
"type": "integer",
"minimum": 0,
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_metadata": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Header Metadata Size",
"description": "Check the value of HeaderByteCount in the header partition",
"type": "boolean",
"default": false
},
"bytes": {
"suffix": "bytes Of Header Metadata including KLV Fill",
"type": "integer",
"minimum": 0,
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"body_partition_status": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Body Partition Status",
"description": "Ensure that the body partition is restricted to a given combination of open/closed and complete/incomplete",
"type": "boolean",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_count": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Body Partition Count",
"description": "Enforce a minimum or maximum number of body partitions in the file",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_duration": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Body Partition Duration",
"description": "Scan each body partition to ensure that its duration (measured in edit units) is within a given range",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_length": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Body Partition Length",
"description": "Scan each body partition to ensure that its length (measured in bytes) is within a given range",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"footer_partition_status": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Footer Partition Status",
"description": "Ensure that the footer partition is restricted to a given combination of open/closed and complete/incomplete",
"type": "boolean",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"rip_presence": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "RIP Presence",
"description": "Ensure a Random Index Pack is present at the end of the file",
"type": "boolean",
"default": false
}
}
},
"essence_location": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Essence Location",
"description": "Restrict the places in the file where essence may appear",
"type": "boolean",
"default": false
},
"test": {
"title": "Location Test",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"essence_container_label": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Essence Container Label",
"description": "Ensure that the given Picture Essence Container Label(s) appear in the Partition Pack and Preface Set (if any) of every Partition",
"type": "boolean",
"default": false
},
"predefined": {
"title": "Predefined",
"type": "string",
"enum": [
"06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01"
],
"titleMap": [
{
"value": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"name": "GC AVC Byte Stream VideoStream-0 SID Frame-wrapped"
},
{
"value": "06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01",
"name": "GC MPEG-ES VideoStream-0 SID Frame-wrapped"
}
],
"default": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01"
},
"usecustom": {
"title": "Use Custom",
"type": "boolean",
"default": false
},
"custom": {
"title": "e.g. 06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"description": "Custom labels may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01'). Multiple allowable labels may be separated by commas, and any single hex digit may be given as 'x' as a wildcard",
"type": "string"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"properties": {
"usecustom": {
"const": true
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"element_key": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Element Key",
"description": "Ensure that the Picture Element Keys (which wrap the stored essence) match the given value(s). Only the first content package is examined; this is not a continuous test throughout the whole file",
"type": "boolean",
"default": false
},
"predefined": {
"title": "Predefined",
"type": "string",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
],
"titleMap": [
{
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"name": "GC SMPTE 381M MPEG Frame-wrapped"
}
],
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
},
"usecustom": {
"title": "Use Custom",
"type": "boolean",
"default": false
},
"custom": {
"title": "e.g. 06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"description": "Custom keys may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00'). Multiple allowable keys may be separated by commas, and any single hex digit may be given as 'x' as a wildcard",
"type": "string"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"properties": {
"usecustom": {
"const": true
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"picture_essence_coding": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Picture Essence Coding",
"description": "Ensure that the picture essence coding label is one of the given value(s)",
"type": "boolean",
"default": false
},
"codings": {
"title": "Codings",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22
],
"titleMap": [
{
"value": 0,
"name": "AVCI-50-1080-60-I"
},
{
"value": 1,
"name": "AVCI-50-1080-50-I"
},
{
"value": 2,
"name": "AVCI-50-1080-30-P"
},
{
"value": 3,
"name": "AVCI-50-1080-25-P"
},
{
"value": 4,
"name": "AVCI-50-720-60-P"
},
{
"value": 5,
"name": "AVCI-50-720-50-P"
},
{
"value": 6,
"name": "AVCI-100-1080-60-I"
},
{
"value": 7,
"name": "AVCI-100-1080-50-I"
},
{
"value": 8,
"name": "AVCI-100-1080-30-P"
},
{
"value": 9,
"name": "AVCI-100-1080-25-P"
},
{
"value": 10,
"name": "AVCI-100-720-60-P"
},
{
"value": 11,
"name": "AVCI-100-720-50-P"
},
{
"value": 12,
"name": "AVC-HIGH-10-INTRA-UNCS"
},
{
"value": 13,
"name": "AVC-HIGH-422-INTRA-UNCS"
},
{
"value": 14,
"name": "MPEG2-MP-HL-LONGGOP"
},
{
"value": 15,
"name": "MPEG2-422P-HL-LONGGOP"
},
{
"value": 16,
"name": "MPEG2-MP-H14-LONGGOP"
},
{
"value": 17,
"name": "D10-50-625-50"
},
{
"value": 18,
"name": "D10-50-525-60"
},
{
"value": 19,
"name": "D10-40-625-50"
},
{
"value": 20,
"name": "D10-40-525-60"
},
{
"value": 21,
"name": "D10-30-625-50"
},
{
"value": 22,
"name": "D10-30-525-60"
}
],
"default": 0
}
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"field_dominance": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Field Dominance",
"description": "Examine the FieldDominance item in the Generic Picture Essence Descriptor",
"type": "boolean",
"default": false
},
"firstfield": {
"title": "First Field",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Field 1 First"
},
{
"value": 1,
"name": "Field 2 First"
},
{
"value": 2,
"name": "No Field Dominance Flag "
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"firstfield"
]
}
}
]
},
"signal_standard": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Signal Standard",
"description": "Examine the Signal Standard item in the Generic Picture Essence Descriptor, indicating the source of the video essence",
"type": "boolean",
"default": false
},
"standard": {
"title": "Standard",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"value": 0,
"name": "0: No Specific Underlying Standard"
},
{
"value": 1,
"name": "1: ITU-R BT.601 and BT.656, SMPTE 125M"
},
{
"value": 2,
"name": "2: ITU-R BT.1358 and ITU-R BT.799-3, SMPTE 293M"
},
{
"value": 3,
"name": "3: SMPTE 347M (540 Mbps Mappings)"
},
{
"value": 4,
"name": "4: SMPTE 274M (1125 Line)"
},
{
"value": 5,
"name": "5: SMPTE 296M (750 Line Progressive)"
},
{
"value": 6,
"name": "6: SMPTE 349M (1485 Mbps Mappings)"
},
{
"value": 7,
"name": "7: SMPTE 428-1 DCDM"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"standard"
]
}
}
]
},
"picture_offsets": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Picture Offsets",
"description": "Examine several items in the Generic Picture Essence Descriptor which describe the geometrical relationship between the Stored Rectangle, the Sampled Rectangle and the Display Rectangle",
"type": "boolean",
"default": false
},
"storedftwo": {
"title": "Stored F2",
"type": "integer",
"minimum": 0,
"default": 0
},
"displayftwo": {
"title": "Display F2",
"type": "integer",
"minimum": 0,
"default": 0
},
"sampledx": {
"title": "Sampled X",
"type": "integer",
"minimum": 0,
"default": 0
},
"sampledy": {
"title": "Sampled Y",
"type": "integer",
"minimum": 0,
"default": 0
},
"displayx": {
"title": "Display X",
"type": "integer",
"minimum": 0,
"default": 0
},
"displayy": {
"title": "Display Y",
"type": "integer",
"minimum": 0,
"default": 0
},
"imagestart": {
"title": "Image Start",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "byte(s)"
},
"imageend": {
"title": "Image End",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "byte(s)"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"storedftwo",
"displayftwo",
"sampledx",
"sampledy",
"displayx",
"displayy",
"imagestart",
"imageend"
]
}
}
]
},
"active_format_descriptor": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Active Format Descriptor",
"description": "Examine the AFD information byte, present in the Generic Picture Essence Descriptor and specified in SMPTE S2016-1. This is not the 4-bit AFD code, but the whole AFD information byte which also includes an Aspect Ratio (AR) bit",
"type": "boolean",
"default": false
},
"allowed_formats": {
"title": "AFD Information Byte Values",
"type": "string",
"description": "A comma separated list can be provided for multiple values e.g. 4,36,68,76"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"allowed_formats"
]
}
}
]
},
"colorsiting": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Color Siting",
"description": "Check the Color Siting item of the CDCI Picture Essence Descriptor. This item describes the spatial relationship between the luma and chroma samples",
"type": "boolean",
"default": false
},
"colorsiting": {
"title": "Color Siting",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
255
],
"titleMap": [
{
"value": 0,
"name": "CoSiting"
},
{
"value": 1,
"name": "HorizontalMidpoint"
},
{
"value": 2,
"name": "ThreeTap"
},
{
"value": 3,
"name": "Quincunx"
},
{
"value": 4,
"name": "Rec601"
},
{
"value": 5,
"name": "LineAlternating"
},
{
"value": 6,
"name": "VerticalMidpoint"
},
{
"value": 255,
"name": "Unknown"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"colorsiting"
]
}
}
]
},
"padding_bits": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Padding Bits",
"description": "Check the Padding Bits item in the CDCI Picture Essence Descriptor, which is the number of bits added to each component sample to pad it to its stored size",
"type": "boolean",
"default": false
},
"bits": {
"title": "Padding Bits",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"color_range": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Color Range",
"description": "Check the Color Range item in the CDCI Picture Essence Descriptor, which is the number of distinct values for color difference (chroma) samples",
"type": "boolean",
"default": false
},
"range": {
"title": "Color Range",
"type": "integer",
"minimum": 0,
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"range"
]
}
}
]
},
"subsampling": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Subsampling",
"description": "Check the Horizontal and Vertical Subsampling items in the CDCI Picture Essence Descriptor",
"type": "boolean",
"default": false
},
"horizontal": {
"title": "Horizontal",
"type": "integer",
"minimum": 0,
"default": 0
},
"vertical": {
"title": "Vertical",
"type": "integer",
"minimum": 0,
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"horizontal",
"vertical"
]
}
}
]
},
"component_depth": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Component Depth",
"description": "Check the Component Depth item in the CDCI Picture Essence Descriptor",
"type": "boolean",
"default": false
},
"depth": {
"title": "Component Depth",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per sample"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"depth"
]
}
}
]
},
"stored_frame_size": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Stored Frame Size",
"description": "Restrict the values of 'Stored Width' and 'Stored Height' in the picture essence descriptor",
"type": "boolean",
"default": false
},
"frame": {
"title": "Frame Size",
"suffix": "(wxh)",
"$ref": "#/definitions/pic_frame_size"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"frame"
]
}
}
]
},
"sampled_frame_size": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Sampled Frame Size",
"description": "Restrict the values of 'Sampled Width' and 'Sampled Height' in the picture essence descriptor",
"type": "boolean",
"default": false
},
"frame": {
"title": "Frame Size",
"suffix": "(wxh)",
"$ref": "#/definitions/pic_frame_size"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"frame"
]
}
}
]
},
"display_frame_size": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Display Frame Size",
"description": "Restrict the values of 'Display Width' and 'Display Height' in the picture essence descriptor",
"type": "boolean",
"default": false
},
"frame": {
"title": "Frame Size",
"suffix": "(wxh)",
"$ref": "#/definitions/pic_frame_size"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"frame"
]
}
}
]
},
"aspect_ratio": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Aspect Ratio",
"description": "Ensure that the given aspect ratio is present in the picture essence descriptor",
"type": "boolean",
"default": false
},
"ratio": {
"title": "Ratio",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"edit_rate": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Edit Rate",
"description": "Ensure that the given edit rate is present in the picture essence descriptor",
"type": "boolean",
"default": false
},
"ratio": {
"title": "Ratio",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"reference_levels": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Reference Levels",
"description": "Check for specific black and white reference levels in the picture essence descriptor (see SMPTE 377M G.2.32 and G.2.33 respectively)",
"type": "boolean",
"default": false
},
"black": {
"title": "Black",
"type": "integer",
"minimum": 0,
"default": 0
},
"white": {
"title": "White",
"type": "integer",
"minimum": 0,
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"black",
"white"
]
}
}
]
},
"video_line_map": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Line Map",
"description": "Check for a given comma-separated list of Video Line Map entries (e.g. '16,278') in the picture essence descriptor. The order of the entries is important",
"type": "boolean",
"default": false
},
"linemaps": {
"title": "Line Maps",
"type": "string",
"description": "comma-separated e.g. 21, 584"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"linemaps"
]
}
}
]
},
"video_descriptor": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Descriptor",
"description": "Ensure that the Picture Essence Descriptor is an MPEG-2 Video Descriptor as specified in SMPTE 381M",
"type": "boolean",
"default": false
},
"type": {
"title": "Descriptor Type",
"type": "integer",
"enum": [
0
],
"titleMap": [
{
"value": 0,
"name": "MPEG"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"mpeg_bit_rate": {
"type": "object",
"properties": {
"enable": {
"title": "MPEG Bit Rate",
"description": "Check the value of the BitRate item within the MPEG-2 Video Descriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax_bits"
}
}
},
"mpeg_identical_gop": {
"type": "object",
"properties": {
"enable": {
"title": "MPEG Identical GOP Indicator",
"description": "Check the value of the IdenticalGOP item within the MPEG-2 Video Descriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Extended Bool Test",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"value": 0,
"name": "1"
},
{
"value": 1,
"name": "0"
},
{
"value": 2,
"name": "Either"
},
{
"value": 3,
"name": "Not Present"
}
]
}
}
},
"mpeg_max_gop": {
"type": "object",
"properties": {
"enable": {
"title": "MPEG Max GOP Size",
"description": "Check the value of the MaxGOP item within the MPEG-2 Video Descriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "frames",
"$ref": "#/definitions/minmax"
}
}
},
"mpeg_max_bpicture_count": {
"type": "object",
"properties": {
"enable": {
"title": "MPEG Max B Picture Count",
"description": "Check the value of the BPictureCount item within the MPEG-2 Video Descriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "B pictures",
"$ref": "#/definitions/minmax"
}
}
},
"mpeg_constant_bpicture_flag": {
"type": "object",
"properties": {
"enable": {
"title": "MPEG Constant B Picture Flag",
"description": "Check the value of the ConstantBframes item within the MPEG-2 Video Descriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Extended Bool Test",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"value": 0,
"name": "1"
},
{
"value": 1,
"name": "0"
},
{
"value": 2,
"name": "Either"
},
{
"value": 3,
"name": "Not Present"
}
]
}
}
},
"mpeg_coded_content": {
"type": "object",
"properties": {
"enable": {
"title": "MPEG Coded Content Kind",
"description": "Check the value of the CodedContentType item within the MPEG-2 Video Descriptor, indicating whether the content is interlaced, progressive or mixed",
"type": "boolean",
"default": false
},
"kind": {
"title": "Coded Kind",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Unknown"
},
{
"value": 1,
"name": "Progressive"
},
{
"value": 2,
"name": "Interlaced"
},
{
"value": 3,
"name": "Mixed"
}
],
"default": 0
}
}
},
"video_subdescriptor": {
"type": "object",
"properties": {
"enable": {
"title": "Video Subdescriptor",
"description": "Check for the presence of an AVC SubDescriptor within the Picture Essence Descriptor",
"type": "boolean",
"default": false
},
"type": {
"title": "Subdescriptor Type",
"type": "integer",
"enum": [
0
],
"titleMap": [
{
"value": 0,
"name": "AVC"
}
],
"default": 0
}
}
},
"avc_decoding_delay": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Decoding Delay",
"description": "Check the value of the Decoding Delay item within the AVC Video SubDescriptor",
"type": "boolean",
"default": false
},
"delay": {
"title": "Decoding Delay",
"type": "integer",
"default": 0
}
}
},
"avc_coded_content": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Coded Content Kind",
"description": "Check the value of the Coded Content Kind item within the AVC Video SubDescriptor",
"type": "boolean",
"default": false
},
"kind": {
"title": "Coded Kind",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "Unknown"
},
{
"value": 1,
"name": "Progressive Frame"
},
{
"value": 2,
"name": "Interlaced Field"
},
{
"value": 3,
"name": "Interlaced Frame"
},
{
"value": 4,
"name": "Interlaced Field and Frame"
},
{
"value": 5,
"name": "Any"
}
],
"default": 0
}
}
},
"avc_identical_gop": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Identical GOP Indicator",
"description": "Check the value of the AVC Identical GOP Indicator item within the AVC Video SubDescriptor",
"type": "boolean",
"default": false
},
"value": {
"title": "Flag Value",
"type": "boolean"
}
}
},
"avc_max_gop": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Max GOP Size",
"description": "Check the value of the Maximum B Picture Count item within the AVC Video SubDescriptor. This is the maximum spacing of IDR frames in the sequence",
"type": "boolean",
"default": false
},
"max": {
"title": "Maximum GOP",
"type": "integer"
}
}
},
"avc_max_bpicture_count": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Max B Picture Count",
"description": "Check the value of the Maximum B Picture Count item within the AVC Video SubDescriptor. This is the maximum number of B-pictures between P- or I-frames",
"type": "boolean",
"default": false
},
"max": {
"title": "Maximum Count",
"type": "integer"
}
}
},
"avc_bit_rate": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Max Bit Rate",
"description": "Check the value of the Maximum Bit Rate item within the AVC Video SubDescriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
}
},
"avc_average_bit_rate": {
"type": "object",
"properties": {
"enable": {
"title": "AVC Average Bit Rate",
"description": "Check the value of the Average Bit Rate item within the AVC Video SubDescriptor",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
}
},
"avc_sps_pps": {
"type": "object",
"properties": {
"enable": {
"title": "AVC SPS and PPS",
"description": "Check various profile and level flags within the AVC Video SubDescriptor.",
"type": "boolean",
"default": false
},
"profile": {
"title": "Profile",
"type": "integer"
},
"profileconstraint": {
"title": "Profile Constrain",
"type": "integer"
},
"spsflag": {
"title": "SPS Flag",
"type": "integer"
},
"ppsflag": {
"title": "PPS Flag",
"type": "integer"
},
"level": {
"title": "Level",
"type": "integer"
}
}
},
"sound_essence_container_label": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Sound Essence Container Label",
"description": "Ensure that the given Sound Essence Container Label(s) appear in the Partition Pack and Preface Set (if any) of every Partition",
"type": "boolean",
"default": false
},
"predefined": {
"title": "Predefined",
"type": "string",
"enum": [
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00",
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00",
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00"
],
"titleMap": [
{
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"name": "GC BWF Frame-wrapped"
},
{
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00",
"name": "GC BWF Clip-wrapped"
},
{
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00",
"name": "GC AES-3 Frame-wrapped"
},
{
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00",
"name": "GC AES-3 Clip-wrapped"
}
],
"default": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00"
},
"usecustom": {
"title": "Use Custom",
"type": "boolean",
"default": false
},
"custom": {
"title": "e.g. 06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"description": "Custom labels may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00'). Multiple allowable labels may be separated by commas, and any single hex digit may be given as 'x' as a wildcard",
"type": "string"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"properties": {
"usecustom": {
"const": true
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"sound_element_key": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Sound Element Key",
"description": "Ensure that the Sound Element Keys (which wrap the stored essence) match the given value(s). Only the first content package is examined; this is not a continuous test throughout the whole file",
"type": "boolean",
"default": false
},
"predefined": {
"title": "Predefined",
"type": "string",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x"
],
"titleMap": [
{
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"name": "GC SMPTE 382M 8-Ch AES Frame-wrapped"
},
{
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x",
"name": "GC SMPTE 382M 16-Ch AES Frame-wrapped"
}
],
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x"
},
"usecustom": {
"title": "Use Custom",
"type": "boolean",
"default": false
},
"custom": {
"title": "e.g. 06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"description": "Custom keys may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x'). Multiple allowable keys may be separated by commas, and any single hex digit may be given as 'x' as a wildcard",
"type": "string"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"properties": {
"usecustom": {
"const": true
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"sound_essence_coding": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Sound Essence Coding",
"description": "Ensure that the sound essence coding label is one of the given values",
"type": "boolean",
"default": false
},
"codings": {
"title": "Codings",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "PCM"
},
{
"value": 1,
"name": "Default Uncompressed"
},
{
"value": 2,
"name": "Dolby E"
}
],
"default": 0
}
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"audio_sampling_rate": {
"type": "object",
"properties": {
"enable": {
"title": "Audio Sampling Rate",
"description": "Check the value of the Audio Sampling Rate item in the Generic Sound Essence Descriptor(s)",
"type": "boolean",
"default": false
},
"options": {
"type": "number",
"suffix": "Hz"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_locked": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Audio Locked/Unlocked",
"description": "Check the value of the Locked/Unlocked flag in the Generic Sound Essence Descriptor(s), indicating whether the number of audio samples per frame is constant or not",
"type": "boolean",
"default": false
},
"value": {
"title": "Locked / Unlocked",
"type": "boolean",
"titleMap": [
{
"value": true,
"name": "Locked"
},
{
"value": false,
"name": "Unlocked"
}
],
"default": true
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"dialnorm": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "DialNorm",
"description": "Check the value of the Dial Norm item in the Generic Sound Essence Descriptor(s)",
"type": "boolean",
"default": false
},
"test": {
"type": "object",
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 1,
"maximum": 31,
"default": 1
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 1,
"maximum": 31,
"default": 31
}
}
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"audio_ref_level": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Audio Ref Level",
"description": "Check the value of the Audio Ref Level item in the Generic Sound Essence Descriptor(s)",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"channel_count": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Channel Count",
"description": "Check the value of the Channel Count item in the Generic Sound Essence Descriptor(s). Because each track has a separate descriptor, this should be set to '1' for formats which expect multiple mono tracks",
"type": "boolean",
"default": false
},
"channels": {
"title": "Number Of Channels",
"type": "integer",
"minimum": 0,
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"channels"
]
}
}
]
},
"quantization_bits": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Quantization Bits",
"description": "Check the value of the Quantization Bits item in the Generic Sound Essence Descriptor(s)",
"type": "boolean",
"default": false
},
"bits": {
"title": "Number Of Bits",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"average_bytes_per_second": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Average Bytes per Second",
"description": "Check the value of the Average Bytes Per Second item in the Wave Audio Essence Descriptor(s)",
"type": "boolean",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bytes per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"test"
]
}
}
]
}
}
},
"nielsen_watermark": {
"type": "object",
"description": "Decode an audio stream and reports Nielsen watermarks found in the stream",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Nielsen Watermark Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/nielsen_test_config"
}
}
}
},
"peak_level": {
"type": "object",
"description": "Measure the instantaneous audio level on the selected audio Channel(s)",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Peak Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/peak_test_config"
}
}
}
},
"phase_coherence": {
"type": "object",
"description": "Measure how similar the left and right channels are",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Phase Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/phase_test_config"
}
}
}
},
"ppm_level": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "PPM Level Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/ppm_level_test_config"
}
}
}
},
"pse_harding": {
"type": "object",
"description": "Harding",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"standard": {
"title": "Standard",
"type": "integer",
"enum": [
0,
1,
2,
3,
4
],
"titleMap": [
{
"value": 0,
"name": "Ofcom 2009"
},
{
"value": 1,
"name": "NAB Japan 2006"
},
{
"value": 2,
"name": "ITU BT.1702-1"
},
{
"value": 3,
"name": "ITU BT.1702-2"
},
{
"value": 4,
"name": "Japan HDR"
}
],
"default": 2
}
}
},
"pse": {
"type": "object",
"description": "This test utilizes Telestream PSE Algorithm v5.1",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"use_legacy": {
"title": "Use Legacy Standard",
"type": "boolean",
"description": "Use BT1702-1 PSE checking standard"
},
"check_type": {
"title": "Check Type",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Standard"
},
{
"value": 1,
"name": "Strict"
}
],
"default": 0,
"description": "Standard: 3.5 flashes at 25% of the picture\n Strict: 3.5 flashes at 20% of the picture"
},
"check_for_extended": {
"title": "Check For Extended",
"type": "boolean",
"description": "Check For Extended flashing."
},
"check_for_red": {
"title": "Check For Red",
"type": "boolean",
"description": "Check for saturated red flashes."
},
"check_for_patterns": {
"title": "Check For Patterns",
"type": "boolean",
"description": "Check for potentially harmful regular patterns."
}
}
},
"rgb_gamut": {
"type": "object",
"description": "Detect if the RGB color values are within the given range",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"range_from": {
"title": "Low RGB Component Limit (%)",
"type": "number",
"default": -5,
"minimum": -9,
"maximum": 109,
"description": "Default value is 5%, as suggested in the EBU R103-2000 section 'Tolerances on color gamut'. Use 0-100 for no tolerance"
},
"range_to": {
"title": "High RGB Component Limit (%)",
"type": "number",
"default": 105,
"minimum": -9,
"maximum": 109,
"description": "Default value is 5%, as suggested in the EBU R103-2000 section 'Tolerances on color gamut'. Use 0-100 for no tolerance"
},
"max_area_outside": {
"title": "Max area outside (%)",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "Maximum area of the video picture that can be outside the given range without generating an error"
},
"low_pass_filter": {
"title": "Low-pass filter",
"type": "integer",
"description": "When EBU R103 2000 is selected, a horizontal signal filter (as described in EBU R103-2000) is applied to the RGB components before testing to remove transient violations. When EBU R103-2016 is selected, a quarter band signal filter is applied horizontally and a half band signal filter is applied vertically (as described in EBU R103-2016) to the RGB components before testing to remove transient violations",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "EBU R103 2000"
},
{
"value": 2,
"name": "EBU R103 2016"
}
]
}
},
"required": [
"range_from",
"range_to",
"max_area_outside",
"low_pass_filter"
]
},
"video_segment_detection": {
"type": "object",
"required": [
"custom_level"
],
"description": "Detect video segments within the content",
"allOf": [
{
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area"
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "This is the area of the frame which must all be non-active in order to trigger the alert"
},
"duration": {
"title": "Minimum Black Frame Duration",
"type": "number",
"minimum": 0,
"default": 10,
"description": "Black frames with duration below the given threshold will be treated as active frames"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Digital Silence",
"type": "boolean",
"description": "Black frames must be accompanied by digital silence across all tracks otherwise they will be treated as active frames"
}
}
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"required": [
"silence",
"duration",
"units",
"percentage"
]
}
]
},
"short_term_loudness": {
"type": "object",
"description": "Measure short-term loudness over a sliding rectangular time window. The measurement is not gated",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Short-term Loudness Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/shortterm_loudness_test_config"
}
}
}
},
"silence": {
"type": "object",
"description": "Check for the presence or absence of silence for the whole or parts of a track",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Silence Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/silence_test_config"
}
}
}
},
"single_color_frame": {
"type": "object",
"description": "Detect sequences where the entire frame is a single color",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area"
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_14_bit"
},
"percentage_of_frame": {
"title": "Percentage of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "This is the area of the frame which must all be a single color in order to trigger the alert. When testing video from an analog source (or in the presence of other noise) it may be desirable to select a value less than 100% to ensure that colored frames are still detected."
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of single color frames",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Single Color Frames Allowed",
"description": "Maximum permitted duration of a single-color sequence. Set to 0 to disallow any single-color frames",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/singlecolor_range"
}
}
}
},
"discrete_subtitle": {
"type": "object",
"description": "Check for the presence of discreet subtitles",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"subtitle_presence": {
"title": "Detect and Report the Presence of Discrete Subtitles",
"type": "boolean",
"description": "Find subtitles.",
"default": false
},
"subtitle_dropout": {
"title": "Detect and report any Subtitle Dropouts",
"type": "boolean",
"description": "Will test for the absence of subtitles in the given interval.",
"default": false
},
"no_subtitle_threshold": {
"title": "Max time allowed with no subtitle data",
"type": "number",
"minimum": 0.0,
"maximum": 3600.0,
"description": "The minimum threshold for which subtitles must be updated.",
"default": 10.0
},
"subtitle_dropout_duration_units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
},
"check_stl": {
"title": "STL checks",
"type": "boolean",
"default": false
},
"sidecar_stl_present": {
"title": "Check that Sidecar STL is present",
"type": "boolean",
"default": false
},
"stl_service_group": {
"title": "STL Group",
"description": "Verify all subtitles are in the same subtitling group",
"type": "integer",
"default": 0,
"minimum": 0,
"maximum": 255
},
"stl_start_timecode": {
"title": "STL start timecode check",
"description": "Check that the start timecode of the STL matches the container start timecode of the media",
"type": "boolean",
"default": false
},
"stl_start_timecode_source": {
"title": "Start Timecode source priority",
"type": "string",
"enum": [
"deft",
"movt",
"pic ",
"MDPM",
"avc1",
"gopt",
"mxft",
"mxfs",
"mxfm",
"mxfa",
"anc ",
"gxft",
"gxtt",
"gxst",
"vbi ",
"gxfa",
"lxft",
"lxfa",
"tfot",
"dift"
],
"titleMap": [
{
"value": "deft",
"name": "Default"
},
{
"value": "movt",
"name": "QuickTime Time Code track"
},
{
"value": "pic ",
"name": "SEI Picture Timing"
},
{
"value": "MDPM",
"name": "SEI AVCHD Metadata"
},
{
"value": "avc1",
"name": "AVC-Intra SEI Message Type-1"
},
{
"value": "gopt",
"name": "MPEG-2 GOP Time Code"
},
{
"value": "mxft",
"name": "SMPTE ST377 MXF Time Code Track"
},
{
"value": "mxfs",
"name": "SMPTE ST377 MXF System Item Time Code"
},
{
"value": "mxfm",
"name": "SMPTE ST377 MXF Material Package Time Code"
},
{
"value": "mxfa",
"name": "SMPTE ST436 MXF Ancillary Data"
},
{
"value": "anc ",
"name": "SMPTE ST291 Ancillary Data"
},
{
"value": "gxft",
"name": "SMPTE ST360 GXF Time Code"
},
{
"value": "gxtt",
"name": "SMPTE ST360 GXF Track Time Code"
},
{
"value": "gxst",
"name": "SMPTE ST360 GXF Striped Time Code"
},
{
"value": "vbi ",
"name": "Vertical Blanking Interval"
},
{
"value": "gxfa",
"name": "SMPTE ST360 GXF Ancillary Data"
},
{
"value": "lxft",
"name": "LXF Time Code"
},
{
"value": "lxfa",
"name": "LXF Ancillary Data"
},
{
"value": "dift",
"name": "DV/DVCPRO LTC Time Code"
}
],
"default": "deft"
},
"fallback_framerate": {
"title": "If no framerate is detected, default to",
"type": "number",
"minimum": 1,
"description": "A fallback framerate for sources with no framerate properties.",
"default": 25,
"suffix": "fps"
}
},
"allOf": [
{
"if": {
"properties": {
"subtitle_dropout": {
"const": true
}
}
},
"then": {
"required": [
"no_subtitle_threshold",
"subtitle_dropout_duration_units"
]
}
},
{
"if": {
"properties": {
"subtitle_dropout_duration_units": {
"const": 1
}
}
},
"then": {
"required": [
"fallback_framerate"
]
}
},
{
"if": {
"properties": {
"check_stl": {
"const": true
}
}
},
"then": {
"required": [
"sidecar_stl_present",
"stl_service_group",
"stl_start_timecode",
"fallback_framerate"
]
}
},
{
"if": {
"properties": {
"stl_start_timecode": {
"const": true
}
}
},
"then": {
"required": [
"stl_start_timecode_source"
]
}
}
]
},
"syntax_checks": {
"type": "object",
"description": "Enable syntax checking for some codec types",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"video_codecsyntax_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Codec Syntax",
"description": "Run MPEG-2, AVC/H.264 and Dolby E codec syntax checks",
"type": "boolean",
"default": false
},
"options": {
"title": "Codecs",
"type": "array",
"items": {
"type": "string",
"enum": [
"h264",
"mpeg2",
"dolbye"
],
"titleMap": [
{
"value": "h264",
"name": "H.264/AVC"
},
{
"value": "mpeg2",
"name": "MPEG-2"
},
{
"value": "dolbye",
"name": "Dolby E"
}
]
},
"default": []
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
}
}
},
"tek_mos": {
"type": "object",
"description": "Non-reference based perceptual video quality measurement for natural video content",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"clip_threshold_score": {
"title": "Program Threshold",
"type": "number",
"default": 3,
"minimum": 0,
"maximum": 5,
"description": "Minimum desired TekMOS score, varies from 0(Poor) to 5(Excellent)"
},
"clip_threshold_percentage": {
"title": "TekMos Clip Threshold Percentage",
"type": "number",
"default": 5,
"minimum": 0,
"maximum": 100,
"suffix": "%",
"description": "% of all frames have TekMOS scores less than the program threshold"
},
"duration_threshold_score": {
"title": "Short-term Threshold",
"type": "number",
"default": 3,
"minimum": 0,
"maximum": 5,
"description": "Minimum desired TekMOS score, varies from 0(Poor) to 5(Excellent)"
},
"duration_threshold_score_percentage": {
"title": "Error When More Than",
"type": "number",
"default": 5,
"minimum": 0,
"maximum": 100,
"suffix": "%",
"description": "% of frames in the short-term have a TekMOS score less than the short-term threshold"
},
"duration_averaged_over": {
"title": "For A Minimum Duration Of",
"type": "integer",
"minimum": 1,
"default": 10,
"suffix": "Seconds"
},
"frame_sampling_type": {
"title": "Frame Sampling",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Measure TekMOS score for every frame"
},
{
"value": 1,
"name": "Measure TekMOS score at a target frame rate of"
}
],
"default": 1
},
"frames_to_be_sampled": {
"title": "Frames per Second",
"type": "integer",
"default": 5
},
"deinterlace": {
"title": "Apply De-interlacing",
"type": "boolean"
},
"region_of_interest": {
"title": "Region-of-interest",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Automatic"
},
{
"value": 1,
"name": "Center Of Frame"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"frame_sampling_type": {
"const": 1
}
}
},
"then": {
"required": [
"frames_to_be_sampled"
]
}
},
{
"required": [
"clip_threshold_score",
"clip_threshold_percentage",
"duration_threshold_score",
"duration_threshold_score_percentage",
"duration_averaged_over",
"deinterlace",
"region_of_interest"
]
}
]
},
"tone": {
"type": "object",
"description": "Checks for the presence of a sine wave tone (a test tone)",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Tone Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/tone_test_config"
}
}
}
},
"upconversion_detection": {
"type": "object",
"description": "Detect if the input video stream has been upconverted from a lower resolution",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"video_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"afd_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Active Format Description",
"description": "Test the value of the Active Format Description (AFD) as sent in the User Data of an MPEG-2 video sequence",
"type": "boolean",
"default": false
},
"value": {
"title": "AFD must be",
"type": "integer",
"enum": [
-1,
2,
3,
4,
8,
9,
10,
11,
13,
14,
15
],
"titleMap": [
{
"value": -1,
"name": "not present in stream"
},
{
"value": 2,
"name": "(2) Top-aligned 16:9 image"
},
{
"value": 3,
"name": "(3) Top-aligned 14:9 image"
},
{
"value": 4,
"name": "(4) Letterbox aspect > 16:9"
},
{
"value": 8,
"name": "(8) Full frame"
},
{
"value": 9,
"name": "(9) 4:3 image"
},
{
"value": 10,
"name": "(10) 16:9 image"
},
{
"value": 11,
"name": "(11) 14:9 image"
},
{
"value": 13,
"name": "(13) 4:3 image with alternative 14:9 center"
},
{
"value": 14,
"name": "(14) 16:9 image with alternative 14:9 center"
},
{
"value": 15,
"name": "(15) 16:9 image with alternative 4:3 center"
}
]
},
"changes": {
"title": "Report Dynamic AFD Changes",
"type": "boolean",
"default": false
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"value",
"changes"
]
}
},
"video_alphachannelpresence_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Alpha Channel Presence",
"type": "boolean",
"description": "This checks the presence or absence of Alpha (transparency) Component in the color space of the video for the following stream formats: ProRes, FFV1, TIFF, DPX",
"default": false
},
"value": {
"title": "Alpha channel must be",
"type": "boolean",
"enum": [
false,
true
],
"default": false,
"titleMap": [
{
"value": false,
"name": "not present"
},
{
"value": true,
"name": "present"
}
]
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"video_buffersize_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Buffer Size",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"type": "string",
"suffix": "KiB"
},
"minimum": {
"title": "Minimum",
"type": "number",
"minimum": 0,
"suffix": "KiB"
},
"maximum": {
"title": "Maximum",
"type": "number",
"minimum": 0,
"suffix": "KiB"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
}
]
},
"video_bitratemode_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Bit Rate Mode",
"description": "Check whether the bit rate mode is variable (VBR) or constant (CBR)",
"type": "boolean",
"default": false
},
"option": {
"title": "Mode",
"type": "string",
"enum": [
"cbr",
"vbr"
],
"titleMap": [
{
"value": "cbr",
"name": "CBR"
},
{
"value": "vbr",
"name": "VBR"
}
]
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"option"
]
}
},
"video_codec_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Codec",
"description": "Test the format of the video elementary stream",
"type": "boolean",
"default": false
},
"options": {
"title": "All codecs",
"type": "array",
"items": {
"type": "string",
"enum": [
"ap ",
"AVDJ",
"AVdn",
"AVdh",
"dv ",
"dvp ",
"dv50",
"dv1 ",
"dvh1",
"avc1",
"hvc1",
"mp2v",
"mp4v",
"mjpg",
"mjp2",
"RGB ",
"YUV ",
"WVC1"
],
"titleMap": [
{
"value": "ap ",
"name": "Apple ProRes"
},
{
"value": "AVDJ",
"name": "Avid Meridien"
},
{
"value": "AVdn",
"name": "Avid DNxHD"
},
{
"value": "AVdh",
"name": "Avid DNxHR"
},
{
"value": "dvp ",
"name": "DVCPRO25"
},
{
"value": "dv50",
"name": "DVCPRO50"
},
{
"value": "dv1 ",
"name": "DVCPRO100"
},
{
"value": "dvh1",
"name": "DVCPROHD"
},
{
"value": "dv ",
"name": "DVC25"
},
{
"value": "avc1",
"name": "H.264/AVC"
},
{
"value": "hvc1",
"name": "H.265/HEVC"
},
{
"value": "mjpg",
"name": "M-JPEG"
},
{
"value": "mjp2",
"name": "JPEG 2000"
},
{
"value": "mp2v",
"name": "MPEG-2"
},
{
"value": "mp4v",
"name": "MPEG-4"
},
{
"value": "RGB ",
"name": "Uncompressed RGB"
},
{
"value": "YUV ",
"name": "Uncompressed YUV"
},
{
"value": "WVC1",
"name": "VC-1"
}
]
},
"default": []
},
"video_entropymode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Entropy Coding Mode",
"description": "Test whether an H.264 video stream uses 'CABAC'",
"type": "boolean",
"default": false
},
"options": {
"title": "Mode",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "CABAC"
},
{
"value": 1,
"name": "CAVLC"
}
]
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"video_codedinterlacemode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Coded Interlace Mode",
"description": "Check the coded interlaced mode (e.g.interlaced or progressive)",
"type": "boolean",
"default": false
},
"options": {
"title": "Mode",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "FMBS"
},
{
"value": 1,
"name": "MBAFF"
},
{
"value": 2,
"name": "PAFF"
},
{
"value": 3,
"name": "PSF"
}
]
}
}
}
},
"mpeg2_profile": {
"title": "MPEG-2 Profile",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "High"
},
{
"value": 2,
"name": "Spatially Scalable"
},
{
"value": 3,
"name": "SNR Scalable"
},
{
"value": 4,
"name": "Main"
},
{
"value": 5,
"name": "Simple"
}
],
"default": 0
},
"mpeg2_level": {
"title": "MPEG-2 Level",
"type": "integer",
"enum": [
0,
2,
4,
6,
8,
10
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 2,
"name": "HighP"
},
{
"value": 4,
"name": "High"
},
{
"value": 6,
"name": "High-1440"
},
{
"value": 8,
"name": "Main"
},
{
"value": 10,
"name": "Low"
}
],
"default": 0
},
"prores_profile": {
"title": "ProRes Profile",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "422"
},
{
"value": 2,
"name": "422 (HQ)"
},
{
"value": 3,
"name": "422 (LT)"
},
{
"value": 4,
"name": "422 (Proxy)"
},
{
"value": 5,
"name": "4444"
},
{
"value": 6,
"name": "4444 XQ"
}
],
"default": 0
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
],
"allOf": [
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"mp2v"
]
}
}
}
},
"then": {
"required": [
"mpeg2_profile",
"mpeg2_level"
]
}
},
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"ap "
]
}
}
}
},
"then": {
"required": [
"prores_profile"
]
}
}
]
}
},
"video_framerate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Frame Rate",
"description": "Check the frame rate",
"type": "boolean",
"default": false
},
"options": {
"title": "Standard frame rates",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8
],
"titleMap": [
{
"value": 0,
"name": "24fps"
},
{
"value": 1,
"name": "24fps (NTSC)"
},
{
"value": 2,
"name": "25fps"
},
{
"value": 3,
"name": "30fps"
},
{
"value": 4,
"name": "30fps (NTSC)"
},
{
"value": 5,
"name": "48fps"
},
{
"value": 6,
"name": "50fps"
},
{
"value": 7,
"name": "60fps"
},
{
"value": 8,
"name": "60fps (NTSC)"
}
]
},
"default": []
},
"custom": {
"title": "Custom frame rate(s)",
"type": "string",
"suffix": "fps"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"not": {
"required": [
"options"
]
}
}
]
}
},
"video_framesize_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Frame Size",
"description": "Check the frame size",
"type": "boolean",
"default": false
},
"options": {
"title": "Standard frame sizes",
"type": "array",
"items": {
"type": "string",
"enum": [
"UHD8K",
"UHD4K",
"DCI4K",
"DCI2K",
"QHD",
"FHD",
"HD",
"SDNTSC",
"SDPAL",
"SDNTSCVBI",
"SDPALVBI"
],
"titleMap": [
{
"value": "UHD8K",
"name": "7680 x 4320 (8K UHD)"
},
{
"value": "UHD4K",
"name": "3840 x 2160 (4K UHD)"
},
{
"value": "DCI4K",
"name": "4096 x 2160 (DCI 4K)"
},
{
"value": "DCI2K",
"name": "2048 x 1080 (DCI 2K)"
},
{
"value": "QHD",
"name": "2560 x 1440"
},
{
"value": "FHD",
"name": "1920 x 1080"
},
{
"value": "HD",
"name": "1280 x 720"
},
{
"value": "SDNTSC",
"name": "720 x 480"
},
{
"value": "SDPAL",
"name": "720 x 576"
},
{
"value": "SDNTSCVBI",
"name": "720 x 512"
},
{
"value": "SDPALVBI",
"name": "720 x 608"
}
]
},
"default": []
},
"custom": {
"title": "Custom frame size(s)",
"type": "string",
"pattern": "^([0-9]+[ \t]*x[ \t]*[0-9]+)([ \t]*,[ \t]*[0-9]+[ \t]*x[ \t]*[0-9]+)*$",
"suffix": "wxh"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"not": {
"required": [
"options"
]
}
}
]
}
},
"video_smpte328trackpresent_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "SMPTE 328 Track Present",
"type": "boolean",
"description": "Check for presence of a SMPTE 328 track in all video frames of the file.",
"default": false
}
}
},
"video_bitdepth_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Bit Depth",
"description": "Check the number of bits per video sample",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"default": "8",
"suffix": "bits per sample"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"video_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Bit Rate",
"description": "Check the bit rate of the video track",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"type": "string",
"suffix": "Mbit/s"
},
"minimum": {
"title": "Minimum (Mbit/s)",
"type": "number",
"minimum": 0,
"suffix": "Mbit/s"
},
"maximum": {
"title": "Maximum (Mbit/s)",
"type": "number",
"minimum": 0,
"suffix": "Mbit/s"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
}
]
},
"video_colourspace_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Color Space Information",
"description": "Check the video has certain color space properties",
"type": "boolean",
"default": false
},
"color_primaries": {
"title": "Color Primaries",
"type": "integer",
"enum": [
-1,
1,
2,
4,
5,
6,
7,
8,
9,
10,
11,
12,
22,
128,
129,
130,
131
],
"default": -1,
"titleMap": [
{
"value": -1,
"name": "Any"
},
{
"value": 1,
"name": "ITU-R BT.709"
},
{
"value": 2,
"name": "Unspecified"
},
{
"value": 4,
"name": "ITU-R BT.470-6 System M"
},
{
"value": 5,
"name": "ITU-R BT.601 (625)"
},
{
"value": 6,
"name": "ITU-R BT.601 (525)"
},
{
"value": 7,
"name": "SMPTE 240M"
},
{
"value": 8,
"name": "Generic film"
},
{
"value": 9,
"name": "ITU-R BT.2020"
},
{
"value": 10,
"name": "SMPTE ST 428-1"
},
{
"value": 11,
"name": "SMPTE RP 431-2 (P3-DCI)"
},
{
"value": 12,
"name": "SMPTE EG 432-1 (P3-D65)"
},
{
"value": 22,
"name": "EBU Tech. 3213-E"
},
{
"value": 128,
"name": "S-Gamut3"
},
{
"value": 129,
"name": "S-Gamut3.Cine"
},
{
"value": 130,
"name": "SMPTE ST 2065 (ACES)"
},
{
"value": 131,
"name": "P3-D60 (ACES Cinema)"
}
]
},
"transfer_characteristics": {
"title": "Transfer Characteristics",
"type": "integer",
"enum": [
-1,
1,
2,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
128,
136,
152,
160
],
"default": -1,
"titleMap": [
{
"value": -1,
"name": "Any"
},
{
"value": 1,
"name": "ITU-R BT.709-5"
},
{
"value": 2,
"name": "Unspecified"
},
{
"value": 4,
"name": "ITU-R BT.470-6 System M"
},
{
"value": 5,
"name": "ITU-R BT.470-6 System B, G"
},
{
"value": 6,
"name": "ITU-R BT.601-6"
},
{
"value": 7,
"name": "SMPTE 240M"
},
{
"value": 8,
"name": "Linear"
},
{
"value": 9,
"name": "Log 100:1"
},
{
"value": 10,
"name": "Log 316:1"
},
{
"value": 11,
"name": "IEC 61966-2-4"
},
{
"value": 12,
"name": "ITU-R BT.1361"
},
{
"value": 13,
"name": "IEC 61966-2-1"
},
{
"value": 14,
"name": "ITU-R BT.2020 (10bit)"
},
{
"value": 15,
"name": "ITU-R BT.2020 (12bit)"
},
{
"value": 16,
"name": "SMPTE ST 2084"
},
{
"value": 17,
"name": "SMPTE ST 428-1"
},
{
"value": 18,
"name": "STD-B67 HLG"
},
{
"value": 128,
"name": "SONY S-Log"
},
{
"value": 136,
"name": "ARRI LogC"
},
{
"value": 152,
"name": "Canon Log"
},
{
"value": 160,
"name": "Panasonic V-Log"
}
]
},
"matrix_coefficients": {
"title": "Matrix Coefficients",
"type": "integer",
"enum": [
-1,
0,
1,
2,
4,
5,
6,
7,
9,
10,
11,
12,
13,
14,
128,
129
],
"default": -1,
"titleMap": [
{
"value": -1,
"name": "Any"
},
{
"value": 0,
"name": "SMPTE ST 428-1"
},
{
"value": 1,
"name": "ITU-R Rec. BT.709-5"
},
{
"value": 2,
"name": "Unspecified"
},
{
"value": 4,
"name": "FCC"
},
{
"value": 5,
"name": "ITU-R Rec. BT.601-6 (625)"
},
{
"value": 6,
"name": "ITU-R Rec. BT.601-6 (525)"
},
{
"value": 7,
"name": "SMPTE 240M"
},
{
"value": 9,
"name": "ITU-R Rec. BT.2020 (non-constant luminance)"
},
{
"value": 10,
"name": "ITU-R Rec. BT.2020 (constant luminance)"
},
{
"value": 11,
"name": "SMPTE ST 2085"
},
{
"value": 12,
"name": "Chromaticity-derived (non-constant luminance)"
},
{
"value": 13,
"name": "Chromaticity-derived (constant luminance)"
},
{
"value": 14,
"name": "ITU-R BT.2100-0 ICtCp"
},
{
"value": 128,
"name": "S-Gamut3"
},
{
"value": 129,
"name": "S-Gamut3.Cine"
}
]
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"color_primaries",
"transfer_characteristics",
"matrix_coefficients"
]
}
},
"video_frameaspectratio_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Frame Aspect Ratio",
"description": "Check the aspect ratio of the displayed video frame",
"type": "boolean",
"default": false
},
"ratios": {
"title": "All",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "1.33 (4:3)"
},
{
"value": 1,
"name": "1.78 (16:9)"
},
{
"value": 2,
"name": "1.85"
},
{
"value": 3,
"name": "2.21"
}
]
}
},
"custom": {
"title": "Custom",
"type": "number"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"not": {
"required": [
"ratios"
]
}
}
]
}
},
"video_pixelaspectratio_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Pixel Aspect Ratio",
"description": "Check the aspect ratio of each luminance sample in the coded stream",
"type": "boolean",
"default": false
},
"ratios": {
"title": "All",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"value": 0,
"name": "0.89 (8:9)"
},
{
"value": 1,
"name": "0.91 (10:11)"
},
{
"value": 2,
"name": "1.00 (1:1)"
},
{
"value": 3,
"name": "1.07 (16:15)"
},
{
"value": 4,
"name": "1.19 (64:54)"
},
{
"value": 5,
"name": "1.21 (40:33)"
},
{
"value": 6,
"name": "1.33 (4:3)"
},
{
"value": 7,
"name": "1.42 (64:45)"
}
]
},
"default": []
},
"custom": {
"title": "Custom",
"type": "number"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"not": {
"required": [
"ratios"
]
}
}
]
}
},
"video_parfarcompare_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Pixel to Frame Aspect Ratio Comparison",
"description": "Check for possible anamorphic video in a 4:3 frame",
"type": "boolean",
"default": false
}
}
},
"video_singlesampledescription_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Single Sample Description",
"description": "Check for the presence of multiple Sample Descriptions in the MOV/MP4 track metadata",
"type": "boolean",
"default": false
}
}
},
"video_referenceframes_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Reference Frames",
"description": "Check for the the maximum number of reference frames in AVC or HEVC video streams",
"type": "boolean",
"default": false
},
"maximum": {
"title": "Maximum Reference frame count",
"type": "integer",
"default": 1,
"minimum": 1
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"maximum"
]
}
},
"video_subsampling_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Chroma Subsampling Format",
"description": "Check the chroma subsampling format used in the input file. Only applicable for YUV-based video",
"type": "boolean",
"default": false
},
"subsampling": {
"title": "All",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "4:1:1"
},
{
"value": 1,
"name": "4:2:0"
},
{
"value": 2,
"name": "4:2:2"
},
{
"value": 3,
"name": "4:4:4"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"subsampling"
]
}
},
"video_trackid_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Track ID",
"description": "Check the ID of the video track within its container format",
"type": "boolean",
"default": false
},
"option": {
"title": "Video Track ID",
"type": "integer"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"option"
]
}
}
]
},
"video_tvmpaarating_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "TV/MPAA Rating",
"description": "Check the Content Advisory Packet from the caption data packet in the video stream",
"type": "boolean",
"default": false
},
"mpaa": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Enable MPAA Rating Check",
"description": "Check the Content Advisory Packet from the caption data packet in the video stream",
"type": "boolean",
"default": false
},
"options": {
"title": "MPAA",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"minItems": 1,
"titleMap": [
{
"value": 0,
"name": "N/A"
},
{
"value": 1,
"name": "G"
},
{
"value": 2,
"name": "PG"
},
{
"value": 3,
"name": "PG-13"
},
{
"value": 4,
"name": "R"
},
{
"value": 5,
"name": "NC-17"
},
{
"value": 6,
"name": "X"
},
{
"value": 7,
"name": "Not Rated"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"ustv": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Enable USTV Rating Check",
"description": "Check the Content Advisory Packet from the caption data packet in the video stream",
"type": "boolean",
"default": false
},
"options": {
"title": "USTV",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"minItems": 1,
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "TV-Y"
},
{
"value": 2,
"name": "TV-Y7"
},
{
"value": 3,
"name": "TV-G"
},
{
"value": 4,
"name": "TV-PG"
},
{
"value": 5,
"name": "TV-14"
},
{
"value": 6,
"name": "TV-MA"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"can_eng_lang": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Enable Canadian English Rating Check",
"description": "Check the Content Advisory Packet from the caption data packet in the video stream",
"type": "boolean",
"default": false
},
"options": {
"title": "Canadian English",
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"value": 0,
"name": "Canadian English E"
},
{
"value": 1,
"name": "Canadian English C"
},
{
"value": 2,
"name": "Canadian English C8+"
},
{
"value": 3,
"name": "Canadian English G"
},
{
"value": 4,
"name": "Canadian English PG"
},
{
"value": 5,
"name": "Canadian English 14+"
},
{
"value": 6,
"name": "Canadian English 18+"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"can_fre_lang": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Enable Canadian French Rating Check",
"description": "Check the Content Advisory Packet from the caption data packet in the video stream",
"type": "boolean",
"default": false
},
"options": {
"title": "Canadian French",
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "Canadian French E"
},
{
"value": 1,
"name": "Canadian French G"
},
{
"value": 2,
"name": "Canadian French 8 ans +"
},
{
"value": 3,
"name": "Canadian French 13 ans +"
},
{
"value": 4,
"name": "Canadian French 16 ans +"
},
{
"value": 5,
"name": "Canadian French 18 ans +"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"reserved": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Reserved for Non-North American ratings",
"description": "Check the Content Advisory Packet from the caption data packet in the video stream",
"type": "boolean",
"default": false
}
}
}
}
}
}
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
}
},
"additionalProperties": false,
"required": [
"name",
"tests",
"engine_version"
]
}
QC Engine Version 2023.5.1
{
"$schema": "http://json-schema.org/schema#",
"title": "Templates Schema",
"type": "object",
"description": "Represents a Qualify job template",
"definitions": {
"audio_program": {
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
65,
66,
68,
69,
70,
33,
34,
35
]
}
},
"audio_mapping": {
"type": "array",
"items": {
"$ref": "#/definitions/audio_program"
}
},
"audio_layout": {
"type": [
"object",
"null"
],
"properties": {
"name": {
"type": "string"
},
"layout": {
"type": "array",
"items": {
"$ref": "#/definitions/audio_mapping"
}
}
},
"required": [
"name",
"layout"
]
},
"package_layout": {
"type": [
"object",
"null"
],
"properties": {
"name": {
"type": "string"
},
"video_index": {
"description": "Index of video track from ABR manifest file that will be used in checks\n",
"type": "integer",
"minimum": 1
},
"audio_indexes": {
"description": "Index of audio track from ABR manifest file that will be used in checks\n",
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
},
"subtitle_indexes": {
"description": "Index of subtitle track from ABR manifest file that will be used in check\n",
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
}
},
"required": [
"name",
"video_index",
"audio_indexes",
"subtitle_indexes"
]
},
"audio_description_test_config": {
"type": "object",
"required": [
"description",
"control"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"description": {
"title": "Audio Description Channel",
"description": "The channel where the Audio Description should be present",
"type": "integer",
"minimum": 1
},
"control": {
"title": "Control Channel",
"description": "The channel where the Audio Description Control should be present",
"type": "integer",
"minimum": 1
},
"advanced": {
"title": "Advanced",
"description": "Enable advanced options",
"type": "boolean",
"default": false
},
"ctrl_frequency": {
"title": "Control channel Frequency",
"description": "The expected frequency of the Control channel",
"type": "number",
"default": 1280,
"suffix": "Hz"
},
"ctrl_frequency_tolerance": {
"title": "Control channel Frequency Tolerance",
"description": "The tolerance of the Control channel frequency",
"type": "number",
"default": 20,
"suffix": "Hz"
},
"ctrl_amplitude": {
"title": "Control channel Amplitude",
"description": "The expected amplitude of the Control channel",
"type": "number",
"default": -36,
"suffix": "dBFS"
},
"ctrl_amplitude_tolerance": {
"title": "Control channel Amplitude Tolerance",
"description": "The tolerance of the Control channel amplitude",
"type": "number",
"default": 3,
"suffix": "dB"
}
}
}
]
},
"blackframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Black"
},
{
"value": 1,
"name": "Not Black"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"channel_position_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_center_freq": {
"title": "Minimum center channel frequency",
"type": "number",
"description": "Minimum center frequency",
"default": 80,
"minimum": 0
},
"max_center_freq": {
"title": "Maximum center channel frequency",
"type": "number",
"description": "Maximum center frequency",
"default": 6000,
"minimum": 0
},
"min_lfe_freq": {
"title": "Minimum LFE channel frequency",
"type": "number",
"description": "Minimum LFE frequency",
"default": 3,
"minimum": 0
},
"max_lfe_freq": {
"title": "Maximum LFE channel frequency",
"type": "number",
"description": "Maximum LFE frequency",
"default": 120,
"minimum": 0
}
}
}
]
},
"clicksandpops_test_config": {
"type": "object",
"required": [
"sensitivity"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"ignore_silence": {
"type": "boolean",
"title": "Ignore silence",
"description": "When turned on, silent parts will be ignored",
"default": true
},
"sensitivity": {
"$ref": "#/definitions/customizable_sensitivity",
"description": "Determines how sensitive the test will be in detecting clicks and pops"
},
"custom_sensitivity": {
"type": "number",
"description": "Custom sensitivity percentage. Higher is more sensitive",
"minimum": 0.0,
"maximum": 100.0,
"default": 68.75
}
}
},
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity"
]
}
}
]
},
"clipping_test_config": {
"type": "object",
"required": [
"sensitivity",
"percentage_check"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_threshold": {
"type": "number",
"description": "Specify custom value where samples are suppressed and do not count towards the clipping test",
"suffix": "dB",
"default": -60.0,
"minimum": -100
},
"sensitivity": {
"$ref": "#/definitions/customizable_sensitivity",
"description": "Determines the number of successive samples which must be equal before the sequence is deemed to contain clipping. Choose between High (least number of samples), Medium, and Low (most number of samples)"
},
"custom_sensitivity": {
"type": "number",
"description": "Specify custom value for successive samples which must be equal before the sequence is deemed to contain clipping"
},
"units": {
"type": "integer",
"title": "Custom Sensitivity Units",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Samples"
},
{
"value": 1,
"name": "Milliseconds"
}
]
},
"percentage_check": {
"title": "Percentage Check",
"type": "boolean",
"default": false
},
"percentage": {
"title": "Percentage",
"type": "number",
"minimum": 0,
"maximum": 100.0,
"default": 1,
"suffix": "%"
}
}
},
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity",
"units"
]
}
},
{
"if": {
"properties": {
"percentage_check": {
"const": true
}
}
},
"then": {
"required": [
"percentage"
]
}
},
{
"if": {
"properties": {
"units": {
"const": 0
}
}
},
"then": {
"properties": {
"custom_sensitivity": {
"minimum": 2
}
}
}
},
{
"if": {
"properties": {
"units": {
"const": 1
}
}
},
"then": {
"properties": {
"custom_sensitivity": {
"minimum": 0.1
}
}
}
}
]
},
"colorbar_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "ColorBars"
},
{
"value": 1,
"name": "Not ColorBars"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"gop_structure": {
"type": "object",
"properties": {
"i_distance": {
"title": "I-Frame distance",
"type": "string"
},
"p_distance": {
"title": "P-Frame distance",
"type": "string"
},
"open_closed": {
"title": "Open/Closed",
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Either"
},
{
"value": 1,
"name": "Open"
},
{
"value": 2,
"name": "Closed"
}
]
}
}
},
"timecode": {
"type": "string",
"default": "00:00:00:00",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}[;:.][0-9]{2,3}$"
},
"bool_false": {
"type": "boolean",
"default": false
},
"bool_true": {
"type": "boolean",
"default": true
},
"bool_optional": {
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0
},
"bool_extended": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 2
},
"allowed_disallowed_required": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Allowed"
},
{
"value": 1,
"name": "Disallowed"
},
{
"value": 2,
"name": "Required"
}
]
},
"rational": {
"type": "object",
"required": [
"num",
"denom"
],
"properties": {
"num": {
"title": "Numerator",
"type": "integer",
"minimum": 0,
"default": 0
},
"denom": {
"title": "Denominator",
"type": "integer",
"minimum": 1,
"default": 1
}
}
},
"minmax": {
"type": "object",
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 0,
"default": 0
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 0,
"default": 0
}
}
},
"minmax_bits": {
"type": "object",
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
}
}
},
"audio_config_silence": {
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"audio_track_type": {
"$ref": "#/definitions/audio_track_type"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"allOf": [
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"audio_track_type"
],
"allOf": [
{
"if": {
"properties": {
"audio_track_type": {
"const": 2
}
}
},
"then": {
"required": [
"dolbye_program"
]
}
}
]
}
}
]
},
"audio_config": {
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"audio_track_type": {
"$ref": "#/definitions/audio_track_type"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"required": [
"audio_track",
"audio_track_type"
],
"allOf": [
{
"if": {
"properties": {
"audio_track_type": {
"const": 2
}
}
},
"then": {
"required": [
"dolbye_program"
]
}
}
]
},
"audio_track": {
"title": "Mix",
"type": "integer",
"description": "Audio mix to test",
"minimum": 1,
"default": 1
},
"audio_track_type": {
"title": "Mix type",
"type": "integer",
"description": "Audio mix type to test",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "PCM"
},
{
"value": 2,
"name": "DolbyE"
},
{
"value": 3,
"name": "Encoded"
}
],
"default": 0
},
"dolbye_program": {
"title": "Dolby E Program",
"type": "integer",
"description": "Dolby E program to test (only for Dolby E mixes)",
"minimum": 1,
"default": 1
},
"channel_mask": {
"title": "Channel Selection",
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"description": "Select channels using comma separated numbers. Leave empty to select all."
},
"time_units": {
"type": "integer",
"description": "Test in seconds or frames",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"base_range_type": {
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0
},
"range_limit": {
"type": "number",
"default": 0,
"minimum": 0
},
"base_range": {
"type": "object",
"required": [
"layout"
],
"properties": {
"layout": {
"title": "Layout",
"type": "string",
"enum": [
"0",
"1"
],
"default": "0",
"titleMap": [
{
"value": "0",
"name": "Test Fixed Duration"
},
{
"value": "1",
"name": "Test End Of File"
}
]
},
"start": {
"title": "Starts At",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "Ends At",
"$ref": "#/definitions/range_limit"
},
"start_from_end": {
"title": "Test Last",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "With Duration",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
}
}
},
"tolerant_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"tolerance": {
"title": "Tolerance +/-",
"type": "number",
"default": 0,
"minimum": 0
}
}
}
]
},
"video_bit_depth": {
"type": "integer",
"enum": [
8,
10,
12,
14
],
"default": 8
},
"level_8_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 16
},
"level_10_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 64
},
"level_12_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 256
},
"level_14_bit": {
"title": "Black Level",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 1024
},
"max_black_level_8_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 235
},
"max_black_level_10_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 940
},
"max_black_level_12_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 3760
},
"max_black_level_14_bit": {
"title": "Max Black Level",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 15040
},
"warnings_as": {
"title": "Treat Warnings as",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
}
],
"default": 1
},
"sensitivity": {
"title": "Sensitivity",
"type": "integer",
"description": "A High sensitivity will find more problems but could also find more false positives. A Low sensitivity will only detect more obvious problems",
"enum": [
0,
1,
2
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Low"
},
{
"value": 1,
"name": "Medium"
},
{
"value": 2,
"name": "High"
}
]
},
"customizable_sensitivity": {
"title": "Sensitivity",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Low"
},
{
"value": 1,
"name": "Medium"
},
{
"value": 2,
"name": "High"
},
{
"value": 3,
"name": "Custom"
}
]
},
"dialnorm_test_config": {
"type": "object",
"required": [
"minimum",
"maximum"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"minimum": {
"title": "Minimum Dialnorm Value",
"description": "Minimum valid dialnorm value is 1",
"type": "integer",
"minimum": 1,
"maximum": 31
},
"maximum": {
"title": "Maximum Dialnorm Value",
"description": "Maximum valid dialnorm value is 31",
"type": "integer",
"minimum": 1,
"maximum": 31
}
}
}
]
},
"dualmono_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"tolerance": {
"title": "Tolerance Window",
"type": "number",
"default": 1,
"description": "A dual mono section lasting less than this time window will be ignored."
}
}
}
]
},
"freezeframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Freeze"
},
{
"value": 1,
"name": "Not Freeze"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"integrated_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"description": "Specify the loudness (and tolerance range) within which loudness must lie",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"tolerance": {
"title": "Loudness Tolerance",
"description": "Specify the loudness (and tolerance range) within which loudness must lie",
"type": "number",
"default": 2.0,
"minimum": 0.0,
"suffix": "dB"
},
"mode": {
"title": "Loudness Mode",
"description": "Select standard to use for measuring integrated loudness",
"type": "integer",
"enum": [
0,
1,
2,
3,
4
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "ITU 1770-4 / EBU I"
},
{
"value": 1,
"name": "ITU 1770-1"
},
{
"value": 3,
"name": "ITU 1770-2"
},
{
"value": 4,
"name": "ITU 1770-3"
},
{
"value": 2,
"name": "ARIB TR-B32"
}
]
},
"dialog_gating": {
"title": "Dialog Gating",
"description": "Measure loudness only when dialog is present",
"type": "boolean"
}
}
}
]
},
"loudness_range_test_config": {
"type": "object",
"description": "Measure the variation in loudness over the duration of a file. The algorithm is specified in EBU-Tech 3342 and produces an output Loudness Range ('LRA') in terms of Loudness Units ('LU')",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"check_min": {
"title": "Check Minimum",
"type": "boolean"
},
"min_range": {
"title": "Min",
"description": "Minimum permitted loudness range",
"type": "number",
"suffix": "LU"
},
"check_max": {
"title": "Check Maximum",
"type": "boolean"
},
"max_range": {
"title": "Max",
"description": "Maximum permitted loudness range",
"type": "number",
"suffix": "LU"
}
}
},
{
"if": {
"properties": {
"check_min": {
"const": true
}
}
},
"then": {
"required": [
"min_range"
]
}
},
{
"if": {
"properties": {
"check_max": {
"const": true
}
}
},
"then": {
"required": [
"max_range"
]
}
}
]
},
"minlevel_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"minlevel_elsewhere",
"level",
"duration",
"units"
],
"description": "Checks if the RMS level for a given channel drops below the given level for a window longer than the given duration",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"minlevel_elsewhere": {
"title": "Test whole file",
"description": "Evaluate minimum level across the whole file",
"type": "boolean",
"default": true
},
"level": {
"title": "Min Level Threshold (dBFS)",
"type": "number",
"default": -70.0,
"description": "The minimum acceptable level over the window duration, in dBFS RMS."
},
"duration": {
"title": "Window Duration",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/minlevel_range"
}
}
}
}
]
},
"minlevel_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Test for minimum level",
"type": "integer",
"enum": [
0,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Should be below"
},
{
"value": 2,
"name": "Don't care"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
}
]
},
"momentary_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"violations": {
"title": "Report Violations",
"description": "Max Violations will report only the worst violation",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Max Only"
},
{
"value": 1,
"name": "All Violations"
}
],
"default": 0
}
}
}
]
},
"timecode_track_test": {
"type": "object",
"required": [
"continuity"
],
"properties": {
"continuity": {
"title": "Structural Continuity",
"type": "boolean",
"default": false
},
"dropframe": {
"title": "Drop Frame",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Don't Test"
},
{
"value": 1,
"name": "False"
},
{
"value": 2,
"name": "True"
}
],
"default": 0
}
}
},
"location_test": {
"type": "object",
"properties": {
"header": {
"title": "Header Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"body": {
"title": "Body Partition(s)",
"$ref": "#/definitions/allowed_disallowed_required"
},
"exclude_first": {
"title": "Exclude First Body Partition",
"type": "boolean",
"default": false
},
"footer": {
"title": "Footer Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"is_repeated": {
"title": "Repeated footer partition",
"type": "boolean",
"default": false
},
"present": {
"title": "Present In At Least One",
"type": "boolean",
"default": false
}
}
},
"partition_status_test": {
"type": "object",
"properties": {
"closedcomplete": {
"title": "Closed / Complete",
"type": "boolean"
},
"openincomplete": {
"title": "Open / Incomplete",
"type": "boolean"
},
"closedincomplete": {
"title": "Closed / Incomplete",
"type": "boolean"
},
"opencomplete": {
"title": "Open / Complete",
"type": "boolean"
},
"notpresent": {
"title": "Not Present",
"type": "boolean"
}
}
},
"pic_frame_size": {
"type": "object",
"properties": {
"size": {
"title": "Frame Size",
"type": "string",
"pattern": "^\\d+x|X\\d+$",
"suffix": "(WxH) e.g. 1920x544"
}
}
},
"sid": {
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"description": "Leave blank for any"
},
"nielsen_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"naes2": {
"title": "NAES 2",
"type": "boolean",
"default": false,
"description": "Detects and reports N2 watermarks"
},
"naes2_sids": {
"$ref": "#/definitions/sid"
},
"naes6": {
"title": "NAES 6",
"type": "boolean",
"default": false,
"description": "Detects and reports Nielsen Watermark TAM** Codes (NW) and Nielsen Watermark Commercial Codes (NWCC)"
},
"naes6_sids": {
"$ref": "#/definitions/sid"
}
}
}
]
},
"peak_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_peak_enable": {
"title": "Min Peak Enable",
"type": "boolean"
},
"min_peak_level": {
"title": "Min Peak Level",
"description": "Minimum acceptable peak level",
"type": "number"
},
"max_peak_enable": {
"title": "Max Peak Enable",
"type": "boolean"
},
"max_peak_level": {
"title": "Max Peak Level",
"description": "Maximum acceptable peak level",
"type": "number"
},
"peak_type": {
"title": "Peak Type",
"description": "dbTP (True Peak) as per Annex 2 of ITU-R BS.1770-1 or in dbFS (Full Scale)",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "dBFS"
},
{
"value": 1,
"name": "dBTP"
}
],
"default": 0
}
}
},
{
"if": {
"properties": {
"min_peak_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_peak_level"
]
}
},
{
"if": {
"properties": {
"max_peak_enable": {
"const": true
}
}
},
"then": {
"required": [
"max_peak_level"
]
}
}
]
},
"phase_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_instant_phase_enable": {
"title": "Min Instant Phase Enable",
"type": "boolean"
},
"min_instant_phase": {
"title": "Min Instant Phase",
"description": "Taken over a 10ms window period, the lowest value for the stream is recorded",
"type": "number"
},
"min_mean_phase_enable": {
"title": "Min Mean Phase Enable",
"type": "boolean"
},
"min_mean_phase": {
"title": "Min Mean Phase",
"description": "Measured over the whole audio stream",
"type": "number"
},
"max_mean_phase_enable": {
"title": "Max Mean Phase Enable",
"type": "boolean"
},
"max_mean_phase": {
"title": "Max Mean Phase",
"description": "Measured over the whole audio stream",
"type": "number"
}
}
},
{
"if": {
"properties": {
"min_instant_phase_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_instant_phase"
]
}
},
{
"if": {
"properties": {
"min_mean_phase_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_mean_phase"
]
}
},
{
"if": {
"properties": {
"max_mean_phase_enable": {
"const": true
}
}
},
"then": {
"required": [
"max_mean_phase"
]
}
}
]
},
"ppm_level_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_ppm_enable": {
"title": "Min PPM Level Enable",
"type": "boolean"
},
"min_ppm_level": {
"title": "Min PPM Level",
"type": "number"
},
"max_ppm_enable": {
"title": "Max PPM Level Enable",
"type": "boolean"
},
"max_ppm_level": {
"title": "Max PPM Level",
"type": "number"
},
"ppm_mode": {
"title": "PPM Mode",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "M3"
},
{
"value": 1,
"name": "M6"
},
{
"value": 2,
"name": "AB"
}
],
"default": 0
}
}
},
{
"if": {
"properties": {
"min_ppm_enable": {
"const": true
}
}
},
"then": {
"required": [
"min_ppm_level"
]
}
},
{
"if": {
"properties": {
"max_ppm_enable": {
"const": true
}
}
},
"then": {
"required": [
"max_ppm_level"
]
}
}
]
},
"shortterm_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"window": {
"title": "Loudness Window",
"description": "Default window length of 3 seconds corresponds to EBU-Tech 3341 Short-term mode",
"type": "number",
"suffix": "seconds",
"default": 3.0,
"minimum": 0
},
"violations": {
"title": "Report Violations",
"description": "Max Violations will report only the worst violation",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Max Only"
},
{
"value": 1,
"name": "All Violations"
}
],
"default": 0
}
}
}
]
},
"silence_test_config": {
"type": "object",
"required": [
"silent_elsewhere"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"silent_elsewhere": {
"title": "Test whole file",
"description": "Test whole file for the presence of silence",
"type": "boolean",
"default": true
},
"silent": {
"type": "boolean",
"default": true,
"titleMap": [
{
"value": true,
"name": "Must Be Silent"
},
{
"value": false,
"name": "Must Not Be Silent"
}
]
},
"digital": {
"title": "Digital Silence",
"type": "boolean",
"description": "The track is checked for the presence or absence of audio samples"
},
"threshold": {
"title": "Silence Threshold",
"type": "number",
"default": -70.0,
"description": "The threshold below which an audio track is considered silent"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/silence_range"
}
},
"quiet": {
"type": "boolean",
"default": false
}
}
}
]
},
"silence_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Silent"
},
{
"value": 1,
"name": "Not Silent"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
}
]
},
"singlecolor_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Single Color"
},
{
"value": 1,
"name": "Not Single Color"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"tone_type": {
"title": "Tone Type",
"type": "string",
"description": "Check for presence of sine wave tone at level given in dBFS peak-to-peak (to convert from RMS add 3dB)",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6"
],
"default": "0",
"titleMap": [
{
"value": "0",
"name": "Continuous"
},
{
"value": "1",
"name": "Ebu1000Hz"
},
{
"value": "2",
"name": "Ebu440Hz"
},
{
"value": "3",
"name": "Glits1000Hz"
},
{
"value": "4",
"name": "Glits2000Hz"
},
{
"value": "5",
"name": "Blits"
},
{
"value": "6",
"name": "EAS (Emergency Alert System)"
}
]
},
"tone_test_config": {
"type": "object",
"required": [
"tone_type"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"tone_type": {
"$ref": "#/definitions/tone_type"
},
"tone_elsewhere": {
"title": "Test whole file",
"description": "Test whole file for the presence of a test tone",
"type": "boolean",
"default": true
},
"tone": {
"type": "boolean",
"default": false,
"titleMap": [
{
"value": true,
"name": "Must Be Present"
},
{
"value": false,
"name": "Must Be Absent"
}
]
},
"frequency": {
"title": "Tone frequency",
"description": "The expected frequency of the test tone",
"type": "number",
"default": 1000.0,
"suffix": "Hz"
},
"power": {
"title": "Tone level",
"type": "number",
"default": -6.0,
"suffix": "dBFS"
},
"tolerance": {
"title": "Level tolerance",
"type": "number",
"default": 0.5,
"suffix": "dB"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/tone_range"
}
},
"segment": {
"$ref": "#/definitions/tone_segment"
}
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "0"
}
}
},
"then": {
"required": [
"tolerance",
"frequency",
"power",
"tone_elsewhere"
],
"allOf": [
{
"if": {
"properties": {
"tone_elsewhere": {
"const": true
}
}
},
"then": {
"required": [
"tone"
]
}
}
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "1"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "2"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "3"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "4"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "5"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
}
]
},
"tone_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Present"
},
{
"value": 1,
"name": "Not Present"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
},
"tone_segment": {
"type": "object",
"required": [
"start",
"duration",
"units"
],
"properties": {
"start": {
"title": "Start At",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "Duration",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"$ref": "#/definitions/time_units"
}
}
}
},
"properties": {
"name": {
"description": "User given name of a template",
"type": "string",
"nullable": false
},
"id": {
"description": "Cloud ID",
"type": [
"string",
"null"
],
"nullable": true
},
"created_at": {
"description": "Cloud Created at",
"type": [
"string",
"null"
],
"regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"nullable": true
},
"updated_at": {
"description": "Cloud Updated at",
"type": [
"string",
"null"
],
"regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"nullable": true
},
"aggregate_alerts_limit": {
"description": "Option to aggregate alerts of the same ID",
"type": [
"integer",
"null"
],
"nullable": true
},
"use_starttimecode": {
"description": "Option to use the video's timecode for alert start & end times",
"type": [
"boolean",
"null"
],
"nullable": true
},
"audio_layout": {
"description": "Audio layout to use",
"$ref": "#/definitions/audio_layout"
},
"audio_layout_id": {
"description": "Id of audio layout to use",
"type": [
"string",
"null"
],
"nullable": true
},
"package_layout": {
"description": "Package layout to use",
"$ref": "#/definitions/package_layout"
},
"package_layout_id": {
"description": "Id of package layout to use",
"type": [
"string",
"null"
],
"nullable": true
},
"engine_version": {
"description": "Engine version",
"type": "string",
"regex": "^[0-9]{4}.[0-9]{1,2}.[1-9]{1,2}$"
},
"treat_missing_media_as": {
"description": "What type of alerts missing media should generate, e.g. Info, Warning, Error",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
}
],
"default": 1,
"nullable": true
},
"tests": {
"properties": {
"audio_description": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Audio Description Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/audio_description_test_config"
}
}
}
},
"audio_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audio_bitdepth_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Bit Depth",
"description": "Check the number of bits per audio sample per channel",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"description": "Select multiple by using comma separated values",
"default": "16",
"suffix": "bits per sample"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"audio_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Bit Rate",
"description": "Check the bit rate of the audio track as it appears in the input file",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"description": "Test specific value(s) or that bit rate lies within given range",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"description": "Select multiple by using comma separated values",
"type": "string",
"suffix": "kbps"
},
"minimum": {
"title": "Minimum",
"description": "The minimum allowed bit rate",
"type": "integer",
"minimum": 0,
"suffix": "kbps"
},
"maximum": {
"title": "Maximum",
"description": "The maximum allowed bit rate",
"type": "integer",
"minimum": 0,
"suffix": "kbps"
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
}
]
},
"audio_endianness_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Check endianness of LPCM",
"type": "boolean",
"default": false,
"description": "Check the endianness of the audio LPCM data against the original audio."
},
"options": {
"title": "Endianess Required",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Little Endian"
},
{
"value": 1,
"name": "Big Endian"
}
]
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_trackcount_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Number of Tracks",
"description": "Check the number of audio tracks in the file",
"type": "boolean",
"default": false
},
"count": {
"type": "string",
"description": "Select multiple by using comma separated values",
"default": "1"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"count"
]
}
},
"audio_codec_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Codec",
"description": "Check the format of the audio elementary stream",
"type": "boolean",
"default": false
},
"codec": {
"title": "All",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"value": 0,
"name": "AAC"
},
{
"value": 1,
"name": "Dolby AC-3"
},
{
"value": 2,
"name": "Dolby Digital Plus"
},
{
"value": 3,
"name": "Dolby E"
},
{
"value": 4,
"name": "MPEG-1 / MPEG-2"
},
{
"value": 5,
"name": "PCM"
},
{
"value": 7,
"name": "SMPTE 331M"
},
{
"value": 6,
"name": "WMA"
}
]
}
},
"aac_profile": {
"title": "AAC profiles",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "HE-AAC"
},
{
"value": 1,
"name": "HE-AACv2"
},
{
"value": 2,
"name": "LC"
},
{
"value": 3,
"name": "Main"
},
{
"value": 4,
"name": "SSR"
},
{
"value": 5,
"name": "LTP"
}
]
}
},
"pcm_type": {
"title": "PCM types",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"titleMap": [
{
"value": 0,
"name": "Frame (BWF)"
},
{
"value": 1,
"name": "Clip (BWF)"
},
{
"value": 2,
"name": "Frame (AES)"
},
{
"value": 3,
"name": "Clip (AES)"
},
{
"value": 4,
"name": "Custom (BWF)"
},
{
"value": 5,
"name": "Custom (AES)"
},
{
"value": 6,
"name": "Frame"
},
{
"value": 7,
"name": "Clip"
},
{
"value": 8,
"name": "D-10"
},
{
"value": 9,
"name": "Custom"
},
{
"value": 10,
"name": "Custom: Fixed Audio Size"
}
]
}
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"codec"
],
"allOf": [
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
0
]
}
}
}
},
"then": {
"required": [
"aac_profile"
]
},
"else": {
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
5
]
}
}
}
},
"then": {
"required": [
"pcm_type"
]
}
}
}
]
}
}
]
},
"audio_languageid_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Language ID",
"description": "Check the audio language ID in the audio stream",
"type": "boolean",
"default": false
},
"options": {
"title": "Languages",
"type": "array",
"items": {
"type": "string",
"enum": [
"abk",
"ady",
"aar",
"afr",
"aka",
"sqi",
"amh",
"ara",
"arg",
"arp",
"aae",
"hye",
"rup",
"asm",
"ina",
"ava",
"ave",
"aym",
"aze",
"bam",
"bak",
"eus",
"bar",
"bel",
"ben",
"bih",
"bis",
"bos",
"bre",
"bul",
"mya",
"spa",
"cat",
"cha",
"che",
"zho",
"chv",
"cim",
"cor",
"cos",
"cre",
"crh",
"hrv",
"ces",
"dan",
"div",
"nld",
"dzo",
"eng",
"enm",
"myv",
"epo",
"est",
"ewe",
"fao",
"fij",
"fin",
"fra",
"frm",
"fur",
"frr",
"fry",
"ful",
"gla",
"glg",
"lug",
"kat",
"deu",
"ell",
"grn",
"guj",
"hat",
"hau",
"heb",
"her",
"hin",
"hmo",
"hun",
"isl",
"ido",
"ibo",
"ind",
"inh",
"ile",
"iku",
"ipk",
"gle",
"ita",
"jpn",
"jav",
"lad",
"kbd",
"kal",
"xal",
"kan",
"kau",
"krc",
"krl",
"kas",
"csb",
"kaz",
"khm",
"kik",
"kin",
"kir",
"kom",
"kon",
"kor",
"kua",
"kur",
"lao",
"lat",
"lav",
"ast",
"lim",
"lin",
"lit",
"lub",
"ltz",
"mkd",
"mlg",
"msa",
"mal",
"mlt",
"glv",
"mri",
"mar",
"chm",
"mah",
"mwl",
"mdf",
"ron",
"mon",
"nau",
"nav",
"ndo",
"nap",
"nep",
"nde",
"sme",
"nor",
"nob",
"nno",
"nya",
"oci",
"oji",
"ori",
"orm",
"oss",
"pli",
"pan",
"fas",
"pol",
"por",
"pus",
"que",
"roh",
"rom",
"run",
"rus",
"smo",
"sag",
"san",
"srd",
"sco",
"srp",
"sna",
"scn",
"snd",
"sin",
"slk",
"slv",
"som",
"wen",
"sot",
"nbl",
"sma",
"sun",
"swa",
"ssw",
"swe",
"gsw",
"tgl",
"tah",
"tgk",
"tam",
"tat",
"tel",
"tha",
"bod",
"tir",
"ton",
"tso",
"tsn",
"tur",
"tuk",
"twi",
"udm",
"uig",
"ukr",
"mis",
"urd",
"uzb",
"ven",
"vie",
"vol",
"wln",
"cym",
"wol",
"xho",
"yid",
"yor",
"zha",
"zul",
"none"
],
"titleMap": [
{
"value": "abk",
"name": "Abkhazian - abk"
},
{
"value": "ady",
"name": "Adygei, Adyghe - ady"
},
{
"value": "aar",
"name": "Afar - aar"
},
{
"value": "afr",
"name": "Afrikaans - afr"
},
{
"value": "aka",
"name": "Akan - aka"
},
{
"value": "sqi",
"name": "Albanian - sqi"
},
{
"value": "amh",
"name": "Amharic - amh"
},
{
"value": "ara",
"name": "Arabic - ara"
},
{
"value": "arg",
"name": "Aragonese - arg"
},
{
"value": "arp",
"name": "Arapaho - arp"
},
{
"value": "aae",
"name": "Arb\u00ebresh\u00eb Albanian - aae"
},
{
"value": "hye",
"name": "Armenian - hye"
},
{
"value": "rup",
"name": "Aromanian, Arumanian, Macedo-Romanian - rup"
},
{
"value": "asm",
"name": "Assamese - asm"
},
{
"value": "ina",
"name": "Auxiliary Language Association - ina"
},
{
"value": "ava",
"name": "Avaric - ava"
},
{
"value": "ave",
"name": "Avestan - ave"
},
{
"value": "aym",
"name": "Aymara - aym"
},
{
"value": "aze",
"name": "Azerbaijani - aze"
},
{
"value": "bam",
"name": "Bambara - bam"
},
{
"value": "bak",
"name": "Bashkir - bak"
},
{
"value": "eus",
"name": "Basque - eus"
},
{
"value": "bar",
"name": "Bavarian - bar"
},
{
"value": "bel",
"name": "Belarusian - bel"
},
{
"value": "ben",
"name": "Bengali - ben"
},
{
"value": "bih",
"name": "Bihari - bih"
},
{
"value": "bis",
"name": "Bislama - bis"
},
{
"value": "bos",
"name": "Bosnian - bos"
},
{
"value": "bre",
"name": "Breton - bre"
},
{
"value": "bul",
"name": "Bulgarian - bul"
},
{
"value": "mya",
"name": "Burmese - mya"
},
{
"value": "spa",
"name": "Castilian, Spanish - spa"
},
{
"value": "cat",
"name": "Catalan, Valencian - cat"
},
{
"value": "cha",
"name": "Chamorro - cha"
},
{
"value": "che",
"name": "Chechen - che"
},
{
"value": "zho",
"name": "Chinese - zho"
},
{
"value": "chv",
"name": "Chuvash - chv"
},
{
"value": "cim",
"name": "Cimbrian - cim"
},
{
"value": "cor",
"name": "Cornish - cor"
},
{
"value": "cos",
"name": "Corsican - cos"
},
{
"value": "cre",
"name": "Cree - cre"
},
{
"value": "crh",
"name": "Crimean Tatar, Crimean Turkish - crh"
},
{
"value": "hrv",
"name": "Croatian - hrv"
},
{
"value": "ces",
"name": "Czech - ces"
},
{
"value": "dan",
"name": "Danish - dan"
},
{
"value": "div",
"name": "Dhivehi, Divehi, Maldivian - div"
},
{
"value": "nld",
"name": "Dutch, Flemish - nld"
},
{
"value": "dzo",
"name": "Dzongkha - dzo"
},
{
"value": "eng",
"name": "English - eng"
},
{
"value": "enm",
"name": "Middle English - enm"
},
{
"value": "myv",
"name": "Erzya - myv"
},
{
"value": "epo",
"name": "Esperanto - epo"
},
{
"value": "est",
"name": "Estonian - est"
},
{
"value": "ewe",
"name": "Ewe - ewe"
},
{
"value": "fao",
"name": "Faroese - fao"
},
{
"value": "fij",
"name": "Fijian - fij"
},
{
"value": "fin",
"name": "Finnish - fin"
},
{
"value": "fra",
"name": "French - fra"
},
{
"value": "frm",
"name": "Middle French - frm"
},
{
"value": "fur",
"name": "Friulian - fur"
},
{
"value": "frr",
"name": "Northern Frisian - frr"
},
{
"value": "fry",
"name": "Western Frisian - fry"
},
{
"value": "ful",
"name": "Fulah - ful"
},
{
"value": "gla",
"name": "Gaelic, Scottish Gaelic - gla"
},
{
"value": "glg",
"name": "Galician - glg"
},
{
"value": "lug",
"name": "Ganda - lug"
},
{
"value": "kat",
"name": "Georgian - kat"
},
{
"value": "deu",
"name": "German - deu"
},
{
"value": "ell",
"name": "Greek - ell"
},
{
"value": "grn",
"name": "Guarani - grn"
},
{
"value": "guj",
"name": "Gujarati - guj"
},
{
"value": "hat",
"name": "Haitian, Haitian Creole - hat"
},
{
"value": "hau",
"name": "Hausa - hau"
},
{
"value": "heb",
"name": "Hebrew - heb"
},
{
"value": "her",
"name": "Herero - her"
},
{
"value": "hin",
"name": "Hindi - hin"
},
{
"value": "hmo",
"name": "Hiri Motu - hmo"
},
{
"value": "hun",
"name": "Hungarian - hun"
},
{
"value": "isl",
"name": "Icelandic - isl"
},
{
"value": "ido",
"name": "Ido - ido"
},
{
"value": "ibo",
"name": "Igbo - ibo"
},
{
"value": "ind",
"name": "Indonesian - ind"
},
{
"value": "inh",
"name": "Ingush - inh"
},
{
"value": "ile",
"name": "Interlingue, Occidental - ile"
},
{
"value": "iku",
"name": "Inuktitut - iku"
},
{
"value": "ipk",
"name": "Inupiaq - ipk"
},
{
"value": "gle",
"name": "Irish - gle"
},
{
"value": "ita",
"name": "Italian - ita"
},
{
"value": "jpn",
"name": "Japanese - jpn"
},
{
"value": "jav",
"name": "Javanese - jav"
},
{
"value": "lad",
"name": "Ladino - lad"
},
{
"value": "kbd",
"name": "Kabardian - kbd"
},
{
"value": "kal",
"name": "Greenlandic, Kalaallisut - kal"
},
{
"value": "xal",
"name": "Kalmyk, Oirat - xal"
},
{
"value": "kan",
"name": "Kannada - kan"
},
{
"value": "kau",
"name": "Kanuri - kau"
},
{
"value": "krc",
"name": "Karachay-Balkar - krc"
},
{
"value": "krl",
"name": "Karelian - krl"
},
{
"value": "kas",
"name": "Kashmiri - kas"
},
{
"value": "csb",
"name": "Kashubian - csb"
},
{
"value": "kaz",
"name": "Kazakh - kaz"
},
{
"value": "khm",
"name": "Central Khmer, Khmer - khm"
},
{
"value": "kik",
"name": "Gikuyu, Kikuyu - kik"
},
{
"value": "kin",
"name": "Kinyarwanda - kin"
},
{
"value": "kir",
"name": "Kirghiz, Kyrgyz - kir"
},
{
"value": "kom",
"name": "Komi - kom"
},
{
"value": "kon",
"name": "Kongo - kon"
},
{
"value": "kor",
"name": "Korean - kor"
},
{
"value": "kua",
"name": "Kuanyama, Kwanyama - kua"
},
{
"value": "kur",
"name": "Kurdish - kur"
},
{
"value": "lao",
"name": "Lao - lao"
},
{
"value": "lat",
"name": "Latin - lat"
},
{
"value": "lav",
"name": "Latvian - lav"
},
{
"value": "ast",
"name": "Leonese, Asturian, Asturleonese, Bable - ast"
},
{
"value": "lim",
"name": "Limburgan, Limburger, Limburgish - lim"
},
{
"value": "lin",
"name": "Lingala - lin"
},
{
"value": "lit",
"name": "Lithuanian - lit"
},
{
"value": "lub",
"name": "Luba-Katanga - lub"
},
{
"value": "ltz",
"name": "Letzeburgesch, Luxembourgish - ltz"
},
{
"value": "mkd",
"name": "Macedonian - mkd"
},
{
"value": "mlg",
"name": "Malagasy - mlg"
},
{
"value": "msa",
"name": "Malay - msa"
},
{
"value": "mal",
"name": "Malayalam - mal"
},
{
"value": "mlt",
"name": "Maltese - mlt"
},
{
"value": "glv",
"name": "Manx - glv"
},
{
"value": "mri",
"name": "Maori - mri"
},
{
"value": "mar",
"name": "Marathi - mar"
},
{
"value": "chm",
"name": "Mari (Russia) - chm"
},
{
"value": "mah",
"name": "Marshallese - mah"
},
{
"value": "mwl",
"name": "Mirandese - mwl"
},
{
"value": "mdf",
"name": "Moksha - mdf"
},
{
"value": "ron",
"name": "Moldavian, Moldovan, Romanian - ron"
},
{
"value": "mon",
"name": "Mongolian - mon"
},
{
"value": "nau",
"name": "Nauru - nau"
},
{
"value": "nav",
"name": "Navaho, Navajo - nav"
},
{
"value": "ndo",
"name": "Ndonga - ndo"
},
{
"value": "nap",
"name": "Neapolitan - nap"
},
{
"value": "nep",
"name": "Nepali - nep"
},
{
"value": "nde",
"name": "North Ndebele - nde"
},
{
"value": "sme",
"name": "Northern Sami - sme"
},
{
"value": "nor",
"name": "Norwegian - nor"
},
{
"value": "nob",
"name": "Norwegian Bokm\u00e5l - nob"
},
{
"value": "nno",
"name": "Norwegian Nynorsk - nno"
},
{
"value": "nya",
"name": "Nyanja, Chewa, Chichewa - nya"
},
{
"value": "oci",
"name": "Occitan - oci"
},
{
"value": "oji",
"name": "Ojibwa - oji"
},
{
"value": "ori",
"name": "Oriya - ori"
},
{
"value": "orm",
"name": "Oromo - orm"
},
{
"value": "oss",
"name": "Ossetian, Ossetic - oss"
},
{
"value": "pli",
"name": "Pali - pli"
},
{
"value": "pan",
"name": "Panjabi, Punjabi - pan"
},
{
"value": "fas",
"name": "Persian - fas"
},
{
"value": "pol",
"name": "Polish - pol"
},
{
"value": "por",
"name": "Portuguese - por"
},
{
"value": "pus",
"name": "Pashto, Pushto - pus"
},
{
"value": "que",
"name": "Quechua - que"
},
{
"value": "roh",
"name": "Romansh - roh"
},
{
"value": "rom",
"name": "Romany - rom"
},
{
"value": "run",
"name": "Rundi - run"
},
{
"value": "rus",
"name": "Russian - rus"
},
{
"value": "smo",
"name": "Samoan - smo"
},
{
"value": "sag",
"name": "Sango - sag"
},
{
"value": "san",
"name": "Sanskrit - san"
},
{
"value": "srd",
"name": "Sardinian - srd"
},
{
"value": "sco",
"name": "Scots - sco"
},
{
"value": "srp",
"name": "Serbian - srp"
},
{
"value": "sna",
"name": "Shona - sna"
},
{
"value": "scn",
"name": "Sicilian - scn"
},
{
"value": "snd",
"name": "Sindhi - snd"
},
{
"value": "sin",
"name": "Sinhala, Sinhalese - sin"
},
{
"value": "slk",
"name": "Slovak - slk"
},
{
"value": "slv",
"name": "Slovenian - slv"
},
{
"value": "som",
"name": "Somali - som"
},
{
"value": "wen",
"name": "Sorbian languages - wen"
},
{
"value": "sot",
"name": "Southern Sotho - sot"
},
{
"value": "nbl",
"name": "South Ndebele - nbl"
},
{
"value": "sma",
"name": "Southern Sami - sma"
},
{
"value": "sun",
"name": "Sundanese - sun"
},
{
"value": "swa",
"name": "Swahili - swa"
},
{
"value": "ssw",
"name": "Swati - ssw"
},
{
"value": "swe",
"name": "Swedish - swe"
},
{
"value": "gsw",
"name": "Swiss German, Alemannic, Alsatian - gsw"
},
{
"value": "tgl",
"name": "Tagalog - tgl"
},
{
"value": "tah",
"name": "Tahitian - tah"
},
{
"value": "tgk",
"name": "Tajik - tgk"
},
{
"value": "tam",
"name": "Tamil - tam"
},
{
"value": "tat",
"name": "Tatar - tat"
},
{
"value": "tel",
"name": "Telugu - tel"
},
{
"value": "tha",
"name": "Thai - tha"
},
{
"value": "bod",
"name": "Tibetan - bod"
},
{
"value": "tir",
"name": "Tigrinya - tir"
},
{
"value": "ton",
"name": "Tonga - ton"
},
{
"value": "tso",
"name": "Tsonga - tso"
},
{
"value": "tsn",
"name": "Tswana - tsn"
},
{
"value": "tur",
"name": "Turkish - tur"
},
{
"value": "tuk",
"name": "Turkmen - tuk"
},
{
"value": "twi",
"name": "Twi - twi"
},
{
"value": "udm",
"name": "Udmurt - udm"
},
{
"value": "uig",
"name": "Uighur, Uyghur - uig"
},
{
"value": "ukr",
"name": "Ukrainian - ukr"
},
{
"value": "mis",
"name": "Uncoded languages - mis"
},
{
"value": "urd",
"name": "Urdu - urd"
},
{
"value": "uzb",
"name": "Uzbek - uzb"
},
{
"value": "ven",
"name": "Venda - ven"
},
{
"value": "vie",
"name": "Vietnamese - vie"
},
{
"value": "vol",
"name": "Volap\u00fck - vol"
},
{
"value": "wln",
"name": "Walloon - wln"
},
{
"value": "cym",
"name": "Welsh - cym"
},
{
"value": "wol",
"name": "Wolof - wol"
},
{
"value": "xho",
"name": "Xhosa - xho"
},
{
"value": "yid",
"name": "Yiddish - yid"
},
{
"value": "yor",
"name": "Yoruba - yor"
},
{
"value": "zha",
"name": "Zhuang, Chuang - zha"
},
{
"value": "zul",
"name": "Zulu - zul"
},
{
"value": "none",
"name": "None"
}
]
},
"default": []
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"audio_numberofchannels_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Number of Channels",
"description": "Check the number of audio channels in the track",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"type": "string",
"description": "Test specific value(s) or that number of channels lie within given range",
"enum": [
"value",
"range"
],
"default": "value"
},
"maximum": {
"title": "Maximum",
"description": "The maximum allowed number of channels",
"type": "integer",
"minimum": 0,
"default": 0
},
"minimum": {
"title": "Minimum",
"description": "The minimum allowed number of channels",
"type": "integer",
"minimum": 0,
"default": 0
},
"equals": {
"title": "Equal to",
"description": "Test the channel count is equal to given value",
"type": "integer",
"minimum": 0,
"default": 0
},
"source": {
"title": "Source",
"description": "Test the number of channels per audio stream or across all audio streams",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "channels per audio stream"
},
{
"value": 1,
"name": "channels across all streams"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"mode",
"source"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"equals"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"audio_samplerate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Sample rate",
"description": "Check the number of audio samples per channel per second",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"description": "Select multiple by using comma separated values",
"suffix": "kHz"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
}
}
},
"black_frame": {
"type": "object",
"allOf": [
{
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area"
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage Of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "Percentage of frame required to be black"
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of black frames",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Black Video Allowed",
"description": "The maximum black video allowed (frames/seconds)",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Must Also Be Digitally Silent",
"description": "Test for digital silence in conjunction with black frames",
"type": "boolean"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/blackframe_range"
}
}
}
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"required": [
"silence",
"custom_level"
]
}
]
},
"cadence": {
"type": "object",
"required": [
"cadence_must_be",
"broken_cadence",
"report_all_cadences",
"poor_patterns"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"cadence_must_be": {
"title": "Cadence must be:",
"description": "Cadence expected in the stream",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"value": 0,
"name": "Progressive"
},
{
"value": 1,
"name": "2:2 (TFF)"
},
{
"value": 2,
"name": "2:2 (BFF)"
},
{
"value": 3,
"name": "2:3 (TFF)"
},
{
"value": 4,
"name": "2:3 (BFF)"
},
{
"value": 5,
"name": "24->25 fps (TFF)"
},
{
"value": 6,
"name": "24->25 fps (BFF)"
}
],
"default": 0
},
"broken_cadence": {
"title": "Check for broken 2:3 cadence (compromises Reverse Telecine)",
"type": "boolean",
"default": false,
"description": "Look for breaks in the cadence pattern such as can be caused by editing 2:3 cadence video. An interrupted pattern can cause problems with a Reverse Telecine operation"
},
"report_all_cadences": {
"title": "Report all detected cadences",
"type": "boolean",
"default": false,
"description": "Analyze the video stream and report all cadences found as Info alerts"
},
"poor_patterns": {
"title": "Check for poor patterns",
"type": "boolean",
"default": false,
"description": "Raises an alert if a cadence pattern is found that causes excessive visual 'stutter'. This includes patterns which repeat frames (e.g. 2:2:2:4) and pull-down patterns not best suited for broadcast (e.g. 'Advanced' pull-down 2:3:3:2)"
}
}
},
"caption_subtitle": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"caption_present": {
"title": "Detect and report the presence of Closed Captions",
"type": "boolean",
"description": "Will test for and report on the presence of 608 and 708 captions.",
"default": false
},
"608_present": {
"title": "Test for the presence of 608 captions",
"type": "boolean",
"description": "Will test for the presence of 608 captions.",
"default": false
},
"708_present": {
"title": "Test for the presence of 708 captions",
"type": "boolean",
"description": "Will test for the presence of 708 captions.",
"default": false
},
"caption_dropout": {
"title": "Detect and report any Closed Caption Dropouts",
"type": "boolean",
"description": "Will test for the absence of captions in the given interval.",
"default": false
},
"no_caption_threshold": {
"title": "Max time allowed with no caption data",
"type": "number",
"minimum": 0.0,
"maximum": 3600.0,
"description": "The minimum threshold for which captions must be updated.",
"default": 10.0
},
"caption_dropout_duration_units": {
"title": "Units",
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"cc1_presence": {
"title": "CC1 Presence",
"type": "boolean",
"description": "Find captions in CC1.",
"default": false
},
"cc2_presence": {
"title": "CC2 Presence",
"type": "boolean",
"description": "Find captions in CC2.",
"default": false
},
"cc3_presence": {
"title": "CC3 Presence",
"type": "boolean",
"description": "Find captions in CC3.",
"default": false
},
"cc4_presence": {
"title": "CC4 Presence",
"type": "boolean",
"description": "Find captions in CC4.",
"default": false
},
"service1_presence": {
"title": "Service 1 Presence",
"type": "boolean",
"description": "Find captions in Service 1.",
"default": false
},
"service2_presence": {
"title": "Service 2 Presence",
"type": "boolean",
"description": "Find captions in Service 2.",
"default": false
},
"service3_presence": {
"title": "Service 3 Presence",
"type": "boolean",
"description": "Find captions in Service 3.",
"default": false
},
"service4_presence": {
"title": "Service 4 Presence",
"type": "boolean",
"description": "Find captions in Service 4.",
"default": false
},
"service5_presence": {
"title": "Service 5 Presence",
"type": "boolean",
"description": "Find captions in Service 5.",
"default": false
},
"service6_presence": {
"title": "Service 6 Presence",
"type": "boolean",
"description": "Find captions in Service 6.",
"default": false
},
"teletext_presence": {
"title": "Detect and report the presence of Teletext subtitles",
"type": "boolean",
"description": "Find Teletext in specified page number.",
"default": false
},
"teletext_page": {
"title": "Teletext page",
"type": "integer",
"description": "The specified page number.",
"minimum": 0,
"default": 0
}
}
},
"channel_position": {
"type": "object",
"description": "Test whether 5.1 channels are in the correct place by analyzing base band and checking against what it should be",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Channel Position Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/channel_position_test_config"
}
}
}
},
"clicks_and_pops": {
"type": "object",
"description": "Detect transients or sudden changes in amplitude, such as those caused by noise on an analog or digital audio line",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Clicks and Pops Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/clicksandpops_test_config"
}
}
}
},
"clipping": {
"type": "object",
"description": "Detect audio clipping by testing for successive samples of equal value. Quiet samples (those below a fixed small value) are suppressed and do not count towards the clipping test",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Clipping Test Configuration",
"type": "array",
"items": {
"$ref": "#/definitions/clipping_test_config"
}
}
}
},
"color_bars": {
"type": "object",
"description": "Detect the presence of color bars in the video to determine that they are of the correct type and/or that they are present when they should be and not present when they should not be",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"standard": {
"title": "Color Bar Standard",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "SMPTE SD"
},
{
"value": 2,
"name": "SMPTE HD"
},
{
"value": 3,
"name": "EBU 75"
},
{
"value": 4,
"name": "EBU 100"
},
{
"value": 5,
"name": "EBU UHD"
}
]
},
"color_tolerance": {
"title": "Color Level Tolerance (%)",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 3,
"description": "Percentage of allowed deviation from colorbar specification colors"
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of colorbars",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max ColorBars Allowed",
"description": "The maximum number of colorbars allowed",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/colorbar_range"
}
}
}
},
"comb_artifacts": {
"type": "object",
"description": "Detect if the input video stream has any interlacing or combing artifacts",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"consecutive_frame_count": {
"title": "Consecutive Error Frames",
"type": "integer",
"default": 1,
"suffix": "frames",
"description": "Raise an alert if number of Consecutive Error Frames exceeds this limit."
}
},
"allOf": [
{
"required": [
"consecutive_frame_count"
]
}
]
},
"corrupt_frame": {
"type": "object",
"description": "Check for corrupt or unexpected frames",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"sensitivity": {
"title": "Corrupt Frame Detection Sensitivity",
"$ref": "#/definitions/sensitivity"
}
}
},