Qualify Template Schemas
Full Template Schema JSON based on engine version
QC Engine Version 2023.12.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
],
"titleMap": [
{
"value": 0,
"name": "Unknown (U)"
},
{
"value": 1,
"name": "Left (L)"
},
{
"value": 2,
"name": "Right (R)"
},
{
"value": 3,
"name": "Center (C)"
},
{
"value": 4,
"name": "LFE (LFE)"
},
{
"value": 5,
"name": "Left Surround (Ls)"
},
{
"value": 6,
"name": "Right Surround (Rs)"
},
{
"value": 7,
"name": "Left Center (Lc)"
},
{
"value": 8,
"name": "Right Center (Rc)"
},
{
"value": 9,
"name": "Center Surround (Cs)"
},
{
"value": 10,
"name": "Left Side (Lsd)"
},
{
"value": 11,
"name": "Right Side (Rsd)"
},
{
"value": 12,
"name": "Top Center (Tcs)"
},
{
"value": 13,
"name": "Top Front Left (Tfl)"
},
{
"value": 14,
"name": "Top Front Center (Tfc)"
},
{
"value": 15,
"name": "Top Front Right (Tfr)"
},
{
"value": 16,
"name": "Top Back Left (Tbl)"
},
{
"value": 17,
"name": "Top Back Center (Tbc)"
},
{
"value": 18,
"name": "Top Back Right (Tbr)"
},
{
"value": 19,
"name": "Top Side Left (Tsl)"
},
{
"value": 20,
"name": "Top Side Right (Tsr)"
},
{
"value": 65,
"name": "Left Wide (Lw)"
},
{
"value": 66,
"name": "Right Wide (Rw)"
},
{
"value": 68,
"name": "LFE2 (LFE2)"
},
{
"value": 69,
"name": "Left Rear Surround (Lrs)"
},
{
"value": 70,
"name": "Right Rear Surround (Rrs)"
},
{
"value": 33,
"name": "Left Total (Lt)"
},
{
"value": 34,
"name": "Right Total (Rt)"
},
{
"value": 35,
"name": "Mono (M)"
}
]
}
},
"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"
]
},
"media_layout": {
"type": "object",
"required": [
"units"
],
"properties": {
"start": {
"title": "Start",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "End",
"$ref": "#/definitions/range_limit"
},
"start_timecode": {
"title": "Start Timecode",
"$ref": "#/definitions/timecode"
},
"end_timecode": {
"title": "End Timecode",
"$ref": "#/definitions/timecode"
},
"units": {
"title": "Layout boundary units",
"$ref": "#/definitions/time_units_extended"
}
},
"if": {
"properties": {
"units": {
"const": 2
}
}
},
"then": {
"required": [
"start_timecode",
"end_timecode"
]
},
"else": {
"required": [
"start",
"end"
]
}
},
"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.",
"$ref": "#/definitions/uint32",
"minimum": 1
},
"control": {
"title": "Control Channel",
"description": "The channel where the Audio Description Control should be present.",
"$ref": "#/definitions/uint32",
"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",
"description": "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",
"title": "Sensitivity",
"description": "Determines how sensitive the test will be in detecting clicks and pops."
},
"custom_sensitivity": {
"type": "number",
"title": "Custom Sensitivity",
"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",
"title": "Minimum Threshold",
"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",
"title": "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",
"title": "Custom Sensitivity",
"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",
"description": "Custom Sensitivity Units.",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Samples"
},
{
"value": 1,
"name": "Milliseconds"
}
]
},
"percentage_check": {
"title": "Percentage Check",
"description": "Whether to enable the percentage clipping check. This applies to the entire file/layout.",
"type": "boolean",
"default": false
},
"percentage": {
"title": "Percentage",
"description": "The maximum percentage of clipping allowed. 100% means the entire file/layout can be clipped.",
"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",
"description": "The color bar must be type.",
"$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"
]
}
}
]
}
]
},
"comparative_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"required": [
"second_audio_track",
"second_audio_track_type",
"mode",
"dialog_gating",
"tolerance"
],
"properties": {
"second_audio_track": {
"title": "Mix 2",
"type": "integer",
"description": "Audio mix to compare with other mix.",
"minimum": 1,
"default": 1
},
"second_audio_track_type": {
"title": "Mix 2 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
},
"tolerance": {
"title": "Loudness Tolerance",
"description": "Specify the loudness (and tolerance range) within which the mixes' loudness must be in.",
"type": "number",
"default": 2.0,
"minimum": 0.0,
"suffix": "LU"
},
"mode": {
"title": "Loudness Mode",
"description": "Select standard to use for measuring comparative 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",
"default": false
}
}
}
]
},
"gop_structure": {
"type": "object",
"required": [
"open_closed"
],
"additionalProperties": false,
"properties": {
"i_distance": {
"title": "I-Frame distance",
"type": "string",
"description": "The distance allowed between gop i-frames as a comma seperated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"p_distance": {
"title": "P-Frame distance",
"type": "string",
"description": "The distance allowed between gop p-frames as a comma seperated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"open_closed": {
"title": "Open/Closed",
"type": "integer",
"description": "Whether the gop structure should be open/closed or either.",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Either"
},
{
"value": 1,
"name": "Open"
},
{
"value": 2,
"name": "Closed"
}
]
}
}
},
"timecode": {
"type": "string",
"title": "Timecode",
"description": "Timecode, E.g. HH:MM:SS:FF, HH:MM:SS;FF or HH:MM:SS.mmm.",
"default": "00:00:00:00",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}[;:.][0-9]{2,3}$"
},
"basic_timecode": {
"type": "string",
"default": "00:00:00.000",
"title": "Timecode",
"description": "Timecode, E.g. HH:MM:SS:FF or HH:MM:SS.mmm.",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}$"
},
"bool_false": {
"type": "boolean",
"title": "Value",
"description": "Value.",
"default": false
},
"bool_true": {
"type": "boolean",
"title": "Value",
"description": "Value.",
"default": true
},
"uint32": {
"type": "integer",
"title": "Value",
"description": "Value.",
"minimum": 0,
"maximum": 4294967295
},
"int32": {
"type": "integer",
"title": "Value",
"description": "Value.",
"minimum": -2147483648,
"maximum": 2147483647
},
"bool_optional": {
"type": "integer",
"title": "Value",
"description": "Value.",
"enum": [
0,
1,
2
],
"default": 0
},
"bool_extended": {
"type": "integer",
"title": "Value",
"description": "Value.",
"enum": [
0,
1,
2,
3
],
"default": 2
},
"comma_separated_positive_numbers": {
"type": "string",
"title": "Comma separated positive numbers",
"description": "A list of comma separated positive whole numbers or an empty string, e.g. '1', '1,2', '1,2,3'.",
"pattern": "^$|^\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*)*$"
},
"comma_separated_frame_sizes": {
"type": "string",
"title": "Comma separated frame sizes",
"description": "Allowed frame sizes as a comma separated list or an empty string, e.g. '320x240', '1920x544,320x240'.",
"pattern": "^$|^\\s*[0-9]+\\s*x\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*x\\s*[0-9]+\\s*)*$"
},
"comma_separated_positive_numbers_with_operators": {
"type": "string",
"title": "Comma separated positive numbers/operators",
"description": "A list of comma separated positive whole numbers with optional operators or an empty string, e.g. '1', '1-2', '>1,<=2,3'.",
"pattern": "^$|^(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?)((\\s)*(,(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?))?)*$"
},
"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",
"description": "Numerator.",
"type": "integer",
"minimum": 0,
"default": 0
},
"denom": {
"title": "Denominator",
"description": "Denominator.",
"type": "integer",
"minimum": 1,
"default": 1
}
}
},
"minmax": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"min": {
"title": "Minimum",
"description": "Minimum.",
"type": "integer",
"minimum": 0,
"default": 0
},
"max": {
"title": "Maximum",
"description": "Maximum.",
"type": "integer",
"minimum": 0,
"default": 0
}
}
},
"minmax_bits": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"min": {
"title": "Minimum",
"description": "Minimum.",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
},
"max": {
"title": "Maximum",
"description": "Maximum.",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
}
}
},
"video_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"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": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"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",
"$ref": "#/definitions/uint32",
"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",
"$ref": "#/definitions/uint32",
"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."
},
"subtitle_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"time_units": {
"type": "integer",
"title": "Time Units",
"description": "Test in seconds or frames.",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"time_units_extended": {
"type": "integer",
"title": "Time Units",
"description": "Define duration in seconds, frames or timecodes.",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
},
{
"value": 2,
"name": "Timecodes"
}
]
},
"base_range_type": {
"type": "integer",
"title": "Range Type",
"description": "Range Type.",
"enum": [
0,
1,
2
],
"default": 0
},
"range_limit": {
"type": "number",
"title": "Range Limit",
"description": "Range Limit.",
"default": 0,
"minimum": 0
},
"base_range": {
"type": "object",
"required": [
"layout"
],
"properties": {
"layout": {
"title": "Layout",
"description": "The media layout to test with.",
"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",
"description": "Starts At.",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "Ends At",
"description": "Ends At.",
"$ref": "#/definitions/range_limit"
},
"start_from_end": {
"title": "Test Last",
"description": "Test Last.",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "With Duration",
"description": "With Duration.",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"description": "Time Units.",
"$ref": "#/definitions/time_units"
}
}
},
"tolerant_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"tolerance": {
"title": "Tolerance +/-",
"description": "Tolerance +/-.",
"type": "number",
"default": 0,
"minimum": 0
}
}
}
]
},
"video_bit_depth": {
"type": "integer",
"title": "Video Bit Depth",
"description": "Video Bit Depth.",
"enum": [
8,
10,
12,
14
],
"default": 8
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 16
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 64
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 256
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 1024
},
"max_black_level_8_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 235
},
"max_black_level_10_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 940
},
"max_black_level_12_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 3760
},
"max_black_level_14_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 15040
},
"warnings_as": {
"title": "Treat Warnings as",
"description": "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",
"description": "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"
}
]
},
"drop_frame": {
"type": "integer",
"title": "Drop Frame",
"description": "What type of drop frame is required.",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Drop"
},
{
"value": 1,
"name": "Non-drop"
}
]
},
"media_layout_type": {
"type": "integer",
"title": "Media Layout",
"description": "The media layout to use for the test, global, whole file or user.",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Global layout"
},
{
"value": 1,
"name": "Whole File"
},
{
"value": 2,
"name": "User layout"
}
],
"default": 0
},
"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": {
"max_allowed": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Max Allowed Duration",
"description": "The total amount of dual mono allowed in the file.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Max Allowed",
"description": "Whether the max dual mono allowed test is enabled.",
"default": false
},
"units": {
"type": "integer",
"title": "Max Allowed Units",
"description": "The units for the max dual mono allowed duration.",
"default": 2,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
},
{
"name": "Percentage",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
},
"tolerance_window": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Tolerance Window Duration",
"description": "A dual mono section lasting less than this time window will be ignored.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Tolerance Window",
"description": "Whether to enable the dual mono tolerance window test.",
"default": false
},
"units": {
"type": "integer",
"title": "Tolerance Window Units",
"description": "The units for the tolerance window duration.",
"default": 2,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
}
}
}
]
},
"freezeframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The freeze frame range must be type.",
"$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",
"required": [
"level",
"tolerance",
"mode",
"dialog_gating"
],
"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",
"default": false
}
}
}
]
},
"loudness_range_test_config": {
"type": "object",
"title": "Loudness Range",
"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",
"description": "Whether to enable the minimum loudness test.",
"default": false
},
"min_range": {
"title": "Min",
"description": "The minimum permitted loudness range.",
"type": "number",
"suffix": "LU"
},
"check_max": {
"title": "Check Maximum",
"description": "Whether to enable the maximum loudness test.",
"type": "boolean",
"default": false
},
"max_range": {
"title": "Max",
"description": "Maximum permitted loudness range.",
"type": "number",
"suffix": "LU"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"check_min": {
"const": false
}
}
}
},
"then": {
"required": [
"min_range"
]
}
},
{
"if": {
"not": {
"properties": {
"check_max": {
"const": false
}
}
}
},
"then": {
"required": [
"max_range"
]
}
}
]
}
]
},
"minlevel_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"minlevel_elsewhere",
"level",
"duration",
"units"
],
"title": "Minimum Level",
"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",
"description": "Window Duration in time units.",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"description": "The time units to use.",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"description": "The minimum level ranges to use.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/minlevel_range"
}
}
}
}
]
},
"minlevel_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Test for minimum level",
"description": "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",
"description": "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
}
}
}
]
},
"location_test": {
"type": "object",
"required": [
"exclude_first",
"is_repeated",
"present"
],
"additionalProperties": false,
"properties": {
"body": {
"title": "Body Partition(s)",
"description": "Body Partition(s).",
"$ref": "#/definitions/allowed_disallowed_required"
},
"exclude_first": {
"type": "boolean",
"title": "Exclude First Body Partition",
"description": "Exclude First Body Partition.",
"default": false
},
"footer": {
"title": "Footer Partition",
"description": "Footer Partition.",
"$ref": "#/definitions/allowed_disallowed_required"
},
"header": {
"title": "Header Partition",
"description": "Header Partition.",
"$ref": "#/definitions/allowed_disallowed_required"
},
"is_repeated": {
"type": "boolean",
"title": "Repeated footer partition",
"description": "Repeated footer partition.",
"default": false
},
"present": {
"type": "boolean",
"title": "Present In At Least One",
"description": "Present In At Least One.",
"default": false
}
}
},
"partition_status_test": {
"type": "object",
"required": [
"closedcomplete",
"closedincomplete",
"notpresent",
"opencomplete",
"openincomplete"
],
"additionalProperties": false,
"properties": {
"closedcomplete": {
"type": "boolean",
"title": "Closed / Complete",
"description": "Closed / Complete.",
"default": false
},
"closedincomplete": {
"type": "boolean",
"title": "Closed / Incomplete",
"description": "Closed / Incomplete.",
"default": false
},
"notpresent": {
"type": "boolean",
"title": "Not Present",
"description": "Not Present.",
"default": false
},
"opencomplete": {
"type": "boolean",
"title": "Open / Complete",
"description": "Open / Complete.",
"default": false
},
"openincomplete": {
"type": "boolean",
"title": "Open / Incomplete",
"description": "Open / Incomplete.",
"default": false
}
}
},
"timecode_track_test": {
"type": "object",
"required": [
"continuity"
],
"additionalProperties": false,
"properties": {
"continuity": {
"type": "boolean",
"title": "Structural Continuity",
"description": "Structural Continuity.",
"default": false
},
"dropframe": {
"title": "Drop Frame",
"description": "The drop frame type required.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
}
}
},
"sid": {
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"title": "Sid",
"description": "The sid to find. 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",
"description": "Whether the min peak test is enabled.",
"type": "boolean",
"default": false
},
"min_peak_level": {
"title": "Min Peak Level",
"description": "Minimum acceptable peak level.",
"type": "number"
},
"max_peak_enable": {
"title": "Max Peak Enable",
"description": "Whether the max peak test is enabled.",
"type": "boolean",
"default": false
},
"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": {
"not": {
"properties": {
"min_peak_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_peak_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_peak_enable": {
"const": false
}
}
}
},
"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",
"description": "Whether the min instant phase test is enabled.",
"type": "boolean",
"default": false
},
"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",
"description": "Whether the min mean phase test is enabled.",
"type": "boolean",
"default": false
},
"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",
"description": "Whether the max mean phase test is enabled.",
"type": "boolean",
"default": false
},
"max_mean_phase": {
"title": "Max Mean Phase",
"description": "Measured over the whole audio stream.",
"type": "number"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"min_instant_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_instant_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"min_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_mean_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"max_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_mean_phase"
]
}
}
]
}
]
},
"ppm_level_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"max_ppm_enable": {
"type": "boolean",
"title": "Max PPM Level Enable",
"description": "Whether the max PPM level test is enabled.",
"default": false
},
"max_ppm_level": {
"type": "number",
"title": "Max PPM Level",
"description": "The maximum acceptable PPM level."
},
"min_ppm_enable": {
"type": "boolean",
"title": "Min PPM Level Enable",
"description": "Whether the minimum PPM level test is enabled.",
"default": false
},
"min_ppm_level": {
"type": "number",
"title": "Min PPM Level",
"description": "The minimum acceptable PPM level."
},
"ppm_mode": {
"type": "integer",
"title": "PPM Mode",
"description": "The PPM (Peak Programme Meter) Mode to test with.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "M3",
"value": 0
},
{
"name": "M6",
"value": 1
},
{
"name": "AB",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"min_ppm_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_ppm_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_ppm_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_ppm_level"
]
}
}
]
}
]
},
"shortterm_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"description": "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",
"title": "Silent",
"description": "Whether the audio must be silent or not.",
"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.",
"default": false
},
"threshold": {
"title": "Silence Threshold",
"type": "number",
"default": -70.0,
"description": "The threshold below which an audio track is considered silent."
},
"ranges": {
"title": "Range",
"description": "The ranges where silence is expected to be or not.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/silence_range"
}
},
"quiet": {
"type": "boolean",
"title": "Quiet",
"description": "Whether to enable quiet mode.",
"default": false
}
}
}
]
},
"silence_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The silence range must be type.",
"$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",
"description": "The single color range must be type.",
"$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",
"title": "Tone",
"description": "Whether the tone must be present or not.",
"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",
"description": "The power level required of the tone.",
"type": "number",
"default": -6.0,
"suffix": "dBFS"
},
"tolerance": {
"title": "Level tolerance",
"description": "The tolerance of the power allowed when detecting the tone.",
"type": "number",
"default": 0.5,
"suffix": "dB"
},
"ranges": {
"title": "Range",
"description": "The tone ranges allowed.",
"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",
"description": "The tone range must be type.",
"$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",
"description": "Start At.",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "Duration",
"description": "Duration.",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"description": "The time units to use.",
"$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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/audio_description_test_config"
}
}
},
"title": "Audio Description",
"category": "Audio Quality"
},
"audio_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audio_bitdepth_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Bit Depth",
"description": "Check the number of bits per audio sample per channel.",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"title": "Options",
"description": "Select multiple by using comma separated values.",
"default": "16",
"pattern": "^([0-9]+)(\\s*,\\s*[0-9]+)*\\s*$",
"suffix": "bits per sample"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
"audio_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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)",
"type": "string",
"description": "The allowed bit rates as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"audio_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Audio Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"description": "Whether the duration value test is enabled.",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"description": "The duration value allowed.",
"$ref": "#/definitions/basic_timecode"
},
"spread": {
"title": "Spread (+ or -)",
"description": "The spread (+ or -) allowed.",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"description": "Whether the duration range test is enabled.",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum duration allowed.",
"$ref": "#/definitions/basic_timecode"
},
"maximum": {
"title": "Maximum",
"description": "The maximum duration allowed.",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"audio_endianness_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": "Endianness Required",
"description": "The endianness required.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Little Endian"
},
{
"value": 1,
"name": "Big Endian"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_codec_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Codec",
"description": "Check the format of the audio elementary stream.",
"type": "boolean",
"default": false
},
"codec": {
"title": "All",
"description": "Which codecs to allow.",
"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",
"description": "Which AAC profiles to allow.",
"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",
"description": "Which PCM types to allow.",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
],
"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"
},
{
"value": 11,
"name": "Frame (D-10)"
},
{
"value": 12,
"name": "Wav (BWF)"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codec"
],
"properties": {
"codec": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
0
]
}
}
}
},
"then": {
"required": [
"aac_profile"
],
"properties": {
"aac_profile": {
"minItems": 1
}
}
}
},
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
5
]
}
}
}
},
"then": {
"required": [
"pcm_type"
]
}
}
]
}
}
]
},
"audio_languageid_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Language ID",
"description": "Check the audio language ID in the audio stream.",
"type": "boolean",
"default": false
},
"options": {
"title": "Languages",
"description": "Which languages to allow.",
"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": "Arbereshe 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 Bokmal - 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": "Volapuk - 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"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"audio_numberofchannels_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Sample rate",
"description": "Check the number of audio samples per channel per second.",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"title": "Options",
"description": "The allowed sample rates as a comma separted list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "kHz"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
}
},
"title": "Audio Metadata",
"category": "Audio Metadata"
},
"black_frame": {
"type": "object",
"required": [
"silence",
"custom_level"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$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",
"description": "The maximum 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",
"default": false
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/blackframe_range"
}
}
},
"title": "Black Frame",
"category": "Video Quality"
},
"cadence": {
"type": "object",
"required": [
"cadence_must_be",
"broken_cadence",
"report_all_cadences",
"poor_patterns"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"cadence_must_be": {
"title": "Cadence Must Be",
"description": "The cadence expected in the stream.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"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)"
},
{
"value": 7,
"name": "2:2:2:4 (frame repeated)"
},
{
"value": 8,
"name": "2:3:3:2 (TFF)"
},
{
"value": 9,
"name": "2:3:3:2 (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)."
}
},
"title": "CadenceTest",
"category": "Video Quality"
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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 separated list, e.g. '888', '888,889'.",
"allOf": [
{
"$ref": "#/definitions/comma_separated_positive_numbers"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pages"
]
}
}
},
"title": "Caption/Subtitle Test",
"category": "Caption Checks"
},
"caption_word_detection": {
"type": "object",
"title": "Caption Word Detection",
"description": "Enable checking for words in captions.",
"required": [
"words"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"words": {
"title": "Words to detect",
"description": "The list of words or phrases to detect.",
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
},
"category": "Caption Checks"
},
"channel_mapping": {
"type": "object",
"title": "Channel Mapping",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/channelmapping_test_config"
}
}
},
"category": "Audio Quality"
},
"channel_position": {
"type": "object",
"title": "Channel Position",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/channel_position_test_config"
}
}
},
"category": "Audio Quality"
},
"clicks_and_pops": {
"type": "object",
"title": "Clicks and Pops",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/clicksandpops_test_config"
}
}
},
"category": "Audio Quality"
},
"clipping": {
"type": "object",
"title": "Clipping",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/clipping_test_config"
}
}
},
"category": "Audio Quality"
},
"color_bars": {
"type": "object",
"title": "Color Bars",
"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.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"standard": {
"title": "Color Bar Standard",
"description": "The color bar standard to test against.",
"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."
},
"details": {
"title": "Provide extra details",
"description": "Provides information on why a frame is not a colorbar.",
"type": "boolean",
"default": false
},
"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",
"description": "The maximum allowed time units.",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/colorbar_range"
}
}
},
"category": "Video Quality"
},
"comb_artifacts": {
"type": "object",
"title": "Combing Artifacts Detection Test",
"description": "Detect if the input video stream has any interlacing or combing artifacts.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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."
}
},
"required": [
"consecutive_frame_count"
],
"category": "Video Quality"
},
"comparative_loudness": {
"type": "object",
"required": [
"audioconfigs"
],
"title": "Comparative Loudness",
"description": "Detect mismatch in program loudness across multiple audio tracks.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Comparative Loudness Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/comparative_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"corrupt_frame": {
"type": "object",
"title": "Corrupt Frame",
"description": "Check for corrupt or unexpected frames.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"sensitivity": {
"title": "Corrupt Frame Detection Sensitivity",
"description": "The Corrupt Frame Detection Sensitivity.",
"$ref": "#/definitions/sensitivity"
}
},
"category": "Video Quality"
},
"dialnorm": {
"type": "object",
"title": "Dialnorm",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/dialnorm_test_config"
}
}
},
"category": "Audio Metadata"
},
"digital_dropouts": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"speckle": {
"title": "Speckle Dropouts",
"type": "boolean",
"description": "Check for speckle dropout artifacts caused by digital tape transfer errors.",
"default": false
},
"speckle_sensitivity": {
"title": "Speckle Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"chroma": {
"title": "Chroma Block Dropouts",
"description": "Check for chroma dropout artifacts.",
"type": "boolean",
"default": false
},
"chroma_sensitivity": {
"title": "Chroma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"luma": {
"title": "Luma Block Dropouts",
"description": "Check for luma dropout artifacts.",
"type": "boolean",
"default": false
},
"luma_sensitivity": {
"title": "Luma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"repeated_tile": {
"title": "Repeated Tile Dropouts",
"description": "Check for repeated tile dropout artifacts.",
"type": "boolean",
"default": false
},
"repeated_tile_sensitivity": {
"title": "Repeated Tile Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"speckle": {
"const": false
}
}
}
},
"then": {
"required": [
"speckle_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"chroma": {
"const": false
}
}
}
},
"then": {
"required": [
"chroma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"luma": {
"const": false
}
}
}
},
"then": {
"required": [
"luma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"repeated_tile": {
"const": false
}
}
}
},
"then": {
"required": [
"repeated_tile_sensitivity"
]
}
}
],
"title": "Digital Dropouts",
"category": "Video Quality"
},
"dolbye_presence": {
"type": "object",
"title": "Dolby E Presence",
"description": "Test for the presence of Dolby E.",
"additionalProperties": false,
"required": [
"treat_warnings_as",
"must_be_present"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"must_be_present": {
"title": "Must be Present",
"description": "Check that Dolby E is present or not present.",
"type": "boolean",
"default": true
}
},
"category": "File Checks"
},
"dolby_vision_metadata": {
"type": "object",
"title": "Dolby Vision Metadata",
"description": "Dolby Vision metadata validation version 2.0.5, 4.0.2 or 5.1.0.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Video Quality"
},
"dual_mono": {
"type": "object",
"title": "Dual Mono",
"description": "Compares 2 audio streams and reports back if dual mono sections are detected between them.",
"additionalProperties": false,
"properties": {
"audioconfigs": {
"type": "array",
"title": "DualMono Test Configuration",
"description": "The audio configurations to test.",
"items": {
"$ref": "#/definitions/dualmono_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Audio Quality"
},
"field_order": {
"type": "object",
"required": [
"encoded_flag"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Will play correctly with this flag"
}
}
},
"then": {
"disabled": [
"field_order_must_be"
]
}
}
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Field order must be"
}
}
},
"then": {
"enabled": [
"field_order_must_be"
],
"required": [
"field_order_must_be"
]
}
}
}
],
"properties": {
"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.",
"default": false
},
"baseband_mode": {
"type": "integer",
"title": "Baseband Mode",
"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",
"description": "The expected field order of the video.",
"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
}
},
"title": "Field Order",
"category": "Video Quality"
},
"file_checks": {
"type": "object",
"additionalProperties": false,
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"container_duration_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"description": "The maximum duration allowed.",
"$ref": "#/definitions/timecode"
},
"minimum": {
"title": "Minimum",
"description": "The minimum duration allowed.",
"$ref": "#/definitions/timecode"
}
},
"allOf": [
{
"if": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_ebpmarker_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "EBP Metadata Checks",
"description": "Whether to enable EBP Metadata checks.",
"type": "boolean",
"default": false
},
"mode": {
"title": "Mode",
"description": "The mode to test.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Explicit"
},
{
"value": 1,
"name": "Implicit"
}
],
"default": 0
},
"distance": {
"type": "object",
"title": "EBP Marker Distance",
"description": "EBP Marker Distance.",
"required": [
"minimum",
"maximum"
],
"properties": {
"minimum": {
"title": "Minimum",
"description": "The minimum distance allowed.",
"type": "integer",
"suffix": "seconds",
"minimum": 0,
"default": 1
},
"maximum": {
"title": "Maximum",
"description": "The maximum distance allowed.",
"type": "integer",
"suffix": "seconds",
"minimum": 0,
"default": 10
}
}
}
},
"allOf": [
{
"if": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"mode",
"distance"
]
}
}
]
},
"container_filesize_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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)",
"description": "The maximum (bytes) allowed.",
"type": "number",
"default": 0
},
"minimum": {
"title": "Minimum (bytes)",
"description": "The minimum (bytes) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_format_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"description": "Which formats to allow.",
"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"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
]
},
"container_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": "The allowed bit rates as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"comparestreamlengths_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Compare Stream Lengths",
"description": "Check whether the audio track is present throughout the duration of the video.",
"type": "boolean",
"default": false
},
"tolerance": {
"title": "Tolerance",
"description": "The tolerance allowed.",
"type": "number",
"default": 2,
"suffix": "seconds",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"tolerance"
]
}
}
]
},
"moov_atom": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container Start Timecode",
"description": "Check the Container Start Timecode.",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"container_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container End Timecode",
"description": "Check the Container End Timecode.",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"container_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container Drop Frame",
"description": "Check that the container's start timecode is either drop-frame or non-drop as specified.",
"type": "boolean",
"default": false
},
"drop_frame": {
"$ref": "#/definitions/drop_frame"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"drop_frame"
]
}
},
"container_essence_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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)",
"description": "The tolerance (seconds/frames) allowed.",
"type": "number",
"default": 0
},
"units": {
"title": "Tolerance Units",
"description": "Tolerance Units.",
"$ref": "#/definitions/time_units"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"tolerance",
"units"
]
}
}
]
},
"container_numberoftracks_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Number of Tracks",
"type": "boolean",
"description": "Check the number of tracks in the file.",
"default": false
},
"video_tracks": {
"title": "Video Tracks",
"description": "Check the number of Video tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"audio_tracks": {
"title": "Audio Tracks",
"description": "Check the number of Audio tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"subtitle_tracks": {
"title": "Subtitle Tracks",
"description": "Check the number of Subtitle tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"timecode_tracks": {
"title": "TimeCode Tracks",
"description": "Check the number of TimeCode tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"video_tracks",
"audio_tracks",
"subtitle_tracks",
"timecode_tracks"
]
}
},
"video_cleanaperture_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Clean Aperture",
"description": "Check Clean Aperture is equal to Production Aperture.",
"type": "boolean",
"default": false
}
}
},
"video_goplength_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"length"
]
}
}
]
},
"video_starttimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence Start Timecode",
"description": "Check the Essence Start Timecode.",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"video_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence End Timecode",
"description": "Check the Essence End Timecode.",
"type": "boolean",
"default": false
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"video_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence Drop Frame",
"description": "Check that the essence's start timecode is either drop-frame or non-drop as specified.",
"type": "boolean",
"default": false
},
"drop_frame": {
"$ref": "#/definitions/drop_frame"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"drop_frame"
]
}
},
"video_advancedgop_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"description": "The expected 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",
"description": "The first GOP options allowed.",
"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"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"order",
"report",
"first_gop",
"other_gop",
"last_2gop"
]
}
},
{
"if": {
"not": {
"properties": {
"first_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"first_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"other_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"other_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"last_2gop": {
"const": false
}
}
}
},
"then": {
"required": [
"last_2gop_options"
]
}
}
]
},
"transportstream_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Transport Stream Bit Rate",
"description": "Check stream bitrate using PCRs which accounts for various stuffing methods.",
"type": "boolean",
"default": false
},
"check_instantaneous": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Instantaneous Bitrate",
"description": "Enable the Instantaneous Bitrate test.",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum instantaneous bit-rate threshold.",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
},
"maximum": {
"title": "Maximum",
"description": "The maximum instantaneous bit-rate threshold.",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
},
"check_average": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Average Bitrate",
"description": "Enable the Average Bitrate test.",
"type": "boolean",
"default": false
},
"average": {
"title": "Average",
"description": "The average container bit rate (over the entire stream, from first to last PCR).",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"default": "1000000",
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"average"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"anyOf": [
{
"required": [
"check_instantaneous"
]
},
{
"required": [
"check_average"
]
}
]
}
}
]
}
},
"title": "File Checks",
"category": "File Checks"
},
"freeze_frame": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"ignore_black_frames": {
"title": "Ignore Black Frames",
"description": "Whether to ignore black frames.",
"type": "boolean",
"default": false
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$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 (in frames/seconds) allowed.",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"description": "The maximum 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",
"default": false
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/freezeframe_range"
}
}
},
"required": [
"silence",
"ignore_black_frames"
],
"title": "Freeze Frame",
"category": "Video Quality"
},
"hdr_area": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"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",
"description": "The luminance units to use.",
"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."
}
},
"required": [
"luminance",
"area_threshold",
"continues_for"
],
"title": "HDR Area",
"category": "Video Quality"
},
"hdr_change_detection": {
"type": "object",
"title": "HDR Change Detection",
"description": "Check each frame for changes in the HDR metadata encoded as SEI messages in the HEVC bit-stream.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"hdr_limit": {
"type": "object",
"title": "HDR Limit",
"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.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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": "The 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": "The 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": "The luminance threshold."
},
"luminance_units": {
"title": "Luminance Units",
"description": "The luminance units to use.",
"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."
}
},
"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"
],
"category": "Video Quality"
},
"hdr_measurement": {
"type": "object",
"title": "HDR Measurement",
"description": "Check each decoded frame in its native bit depth to calculate the MaxCLL and MaxFALL.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"imf_conformance": {
"type": "object",
"required": [
"treat_warnings_as",
"check_package_integrity"
],
"title": "IMF Conformance",
"description": "Check for IMF conformance.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_package_integrity": {
"description": "Perform basic consistency checking of IMF assets.",
"title": "Check Package Integrity",
"type": "boolean",
"default": true
},
"checksum_calculations": {
"description": "Check package list asset hashes.",
"title": "Perform Checksum Calculations",
"type": "boolean",
"default": false
}
},
"if": {
"not": {
"properties": {
"check_package_integrity": {
"const": false
}
}
},
"then": {
"required": [
"checksum_calculations"
]
}
},
"category": "Distribution and Broadcast"
},
"integrated_loudness": {
"type": "object",
"title": "Integrated Loudness (inc Dialog Gating)",
"description": "Measure Integrated loudness over the duration of the file.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Integrated Loudness Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/integrated_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"itunes_compatibility": {
"type": "object",
"title": "iTunes Compatibility",
"description": "Test several aspects of MOV file atom structure which are relevant for iTunes submission.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Distribution and Broadcast"
},
"letterboxing": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"letterboxing_pillarboxing": {
"const": false
}
}
}
},
"then": {
"required": [
"aspect_ratio",
"tolerance"
],
"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"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
}
],
"properties": {
"active_picture_ratio_value": {
"type": "integer",
"title": "Active picture aspect ratio must be :",
"description": "Select from a number of common aspect ratios.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"name": "4:3",
"value": 0
},
{
"name": "14:9",
"value": 1
},
{
"name": "16:9",
"value": 2
},
{
"name": "1.85:1",
"value": 3
},
{
"name": "2.35:1",
"value": 4
},
{
"name": "2.39:1",
"value": 5
},
{
"name": "2.40:1",
"value": 6
}
]
},
"aspect_ratio": {
"type": "integer",
"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.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Defined aspect ratio",
"value": 0
},
{
"name": "Custom aspect ratio",
"value": 1
},
{
"name": "Defined number of lines",
"value": 2
}
]
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"custom_aspect_ratio_denominator": {
"type": "integer",
"title": "Custom aspect ratio denominator",
"description": "Specify the required custom aspect ratio.",
"default": 1,
"minimum": 1
},
"custom_aspect_ratio_numerator": {
"type": "number",
"title": "Custom aspect ratio numerator",
"description": "Specify the required custom aspect ratio.",
"default": 1,
"minimum": 0
},
"custom_level": {
"type": "boolean",
"title": "Custom Black Level",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"letterboxing_pillarboxing": {
"type": "boolean",
"title": "Detect and report letterboxing/pillarboxing violations",
"description": "This test is used to detect if video content has the correct letterboxing and/or pillarboxing.",
"default": false
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$ref": "#/definitions/level_14_bit"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"lines_required_left_right": {
"type": "integer",
"title": "Set the number of required black lines at the left/right",
"description": "This allows the number of required black lines at the left/right to be set to any value.",
"default": 0,
"minimum": 0
},
"lines_required_top_bottom": {
"type": "integer",
"title": "Set the number of required black lines at the top/bottom",
"description": "This allows the number of required black lines at the top/bottom to be set to any value.",
"default": 0,
"minimum": 0
},
"report_blanking": {
"type": "boolean",
"title": "Detect and report all changes in blanking",
"description": "Will raise info alerts detailing the number of black lines bordering the active picture content.",
"default": false
},
"tolerance": {
"type": "integer",
"title": "Tolerance",
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "LetterboxingTest",
"category": "Video Quality"
},
"luma_chroma_levels": {
"type": "object",
"title": "Luma/Chroma Levels",
"description": "Check the Y, U and V levels of the video are within the given limits.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
],
"category": "Video Quality"
},
"loudness_range": {
"type": "object",
"title": "Loudness Range (LUFS)",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/loudness_range_test_config"
}
}
},
"category": "Audio Quality"
},
"macro_block": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "MacroBlockTest",
"description": "Check for macroblocking artifacts where the macroblock edge is clearly visible.",
"properties": {
"quality_score": {
"title": "Quality Score",
"type": "number",
"default": 80,
"minimum": 0,
"maximum": 100,
"description": "Minimum desired quality score, varies from 0 (poor/blocky) 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",
"description": "The duration units to use.",
"$ref": "#/definitions/time_units"
}
},
"required": [
"quality_score",
"averaged_over",
"duration_units"
],
"category": "Video Quality"
},
"media_offline": {
"type": "object",
"title": "Media Offline",
"description": "Test for the presence of a media offline slate.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"minimum_level": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Minimum Level Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/minlevel_test_config"
}
}
},
"title": "Minimum Level",
"category": "Audio Quality"
},
"momentary_loudness": {
"type": "object",
"title": "Momentary Loudness",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/momentary_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"deep_mxf": {
"type": "object",
"properties": {
"active_format_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"allowed_formats": {
"type": "string",
"title": "AFD Information Byte Values",
"description": "A comma separated list can be provided for multiple values e.g. 4,36,68,76."
},
"enable": {
"type": "boolean",
"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.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"allowed_formats"
]
}
}
]
},
"as11_uk_dpp_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AS-11 UK DPP Metadata",
"description": "Test MXF structural and descriptive metadata against selected shim.",
"default": false
},
"shim": {
"type": "integer",
"title": "AS-11 UK DPP Shim",
"description": "AS-11 UK DPP Shim.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Auto",
"value": 0
},
{
"name": "SD",
"value": 1
},
{
"name": "HD",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"shim"
]
}
}
]
},
"as11_xprofile": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"embedded_xml_documents": {
"type": "integer",
"title": "Embedded XML Documents",
"description": "Embedded XML Documents.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "XML DM for Programmes",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"title": "AMWA AS-11 Rule Blocks",
"default": false,
"description": "Compliance checking to AMWA AS-11 X profile specifications."
},
"extra_audio_layout_modes": {
"type": "integer",
"title": "Extra Audio Layout Modes",
"description": "Extra Audio Layout Modes.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Mode 1",
"value": 1
},
{
"name": "Modes 1 and 2",
"value": 2
}
]
},
"file_format_specification_identification_label": {
"type": "integer",
"title": "Specification Identification",
"description": "Specification Identification.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Blocks_FF_1",
"value": 1
},
{
"name": "Blocks_FF_2",
"value": 2
},
{
"name": "Blocks_FF_5_WIP",
"value": 3
},
{
"name": "Blocks_FF_6_WIP",
"value": 4
},
{
"name": "Blocks_FF_11_WIP",
"value": 5
}
]
},
"picture_essence_constraints": {
"type": "integer",
"title": "Picture Essence Constraints",
"description": "Picture Essence Constraints.",
"default": 0,
"enum": [
0,
1,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "X1 (AVC)",
"value": 1
},
{
"name": "X9 (AVC)",
"value": 5
}
]
},
"rules": {
"type": "array",
"title": "AMWA AS-11 Rules",
"description": "AMWA AS-11 Rules.",
"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": [
{
"name": "Strict Frame Wrapping",
"value": "STRICT_FRAME_WRAPPING"
},
{
"name": "One-to-one Track Mapping",
"value": "ONE_TO_ONE_TRACK_MAPPING"
},
{
"name": "Segment The Essence Container",
"value": "SEGMENT_THE_ESSENCE_CONTAINER"
},
{
"name": "Index Each Essence Container Segment",
"value": "INDEX_EACH_ESSENCE_CONTAINER_SEGMENT"
},
{
"name": "Generic Container",
"value": "GENERIC_CONTAINER"
},
{
"name": "MXF Indexing and Partitioning (VBE or CBE)",
"value": "MXF_INDEXING_AND_PARTITIONING"
},
{
"name": "MXF Indexing and Partitioning for VBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE"
},
{
"name": "MXF Indexing and Partitioning for CBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE"
},
{
"name": "One Picture Track",
"value": "ONE_PICTURE_TRACK"
},
{
"name": "AVC byte Stream Format Picture Essence",
"value": "AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE"
},
{
"name": "ST831-3 mapping",
"value": "ST831_3_MAPPING"
},
{
"name": "One Soundfield Group per Sound Track",
"value": "ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK"
},
{
"name": "Uncompressed 24-bit PCM Audio at 48kHz",
"value": "UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ"
},
{
"name": "Constrained ST382 Wave PCM Mapping",
"value": "CONSTRAINED_ST382_WAVE_PCM_MAPPING"
},
{
"name": "Audio Layout",
"value": "AUDIO_LAYOUT"
},
{
"name": "Audio Layout [X8]",
"value": "AUDIO_LAYOUT_X8"
},
{
"name": "AS-11 Segmentation DM",
"value": "AS11_SEGMENTATION_DM"
},
{
"name": "Specification Identification",
"value": "SPECIFICATION_IDENTIFICATION"
},
{
"name": "Specification Identification [X7]",
"value": "SPECIFICATION_IDENTIFICATION_X7"
},
{
"name": "Specification Identification [X8]",
"value": "SPECIFICATION_IDENTIFICATION_X8"
},
{
"name": "Specification Identification [X9]",
"value": "SPECIFICATION_IDENTIFICATION_X9"
},
{
"name": "Timecode Track Presence",
"value": "TIMECODE_TRACK_PRESENCE"
},
{
"name": "Constrained Timecode Track in Material Package",
"value": "CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE"
},
{
"name": "Timecode Mode Signalling",
"value": "TIMECODE_MODE_SIGNALLING"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"rules",
"embedded_xml_documents",
"extra_audio_layout_modes",
"file_format_specification_identification_label",
"picture_essence_constraints"
]
}
}
]
},
"aspect_ratio": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Aspect Ratio",
"description": "Ensure that the given aspect ratio is present in the picture essence descriptor.",
"default": false
},
"ratio": {
"title": "Ratio",
"description": "The expected aspect ratio.",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"audio_locked": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"value": {
"type": "boolean",
"title": "Locked / Unlocked",
"description": "Locked / Unlocked.",
"default": true,
"titleMap": [
{
"name": "Locked",
"value": true
},
{
"name": "Unlocked",
"value": false
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"audio_ref_level": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Ref Level",
"description": "Check the value of the Audio Ref Level item in the Generic Sound Essence Descriptor(s).",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"audio_sampling_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Sampling Rate",
"description": "Check the value of the Audio Sampling Rate item in the Generic Sound Essence Descriptor(s).",
"default": false
},
"options": {
"type": "number",
"title": "Options",
"description": "The audio sampling rate in Hz, e.g. 48000.",
"suffix": "Hz"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"avc_average_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Average Bit Rate",
"description": "Check the value of the Average Bit Rate item within the AVC Video SubDescriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Max Bit Rate",
"description": "Check the value of the Maximum Bit Rate item within the AVC Video SubDescriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Coded Content Kind",
"description": "Check the value of the Coded Content Kind item within the AVC Video SubDescriptor.",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"description": "The coded kind expected.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive Frame",
"value": 1
},
{
"name": "Interlaced Field",
"value": 2
},
{
"name": "Interlaced Frame",
"value": 3
},
{
"name": "Interlaced Field and Frame",
"value": 4
},
{
"name": "Any",
"value": 5
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
}
]
},
"avc_decoding_delay": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"delay": {
"type": "integer",
"title": "Decoding Delay",
"description": "The decoding delay expected.",
"default": 0
},
"enable": {
"type": "boolean",
"title": "AVC Decoding Delay",
"description": "Check the value of the Decoding Delay item within the AVC Video SubDescriptor.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"delay"
]
}
}
]
},
"avc_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Identical GOP Indicator",
"description": "Check the value of the AVC Identical GOP Indicator item within the AVC Video SubDescriptor.",
"default": false
},
"value": {
"type": "boolean",
"title": "Flag Value",
"description": "Flag Value.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"avc_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum Count",
"description": "Maximum Count.",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum GOP",
"description": "Maximum GOP.",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS and PPS",
"description": "Check various profile and level flags within the AVC Video SubDescriptor.",
"default": false
},
"level": {
"type": "integer",
"title": "Level",
"description": "Level.",
"default": 0
},
"ppsflag": {
"type": "integer",
"title": "PPS Flag",
"description": "PPS Flag.",
"default": 0
},
"profile": {
"type": "integer",
"title": "Profile",
"description": "Profile.",
"default": 0
},
"profileconstraint": {
"type": "integer",
"title": "Profile Constraint",
"description": "Profile Constraint.",
"default": 0
},
"spsflag": {
"type": "integer",
"title": "SPS Flag",
"description": "SPS Flag.",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"level",
"ppsflag",
"profile",
"profileconstraint",
"spsflag"
]
}
}
]
},
"average_bytes_per_second": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Average Bytes per Second",
"description": "Check the value of the Average Bytes Per Second item in the Wave Audio Essence Descriptor(s).",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "bytes per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"basic_avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS/PPS",
"description": "AVC SPS/PPS.",
"default": false
}
}
},
"basic_operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MXF Operational Pattern",
"description": "MXF Operational Pattern.",
"default": false
},
"partition_closed": {
"type": "boolean",
"title": "Partition must be Closed",
"description": "Partition must be Closed.",
"default": false
},
"partition_complete": {
"type": "boolean",
"title": "Partition must be Complete",
"description": "Partition must be Complete.",
"default": false
},
"pattern": {
"type": "integer",
"title": "Operational Pattern",
"description": "Operational Pattern.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "OP-1a",
"value": 0
},
{
"name": "OP Atom",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pattern",
"partition_closed",
"partition_complete"
]
}
}
]
},
"body_partition_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Count",
"description": "Enforce a minimum or maximum number of body partitions in the file.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_duration": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Duration",
"description": "Scan each body partition to ensure that its duration (measured in edit units) is within a given range.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_length": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Length",
"description": "Scan each body partition to ensure that its length (measured in bytes) is within a given range.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Status",
"description": "Ensure that the body partition is restricted to a given combination of open/closed and complete/incomplete.",
"default": false
},
"test": {
"title": "Partition Status Test",
"description": "Partition Status Test.",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"channel_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"channels": {
"type": "integer",
"title": "Number Of Channels",
"description": "The number of channels expected.",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"channels"
]
}
}
]
},
"color_range": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"range": {
"type": "integer",
"title": "Color Range",
"description": "The color range expected.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"range"
]
}
}
]
},
"colorsiting": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"colorsiting": {
"type": "integer",
"title": "Color Siting",
"description": "The color siting expected.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
255
],
"titleMap": [
{
"name": "CoSiting",
"value": 0
},
{
"name": "HorizontalMidpoint",
"value": 1
},
{
"name": "ThreeTap",
"value": 2
},
{
"name": "Quincunx",
"value": 3
},
{
"name": "Rec601",
"value": 4
},
{
"name": "LineAlternating",
"value": 5
},
{
"name": "VerticalMidpoint",
"value": 6
},
{
"name": "Unknown",
"value": 255
}
]
},
"enable": {
"type": "boolean",
"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.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"colorsiting"
]
}
}
]
},
"component_depth": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"depth": {
"type": "integer",
"title": "Component Depth",
"description": "The component depth expected.",
"default": 0,
"suffix": "bits per sample",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Component Depth",
"description": "Check the Component Depth item in the CDCI Picture Essence Descriptor.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"depth"
]
}
}
]
},
"dialnorm": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "DialNorm",
"description": "Check the value of the Dial Norm item in the Generic Sound Essence Descriptor(s).",
"default": false
},
"test": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "integer",
"title": "Maximum",
"description": "The maximum value expected.",
"default": 31,
"minimum": 1,
"maximum": 31
},
"min": {
"type": "integer",
"title": "Minimum",
"description": "The minimum value expected.",
"default": 1,
"minimum": 1,
"maximum": 31
}
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"display_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Display Frame Size",
"description": "Restrict the values of 'Display Width' and 'Display Height' in the picture essence descriptor.",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'.",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"edit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Edit Rate",
"description": "Ensure that the given edit rate is present in the picture essence descriptor.",
"default": false
},
"ratio": {
"title": "Ratio",
"description": "The expected edit rate ratio.",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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."
},
"enable": {
"type": "boolean",
"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.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
],
"titleMap": [
{
"name": "GC SMPTE 381M MPEG Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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."
},
"enable": {
"type": "boolean",
"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.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"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": [
{
"name": "GC AVC Byte Stream VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01"
},
{
"name": "GC MPEG-ES VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_location": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Essence Location",
"description": "Restrict the places in the file where essence may appear.",
"default": false
},
"test": {
"title": "Location Test",
"description": "Location Test.",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"essence_wrapping": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Wrapping Type",
"description": "Wrapping Type.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "Clip Wrapped",
"value": 0
},
{
"name": "Frame Wrapped",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"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.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"field_dominance": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Field Dominance",
"description": "Examine the FieldDominance item in the Generic Picture Essence Descriptor.",
"default": false
},
"firstfield": {
"type": "integer",
"title": "First Field",
"description": "First Field.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Field 1 First",
"value": 0
},
{
"name": "Field 2 First",
"value": 1
},
{
"name": "No Field Dominance Flag ",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"firstfield"
]
}
}
]
},
"footer_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Footer Partition Status",
"description": "Ensure that the footer partition is restricted to a given combination of open/closed and complete/incomplete.",
"default": false
},
"test": {
"title": "Partition Status Test",
"description": "Partition Status Test.",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"header_fill": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes Of KLV Fill after Header Metadata",
"title": "Header Fill Bytes",
"description": "Header Fill Bytes.",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Fill Test",
"description": "Check for a KLV fill item of at least the specified length, following the header metadata.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"title": "Header Metadata Bytes",
"description": "Header Metadata Bytes.",
"suffix": "bytes Of Header Metadata including KLV Fill",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Metadata Size",
"description": "Check the value of HeaderByteCount in the header partition.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"test": {
"title": "Partition Status Test",
"description": "Partition Status Test.",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"index_table": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"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"
},
"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"
},
"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": {
"type": "boolean",
"title": "Edit Unit Bytecount Is Constant",
"description": "Ensure that only a single value is ever used.",
"default": false
},
"enable": {
"type": "boolean",
"title": "Index Table Test",
"description": "Check each index table segment in isolation.",
"default": false
},
"forward_index_direction": {
"title": "Forward Index Direction",
"description": "Forward Index Direction.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"index_entry_array": {
"title": "Index Entry Array",
"description": "Index Entry Array.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Absent",
"value": 1
},
{
"name": "Present",
"value": 2
}
]
},
"single_essence_location": {
"title": "Single Essence Location",
"description": "Single Essence Location.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"single_index_location": {
"title": "Single Index Location",
"description": "Flags are described in Amendment 2:2012 to SMPTE ST 377M.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"slicecount": {
"type": "integer",
"title": "Slice Count",
"description": "Number of slices in each index entry, minus one."
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Index Table Location",
"description": "Restrict the places in the file where index table segments may appear.",
"default": false
},
"test": {
"title": "Location Test",
"description": "Location Test.",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"kagsize": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "KAG Size Test",
"description": "Ensure that the file offset of every partition pack matches the stated alignment.",
"default": false
},
"size": {
"type": "integer",
"title": "KAG Size",
"description": "KAG Size.",
"default": 0,
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"size"
]
}
}
]
},
"material_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Material Package Timecode Test",
"description": "Ensures that there is only one timecode track in the Material Package.",
"default": false
},
"test": {
"title": "Timecode Track Test",
"description": "Timecode Track Test.",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Bit Rate",
"description": "Check the value of the BitRate item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax_bits"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"description": "Coded Kind.",
"default": 0,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive",
"value": 1
},
{
"name": "Interlaced",
"value": 2
},
{
"name": "Mixed",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
},
"mpeg_constant_bpicture_flag": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Constant B Picture Flag",
"description": "Check the value of the ConstantBframes item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Extended Bool Test",
"description": "Extended Bool Test.",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Identical GOP Indicator",
"description": "Check the value of the IdenticalGOP item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Extended Bool Test",
"description": "Extended Bool Test.",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max B Picture Count",
"description": "Check the value of the BPictureCount item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "B pictures",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max GOP Size",
"description": "Check the value of the MaxGOP item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "frames",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Operational Pattern",
"default": false,
"description": "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."
},
"essence_containers": {
"default": 0,
"title": "Essence Containers",
"description": "Essence Containers.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-track",
"value": 1
},
{
"name": "Uni-track",
"value": 2
}
]
},
"essence_reference": {
"default": 0,
"title": "Essence Reference",
"description": "Essence Reference.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "External",
"value": 1
},
{
"name": "Internal",
"value": 2
}
]
},
"essence_streaming": {
"default": 0,
"title": "Essence Streaming",
"description": "Essence Streaming.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Non-Streamable",
"value": 1
},
{
"name": "Streamable",
"value": 2
}
]
},
"essence_tracks": {
"default": 0,
"title": "Essence Tracks",
"description": "Essence Tracks.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-essence",
"value": 1
},
{
"name": "Single-essence",
"value": 2
}
]
},
"generalized": {
"type": "array",
"title": "Generalized",
"description": "Generalized.",
"items": {
"type": "string",
"enum": [
"Op1a",
"Op1b",
"Op1c",
"Op2a",
"Op2b",
"Op2c",
"Op3a",
"Op3b",
"Op3c"
]
}
},
"material_package": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-source",
"value": 1
},
{
"name": "Single-source",
"value": 2
}
]
},
"specialized": {
"type": "boolean",
"title": "OP-Atom",
"description": "OP-Atom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"essence_reference",
"essence_streaming",
"essence_containers",
"specialized",
"material_package",
"essence_tracks"
]
}
}
]
},
"padding_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Padding Bits",
"description": "Padding Bits.",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"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.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"picture_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"description": "Codings.",
"items": {
"type": "integer",
"default": 0,
"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": [
{
"name": "AVCI-50-1080-60-I",
"value": 0
},
{
"name": "AVCI-50-1080-50-I",
"value": 1
},
{
"name": "AVCI-50-1080-30-P",
"value": 2
},
{
"name": "AVCI-50-1080-25-P",
"value": 3
},
{
"name": "AVCI-50-720-60-P",
"value": 4
},
{
"name": "AVCI-50-720-50-P",
"value": 5
},
{
"name": "AVCI-100-1080-60-I",
"value": 6
},
{
"name": "AVCI-100-1080-50-I",
"value": 7
},
{
"name": "AVCI-100-1080-30-P",
"value": 8
},
{
"name": "AVCI-100-1080-25-P",
"value": 9
},
{
"name": "AVCI-100-720-60-P",
"value": 10
},
{
"name": "AVCI-100-720-50-P",
"value": 11
},
{
"name": "AVC-HIGH-10-INTRA-UNCS",
"value": 12
},
{
"name": "AVC-HIGH-422-INTRA-UNCS",
"value": 13
},
{
"name": "MPEG2-MP-HL-LONGGOP",
"value": 14
},
{
"name": "MPEG2-422P-HL-LONGGOP",
"value": 15
},
{
"name": "MPEG2-MP-H14-LONGGOP",
"value": 16
},
{
"name": "D10-50-625-50",
"value": 17
},
{
"name": "D10-50-525-60",
"value": 18
},
{
"name": "D10-40-625-50",
"value": 19
},
{
"name": "D10-40-525-60",
"value": 20
},
{
"name": "D10-30-625-50",
"value": 21
},
{
"name": "D10-30-525-60",
"value": 22
}
]
}
},
"enable": {
"type": "boolean",
"title": "Picture Essence Coding",
"description": "Ensure that the picture essence coding label is one of the given value(s).",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"picture_offsets": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"displayftwo": {
"type": "integer",
"title": "Display F2",
"description": "Display F2.",
"default": 0,
"minimum": 0
},
"displayx": {
"type": "integer",
"title": "Display X",
"description": "Display X.",
"default": 0,
"minimum": 0
},
"displayy": {
"type": "integer",
"title": "Display Y",
"description": "Display Y.",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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.",
"default": false
},
"imageend": {
"type": "integer",
"title": "Image End",
"description": "Image End.",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"imagestart": {
"type": "integer",
"title": "Image Start",
"description": "Image Start.",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"sampledx": {
"type": "integer",
"title": "Sampled X",
"description": "Sampled X.",
"default": 0,
"minimum": 0
},
"sampledy": {
"type": "integer",
"title": "Sampled Y",
"description": "Sampled Y.",
"default": 0,
"minimum": 0
},
"storedftwo": {
"type": "integer",
"title": "Stored F2",
"description": "Stored F2.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"storedftwo",
"displayftwo",
"sampledx",
"sampledy",
"displayx",
"displayy",
"imagestart",
"imageend"
]
}
}
]
},
"quantization_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Number Of Bits",
"description": "Number Of Bits.",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Quantization Bits",
"description": "Check the value of the Quantization Bits item in the Generic Sound Essence Descriptor(s).",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"reference_levels": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"black": {
"type": "integer",
"title": "Black",
"description": "Black.",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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).",
"default": false
},
"white": {
"type": "integer",
"title": "White",
"description": "White.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"black",
"white"
]
}
}
]
},
"rip_presence": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "RIP Presence",
"description": "Ensure a Random Index Pack is present at the end of the file.",
"default": false
}
}
},
"runin": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"max_bytes": {
"type": "integer",
"default": 0,
"title": "Max Bytes",
"description": "Max Bytes.",
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_bytes"
]
}
}
]
},
"sampled_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Sampled Frame Size",
"description": "Restrict the values of 'Sampled Width' and 'Sampled Height' in the picture essence descriptor.",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'.",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"sdti_timecode_continuity": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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).",
"default": false
}
}
},
"signal_standard": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Signal Standard",
"description": "Examine the Signal Standard item in the Generic Picture Essence Descriptor, indicating the source of the video essence.",
"default": false
},
"standard": {
"type": "integer",
"title": "Standard",
"description": "Signal Standard.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"name": "0: No Specific Underlying Standard",
"value": 0
},
{
"name": "1: ITU-R BT.601 and BT.656, SMPTE 125M",
"value": 1
},
{
"name": "2: ITU-R BT.1358 and ITU-R BT.799-3, SMPTE 293M",
"value": 2
},
{
"name": "3: SMPTE 347M (540 Mbps Mappings)",
"value": 3
},
{
"name": "4: SMPTE 274M (1125 Line)",
"value": 4
},
{
"name": "5: SMPTE 296M (750 Line Progressive)",
"value": 5
},
{
"name": "6: SMPTE 349M (1485 Mbps Mappings)",
"value": 6
},
{
"name": "7: SMPTE 428-1 DCDM",
"value": 7
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"standard"
]
}
}
]
},
"sound_element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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."
},
"enable": {
"type": "boolean",
"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.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"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": [
{
"name": "GC SMPTE 382M 8-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x"
},
{
"name": "GC SMPTE 382M 16-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"sound_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"description": "The expected codings.",
"items": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "PCM",
"value": 0
},
{
"name": "Default Uncompressed",
"value": 1
},
{
"name": "Dolby E",
"value": 2
}
]
}
},
"enable": {
"type": "boolean",
"title": "Sound Essence Coding",
"description": "Ensure that the sound essence coding label is one of the given values.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"sound_essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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."
},
"enable": {
"type": "boolean",
"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.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"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": [
{
"name": "GC BWF Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00"
},
{
"name": "GC BWF Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00"
},
{
"name": "GC AES-3 Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00"
},
{
"name": "GC AES-3 Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"source_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Source Package Timecode Test",
"description": "Ensure that there is only one timecode track in the File Source Package.",
"default": false
},
"test": {
"title": "Timecode Track Test",
"description": "Timecode Track Test.",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"stored_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Stored Frame Size",
"description": "Restrict the values of 'Stored Width' and 'Stored Height' in the picture essence descriptor.",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'.",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"subsampling": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Subsampling",
"description": "Check the Horizontal and Vertical Subsampling items in the CDCI Picture Essence Descriptor.",
"default": false
},
"horizontal": {
"type": "integer",
"title": "Horizontal",
"description": "Horizontal.",
"default": 0,
"minimum": 0
},
"vertical": {
"type": "integer",
"title": "Vertical",
"description": "Vertical.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"horizontal",
"vertical"
]
}
}
]
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"version": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Version Test",
"description": "Check for a specific MXF version. All versions within a file (inside each Preface and Partition Pack) are tested.",
"default": false
},
"mxf_version": {
"type": "integer",
"title": "MXF Version",
"description": "The MXF Version to use.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "SMPTE 377 2004",
"value": 0
},
{
"name": "SMPTE 377 2011",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mxf_version"
]
}
}
]
},
"video_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Descriptor Type",
"description": "Descriptor Type.",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "MPEG",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Descriptor",
"description": "Ensure that the Picture Essence Descriptor is an MPEG-2 Video Descriptor as specified in SMPTE 381M.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"video_line_map": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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.",
"default": false
},
"linemaps": {
"type": "string",
"title": "Line Maps",
"description": "A list of comma-separated values, e.g. '21, 584'."
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"linemaps"
]
}
}
]
},
"video_subdescriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Subdescriptor Type",
"description": "Subdescriptor Type.",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "AVC",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Subdescriptor",
"description": "Check for the presence of an AVC SubDescriptor within the Picture Essence Descriptor.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
}
},
"title": "Deep MXF Tests",
"category": "Deep MXF Tests"
},
"netflix_photon": {
"type": "object",
"title": "Netflix Photon",
"description": "Validate IMF assets using Netflix Photon.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Distribution and Broadcast"
},
"nielsen_watermark": {
"type": "object",
"title": "Nielsen Watermark",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/nielsen_test_config"
}
}
},
"category": "Distribution and Broadcast"
},
"peak_level": {
"type": "object",
"title": "Peak Level",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/peak_test_config"
}
}
},
"category": "Audio Quality"
},
"phase_coherence": {
"type": "object",
"title": "Phase Coherence",
"description": "Measure how similar the left and right channels are.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Phase Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/phase_test_config"
}
}
},
"category": "Audio Quality"
},
"ppm_level": {
"type": "object",
"properties": {
"audioconfigs": {
"type": "array",
"title": "PPM Level Test Configuration",
"description": "The peak level according to the \"BBC Peak Program Meter\" (IEC 60268-10 Type IIa) standard. The meter can operate in MS (sum/difference) mode (modes M3 and M6), or AB mode (individual channels). Note that in MS mode, only the sum is measured.",
"items": {
"$ref": "#/definitions/ppm_level_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "PPM Level",
"category": "Audio Quality"
},
"pse_harding": {
"type": "object",
"title": "PSE Harding Test",
"description": "PSE (photosensitive epilepsy) test using Harding.",
"required": [
"standard"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"standard": {
"title": "Standard",
"description": "The standard to test against.",
"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
}
},
"category": "Video Quality"
},
"pse": {
"type": "object",
"title": "PSE Test (Proprietary)",
"description": "PSE (photosensitive epilepsy) test using 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.",
"default": false
},
"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\nStrict: 3.5 flashes at 20% of the picture."
},
"check_for_extended": {
"title": "Check For Extended",
"type": "boolean",
"description": "Check For Extended flashing.",
"default": true
},
"check_for_red": {
"title": "Check For Red",
"type": "boolean",
"description": "Check for saturated red flashes.",
"default": true
},
"check_for_patterns": {
"title": "Check For Patterns",
"type": "boolean",
"description": "Check for potentially harmful regular patterns.",
"default": true
}
},
"category": "Video Quality"
},
"rgb_gamut": {
"type": "object",
"title": "RGB Gamut",
"description": "Detect if the RGB color values are within the given range.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
],
"category": "Video Quality"
},
"video_segment_detection": {
"type": "object",
"required": [
"custom_level",
"silence",
"duration",
"units",
"percentage"
],
"title": "Video Segment Detection",
"description": "Detect video segments within the content.",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
}
],
"properties": {
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$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",
"description": "The time units to use.",
"$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.",
"default": false
}
},
"category": "Video Quality"
},
"service_count": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_any": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of services of any type",
"description": "Check the number of services of any type in the file. E.g. CC 1 to CC 4 and Service 1 to Service 6.",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of services expected",
"type": "string",
"description": "The specified service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c608": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-608 services",
"description": "Check number of CEA-608 services in the file. E.g. CC 1 to CC 4.",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-608 services expected",
"type": "string",
"description": "The specified CEA-608 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c708": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-708 services",
"description": "Check number of CEA-708 services in the file. E.g. Service 1 to Service 6.",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-708 services expected",
"type": "string",
"description": "The specified CEA-708 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
},
"title": "Service Count Test",
"category": "Service Count"
},
"short_term_loudness": {
"type": "object",
"title": "Short-term Loudness",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/shortterm_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"silence": {
"type": "object",
"title": "Silence",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/silence_test_config"
}
}
},
"category": "Audio Quality"
},
"single_color_frame": {
"type": "object",
"title": "Single Color Frame",
"description": "Detect sequences where the entire frame is a single color.",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$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."
},
"ignore_black_frames": {
"title": "Ignore black frames",
"type": "boolean",
"default": false,
"description": "Whether to ignore black frames."
},
"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",
"description": "Max Allowed Time Units.",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/singlecolor_range"
}
}
},
"category": "Video Quality"
},
"discrete_subtitle": {
"type": "object",
"title": "Discrete Subtitle Test",
"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",
"description": "The time units to use for subtitle dropout.",
"$ref": "#/definitions/time_units"
},
"check_stl": {
"title": "STL checks",
"description": "Enables STL sidecar checks.",
"type": "boolean",
"default": false
},
"sidecar_stl_present": {
"title": "Check that Sidecar STL is present",
"description": "Checks that the STL sidecar 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",
"description": "The 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"
]
}
}
],
"category": "Caption Checks"
},
"syntax_checks": {
"type": "object",
"title": "Syntax Checks",
"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",
"description": "Which syntax checks to run.",
"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"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
},
"category": "Syntax Checks"
},
"tek_mos": {
"type": "object",
"title": "TekMOS",
"description": "Non-reference based perceptual video quality measurement for natural video content.",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"properties": {
"frame_sampling_type": {
"const": 1
}
}
},
"then": {
"required": [
"frames_to_be_sampled"
]
}
}
],
"properties": {
"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",
"description": "For A Minimum Duration Of.",
"$ref": "#/definitions/int32",
"minimum": 1,
"default": 10,
"suffix": "Seconds"
},
"frame_sampling_type": {
"title": "Frame Sampling",
"description": "How often to measure/score frames.",
"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",
"description": "Frames to be sampled per second.",
"$ref": "#/definitions/int32",
"minimum": 0,
"default": 5
},
"deinterlace": {
"title": "Apply De-interlacing",
"description": "Whether the image is expected to be interlaced.",
"type": "boolean",
"default": false
},
"region_of_interest": {
"title": "Region-of-interest",
"description": "The region of interest of the frame.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Automatic"
},
{
"value": 1,
"name": "Center Of Frame"
}
],
"default": 0
}
},
"required": [
"frame_sampling_type",
"clip_threshold_score",
"clip_threshold_percentage",
"duration_threshold_score",
"duration_threshold_score_percentage",
"duration_averaged_over",
"deinterlace",
"region_of_interest"
],
"category": "Video Quality"
},
"tone": {
"type": "object",
"title": "ToneTest",
"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",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/tone_test_config"
}
}
},
"category": "Audio Quality"
},
"upconversion_detection": {
"type": "object",
"title": "Upconversion Detection Test",
"description": "Detect if the input video stream has been upconverted from a lower resolution.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"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",
"description": "What the Active Format Description (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",
"description": "Report Dynamic AFD Changes.",
"type": "boolean",
"default": false
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "Whether the alpha channel must be present or not.",
"type": "boolean",
"enum": [
false,
true
],
"default": false,
"titleMap": [
{
"value": false,
"name": "not present"
},
{
"value": true,
"name": "present"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"video_buffersize_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Buffer Size",
"description": "Video Buffer Size.",
"type": "boolean",
"default": false
},
"mode": {
"title": "Test mode",
"description": "Test mode.",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"type": "string",
"description": "The allowed buffer sizes as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "KiB"
},
"minimum": {
"title": "Minimum",
"description": "The minimum value allowed.",
"type": "number",
"minimum": 0,
"suffix": "KiB"
},
"maximum": {
"title": "Maximum",
"description": "The maximum value allowed.",
"type": "number",
"minimum": 0,
"suffix": "KiB"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The video bitrate mode to allow.",
"type": "string",
"enum": [
"cbr",
"vbr"
],
"titleMap": [
{
"value": "cbr",
"name": "CBR"
},
{
"value": "vbr",
"name": "VBR"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "Which video codecs are allowed.",
"type": "array",
"items": {
"type": "string",
"enum": [
"ap ",
"AVDJ",
"AVdn",
"AVdh",
"dv ",
"dvp ",
"dv50",
"dv1 ",
"dvh1",
"avc1",
"hvc1",
"mp2v",
"mp4v",
"mjpg",
"mjp2",
"RGB ",
"SRAW",
"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": "SRAW",
"name": "Sony Raw"
},
{
"value": "YUV ",
"name": "Uncompressed YUV"
},
{
"value": "WVC1",
"name": "VC-1"
}
]
}
},
"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",
"description": "Which Entropy Coding Mode to allow.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "CABAC"
},
{
"value": 1,
"name": "CAVLC"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The coded interlace mode to allow.",
"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"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"mpeg2_profile": {
"title": "MPEG-2 Profile",
"description": "The MPEG-2 Profile to allow.",
"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",
"description": "The MPEG-2 Level to allow.",
"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",
"description": "The ProRes Profile to allow.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"mp2v"
]
}
}
}
},
"then": {
"required": [
"mpeg2_profile",
"mpeg2_level"
]
}
},
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"ap "
]
}
}
}
},
"then": {
"required": [
"prores_profile"
]
}
}
]
}
},
"video_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"description": "Whether the duration value test is enabled.",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"description": "The duration value to allow.",
"$ref": "#/definitions/timecode"
},
"spread": {
"title": "Spread (+ or -)",
"description": "The spread (+ or -) to allow.",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"description": "Test for a duration range between a minimum and maximum value allowed.",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum duration allowed.",
"$ref": "#/definitions/timecode"
},
"maximum": {
"title": "Maximum",
"description": "The maximum duration allowed.",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"video_framerate_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Frame Rate",
"description": "Check the frame rate of the video.",
"type": "boolean",
"default": false
},
"options": {
"title": "Standard frame rates",
"description": "Which standard frame rates to allow.",
"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)"
}
]
}
},
"custom": {
"title": "Custom frame rate(s)",
"description": "Which custom frame rates to allow.",
"type": "string",
"suffix": "fps"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"anyOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
},
{
"required": [
"custom"
],
"properties": {
"custom": {
"minLength": 1
}
}
}
]
}
},
"video_framesize_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Frame Size",
"description": "Check the frame size of the video.",
"type": "boolean",
"default": false
},
"options": {
"title": "Standard frame sizes",
"description": "The allowed 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"
}
]
}
},
"custom": {
"title": "Custom frame size(s)",
"description": "The allowed custom frame size(s) as a comma separated list, e.g. '1920x1020,800x600'.",
"type": "string",
"pattern": "^([0-9]+[ \t]*x[ \t]*[0-9]+)([ \t]*,[ \t]*[0-9]+[ \t]*x[ \t]*[0-9]+)*$",
"suffix": "wxh"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"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",
"title": "Which bit depth to allow",
"description": "The allowed bit depths as a comma separted list, e.g. '8,12,16'.",
"default": "8",
"suffix": "bits per sample"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"properties": {
"options": {
"minLength": 1
}
},
"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",
"description": "The test mode to use.",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"type": "string",
"description": "The allowed bit rates as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "Mbit/s"
},
"minimum": {
"title": "Minimum (Mbit/s)",
"description": "The minimum (Mbit/s) allowed.",
"type": "number",
"minimum": 0,
"suffix": "Mbit/s"
},
"maximum": {
"title": "Maximum (Mbit/s)",
"description": "The maximum (Mbit/s) allowed.",
"type": "number",
"minimum": 0,
"suffix": "Mbit/s"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The Color Primaries allowed.",
"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",
"description": "The Transfer Characteristics allowed.",
"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",
"description": "The Matrix Coefficients allowed.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed aspect ratios.",
"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",
"description": "The custom allowed aspect ratio.",
"type": "number"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"properties": {
"ratios": {
"minItems": 1
}
},
"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",
"description": "The allowed pixel aspect ratios.",
"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)"
}
]
}
},
"custom": {
"title": "Custom",
"description": "The allowed custom pixel aspect ratio.",
"type": "number"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"properties": {
"ratios": {
"minItems": 1
}
},
"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",
"description": "The maximum reference frame count allowed.",
"type": "integer",
"default": 1,
"minimum": 1
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The subsampling type.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"subsampling"
],
"properties": {
"subsampling": {
"minItems": 1
}
}
}
},
"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",
"description": "The Video Track ID allowed.",
"type": "integer"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed MPAA ratings.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed USTV ratings.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed Canadian English ratings.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed Canadian French ratings.",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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
}
}
}
}
}
},
"title": "Video Metadata",
"category": "Video Metadata"
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
},
"media_layouts": {
"description": "Media Layouts",
"type": [
"object",
"null"
],
"properties": {
"global_layout": {
"title": "Global layout",
"$ref": "#/definitions/media_layout"
},
"user_layout": {
"title": "User layout",
"$ref": "#/definitions/media_layout"
}
},
"required": [
"global_layout",
"user_layout"
],
"nullable": true
}
},
"additionalProperties": false,
"required": [
"name",
"tests",
"engine_version"
]
}
QC Engine Version 2023.10.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
],
"titleMap": [
{
"value": 0,
"name": "Unknown (U)"
},
{
"value": 1,
"name": "Left (L)"
},
{
"value": 2,
"name": "Right (R)"
},
{
"value": 3,
"name": "Center (C)"
},
{
"value": 4,
"name": "LFE (LFE)"
},
{
"value": 5,
"name": "Left Surround (Ls)"
},
{
"value": 6,
"name": "Right Surround (Rs)"
},
{
"value": 7,
"name": "Left Center (Lc)"
},
{
"value": 8,
"name": "Right Center (Rc)"
},
{
"value": 9,
"name": "Center Surround (Cs)"
},
{
"value": 10,
"name": "Left Side (Lsd)"
},
{
"value": 11,
"name": "Right Side (Rsd)"
},
{
"value": 12,
"name": "Top Center (Tcs)"
},
{
"value": 13,
"name": "Top Front Left (Tfl)"
},
{
"value": 14,
"name": "Top Front Center (Tfc)"
},
{
"value": 15,
"name": "Top Front Right (Tfr)"
},
{
"value": 16,
"name": "Top Back Left (Tbl)"
},
{
"value": 17,
"name": "Top Back Center (Tbc)"
},
{
"value": 18,
"name": "Top Back Right (Tbr)"
},
{
"value": 19,
"name": "Top Side Left (Tsl)"
},
{
"value": 20,
"name": "Top Side Right (Tsr)"
},
{
"value": 65,
"name": "Left Wide (Lw)"
},
{
"value": 66,
"name": "Right Wide (Rw)"
},
{
"value": 68,
"name": "LFE2 (LFE2)"
},
{
"value": 69,
"name": "Left Rear Surround (Lrs)"
},
{
"value": 70,
"name": "Right Rear Surround (Rrs)"
},
{
"value": 33,
"name": "Left Total (Lt)"
},
{
"value": 34,
"name": "Right Total (Rt)"
},
{
"value": 35,
"name": "Mono (M)"
}
]
}
},
"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"
]
},
"media_layout": {
"type": "object",
"required": [
"units"
],
"properties": {
"start": {
"title": "Start",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "End",
"$ref": "#/definitions/range_limit"
},
"start_timecode": {
"title": "Start Timecode",
"$ref": "#/definitions/timecode"
},
"end_timecode": {
"title": "End Timecode",
"$ref": "#/definitions/timecode"
},
"units": {
"title": "Layout boundary units",
"$ref": "#/definitions/time_units_extended"
}
},
"if": {
"properties": {
"units": {
"const": 2
}
}
},
"then": {
"required": [
"start_timecode",
"end_timecode"
]
},
"else": {
"required": [
"start",
"end"
]
}
},
"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",
"$ref": "#/definitions/uint32",
"minimum": 1
},
"control": {
"title": "Control Channel",
"description": "The channel where the Audio Description Control should be present",
"$ref": "#/definitions/uint32",
"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",
"required": [
"open_closed"
],
"additionalProperties": false,
"properties": {
"i_distance": {
"title": "I-Frame distance",
"type": "string",
"description": "The distance allowed between gop i-frames as a comma seperated list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"p_distance": {
"title": "P-Frame distance",
"type": "string",
"description": "The distance allowed between gop p-frames as a comma seperated list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"open_closed": {
"title": "Open/Closed",
"type": "integer",
"description": "Whether the gop structure should be open/closed or either",
"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}$"
},
"basic_timecode": {
"type": "string",
"default": "00:00:00.000",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}$"
},
"bool_false": {
"type": "boolean",
"default": false
},
"bool_true": {
"type": "boolean",
"default": true
},
"uint32": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"int32": {
"type": "integer",
"minimum": -2147483648,
"maximum": 2147483647
},
"bool_optional": {
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0
},
"bool_extended": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 2
},
"comma_separated_positive_numbers": {
"type": "string",
"description": "A list of comma separated positive whole numbers or an empty string, e.g. '1', '1,2', '1,2,3'",
"pattern": "^$|^\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*)*$"
},
"comma_separated_frame_sizes": {
"type": "string",
"description": "Allowed frame sizes as a comma separated list or an empty string, e.g. '320x240', '1920x544,320x240'",
"pattern": "^$|^\\s*[0-9]+\\s*x\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*x\\s*[0-9]+\\s*)*$"
},
"comma_separated_positive_numbers_with_operators": {
"type": "string",
"description": "A list of comma separated positive whole numbers with optional operators or an empty string, e.g. '1', '1-2', '>1,<=2,3'",
"pattern": "^$|^(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?)((\\s)*(,(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?))?)*$"
},
"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",
"required": [
"min",
"max"
],
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 0,
"default": 0
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 0,
"default": 0
}
}
},
"minmax_bits": {
"type": "object",
"required": [
"min",
"max"
],
"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"
}
}
},
"video_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"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": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"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",
"$ref": "#/definitions/uint32",
"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",
"$ref": "#/definitions/uint32",
"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."
},
"subtitle_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"time_units": {
"type": "integer",
"description": "Test in seconds or frames",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"time_units_extended": {
"type": "integer",
"description": "Define duration in seconds, frames or timecodes",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
},
{
"value": 2,
"name": "Timecodes"
}
]
},
"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"
}
]
},
"drop_frame": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Drop"
},
{
"value": 1,
"name": "Non-drop"
}
]
},
"media_layout_type": {
"type": "integer",
"title": "Media Layout",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Global layout"
},
{
"value": 1,
"name": "Whole File"
},
{
"value": 2,
"name": "User layout"
}
],
"default": 0
},
"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": {
"max_allowed": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Max Allowed Duration",
"description": "A dual mono section lasting less than this time window will be ignored.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Max Allowed",
"default": false
},
"units": {
"type": "integer",
"title": "Max Allowed Units",
"default": 2,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
},
{
"name": "Percentage",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
},
"tolerance_window": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Tolerance Window Duration",
"description": "A dual mono section lasting less than this time window will be ignored.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Tolerance Window",
"default": false
},
"units": {
"type": "integer",
"title": "Tolerance Window Units",
"default": 2,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
}
}
}
]
},
"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",
"required": [
"level",
"tolerance",
"mode",
"dialog_gating"
],
"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": {
"not": {
"properties": {
"check_min": {
"const": false
}
}
}
},
"then": {
"required": [
"min_range"
]
}
},
{
"if": {
"not": {
"properties": {
"check_max": {
"const": false
}
}
}
},
"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
}
}
}
]
},
"location_test": {
"type": "object",
"required": [
"exclude_first",
"is_repeated",
"present"
],
"additionalProperties": false,
"properties": {
"body": {
"title": "Body Partition(s)",
"$ref": "#/definitions/allowed_disallowed_required"
},
"exclude_first": {
"type": "boolean",
"title": "Exclude First Body Partition",
"default": false
},
"footer": {
"title": "Footer Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"header": {
"title": "Header Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"is_repeated": {
"type": "boolean",
"title": "Repeated footer partition",
"default": false
},
"present": {
"type": "boolean",
"title": "Present In At Least One",
"default": false
}
}
},
"partition_status_test": {
"type": "object",
"required": [
"closedcomplete",
"closedincomplete",
"notpresent",
"opencomplete",
"openincomplete"
],
"additionalProperties": false,
"properties": {
"closedcomplete": {
"type": "boolean",
"title": "Closed / Complete"
},
"closedincomplete": {
"type": "boolean",
"title": "Closed / Incomplete"
},
"notpresent": {
"type": "boolean",
"title": "Not Present"
},
"opencomplete": {
"type": "boolean",
"title": "Open / Complete"
},
"openincomplete": {
"type": "boolean",
"title": "Open / Incomplete"
}
}
},
"timecode_track_test": {
"type": "object",
"required": [
"continuity"
],
"additionalProperties": false,
"properties": {
"continuity": {
"type": "boolean",
"title": "Structural Continuity",
"default": false
},
"dropframe": {
"title": "Drop Frame",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
}
}
},
"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": {
"not": {
"properties": {
"min_peak_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_peak_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_peak_enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"min_instant_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_instant_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"min_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_mean_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"max_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_mean_phase"
]
}
}
]
}
]
},
"ppm_level_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"max_ppm_enable": {
"type": "boolean",
"title": "Max PPM Level Enable"
},
"max_ppm_level": {
"type": "number",
"title": "Max PPM Level",
"description": "The maximum acceptable PPM level."
},
"min_ppm_enable": {
"type": "boolean",
"title": "Min PPM Level Enable"
},
"min_ppm_level": {
"type": "number",
"title": "Min PPM Level",
"description": "The minimum acceptable PPM level."
},
"ppm_mode": {
"type": "integer",
"title": "PPM Mode",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "M3",
"value": 0
},
{
"name": "M6",
"value": 1
},
{
"name": "AB",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"min_ppm_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_ppm_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_ppm_enable": {
"const": false
}
}
}
},
"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"
}
}
},
"title": "Audio Description",
"category": "Audio Quality"
},
"audio_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audio_bitdepth_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"pattern": "^([0-9]+)(\\s*,\\s*[0-9]+)*\\s*$",
"suffix": "bits per sample"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
"audio_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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)",
"type": "string",
"description": "The allowed bit rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"audio_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Audio Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"$ref": "#/definitions/basic_timecode"
},
"spread": {
"title": "Spread (+ or -)",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"$ref": "#/definitions/basic_timecode"
},
"maximum": {
"title": "Maximum",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"audio_endianness_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_codec_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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,
11,
12
],
"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"
},
{
"value": 11,
"name": "Frame (D-10)"
},
{
"value": 12,
"name": "Wav (BWF)"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codec"
],
"properties": {
"codec": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
0
]
}
}
}
},
"then": {
"required": [
"aac_profile"
],
"properties": {
"aac_profile": {
"minItems": 1
}
}
}
},
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
5
]
}
}
}
},
"then": {
"required": [
"pcm_type"
]
}
}
]
}
}
]
},
"audio_languageid_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": "Arbereshe 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 Bokmal - 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": "Volapuk - 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"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"audio_numberofchannels_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Sample rate",
"description": "Check the number of audio samples per channel per second",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"description": "The allowed sample rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "kHz"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
}
},
"title": "Audio Metadata",
"category": "Audio Metadata"
},
"black_frame": {
"type": "object",
"required": [
"silence",
"custom_level"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"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"
}
}
},
"title": "Black Frame",
"category": "Video Quality"
},
"cadence": {
"type": "object",
"required": [
"cadence_must_be",
"broken_cadence",
"report_all_cadences",
"poor_patterns"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"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,
7,
8,
9
],
"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)"
},
{
"value": 7,
"name": "2:2:2:4 (frame repeated)"
},
{
"value": 8,
"name": "2:3:3:2 (TFF)"
},
{
"value": 9,
"name": "2:3:3:2 (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)"
}
},
"title": "CadenceTest",
"category": "Video Quality"
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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 separated list, e.g. '888', '888,889'",
"allOf": [
{
"$ref": "#/definitions/comma_separated_positive_numbers"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pages"
]
}
}
},
"title": "Caption/Subtitle Test",
"category": "Caption Checks"
},
"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"
}
}
},
"title": "Channel Mapping",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Channel Position",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Clicks and Pops",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Clipping",
"category": "Audio Quality"
},
"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",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
}
}
},
"title": "Color Bars",
"category": "Video Quality"
},
"comb_artifacts": {
"type": "object",
"description": "Detect if the input video stream has any interlacing or combing artifacts",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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."
}
},
"required": [
"consecutive_frame_count"
],
"title": "Combing Artifacts Detection Test",
"category": "Video Quality"
},
"corrupt_frame": {
"type": "object",
"description": "Check for corrupt or unexpected frames",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"sensitivity": {
"title": "Corrupt Frame Detection Sensitivity",
"$ref": "#/definitions/sensitivity"
}
},
"title": "Corrupt Frame",
"category": "Video Quality"
},
"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"
}
}
},
"title": "Dialnorm",
"category": "Audio Metadata"
},
"digital_dropouts": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"speckle": {
"title": "Speckle Dropouts",
"type": "boolean",
"description": "Check for speckle dropout artifacts caused by digital tape transfer errors.",
"default": false
},
"speckle_sensitivity": {
"title": "Speckle Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"chroma": {
"title": "Chroma Block Dropouts",
"description": "Check for chroma dropout artifacts.",
"type": "boolean",
"default": false
},
"chroma_sensitivity": {
"title": "Chroma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"luma": {
"title": "Luma Block Dropouts",
"description": "Check for luma dropout artifacts.",
"type": "boolean",
"default": false
},
"luma_sensitivity": {
"title": "Luma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"repeated_tile": {
"title": "Repeated Tile Dropouts",
"description": "Check for repeated tile dropout artifacts.",
"type": "boolean",
"default": false
},
"repeated_tile_sensitivity": {
"title": "Repeated Tile Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"speckle": {
"const": false
}
}
}
},
"then": {
"required": [
"speckle_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"chroma": {
"const": false
}
}
}
},
"then": {
"required": [
"chroma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"luma": {
"const": false
}
}
}
},
"then": {
"required": [
"luma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"repeated_tile": {
"const": false
}
}
}
},
"then": {
"required": [
"repeated_tile_sensitivity"
]
}
}
],
"title": "Digital Dropouts",
"category": "Video Quality"
},
"dolby_vision_metadata": {
"type": "object",
"description": "Dolby Vision metadata validation version 2.0.5, 4.0.2 or 5.1.0",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "Dolby Vision Metadata",
"category": "Video Quality"
},
"dual_mono": {
"type": "object",
"description": "Compares 2 audio streams and reports back if dual mono sections are detected between them",
"additionalProperties": false,
"properties": {
"audioconfigs": {
"type": "array",
"title": "DualMono Test Configuration",
"items": {
"$ref": "#/definitions/dualmono_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "Dual Mono",
"category": "Audio Quality"
},
"field_order": {
"type": "object",
"required": [
"encoded_flag"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Will play correctly with this flag"
}
}
},
"then": {
"disabled": [
"field_order_must_be"
]
}
}
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Field order must be"
}
}
},
"then": {
"enabled": [
"field_order_must_be"
],
"required": [
"field_order_must_be"
]
}
}
}
],
"properties": {
"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
}
},
"title": "Field Order",
"category": "Video Quality"
},
"file_checks": {
"type": "object",
"additionalProperties": false,
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"container_duration_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_ebpmarker_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"mode",
"distance"
]
}
}
]
},
"container_filesize_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_format_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
]
},
"container_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": "The allowed bit rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"comparestreamlengths_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Compare Stream Lengths",
"description": "Check whether the audio track is present throughout the duration of the video",
"type": "boolean",
"default": false
},
"tolerance": {
"title": "Tolerance",
"type": "number",
"default": 2,
"suffix": "seconds",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"tolerance"
]
}
}
]
},
"moov_atom": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"required": [
"enable"
],
"additionalProperties": false,
"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
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"container_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"container_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container Drop Frame",
"description": "Check that the container's start timecode is either drop-frame or non-drop as specified",
"type": "boolean",
"default": false
},
"drop_frame": {
"$ref": "#/definitions/drop_frame"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"drop_frame"
]
}
},
"container_essence_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"tolerance",
"units"
]
}
}
]
},
"container_numberoftracks_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Number of Tracks",
"type": "boolean",
"description": "Check the number of tracks in the file",
"default": false
},
"video_tracks": {
"title": "Video Tracks",
"description": "Check the number of Video tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"audio_tracks": {
"title": "Audio Tracks",
"description": "Check the number of Audio tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"subtitle_tracks": {
"title": "Subtitle Tracks",
"description": "Check the number of Subtitle tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"timecode_tracks": {
"title": "TimeCode Tracks",
"description": "Check the number of TimeCode tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"video_tracks",
"audio_tracks",
"subtitle_tracks",
"timecode_tracks"
]
}
},
"video_cleanaperture_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Clean Aperture",
"description": "Check Clean Aperture is equal to Production Aperture",
"type": "boolean",
"default": false
}
}
},
"video_goplength_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"length"
]
}
}
]
},
"video_starttimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"video_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"video_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence Drop Frame",
"description": "Check that the essence's start timecode is either drop-frame or non-drop as specified",
"type": "boolean",
"default": false
},
"drop_frame": {
"$ref": "#/definitions/drop_frame"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"drop_frame"
]
}
},
"video_advancedgop_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"order",
"report",
"first_gop",
"other_gop",
"last_2gop"
]
}
},
{
"if": {
"not": {
"properties": {
"first_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"first_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"other_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"other_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"last_2gop": {
"const": false
}
}
}
},
"then": {
"required": [
"last_2gop_options"
]
}
}
]
},
"transportstream_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Transport Stream Bit Rate",
"description": "Check stream bitrate using PCRs which accounts for various stuffing methods",
"type": "boolean",
"default": false
},
"check_instantaneous": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Instantaneous Bitrate",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum instantaneous bit-rate threshold",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
},
"maximum": {
"title": "Maximum",
"description": "The maximum instantaneous bit-rate threshold",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
},
"check_average": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Average Bitrate",
"type": "boolean",
"default": false
},
"average": {
"title": "Average",
"description": "The average container bit rate (over the entire stream, from first to last PCR).",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"default": "1000000",
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"average"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"anyOf": [
{
"required": [
"check_instantaneous"
]
},
{
"required": [
"check_average"
]
}
]
}
}
]
}
},
"title": "File Checks",
"category": "File Checks"
},
"freeze_frame": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
],
"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"
}
}
},
"required": [
"silence",
"ignore_black_frames"
],
"title": "Freeze Frame",
"category": "Video Quality"
},
"hdr_area": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"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"
}
},
"required": [
"luminance",
"area_threshold",
"continues_for"
],
"title": "HDR Area",
"category": "Video Quality"
},
"hdr_change_detection": {
"type": "object",
"description": "Check each frame for changes in the HDR metadata encoded as SEI messages in the HEVC bit-stream",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "HDR Change Detection",
"category": "Video Quality"
},
"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",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
}
},
"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"
],
"title": "HDR Limit",
"category": "Video Quality"
},
"hdr_measurement": {
"type": "object",
"description": "Check each decoded frame in its native bit depth to calculate the MaxCLL and MaxFALL",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "HDR Measurement",
"category": "Video Quality"
},
"imf_conformance": {
"type": "object",
"required": [
"treat_warnings_as",
"check_package_integrity"
],
"description": "Check for IMF conformance",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_package_integrity": {
"description": "Perform basic consistency checking of IMF assets",
"title": "Check Package Integrity",
"type": "boolean",
"default": true
},
"checksum_calculations": {
"description": "Check package list asset hashes",
"title": "Perform Checksum Calculations",
"type": "boolean",
"default": false
}
},
"if": {
"not": {
"properties": {
"check_package_integrity": {
"const": false
}
}
},
"then": {
"required": [
"checksum_calculations"
]
}
},
"title": "IMF Conformance",
"category": "Distribution and Broadcast"
},
"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"
}
}
},
"title": "Integrated Loudness (inc Dialog Gating)",
"category": "Audio Quality"
},
"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"
}
},
"title": "iTunes Compatibility",
"category": "Distribution and Broadcast"
},
"letterboxing": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"letterboxing_pillarboxing": {
"const": false
}
}
}
},
"then": {
"required": [
"aspect_ratio",
"tolerance"
],
"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"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
}
],
"properties": {
"active_picture_ratio_value": {
"type": "integer",
"title": "Active picture aspect ratio must be :",
"description": "Select from a number of common aspect ratios",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"name": "4:3",
"value": 0
},
{
"name": "14:9",
"value": 1
},
{
"name": "16:9",
"value": 2
},
{
"name": "1.85:1",
"value": 3
},
{
"name": "2.35:1",
"value": 4
},
{
"name": "2.39:1",
"value": 5
},
{
"name": "2.40:1",
"value": 6
}
]
},
"aspect_ratio": {
"type": "integer",
"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",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Defined aspect ratio",
"value": 0
},
{
"name": "Custom aspect ratio",
"value": 1
},
{
"name": "Defined number of lines",
"value": 2
}
]
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"custom_aspect_ratio_denominator": {
"type": "integer",
"title": "Custom aspect ratio denominator",
"description": "Specify the required custom aspect ratio",
"default": 0,
"minimum": 1
},
"custom_aspect_ratio_numerator": {
"type": "number",
"title": "Custom aspect ratio numerator",
"description": "Specify the required custom aspect ratio",
"default": 0,
"minimum": 0
},
"custom_level": {
"type": "boolean",
"title": "Custom Black Level",
"description": "Use custom luminance level (Y) for non-active picture area",
"default": false
},
"letterboxing_pillarboxing": {
"type": "boolean",
"title": "Detect and report letterboxing/pillarboxing violations",
"description": "This test is used to detect if video content has the correct letterboxing and/or pillarboxing.",
"default": false
},
"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"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"lines_required_left_right": {
"type": "integer",
"title": "Set the number of required black lines at the left/right",
"description": "This allows the number of required black lines at the left/right to be set to any value.",
"default": 0,
"minimum": 0
},
"lines_required_top_bottom": {
"type": "integer",
"title": "Set the number of required black lines at the top/bottom",
"description": "This allows the number of required black lines at the top/bottom to be set to any value.",
"default": 0,
"minimum": 0
},
"report_blanking": {
"type": "boolean",
"title": "Detect and report all changes in blanking",
"description": "Will raise info alerts detailing the number of black lines bordering the active picture content",
"default": false
},
"tolerance": {
"type": "integer",
"title": "Tolerance",
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "LetterboxingTest",
"category": "Video Quality"
},
"luma_chroma_levels": {
"type": "object",
"description": "Check the Y, U and V levels of the video are within the given limits",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
],
"title": "Luma/Chroma Levels",
"category": "Video Quality"
},
"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"
}
}
},
"title": "Loudness Range (LUFS)",
"category": "Audio Quality"
},
"macro_block": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"description": "Check for macroblocking artifacts where the macroblock edge is clearly visible",
"properties": {
"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"
}
},
"required": [
"quality_score",
"averaged_over",
"duration_units"
],
"title": "MacroBlockTest",
"category": "Video Quality"
},
"media_offline": {
"type": "object",
"description": "Test for the presence of a media offline slate",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "Media Offline",
"category": "Video Quality"
},
"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"
}
}
},
"title": "Minimum Level",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Momentary Loudness",
"category": "Audio Quality"
},
"deep_mxf": {
"type": "object",
"properties": {
"active_format_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"allowed_formats": {
"type": "string",
"title": "AFD Information Byte Values",
"description": "A comma separated list can be provided for multiple values e.g. 4,36,68,76"
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"allowed_formats"
]
}
}
]
},
"as11_uk_dpp_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AS-11 UK DPP Metadata",
"description": "Test MXF structural and descriptive metadata against selected shim",
"default": false
},
"shim": {
"type": "integer",
"title": "AS-11 UK DPP Shim",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Auto",
"value": 0
},
{
"name": "SD",
"value": 1
},
{
"name": "HD",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"shim"
]
}
}
]
},
"as11_xprofile": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"embedded_xml_documents": {
"type": "integer",
"title": "Embedded XML Documents",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "XML DM for Programmes",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"title": "AMWA AS-11 Rule Blocks",
"default": false,
"descriptiomn": "Compliance checking to AMWA AS-11 X profile specifications"
},
"extra_audio_layout_modes": {
"type": "integer",
"title": "Extra Audio Layout Modes",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Mode 1",
"value": 1
},
{
"name": "Modes 1 and 2",
"value": 2
}
]
},
"file_format_specification_identification_label": {
"type": "integer",
"title": "Specification Identification",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Blocks_FF_1",
"value": 1
},
{
"name": "Blocks_FF_2",
"value": 2
},
{
"name": "Blocks_FF_5_WIP",
"value": 3
},
{
"name": "Blocks_FF_6_WIP",
"value": 4
},
{
"name": "Blocks_FF_11_WIP",
"value": 5
}
]
},
"picture_essence_constraints": {
"type": "integer",
"title": "Picture Essence Constraints",
"default": 0,
"enum": [
0,
1,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "X1 (AVC)",
"value": 1
},
{
"name": "X9 (AVC)",
"value": 5
}
]
},
"rules": {
"type": "array",
"title": "AMWA AS-11 Rules",
"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": [
{
"name": "Strict Frame Wrapping",
"value": "STRICT_FRAME_WRAPPING"
},
{
"name": "One-to-one Track Mapping",
"value": "ONE_TO_ONE_TRACK_MAPPING"
},
{
"name": "Segment The Essence Container",
"value": "SEGMENT_THE_ESSENCE_CONTAINER"
},
{
"name": "Index Each Essence Container Segment",
"value": "INDEX_EACH_ESSENCE_CONTAINER_SEGMENT"
},
{
"name": "Generic Container",
"value": "GENERIC_CONTAINER"
},
{
"name": "MXF Indexing and Partitioning (VBE or CBE)",
"value": "MXF_INDEXING_AND_PARTITIONING"
},
{
"name": "MXF Indexing and Partitioning for VBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE"
},
{
"name": "MXF Indexing and Partitioning for CBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE"
},
{
"name": "One Picture Track",
"value": "ONE_PICTURE_TRACK"
},
{
"name": "AVC byte Stream Format Picture Essence",
"value": "AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE"
},
{
"name": "ST831-3 mapping",
"value": "ST831_3_MAPPING"
},
{
"name": "One Soundfield Group per Sound Track",
"value": "ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK"
},
{
"name": "Uncompressed 24-bit PCM Audio at 48kHz",
"value": "UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ"
},
{
"name": "Constrained ST382 Wave PCM Mapping",
"value": "CONSTRAINED_ST382_WAVE_PCM_MAPPING"
},
{
"name": "Audio Layout",
"value": "AUDIO_LAYOUT"
},
{
"name": "Audio Layout [X8]",
"value": "AUDIO_LAYOUT_X8"
},
{
"name": "AS-11 Segmentation DM",
"value": "AS11_SEGMENTATION_DM"
},
{
"name": "Specification Identification",
"value": "SPECIFICATION_IDENTIFICATION"
},
{
"name": "Specification Identification [X7]",
"value": "SPECIFICATION_IDENTIFICATION_X7"
},
{
"name": "Specification Identification [X8]",
"value": "SPECIFICATION_IDENTIFICATION_X8"
},
{
"name": "Specification Identification [X9]",
"value": "SPECIFICATION_IDENTIFICATION_X9"
},
{
"name": "Timecode Track Presence",
"value": "TIMECODE_TRACK_PRESENCE"
},
{
"name": "Constrained Timecode Track in Material Package",
"value": "CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE"
},
{
"name": "Timecode Mode Signalling",
"value": "TIMECODE_MODE_SIGNALLING"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"rules",
"embedded_xml_documents",
"extra_audio_layout_modes",
"file_format_specification_identification_label",
"picture_essence_constraints"
]
}
}
]
},
"aspect_ratio": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Aspect Ratio",
"description": "Ensure that the given aspect ratio is present in the picture essence descriptor",
"default": false
},
"ratio": {
"title": "Ratio",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"audio_locked": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"value": {
"type": "boolean",
"title": "Locked / Unlocked",
"default": true,
"titleMap": [
{
"name": "Locked",
"value": true
},
{
"name": "Unlocked",
"value": false
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"audio_ref_level": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Ref Level",
"description": "Check the value of the Audio Ref Level item in the Generic Sound Essence Descriptor(s)",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"audio_sampling_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Sampling Rate",
"description": "Check the value of the Audio Sampling Rate item in the Generic Sound Essence Descriptor(s)",
"default": false
},
"options": {
"type": "number",
"description": "The audio sampling rate in Hz, e.g. 48000",
"suffix": "Hz"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"avc_average_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Average Bit Rate",
"description": "Check the value of the Average Bit Rate item within the AVC Video SubDescriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Max Bit Rate",
"description": "Check the value of the Maximum Bit Rate item within the AVC Video SubDescriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Coded Content Kind",
"description": "Check the value of the Coded Content Kind item within the AVC Video SubDescriptor",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive Frame",
"value": 1
},
{
"name": "Interlaced Field",
"value": 2
},
{
"name": "Interlaced Frame",
"value": 3
},
{
"name": "Interlaced Field and Frame",
"value": 4
},
{
"name": "Any",
"value": 5
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
}
]
},
"avc_decoding_delay": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"delay": {
"type": "integer",
"title": "Decoding Delay",
"default": 0
},
"enable": {
"type": "boolean",
"title": "AVC Decoding Delay",
"description": "Check the value of the Decoding Delay item within the AVC Video SubDescriptor",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"delay"
]
}
}
]
},
"avc_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Identical GOP Indicator",
"description": "Check the value of the AVC Identical GOP Indicator item within the AVC Video SubDescriptor",
"default": false
},
"value": {
"type": "boolean",
"title": "Flag Value",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"avc_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum Count",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum GOP",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS and PPS",
"description": "Check various profile and level flags within the AVC Video SubDescriptor.",
"default": false
},
"level": {
"type": "integer",
"title": "Level",
"default": 0
},
"ppsflag": {
"type": "integer",
"title": "PPS Flag",
"default": 0
},
"profile": {
"type": "integer",
"title": "Profile",
"default": 0
},
"profileconstraint": {
"type": "integer",
"title": "Profile Constrain",
"default": 0
},
"spsflag": {
"type": "integer",
"title": "SPS Flag",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"level",
"ppsflag",
"profile",
"profileconstraint",
"spsflag"
]
}
}
]
},
"average_bytes_per_second": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Average Bytes per Second",
"description": "Check the value of the Average Bytes Per Second item in the Wave Audio Essence Descriptor(s)",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bytes per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"basic_avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS/PPS",
"default": false
}
}
},
"basic_operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MXF Operational Pattern",
"default": false
},
"partition_closed": {
"type": "boolean",
"title": "Partition must be Closed",
"default": false
},
"partition_complete": {
"type": "boolean",
"title": "Partition must be Complete",
"default": false
},
"pattern": {
"type": "integer",
"title": "Operational Pattern",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "OP-1a",
"value": 0
},
{
"name": "OP Atom",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pattern",
"partition_closed",
"partition_complete"
]
}
}
]
},
"body_partition_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Count",
"description": "Enforce a minimum or maximum number of body partitions in the file",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_duration": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Duration",
"description": "Scan each body partition to ensure that its duration (measured in edit units) is within a given range",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_length": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Length",
"description": "Scan each body partition to ensure that its length (measured in bytes) is within a given range",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Status",
"description": "Ensure that the body partition is restricted to a given combination of open/closed and complete/incomplete",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"channel_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"channels": {
"type": "integer",
"title": "Number Of Channels",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"channels"
]
}
}
]
},
"color_range": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"range": {
"type": "integer",
"title": "Color Range",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"range"
]
}
}
]
},
"colorsiting": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"colorsiting": {
"type": "integer",
"title": "Color Siting",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
255
],
"titleMap": [
{
"name": "CoSiting",
"value": 0
},
{
"name": "HorizontalMidpoint",
"value": 1
},
{
"name": "ThreeTap",
"value": 2
},
{
"name": "Quincunx",
"value": 3
},
{
"name": "Rec601",
"value": 4
},
{
"name": "LineAlternating",
"value": 5
},
{
"name": "VerticalMidpoint",
"value": 6
},
{
"name": "Unknown",
"value": 255
}
]
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"colorsiting"
]
}
}
]
},
"component_depth": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"depth": {
"type": "integer",
"title": "Component Depth",
"default": 0,
"suffix": "bits per sample",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Component Depth",
"description": "Check the Component Depth item in the CDCI Picture Essence Descriptor",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"depth"
]
}
}
]
},
"dialnorm": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "DialNorm",
"description": "Check the value of the Dial Norm item in the Generic Sound Essence Descriptor(s)",
"default": false
},
"test": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "integer",
"title": "Maximum",
"default": 31,
"minimum": 1,
"maximum": 31
},
"min": {
"type": "integer",
"title": "Minimum",
"default": 1,
"minimum": 1,
"maximum": 31
}
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"display_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Display Frame Size",
"description": "Restrict the values of 'Display Width' and 'Display Height' in the picture essence descriptor",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"edit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Edit Rate",
"description": "Ensure that the given edit rate is present in the picture essence descriptor",
"default": false
},
"ratio": {
"title": "Ratio",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
],
"titleMap": [
{
"name": "GC SMPTE 381M MPEG Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"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": [
{
"name": "GC AVC Byte Stream VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01"
},
{
"name": "GC MPEG-ES VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_location": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Essence Location",
"description": "Restrict the places in the file where essence may appear",
"default": false
},
"test": {
"title": "Location Test",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"essence_wrapping": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Wrapping Type",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "Clip Wrapped",
"value": 0
},
{
"name": "Frame Wrapped",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"field_dominance": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Field Dominance",
"description": "Examine the FieldDominance item in the Generic Picture Essence Descriptor",
"default": false
},
"firstfield": {
"type": "integer",
"title": "First Field",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Field 1 First",
"value": 0
},
{
"name": "Field 2 First",
"value": 1
},
{
"name": "No Field Dominance Flag ",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"firstfield"
]
}
}
]
},
"footer_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Footer Partition Status",
"description": "Ensure that the footer partition is restricted to a given combination of open/closed and complete/incomplete",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"header_fill": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes Of KLV Fill after Header Metadata",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Fill Test",
"description": "Check for a KLV fill item of at least the specified length, following the header metadata",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes Of Header Metadata including KLV Fill",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Metadata Size",
"description": "Check the value of HeaderByteCount in the header partition",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"index_table": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"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"
},
"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"
},
"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": {
"type": "boolean",
"title": "Edit Unit Bytecount Is Constant",
"description": "Ensure that only a single value is ever used"
},
"enable": {
"type": "boolean",
"title": "Index Table Test",
"description": "Check each index table segment in isolation",
"default": false
},
"forward_index_direction": {
"title": "Forward Index Direction",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"index_entry_array": {
"title": "Index Entry Array",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Absent",
"value": 1
},
{
"name": "Present",
"value": 2
}
]
},
"single_essence_location": {
"title": "Single Essence Location",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"single_index_location": {
"title": "Single Index Location",
"description": "Flags are described in Amendment 2:2012 to SMPTE ST 377M",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"slicecount": {
"type": "integer",
"title": "Slice Count",
"description": "Number of slices in each index entry, minus one"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Index Table Location",
"description": "Restrict the places in the file where index table segments may appear",
"default": false
},
"test": {
"title": "Location Test",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"kagsize": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "KAG Size Test",
"description": "Ensure that the file offset of every partition pack matches the stated alignment",
"default": false
},
"size": {
"type": "integer",
"title": "KAG Size",
"default": 0,
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"size"
]
}
}
]
},
"material_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Material Package Timecode Test",
"description": "Ensures that there is only one timecode track in the Material Package",
"default": false
},
"test": {
"title": "Timecode Track Test",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Bit Rate",
"description": "Check the value of the BitRate item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax_bits"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"default": 0,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive",
"value": 1
},
{
"name": "Interlaced",
"value": 2
},
{
"name": "Mixed",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
},
"mpeg_constant_bpicture_flag": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Constant B Picture Flag",
"description": "Check the value of the ConstantBframes item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Extended Bool Test",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Identical GOP Indicator",
"description": "Check the value of the IdenticalGOP item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Extended Bool Test",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max B Picture Count",
"description": "Check the value of the BPictureCount item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "B pictures",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max GOP Size",
"description": "Check the value of the MaxGOP item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "frames",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Operational Pattern",
"default": false,
"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"
},
"essence_containers": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-track",
"value": 1
},
{
"name": "Uni-track",
"value": 2
}
]
},
"essence_reference": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "External",
"value": 1
},
{
"name": "Internal",
"value": 2
}
]
},
"essence_streaming": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Non-Streamable",
"value": 1
},
{
"name": "Streamable",
"value": 2
}
]
},
"essence_tracks": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-essence",
"value": 1
},
{
"name": "Single-essence",
"value": 2
}
]
},
"generalized": {
"type": "array",
"title": "Generalized",
"items": {
"type": "string",
"enum": [
"Op1a",
"Op1b",
"Op1c",
"Op2a",
"Op2b",
"Op2c",
"Op3a",
"Op3b",
"Op3c"
]
}
},
"material_package": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-source",
"value": 1
},
{
"name": "Single-source",
"value": 2
}
]
},
"specialized": {
"type": "boolean",
"title": "OP-Atom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"essence_reference",
"essence_streaming",
"essence_containers",
"specialized",
"material_package",
"essence_tracks"
]
}
}
]
},
"padding_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Padding Bits",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"picture_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"items": {
"type": "integer",
"default": 0,
"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": [
{
"name": "AVCI-50-1080-60-I",
"value": 0
},
{
"name": "AVCI-50-1080-50-I",
"value": 1
},
{
"name": "AVCI-50-1080-30-P",
"value": 2
},
{
"name": "AVCI-50-1080-25-P",
"value": 3
},
{
"name": "AVCI-50-720-60-P",
"value": 4
},
{
"name": "AVCI-50-720-50-P",
"value": 5
},
{
"name": "AVCI-100-1080-60-I",
"value": 6
},
{
"name": "AVCI-100-1080-50-I",
"value": 7
},
{
"name": "AVCI-100-1080-30-P",
"value": 8
},
{
"name": "AVCI-100-1080-25-P",
"value": 9
},
{
"name": "AVCI-100-720-60-P",
"value": 10
},
{
"name": "AVCI-100-720-50-P",
"value": 11
},
{
"name": "AVC-HIGH-10-INTRA-UNCS",
"value": 12
},
{
"name": "AVC-HIGH-422-INTRA-UNCS",
"value": 13
},
{
"name": "MPEG2-MP-HL-LONGGOP",
"value": 14
},
{
"name": "MPEG2-422P-HL-LONGGOP",
"value": 15
},
{
"name": "MPEG2-MP-H14-LONGGOP",
"value": 16
},
{
"name": "D10-50-625-50",
"value": 17
},
{
"name": "D10-50-525-60",
"value": 18
},
{
"name": "D10-40-625-50",
"value": 19
},
{
"name": "D10-40-525-60",
"value": 20
},
{
"name": "D10-30-625-50",
"value": 21
},
{
"name": "D10-30-525-60",
"value": 22
}
]
}
},
"enable": {
"type": "boolean",
"title": "Picture Essence Coding",
"description": "Ensure that the picture essence coding label is one of the given value(s)",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"picture_offsets": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"displayftwo": {
"type": "integer",
"title": "Display F2",
"default": 0,
"minimum": 0
},
"displayx": {
"type": "integer",
"title": "Display X",
"default": 0,
"minimum": 0
},
"displayy": {
"type": "integer",
"title": "Display Y",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"imageend": {
"type": "integer",
"title": "Image End",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"imagestart": {
"type": "integer",
"title": "Image Start",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"sampledx": {
"type": "integer",
"title": "Sampled X",
"default": 0,
"minimum": 0
},
"sampledy": {
"type": "integer",
"title": "Sampled Y",
"default": 0,
"minimum": 0
},
"storedftwo": {
"type": "integer",
"title": "Stored F2",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"storedftwo",
"displayftwo",
"sampledx",
"sampledy",
"displayx",
"displayy",
"imagestart",
"imageend"
]
}
}
]
},
"quantization_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Number Of Bits",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Quantization Bits",
"description": "Check the value of the Quantization Bits item in the Generic Sound Essence Descriptor(s)",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"reference_levels": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"black": {
"type": "integer",
"title": "Black",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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)",
"default": false
},
"white": {
"type": "integer",
"title": "White",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"black",
"white"
]
}
}
]
},
"rip_presence": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "RIP Presence",
"description": "Ensure a Random Index Pack is present at the end of the file",
"default": false
}
}
},
"runin": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"max_bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_bytes"
]
}
}
]
},
"sampled_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Sampled Frame Size",
"description": "Restrict the values of 'Sampled Width' and 'Sampled Height' in the picture essence descriptor",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"sdti_timecode_continuity": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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)",
"default": false
}
}
},
"signal_standard": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Signal Standard",
"description": "Examine the Signal Standard item in the Generic Picture Essence Descriptor, indicating the source of the video essence",
"default": false
},
"standard": {
"type": "integer",
"title": "Standard",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"name": "0: No Specific Underlying Standard",
"value": 0
},
{
"name": "1: ITU-R BT.601 and BT.656, SMPTE 125M",
"value": 1
},
{
"name": "2: ITU-R BT.1358 and ITU-R BT.799-3, SMPTE 293M",
"value": 2
},
{
"name": "3: SMPTE 347M (540 Mbps Mappings)",
"value": 3
},
{
"name": "4: SMPTE 274M (1125 Line)",
"value": 4
},
{
"name": "5: SMPTE 296M (750 Line Progressive)",
"value": 5
},
{
"name": "6: SMPTE 349M (1485 Mbps Mappings)",
"value": 6
},
{
"name": "7: SMPTE 428-1 DCDM",
"value": 7
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"standard"
]
}
}
]
},
"sound_element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"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": [
{
"name": "GC SMPTE 382M 8-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x"
},
{
"name": "GC SMPTE 382M 16-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"sound_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"items": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "PCM",
"value": 0
},
{
"name": "Default Uncompressed",
"value": 1
},
{
"name": "Dolby E",
"value": 2
}
]
}
},
"enable": {
"type": "boolean",
"title": "Sound Essence Coding",
"description": "Ensure that the sound essence coding label is one of the given values",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"sound_essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"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": [
{
"name": "GC BWF Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00"
},
{
"name": "GC BWF Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00"
},
{
"name": "GC AES-3 Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00"
},
{
"name": "GC AES-3 Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"source_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Source Package Timecode Test",
"description": "Ensure that there is only one timecode track in the File Source Package",
"default": false
},
"test": {
"title": "Timecode Track Test",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"stored_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Stored Frame Size",
"description": "Restrict the values of 'Stored Width' and 'Stored Height' in the picture essence descriptor",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"subsampling": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Subsampling",
"description": "Check the Horizontal and Vertical Subsampling items in the CDCI Picture Essence Descriptor",
"default": false
},
"horizontal": {
"type": "integer",
"title": "Horizontal",
"default": 0,
"minimum": 0
},
"vertical": {
"type": "integer",
"title": "Vertical",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"horizontal",
"vertical"
]
}
}
]
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"version": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Version Test",
"description": "Check for a specific MXF version. All versions within a file (inside each Preface and Partition Pack) are tested",
"default": false
},
"mxf_version": {
"type": "integer",
"title": "MXF Version",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "SMPTE 377 2004",
"value": 0
},
{
"name": "SMPTE 377 2011",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mxf_version"
]
}
}
]
},
"video_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Descriptor Type",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "MPEG",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Descriptor",
"description": "Ensure that the Picture Essence Descriptor is an MPEG-2 Video Descriptor as specified in SMPTE 381M",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"video_line_map": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"linemaps": {
"type": "string",
"title": "Line Maps",
"description": "comma-separated e.g. 21, 584"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"linemaps"
]
}
}
]
},
"video_subdescriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Subdescriptor Type",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "AVC",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Subdescriptor",
"description": "Check for the presence of an AVC SubDescriptor within the Picture Essence Descriptor",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
}
},
"title": "Deep MXF Tests",
"category": "Deep MXF Tests"
},
"netflix_photon": {
"type": "object",
"description": "Validate IMF assets using Netflix Photon",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "Netflix Photon",
"category": "Distribution and Broadcast"
},
"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"
}
}
},
"title": "Nielsen Watermark",
"category": "Distribution and Broadcast"
},
"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"
}
}
},
"title": "Peak Level",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Phase Coherence",
"category": "Audio Quality"
},
"ppm_level": {
"type": "object",
"properties": {
"audioconfigs": {
"type": "array",
"title": "PPM Level Test Configuration",
"description": "The peak level according to the \"BBC Peak Program Meter\" (IEC 60268-10 Type IIa) standard. The meter can operate in MS (sum/difference) mode (modes M3 and M6), or AB mode (individual channels). Note that in MS mode, only the sum is measured.",
"items": {
"$ref": "#/definitions/ppm_level_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "PPM Level",
"category": "Audio Quality"
},
"pse_harding": {
"type": "object",
"description": "Harding",
"required": [
"standard"
],
"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
}
},
"title": "PSE Harding Test",
"category": "Video Quality"
},
"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."
}
},
"title": "PSE Test (Proprietary)",
"category": "Video Quality"
},
"rgb_gamut": {
"type": "object",
"description": "Detect if the RGB color values are within the given range",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
],
"title": "RGB Gamut",
"category": "Video Quality"
},
"video_segment_detection": {
"type": "object",
"required": [
"custom_level",
"silence",
"duration",
"units",
"percentage"
],
"description": "Detect video segments within the content",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
}
],
"properties": {
"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"
}
},
"title": "Video Segment Detection",
"category": "Video Quality"
},
"service_count": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_any": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of services of any type",
"description": "Check the number of services of any type in the file. E.g. CC 1 to CC 4 and Service 1 to Service 6",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of services expected",
"type": "string",
"description": "The specified service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c608": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-608 services",
"description": "Check number of CEA-608 services in the file. E.g. CC 1 to CC 4",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-608 services expected",
"type": "string",
"description": "The specified CEA-608 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c708": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-708 services",
"description": "Check number of CEA-708 services in the file. E.g. Service 1 to Service 6",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-708 services expected",
"type": "string",
"description": "The specified CEA-708 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
},
"title": "Service Count Test",
"category": "Service Count"
},
"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"
}
}
},
"title": "Short-term Loudness",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Silence",
"category": "Audio Quality"
},
"single_color_frame": {
"type": "object",
"description": "Detect sequences where the entire frame is a single color",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"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."
},
"ignore_black_frames": {
"title": "Ignore black frames",
"type": "boolean",
"default": false,
"description": "Whether to ignore black frames."
},
"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"
}
}
},
"title": "Single Color Frame",
"category": "Video Quality"
},
"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"
]
}
}
],
"title": "Discrete Subtitle Test",
"category": "Caption Checks"
},
"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"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
},
"title": "Syntax Checks",
"category": "Syntax Checks"
},
"tek_mos": {
"type": "object",
"description": "Non-reference based perceptual video quality measurement for natural video content",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"properties": {
"frame_sampling_type": {
"const": 1
}
}
},
"then": {
"required": [
"frames_to_be_sampled"
]
}
}
],
"properties": {
"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",
"$ref": "#/definitions/int32",
"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",
"$ref": "#/definitions/int32",
"minimum": 0,
"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
}
},
"required": [
"frame_sampling_type",
"clip_threshold_score",
"clip_threshold_percentage",
"duration_threshold_score",
"duration_threshold_score_percentage",
"duration_averaged_over",
"deinterlace",
"region_of_interest"
],
"title": "TekMOS",
"category": "Video Quality"
},
"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"
}
}
},
"title": "ToneTest",
"category": "Audio Quality"
},
"upconversion_detection": {
"type": "object",
"description": "Detect if the input video stream has been upconverted from a lower resolution",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "Upconversion Detection Test",
"category": "Video Quality"
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed buffer sizes as a comma separated list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "KiB"
},
"minimum": {
"title": "Minimum",
"type": "number",
"minimum": 0,
"suffix": "KiB"
},
"maximum": {
"title": "Maximum",
"type": "number",
"minimum": 0,
"suffix": "KiB"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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 ",
"SRAW",
"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": "SRAW",
"name": "Sony Raw"
},
{
"value": "YUV ",
"name": "Uncompressed YUV"
},
{
"value": "WVC1",
"name": "VC-1"
}
]
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"mp2v"
]
}
}
}
},
"then": {
"required": [
"mpeg2_profile",
"mpeg2_level"
]
}
},
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"ap "
]
}
}
}
},
"then": {
"required": [
"prores_profile"
]
}
}
]
}
},
"video_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"$ref": "#/definitions/timecode"
},
"spread": {
"title": "Spread (+ or -)",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"$ref": "#/definitions/timecode"
},
"maximum": {
"title": "Maximum",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"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)"
}
]
}
},
"custom": {
"title": "Custom frame rate(s)",
"type": "string",
"suffix": "fps"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"properties": {
"custom": {
"minLength": 1
}
},
"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"
}
]
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"properties": {
"options": {
"minLength": 1
}
},
"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",
"description": "The allowed bit rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"properties": {
"ratios": {
"minItems": 1
}
},
"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)"
}
]
}
},
"custom": {
"title": "Custom",
"type": "number"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"properties": {
"ratios": {
"minItems": 1
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"subsampling"
],
"properties": {
"subsampling": {
"minItems": 1
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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
}
}
}
}
}
},
"title": "Video Metadata",
"category": "Video Metadata"
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
},
"media_layouts": {
"description": "Media Layouts",
"type": [
"object",
"null"
],
"properties": {
"global_layout": {
"title": "Global layout",
"$ref": "#/definitions/media_layout"
},
"user_layout": {
"title": "User layout",
"$ref": "#/definitions/media_layout"
}
},
"required": [
"global_layout",
"user_layout"
],
"nullable": true
}
},
"additionalProperties": false,
"required": [
"name",
"tests",
"engine_version"
]
}
QC Engine Version 2023.9.2
{
"$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
],
"titleMap": [
{
"value": 0,
"name": "Unknown (U)"
},
{
"value": 1,
"name": "Left (L)"
},
{
"value": 2,
"name": "Right (R)"
},
{
"value": 3,
"name": "Center (C)"
},
{
"value": 4,
"name": "LFE (LFE)"
},
{
"value": 5,
"name": "Left Surround (Ls)"
},
{
"value": 6,
"name": "Right Surround (Rs)"
},
{
"value": 7,
"name": "Left Center (Lc)"
},
{
"value": 8,
"name": "Right Center (Rc)"
},
{
"value": 9,
"name": "Center Surround (Cs)"
},
{
"value": 10,
"name": "Left Side (Lsd)"
},
{
"value": 11,
"name": "Right Side (Rsd)"
},
{
"value": 12,
"name": "Top Center (Tcs)"
},
{
"value": 13,
"name": "Top Front Left (Tfl)"
},
{
"value": 14,
"name": "Top Front Center (Tfc)"
},
{
"value": 15,
"name": "Top Front Right (Tfr)"
},
{
"value": 16,
"name": "Top Back Left (Tbl)"
},
{
"value": 17,
"name": "Top Back Center (Tbc)"
},
{
"value": 18,
"name": "Top Back Right (Tbr)"
},
{
"value": 19,
"name": "Top Side Left (Tsl)"
},
{
"value": 20,
"name": "Top Side Right (Tsr)"
},
{
"value": 65,
"name": "Left Wide (Lw)"
},
{
"value": 66,
"name": "Right Wide (Rw)"
},
{
"value": 68,
"name": "LFE2 (LFE2)"
},
{
"value": 69,
"name": "Left Rear Surround (Lrs)"
},
{
"value": 70,
"name": "Right Rear Surround (Rrs)"
},
{
"value": 33,
"name": "Left Total (Lt)"
},
{
"value": 34,
"name": "Right Total (Rt)"
},
{
"value": 35,
"name": "Mono (M)"
}
]
}
},
"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"
]
},
"media_layout": {
"type": "object",
"required": [
"units"
],
"properties": {
"start": {
"title": "Start",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "End",
"$ref": "#/definitions/range_limit"
},
"start_timecode": {
"title": "Start Timecode",
"$ref": "#/definitions/timecode"
},
"end_timecode": {
"title": "End Timecode",
"$ref": "#/definitions/timecode"
},
"units": {
"title": "Layout boundary units",
"$ref": "#/definitions/time_units_extended"
}
},
"if": {
"properties": {
"units": {
"const": 2
}
}
},
"then": {
"required": [
"start_timecode",
"end_timecode"
]
},
"else": {
"required": [
"start",
"end"
]
}
},
"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",
"$ref": "#/definitions/uint32",
"minimum": 1
},
"control": {
"title": "Control Channel",
"description": "The channel where the Audio Description Control should be present",
"$ref": "#/definitions/uint32",
"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",
"required": [
"open_closed"
],
"additionalProperties": false,
"properties": {
"i_distance": {
"title": "I-Frame distance",
"type": "string",
"description": "The distance allowed between gop i-frames as a comma seperated list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"p_distance": {
"title": "P-Frame distance",
"type": "string",
"description": "The distance allowed between gop p-frames as a comma seperated list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"open_closed": {
"title": "Open/Closed",
"type": "integer",
"description": "Whether the gop structure should be open/closed or either",
"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}$"
},
"basic_timecode": {
"type": "string",
"default": "00:00:00.000",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}$"
},
"bool_false": {
"type": "boolean",
"default": false
},
"bool_true": {
"type": "boolean",
"default": true
},
"uint32": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"int32": {
"type": "integer",
"minimum": -2147483648,
"maximum": 2147483647
},
"bool_optional": {
"type": "integer",
"enum": [
0,
1,
2
],
"default": 0
},
"bool_extended": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 2
},
"comma_separated_positive_numbers": {
"type": "string",
"description": "A list of comma separated positive whole numbers or an empty string, e.g. '1', '1,2', '1,2,3'",
"pattern": "^$|^\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*)*$"
},
"comma_separated_frame_sizes": {
"type": "string",
"description": "Allowed frame sizes as a comma separated list or an empty string, e.g. '320x240', '1920x544,320x240'",
"pattern": "^$|^\\s*[0-9]+\\s*x\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*x\\s*[0-9]+\\s*)*$"
},
"comma_separated_positive_numbers_with_operators": {
"type": "string",
"description": "A list of comma separated positive whole numbers with optional operators or an empty string, e.g. '1', '1-2', '>1,<=2,3'",
"pattern": "^$|^(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?)((\\s)*(,(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?))?)*$"
},
"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",
"required": [
"min",
"max"
],
"properties": {
"min": {
"title": "Minimum",
"type": "integer",
"minimum": 0,
"default": 0
},
"max": {
"title": "Maximum",
"type": "integer",
"minimum": 0,
"default": 0
}
}
},
"minmax_bits": {
"type": "object",
"required": [
"min",
"max"
],
"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"
}
}
},
"video_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"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": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"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",
"$ref": "#/definitions/uint32",
"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."
},
"subtitle_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"time_units": {
"type": "integer",
"description": "Test in seconds or frames",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"time_units_extended": {
"type": "integer",
"description": "Define duration in seconds, frames or timecodes",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
},
{
"value": 2,
"name": "Timecodes"
}
]
},
"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"
}
]
},
"drop_frame": {
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Drop"
},
{
"value": 1,
"name": "Non-drop"
}
]
},
"media_layout_type": {
"type": "integer",
"title": "Media Layout",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Global layout"
},
{
"value": 1,
"name": "Whole File"
},
{
"value": 2,
"name": "User layout"
}
],
"default": 0
},
"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": {
"max_allowed": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Max Allowed Duration",
"description": "A dual mono section lasting less than this time window will be ignored.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Max Allowed",
"default": false
},
"units": {
"type": "integer",
"title": "Max Allowed Units",
"default": 2,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
},
{
"name": "Percentage",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
},
"tolerance_window": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Tolerance Window Duration",
"description": "A dual mono section lasting less than this time window will be ignored.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Tolerance Window",
"default": false
},
"units": {
"type": "integer",
"title": "Tolerance Window Units",
"default": 2,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
}
}
}
]
},
"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",
"required": [
"level",
"tolerance",
"mode",
"dialog_gating"
],
"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": {
"not": {
"properties": {
"check_min": {
"const": false
}
}
}
},
"then": {
"required": [
"min_range"
]
}
},
{
"if": {
"not": {
"properties": {
"check_max": {
"const": false
}
}
}
},
"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
}
}
}
]
},
"location_test": {
"type": "object",
"required": [
"exclude_first",
"is_repeated",
"present"
],
"additionalProperties": false,
"properties": {
"body": {
"title": "Body Partition(s)",
"$ref": "#/definitions/allowed_disallowed_required"
},
"exclude_first": {
"type": "boolean",
"title": "Exclude First Body Partition",
"default": false
},
"footer": {
"title": "Footer Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"header": {
"title": "Header Partition",
"$ref": "#/definitions/allowed_disallowed_required"
},
"is_repeated": {
"type": "boolean",
"title": "Repeated footer partition",
"default": false
},
"present": {
"type": "boolean",
"title": "Present In At Least One",
"default": false
}
}
},
"partition_status_test": {
"type": "object",
"required": [
"closedcomplete",
"closedincomplete",
"notpresent",
"opencomplete",
"openincomplete"
],
"additionalProperties": false,
"properties": {
"closedcomplete": {
"type": "boolean",
"title": "Closed / Complete"
},
"closedincomplete": {
"type": "boolean",
"title": "Closed / Incomplete"
},
"notpresent": {
"type": "boolean",
"title": "Not Present"
},
"opencomplete": {
"type": "boolean",
"title": "Open / Complete"
},
"openincomplete": {
"type": "boolean",
"title": "Open / Incomplete"
}
}
},
"pic_frame_size": {
"type": "object",
"required": [
"size"
],
"additionalProperties": false,
"properties": {
"size": {
"type": "string",
"title": "Frame Size(s)",
"minLength": 3,
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'",
"suffix": "(WxH) e.g. '1920x544'",
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
},
"timecode_track_test": {
"type": "object",
"required": [
"continuity"
],
"additionalProperties": false,
"properties": {
"continuity": {
"type": "boolean",
"title": "Structural Continuity",
"default": false
},
"dropframe": {
"title": "Drop Frame",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
}
}
},
"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": {
"not": {
"properties": {
"min_peak_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_peak_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_peak_enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"min_instant_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_instant_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"min_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_mean_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"max_mean_phase_enable": {
"const": false
}
}
}
},
"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"
}
}
},
"title": "Audio Description",
"category": "Audio Quality"
},
"audio_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audio_bitdepth_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"pattern": "^([0-9]+)(\\s*,\\s*[0-9]+)*\\s*$",
"suffix": "bits per sample"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
"audio_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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)",
"type": "string",
"description": "The allowed bit rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"audio_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Audio Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"$ref": "#/definitions/basic_timecode"
},
"spread": {
"title": "Spread (+ or -)",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"$ref": "#/definitions/basic_timecode"
},
"maximum": {
"title": "Maximum",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"audio_endianness_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_codec_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codec"
],
"properties": {
"codec": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
0
]
}
}
}
},
"then": {
"required": [
"aac_profile"
],
"properties": {
"aac_profile": {
"minItems": 1
}
}
}
},
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
5
]
}
}
}
},
"then": {
"required": [
"pcm_type"
]
}
}
]
}
}
]
},
"audio_languageid_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": "Arbereshe 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 Bokmal - 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": "Volapuk - 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"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"audio_numberofchannels_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Sample rate",
"description": "Check the number of audio samples per channel per second",
"type": "boolean",
"default": false
},
"options": {
"type": "string",
"description": "The allowed sample rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "kHz"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
}
},
"title": "Audio Metadata",
"category": "Audio Metadata"
},
"black_frame": {
"type": "object",
"required": [
"silence",
"custom_level"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"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"
}
}
},
"title": "Black Frame",
"category": "Video Quality"
},
"cadence": {
"type": "object",
"required": [
"cadence_must_be",
"broken_cadence",
"report_all_cadences",
"poor_patterns"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"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,
7,
8,
9
],
"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)"
},
{
"value": 7,
"name": "2:2:2:4 (frame repeated)"
},
{
"value": 8,
"name": "2:3:3:2 (TFF)"
},
{
"value": 9,
"name": "2:3:3:2 (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)"
}
},
"title": "CadenceTest",
"category": "Video Quality"
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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 separated list, e.g. '888', '888,889'",
"allOf": [
{
"$ref": "#/definitions/comma_separated_positive_numbers"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pages"
]
}
}
},
"title": "Caption/Subtitle Test",
"category": "Caption Checks"
},
"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"
}
}
},
"title": "Channel Mapping",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Channel Position",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Clicks and Pops",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Clipping",
"category": "Audio Quality"
},
"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",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
}
}
},
"title": "Color Bars",
"category": "Video Quality"
},
"comb_artifacts": {
"type": "object",
"description": "Detect if the input video stream has any interlacing or combing artifacts",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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."
}
},
"required": [
"consecutive_frame_count"
],
"title": "Combing Artifacts Detection Test",
"category": "Video Quality"
},
"corrupt_frame": {
"type": "object",
"description": "Check for corrupt or unexpected frames",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"sensitivity": {
"title": "Corrupt Frame Detection Sensitivity",
"$ref": "#/definitions/sensitivity"
}
},
"title": "Corrupt Frame",
"category": "Video Quality"
},
"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"
}
}
},
"title": "Dialnorm",
"category": "Audio Metadata"
},
"digital_dropouts": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"speckle": {
"title": "Speckle Dropouts",
"type": "boolean",
"description": "Check for speckle dropout artifacts caused by digital tape transfer errors.",
"default": false
},
"speckle_sensitivity": {
"title": "Speckle Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"chroma": {
"title": "Chroma Block Dropouts",
"description": "Check for chroma dropout artifacts.",
"type": "boolean",
"default": false
},
"chroma_sensitivity": {
"title": "Chroma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"luma": {
"title": "Luma Block Dropouts",
"description": "Check for luma dropout artifacts.",
"type": "boolean",
"default": false
},
"luma_sensitivity": {
"title": "Luma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"repeated_tile": {
"title": "Repeated Tile Dropouts",
"description": "Check for repeated tile dropout artifacts.",
"type": "boolean",
"default": false
},
"repeated_tile_sensitivity": {
"title": "Repeated Tile Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"speckle": {
"const": false
}
}
}
},
"then": {
"required": [
"speckle_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"chroma": {
"const": false
}
}
}
},
"then": {
"required": [
"chroma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"luma": {
"const": false
}
}
}
},
"then": {
"required": [
"luma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"repeated_tile": {
"const": false
}
}
}
},
"then": {
"required": [
"repeated_tile_sensitivity"
]
}
}
],
"title": "Digital Dropouts",
"category": "Video Quality"
},
"dual_mono": {
"type": "object",
"description": "Compares 2 audio streams and reports back if dual mono sections are detected between them",
"additionalProperties": false,
"properties": {
"audioconfigs": {
"type": "array",
"title": "DualMono Test Configuration",
"items": {
"$ref": "#/definitions/dualmono_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "Dual Mono",
"category": "Audio Quality"
},
"field_order": {
"type": "object",
"required": [
"encoded_flag"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Will play correctly with this flag"
}
}
},
"then": {
"disabled": [
"field_order_must_be"
]
}
}
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Field order must be"
}
}
},
"then": {
"enabled": [
"field_order_must_be"
],
"required": [
"field_order_must_be"
]
}
}
}
],
"properties": {
"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
}
},
"title": "Field Order",
"category": "Video Quality"
},
"file_checks": {
"type": "object",
"additionalProperties": false,
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"container_duration_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_ebpmarker_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"mode",
"distance"
]
}
}
]
},
"container_filesize_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_format_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
]
},
"container_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": "The allowed bit rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"comparestreamlengths_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"required": [
"enable"
],
"additionalProperties": false,
"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",
"required": [
"enable"
],
"additionalProperties": false,
"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
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"container_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"container_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container Drop Frame",
"description": "Check that the container's start timecode is either drop-frame or non-drop as specified",
"type": "boolean",
"default": false
},
"drop_frame": {
"$ref": "#/definitions/drop_frame"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"drop_frame"
]
}
},
"container_essence_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"tolerance",
"units"
]
}
}
]
},
"container_numberoftracks_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Number of Tracks",
"type": "boolean",
"description": "Check the number of tracks in the file",
"default": false
},
"video_tracks": {
"title": "Video Tracks",
"description": "Check the number of Video tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"audio_tracks": {
"title": "Audio Tracks",
"description": "Check the number of Audio tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"subtitle_tracks": {
"title": "Subtitle Tracks",
"description": "Check the number of Subtitle tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"timecode_tracks": {
"title": "TimeCode Tracks",
"description": "Check the number of TimeCode tracks in the file, e.g. '1,>=3' for 1 or >=3 tracks.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"video_tracks",
"audio_tracks",
"subtitle_tracks",
"timecode_tracks"
]
}
},
"video_cleanaperture_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Clean Aperture",
"description": "Check Clean Aperture is equal to Production Aperture",
"type": "boolean",
"default": false
}
}
},
"video_goplength_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"length"
]
}
}
]
},
"video_starttimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"video_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"video_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence Drop Frame",
"description": "Check that the essence's start timecode is either drop-frame or non-drop as specified",
"type": "boolean",
"default": false
},
"drop_frame": {
"$ref": "#/definitions/drop_frame"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"drop_frame"
]
}
},
"video_advancedgop_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"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"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"order",
"report",
"first_gop",
"other_gop",
"last_2gop"
]
}
},
{
"if": {
"not": {
"properties": {
"first_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"first_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"other_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"other_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"last_2gop": {
"const": false
}
}
}
},
"then": {
"required": [
"last_2gop_options"
]
}
}
]
},
"transportstream_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Transport Stream Bit Rate",
"description": "Check stream bitrate using PCRs which accounts for various stuffing methods",
"type": "boolean",
"default": false
},
"check_instantaneous": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Instantaneous Bitrate",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum instantaneous bit-rate threshold",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
},
"maximum": {
"title": "Maximum",
"description": "The maximum instantaneous bit-rate threshold",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
},
"check_average": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Average Bitrate",
"type": "boolean",
"default": false
},
"average": {
"title": "Average",
"description": "The average container bit rate (over the entire stream, from first to last PCR).",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"default": "1000000",
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"average"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"anyOf": [
{
"required": [
"check_instantaneous"
]
},
{
"required": [
"check_average"
]
}
]
}
}
]
}
},
"title": "File Checks",
"category": "File Checks"
},
"freeze_frame": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
],
"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"
}
}
},
"required": [
"silence",
"ignore_black_frames"
],
"title": "Freeze Frame",
"category": "Video Quality"
},
"hdr_area": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"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"
}
},
"required": [
"luminance",
"area_threshold",
"continues_for"
],
"title": "HDR Area",
"category": "Video Quality"
},
"hdr_change_detection": {
"type": "object",
"description": "Check each frame for changes in the HDR metadata encoded as SEI messages in the HEVC bit-stream",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "HDR Change Detection",
"category": "Video Quality"
},
"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",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
}
},
"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"
],
"title": "HDR Limit",
"category": "Video Quality"
},
"hdr_measurement": {
"type": "object",
"description": "Check each decoded frame in its native bit depth to calculate the MaxCLL and MaxFALL",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "HDR Measurement",
"category": "Video Quality"
},
"imf_conformance": {
"type": "object",
"required": [
"treat_warnings_as",
"check_package_integrity"
],
"description": "Check for IMF conformance",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_package_integrity": {
"description": "Perform basic consistency checking of IMF assets",
"title": "Check Package Integrity",
"type": "boolean",
"default": true
},
"checksum_calculations": {
"description": "Check package list asset hashes",
"title": "Perform Checksum Calculations",
"type": "boolean",
"default": false
}
},
"if": {
"not": {
"properties": {
"check_package_integrity": {
"const": false
}
}
},
"then": {
"required": [
"checksum_calculations"
]
}
},
"title": "IMF Conformance",
"category": "Distribution and Broadcast"
},
"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"
}
}
},
"title": "Integrated Loudness (inc Dialog Gating)",
"category": "Audio Quality"
},
"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"
}
},
"title": "iTunes Compatibility",
"category": "Distribution and Broadcast"
},
"letterboxing": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"letterboxing_pillarboxing": {
"const": false
}
}
}
},
"then": {
"required": [
"aspect_ratio",
"tolerance"
],
"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"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
}
],
"properties": {
"active_picture_ratio_value": {
"type": "integer",
"title": "Active picture aspect ratio must be :",
"description": "Select from a number of common aspect ratios",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"name": "4:3",
"value": 0
},
{
"name": "14:9",
"value": 1
},
{
"name": "16:9",
"value": 2
},
{
"name": "1.85:1",
"value": 3
},
{
"name": "2.35:1",
"value": 4
},
{
"name": "2.39:1",
"value": 5
},
{
"name": "2.40:1",
"value": 6
}
]
},
"aspect_ratio": {
"type": "integer",
"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",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Defined aspect ratio",
"value": 0
},
{
"name": "Custom aspect ratio",
"value": 1
},
{
"name": "Defined number of lines",
"value": 2
}
]
},
"bit_depth": {
"title": "Bit Depth",
"$ref": "#/definitions/video_bit_depth"
},
"custom_aspect_ratio_denominator": {
"type": "integer",
"title": "Custom aspect ratio denominator",
"description": "Specify the required custom aspect ratio",
"default": 0,
"minimum": 1
},
"custom_aspect_ratio_numerator": {
"type": "number",
"title": "Custom aspect ratio numerator",
"description": "Specify the required custom aspect ratio",
"default": 0,
"minimum": 0
},
"custom_level": {
"type": "boolean",
"title": "Custom Black Level",
"description": "Use custom luminance level (Y) for non-active picture area",
"default": false
},
"letterboxing_pillarboxing": {
"type": "boolean",
"title": "Detect and report letterboxing/pillarboxing violations",
"description": "This test is used to detect if video content has the correct letterboxing and/or pillarboxing.",
"default": false
},
"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"
},
"level_8_bit": {
"title": "Black Level",
"$ref": "#/definitions/level_8_bit"
},
"lines_required_left_right": {
"type": "integer",
"title": "Set the number of required black lines at the left/right",
"description": "This allows the number of required black lines at the left/right to be set to any value.",
"default": 0,
"minimum": 0
},
"lines_required_top_bottom": {
"type": "integer",
"title": "Set the number of required black lines at the top/bottom",
"description": "This allows the number of required black lines at the top/bottom to be set to any value.",
"default": 0,
"minimum": 0
},
"report_blanking": {
"type": "boolean",
"title": "Detect and report all changes in blanking",
"description": "Will raise info alerts detailing the number of black lines bordering the active picture content",
"default": false
},
"tolerance": {
"type": "integer",
"title": "Tolerance",
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "LetterboxingTest",
"category": "Video Quality"
},
"luma_chroma_levels": {
"type": "object",
"description": "Check the Y, U and V levels of the video are within the given limits",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
],
"title": "Luma/Chroma Levels",
"category": "Video Quality"
},
"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"
}
}
},
"title": "Loudness Range (LUFS)",
"category": "Audio Quality"
},
"macro_block": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"description": "Check for macroblocking artifacts where the macroblock edge is clearly visible",
"properties": {
"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"
}
},
"required": [
"quality_score",
"averaged_over",
"duration_units"
],
"title": "MacroBlockTest",
"category": "Video Quality"
},
"media_offline": {
"type": "object",
"description": "Test for the presence of a media offline slate",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "Media Offline",
"category": "Video Quality"
},
"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"
}
}
},
"title": "Minimum Level",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Momentary Loudness",
"category": "Audio Quality"
},
"deep_mxf": {
"type": "object",
"properties": {
"active_format_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"allowed_formats": {
"type": "string",
"title": "AFD Information Byte Values",
"description": "A comma separated list can be provided for multiple values e.g. 4,36,68,76"
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"allowed_formats"
]
}
}
]
},
"as11_uk_dpp_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AS-11 UK DPP Metadata",
"description": "Test MXF structural and descriptive metadata against selected shim",
"default": false
},
"shim": {
"type": "integer",
"title": "AS-11 UK DPP Shim",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Auto",
"value": 0
},
{
"name": "SD",
"value": 1
},
{
"name": "HD",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"shim"
]
}
}
]
},
"as11_xprofile": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"embedded_xml_documents": {
"type": "integer",
"title": "Embedded XML Documents",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "XML DM for Programmes",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"title": "AMWA AS-11 Rule Blocks",
"default": false,
"descriptiomn": "Compliance checking to AMWA AS-11 X profile specifications"
},
"extra_audio_layout_modes": {
"type": "integer",
"title": "Extra Audio Layout Modes",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Mode 1",
"value": 1
},
{
"name": "Modes 1 and 2",
"value": 2
}
]
},
"file_format_specification_identification_label": {
"type": "integer",
"title": "Specification Identification",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Blocks_FF_1",
"value": 1
},
{
"name": "Blocks_FF_2",
"value": 2
},
{
"name": "Blocks_FF_5_WIP",
"value": 3
},
{
"name": "Blocks_FF_6_WIP",
"value": 4
},
{
"name": "Blocks_FF_11_WIP",
"value": 5
}
]
},
"picture_essence_constraints": {
"type": "integer",
"title": "Picture Essence Constraints",
"default": 0,
"enum": [
0,
1,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "X1 (AVC)",
"value": 1
},
{
"name": "X9 (AVC)",
"value": 5
}
]
},
"rules": {
"type": "array",
"title": "AMWA AS-11 Rules",
"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": [
{
"name": "Strict Frame Wrapping",
"value": "STRICT_FRAME_WRAPPING"
},
{
"name": "One-to-one Track Mapping",
"value": "ONE_TO_ONE_TRACK_MAPPING"
},
{
"name": "Segment The Essence Container",
"value": "SEGMENT_THE_ESSENCE_CONTAINER"
},
{
"name": "Index Each Essence Container Segment",
"value": "INDEX_EACH_ESSENCE_CONTAINER_SEGMENT"
},
{
"name": "Generic Container",
"value": "GENERIC_CONTAINER"
},
{
"name": "MXF Indexing and Partitioning (VBE or CBE)",
"value": "MXF_INDEXING_AND_PARTITIONING"
},
{
"name": "MXF Indexing and Partitioning for VBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE"
},
{
"name": "MXF Indexing and Partitioning for CBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE"
},
{
"name": "One Picture Track",
"value": "ONE_PICTURE_TRACK"
},
{
"name": "AVC byte Stream Format Picture Essence",
"value": "AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE"
},
{
"name": "ST831-3 mapping",
"value": "ST831_3_MAPPING"
},
{
"name": "One Soundfield Group per Sound Track",
"value": "ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK"
},
{
"name": "Uncompressed 24-bit PCM Audio at 48kHz",
"value": "UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ"
},
{
"name": "Constrained ST382 Wave PCM Mapping",
"value": "CONSTRAINED_ST382_WAVE_PCM_MAPPING"
},
{
"name": "Audio Layout",
"value": "AUDIO_LAYOUT"
},
{
"name": "Audio Layout [X8]",
"value": "AUDIO_LAYOUT_X8"
},
{
"name": "AS-11 Segmentation DM",
"value": "AS11_SEGMENTATION_DM"
},
{
"name": "Specification Identification",
"value": "SPECIFICATION_IDENTIFICATION"
},
{
"name": "Specification Identification [X7]",
"value": "SPECIFICATION_IDENTIFICATION_X7"
},
{
"name": "Specification Identification [X8]",
"value": "SPECIFICATION_IDENTIFICATION_X8"
},
{
"name": "Specification Identification [X9]",
"value": "SPECIFICATION_IDENTIFICATION_X9"
},
{
"name": "Timecode Track Presence",
"value": "TIMECODE_TRACK_PRESENCE"
},
{
"name": "Constrained Timecode Track in Material Package",
"value": "CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE"
},
{
"name": "Timecode Mode Signalling",
"value": "TIMECODE_MODE_SIGNALLING"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"rules",
"embedded_xml_documents",
"extra_audio_layout_modes",
"file_format_specification_identification_label",
"picture_essence_constraints"
]
}
}
]
},
"aspect_ratio": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Aspect Ratio",
"description": "Ensure that the given aspect ratio is present in the picture essence descriptor",
"default": false
},
"ratio": {
"title": "Ratio",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"audio_locked": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"value": {
"type": "boolean",
"title": "Locked / Unlocked",
"default": true,
"titleMap": [
{
"name": "Locked",
"value": true
},
{
"name": "Unlocked",
"value": false
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"audio_ref_level": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Ref Level",
"description": "Check the value of the Audio Ref Level item in the Generic Sound Essence Descriptor(s)",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"audio_sampling_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Sampling Rate",
"description": "Check the value of the Audio Sampling Rate item in the Generic Sound Essence Descriptor(s)",
"default": false
},
"options": {
"type": "number",
"description": "The audio sampling rate in Hz, e.g. 48000",
"suffix": "Hz"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"avc_average_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Average Bit Rate",
"description": "Check the value of the Average Bit Rate item within the AVC Video SubDescriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Max Bit Rate",
"description": "Check the value of the Maximum Bit Rate item within the AVC Video SubDescriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Coded Content Kind",
"description": "Check the value of the Coded Content Kind item within the AVC Video SubDescriptor",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive Frame",
"value": 1
},
{
"name": "Interlaced Field",
"value": 2
},
{
"name": "Interlaced Frame",
"value": 3
},
{
"name": "Interlaced Field and Frame",
"value": 4
},
{
"name": "Any",
"value": 5
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
}
]
},
"avc_decoding_delay": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"delay": {
"type": "integer",
"title": "Decoding Delay",
"default": 0
},
"enable": {
"type": "boolean",
"title": "AVC Decoding Delay",
"description": "Check the value of the Decoding Delay item within the AVC Video SubDescriptor",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"delay"
]
}
}
]
},
"avc_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Identical GOP Indicator",
"description": "Check the value of the AVC Identical GOP Indicator item within the AVC Video SubDescriptor",
"default": false
},
"value": {
"type": "boolean",
"title": "Flag Value",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"avc_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum Count",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum GOP",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS and PPS",
"description": "Check various profile and level flags within the AVC Video SubDescriptor.",
"default": false
},
"level": {
"type": "integer",
"title": "Level",
"default": 0
},
"ppsflag": {
"type": "integer",
"title": "PPS Flag",
"default": 0
},
"profile": {
"type": "integer",
"title": "Profile",
"default": 0
},
"profileconstraint": {
"type": "integer",
"title": "Profile Constrain",
"default": 0
},
"spsflag": {
"type": "integer",
"title": "SPS Flag",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"level",
"ppsflag",
"profile",
"profileconstraint",
"spsflag"
]
}
}
]
},
"average_bytes_per_second": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Average Bytes per Second",
"description": "Check the value of the Average Bytes Per Second item in the Wave Audio Essence Descriptor(s)",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "bytes per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"basic_avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS/PPS",
"default": false
}
}
},
"basic_operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MXF Operational Pattern",
"default": false
},
"partition_closed": {
"type": "boolean",
"title": "Partition must be Closed",
"default": false
},
"partition_complete": {
"type": "boolean",
"title": "Partition must be Complete",
"default": false
},
"pattern": {
"type": "integer",
"title": "Operational Pattern",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "OP-1a",
"value": 0
},
{
"name": "OP Atom",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pattern",
"partition_closed",
"partition_complete"
]
}
}
]
},
"body_partition_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Count",
"description": "Enforce a minimum or maximum number of body partitions in the file",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_duration": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Duration",
"description": "Scan each body partition to ensure that its duration (measured in edit units) is within a given range",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_length": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Length",
"description": "Scan each body partition to ensure that its length (measured in bytes) is within a given range",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Status",
"description": "Ensure that the body partition is restricted to a given combination of open/closed and complete/incomplete",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"channel_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"channels": {
"type": "integer",
"title": "Number Of Channels",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"channels"
]
}
}
]
},
"color_range": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"range": {
"type": "integer",
"title": "Color Range",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"range"
]
}
}
]
},
"colorsiting": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"colorsiting": {
"type": "integer",
"title": "Color Siting",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
255
],
"titleMap": [
{
"name": "CoSiting",
"value": 0
},
{
"name": "HorizontalMidpoint",
"value": 1
},
{
"name": "ThreeTap",
"value": 2
},
{
"name": "Quincunx",
"value": 3
},
{
"name": "Rec601",
"value": 4
},
{
"name": "LineAlternating",
"value": 5
},
{
"name": "VerticalMidpoint",
"value": 6
},
{
"name": "Unknown",
"value": 255
}
]
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"colorsiting"
]
}
}
]
},
"component_depth": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"depth": {
"type": "integer",
"title": "Component Depth",
"default": 0,
"suffix": "bits per sample",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Component Depth",
"description": "Check the Component Depth item in the CDCI Picture Essence Descriptor",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"depth"
]
}
}
]
},
"dialnorm": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "DialNorm",
"description": "Check the value of the Dial Norm item in the Generic Sound Essence Descriptor(s)",
"default": false
},
"test": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "integer",
"title": "Maximum",
"default": 31,
"minimum": 1,
"maximum": 31
},
"min": {
"type": "integer",
"title": "Minimum",
"default": 1,
"minimum": 1,
"maximum": 31
}
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"display_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Display Frame Size",
"description": "Restrict the values of 'Display Width' and 'Display Height' in the picture essence descriptor",
"default": false
},
"frame": {
"title": "Frame Size",
"suffix": "(wxh)",
"$ref": "#/definitions/pic_frame_size"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame"
]
}
}
]
},
"edit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Edit Rate",
"description": "Ensure that the given edit rate is present in the picture essence descriptor",
"default": false
},
"ratio": {
"title": "Ratio",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
],
"titleMap": [
{
"name": "GC SMPTE 381M MPEG Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"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": [
{
"name": "GC AVC Byte Stream VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01"
},
{
"name": "GC MPEG-ES VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_location": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Essence Location",
"description": "Restrict the places in the file where essence may appear",
"default": false
},
"test": {
"title": "Location Test",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"essence_wrapping": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Wrapping Type",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "Clip Wrapped",
"value": 0
},
{
"name": "Frame Wrapped",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"field_dominance": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Field Dominance",
"description": "Examine the FieldDominance item in the Generic Picture Essence Descriptor",
"default": false
},
"firstfield": {
"type": "integer",
"title": "First Field",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Field 1 First",
"value": 0
},
{
"name": "Field 2 First",
"value": 1
},
{
"name": "No Field Dominance Flag ",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"firstfield"
]
}
}
]
},
"footer_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Footer Partition Status",
"description": "Ensure that the footer partition is restricted to a given combination of open/closed and complete/incomplete",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"header_fill": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes Of KLV Fill after Header Metadata",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Fill Test",
"description": "Check for a KLV fill item of at least the specified length, following the header metadata",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes Of Header Metadata including KLV Fill",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Metadata Size",
"description": "Check the value of HeaderByteCount in the header partition",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"test": {
"title": "Partition Status Test",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"index_table": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"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"
},
"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"
},
"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": {
"type": "boolean",
"title": "Edit Unit Bytecount Is Constant",
"description": "Ensure that only a single value is ever used"
},
"enable": {
"type": "boolean",
"title": "Index Table Test",
"description": "Check each index table segment in isolation",
"default": false
},
"forward_index_direction": {
"title": "Forward Index Direction",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"index_entry_array": {
"title": "Index Entry Array",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Absent",
"value": 1
},
{
"name": "Present",
"value": 2
}
]
},
"single_essence_location": {
"title": "Single Essence Location",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"single_index_location": {
"title": "Single Index Location",
"description": "Flags are described in Amendment 2:2012 to SMPTE ST 377M",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"slicecount": {
"type": "integer",
"title": "Slice Count",
"description": "Number of slices in each index entry, minus one"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Index Table Location",
"description": "Restrict the places in the file where index table segments may appear",
"default": false
},
"test": {
"title": "Location Test",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"kagsize": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "KAG Size Test",
"description": "Ensure that the file offset of every partition pack matches the stated alignment",
"default": false
},
"size": {
"type": "integer",
"title": "KAG Size",
"default": 0,
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"size"
]
}
}
]
},
"material_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Material Package Timecode Test",
"description": "Ensures that there is only one timecode track in the Material Package",
"default": false
},
"test": {
"title": "Timecode Track Test",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Bit Rate",
"description": "Check the value of the BitRate item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"$ref": "#/definitions/minmax_bits"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"default": 0,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive",
"value": 1
},
{
"name": "Interlaced",
"value": 2
},
{
"name": "Mixed",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
},
"mpeg_constant_bpicture_flag": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Constant B Picture Flag",
"description": "Check the value of the ConstantBframes item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Extended Bool Test",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Identical GOP Indicator",
"description": "Check the value of the IdenticalGOP item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Extended Bool Test",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max B Picture Count",
"description": "Check the value of the BPictureCount item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "B pictures",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max GOP Size",
"description": "Check the value of the MaxGOP item within the MPEG-2 Video Descriptor",
"default": false
},
"test": {
"title": "Min Max Test",
"suffix": "frames",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Operational Pattern",
"default": false,
"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"
},
"essence_containers": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-track",
"value": 1
},
{
"name": "Uni-track",
"value": 2
}
]
},
"essence_reference": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "External",
"value": 1
},
{
"name": "Internal",
"value": 2
}
]
},
"essence_streaming": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Non-Streamable",
"value": 1
},
{
"name": "Streamable",
"value": 2
}
]
},
"essence_tracks": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-essence",
"value": 1
},
{
"name": "Single-essence",
"value": 2
}
]
},
"generalized": {
"type": "array",
"title": "Generalized",
"items": {
"type": "string",
"enum": [
"Op1a",
"Op1b",
"Op1c",
"Op2a",
"Op2b",
"Op2c",
"Op3a",
"Op3b",
"Op3c"
]
}
},
"material_package": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-source",
"value": 1
},
{
"name": "Single-source",
"value": 2
}
]
},
"specialized": {
"type": "boolean",
"title": "OP-Atom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"essence_reference",
"essence_streaming",
"essence_containers",
"specialized",
"material_package",
"essence_tracks"
]
}
}
]
},
"padding_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Padding Bits",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"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",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"picture_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"items": {
"type": "integer",
"default": 0,
"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": [
{
"name": "AVCI-50-1080-60-I",
"value": 0
},
{
"name": "AVCI-50-1080-50-I",
"value": 1
},
{
"name": "AVCI-50-1080-30-P",
"value": 2
},
{
"name": "AVCI-50-1080-25-P",
"value": 3
},
{
"name": "AVCI-50-720-60-P",
"value": 4
},
{
"name": "AVCI-50-720-50-P",
"value": 5
},
{
"name": "AVCI-100-1080-60-I",
"value": 6
},
{
"name": "AVCI-100-1080-50-I",
"value": 7
},
{
"name": "AVCI-100-1080-30-P",
"value": 8
},
{
"name": "AVCI-100-1080-25-P",
"value": 9
},
{
"name": "AVCI-100-720-60-P",
"value": 10
},
{
"name": "AVCI-100-720-50-P",
"value": 11
},
{
"name": "AVC-HIGH-10-INTRA-UNCS",
"value": 12
},
{
"name": "AVC-HIGH-422-INTRA-UNCS",
"value": 13
},
{
"name": "MPEG2-MP-HL-LONGGOP",
"value": 14
},
{
"name": "MPEG2-422P-HL-LONGGOP",
"value": 15
},
{
"name": "MPEG2-MP-H14-LONGGOP",
"value": 16
},
{
"name": "D10-50-625-50",
"value": 17
},
{
"name": "D10-50-525-60",
"value": 18
},
{
"name": "D10-40-625-50",
"value": 19
},
{
"name": "D10-40-525-60",
"value": 20
},
{
"name": "D10-30-625-50",
"value": 21
},
{
"name": "D10-30-525-60",
"value": 22
}
]
}
},
"enable": {
"type": "boolean",
"title": "Picture Essence Coding",
"description": "Ensure that the picture essence coding label is one of the given value(s)",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"picture_offsets": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"displayftwo": {
"type": "integer",
"title": "Display F2",
"default": 0,
"minimum": 0
},
"displayx": {
"type": "integer",
"title": "Display X",
"default": 0,
"minimum": 0
},
"displayy": {
"type": "integer",
"title": "Display Y",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"imageend": {
"type": "integer",
"title": "Image End",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"imagestart": {
"type": "integer",
"title": "Image Start",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"sampledx": {
"type": "integer",
"title": "Sampled X",
"default": 0,
"minimum": 0
},
"sampledy": {
"type": "integer",
"title": "Sampled Y",
"default": 0,
"minimum": 0
},
"storedftwo": {
"type": "integer",
"title": "Stored F2",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"storedftwo",
"displayftwo",
"sampledx",
"sampledy",
"displayx",
"displayy",
"imagestart",
"imageend"
]
}
}
]
},
"quantization_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Number Of Bits",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Quantization Bits",
"description": "Check the value of the Quantization Bits item in the Generic Sound Essence Descriptor(s)",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"reference_levels": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"black": {
"type": "integer",
"title": "Black",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"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)",
"default": false
},
"white": {
"type": "integer",
"title": "White",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"black",
"white"
]
}
}
]
},
"rip_presence": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "RIP Presence",
"description": "Ensure a Random Index Pack is present at the end of the file",
"default": false
}
}
},
"runin": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"max_bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_bytes"
]
}
}
]
},
"sampled_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Sampled Frame Size",
"description": "Restrict the values of 'Sampled Width' and 'Sampled Height' in the picture essence descriptor",
"default": false
},
"frame": {
"title": "Frame Size",
"suffix": "(wxh)",
"$ref": "#/definitions/pic_frame_size"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame"
]
}
}
]
},
"sdti_timecode_continuity": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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)",
"default": false
}
}
},
"signal_standard": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Signal Standard",
"description": "Examine the Signal Standard item in the Generic Picture Essence Descriptor, indicating the source of the video essence",
"default": false
},
"standard": {
"type": "integer",
"title": "Standard",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"name": "0: No Specific Underlying Standard",
"value": 0
},
{
"name": "1: ITU-R BT.601 and BT.656, SMPTE 125M",
"value": 1
},
{
"name": "2: ITU-R BT.1358 and ITU-R BT.799-3, SMPTE 293M",
"value": 2
},
{
"name": "3: SMPTE 347M (540 Mbps Mappings)",
"value": 3
},
{
"name": "4: SMPTE 274M (1125 Line)",
"value": 4
},
{
"name": "5: SMPTE 296M (750 Line Progressive)",
"value": 5
},
{
"name": "6: SMPTE 349M (1485 Mbps Mappings)",
"value": 6
},
{
"name": "7: SMPTE 428-1 DCDM",
"value": 7
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"standard"
]
}
}
]
},
"sound_element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"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": [
{
"name": "GC SMPTE 382M 8-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x"
},
{
"name": "GC SMPTE 382M 16-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"sound_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"items": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "PCM",
"value": 0
},
{
"name": "Default Uncompressed",
"value": 1
},
{
"name": "Dolby E",
"value": 2
}
]
}
},
"enable": {
"type": "boolean",
"title": "Sound Essence Coding",
"description": "Ensure that the sound essence coding label is one of the given values",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"sound_essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"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"
},
"enable": {
"type": "boolean",
"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",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"default": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"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": [
{
"name": "GC BWF Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00"
},
{
"name": "GC BWF Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00"
},
{
"name": "GC AES-3 Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00"
},
{
"name": "GC AES-3 Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"source_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Source Package Timecode Test",
"description": "Ensure that there is only one timecode track in the File Source Package",
"default": false
},
"test": {
"title": "Timecode Track Test",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"stored_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Stored Frame Size",
"description": "Restrict the values of 'Stored Width' and 'Stored Height' in the picture essence descriptor",
"default": false
},
"frame": {
"title": "Frame Size",
"suffix": "(wxh)",
"$ref": "#/definitions/pic_frame_size"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame"
]
}
}
]
},
"subsampling": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Subsampling",
"description": "Check the Horizontal and Vertical Subsampling items in the CDCI Picture Essence Descriptor",
"default": false
},
"horizontal": {
"type": "integer",
"title": "Horizontal",
"default": 0,
"minimum": 0
},
"vertical": {
"type": "integer",
"title": "Vertical",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"horizontal",
"vertical"
]
}
}
]
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"version": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Version Test",
"description": "Check for a specific MXF version. All versions within a file (inside each Preface and Partition Pack) are tested",
"default": false
},
"mxf_version": {
"type": "integer",
"title": "MXF Version",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "SMPTE 377 2004",
"value": 0
},
{
"name": "SMPTE 377 2011",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mxf_version"
]
}
}
]
},
"video_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Descriptor Type",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "MPEG",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Descriptor",
"description": "Ensure that the Picture Essence Descriptor is an MPEG-2 Video Descriptor as specified in SMPTE 381M",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"video_line_map": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"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",
"default": false
},
"linemaps": {
"type": "string",
"title": "Line Maps",
"description": "comma-separated e.g. 21, 584"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"linemaps"
]
}
}
]
},
"video_subdescriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Subdescriptor Type",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "AVC",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Subdescriptor",
"description": "Check for the presence of an AVC SubDescriptor within the Picture Essence Descriptor",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
}
},
"title": "Deep MXF Tests",
"category": "Deep MXF Tests"
},
"netflix_photon": {
"type": "object",
"description": "Validate IMF assets using Netflix Photon",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "Netflix Photon",
"category": "Distribution and Broadcast"
},
"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"
}
}
},
"title": "Nielsen Watermark",
"category": "Distribution and Broadcast"
},
"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"
}
}
},
"title": "Peak Level",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Phase Coherence",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "PPM Level",
"category": "Audio Quality"
},
"pse_harding": {
"type": "object",
"description": "Harding",
"required": [
"standard"
],
"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
}
},
"title": "PSE Harding Test",
"category": "Video Quality"
},
"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."
}
},
"title": "PSE Test (Proprietary)",
"category": "Video Quality"
},
"rgb_gamut": {
"type": "object",
"description": "Detect if the RGB color values are within the given range",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"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"
],
"title": "RGB Gamut",
"category": "Video Quality"
},
"video_segment_detection": {
"type": "object",
"required": [
"custom_level",
"silence",
"duration",
"units",
"percentage"
],
"description": "Detect video segments within the content",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
}
],
"properties": {
"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"
}
},
"title": "Video Segment Detection",
"category": "Video Quality"
},
"service_count": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_any": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of services of any type",
"description": "Check the number of services of any type in the file. E.g. CC 1 to CC 4 and Service 1 to Service 6",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of services expected",
"type": "string",
"description": "The specified service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c608": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-608 services",
"description": "Check number of CEA-608 services in the file. E.g. CC 1 to CC 4",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-608 services expected",
"type": "string",
"description": "The specified CEA-608 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c708": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-708 services",
"description": "Check number of CEA-708 services in the file. E.g. Service 1 to Service 6",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-708 services expected",
"type": "string",
"description": "The specified CEA-708 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
},
"title": "Service Count Test",
"category": "Service Count"
},
"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"
}
}
},
"title": "Short-term Loudness",
"category": "Audio Quality"
},
"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"
}
}
},
"title": "Silence",
"category": "Audio Quality"
},
"single_color_frame": {
"type": "object",
"description": "Detect sequences where the entire frame is a single color",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"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."
},
"ignore_black_frames": {
"title": "Ignore black frames",
"type": "boolean",
"default": false,
"description": "Whether to ignore black frames."
},
"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"
}
}
},
"title": "Single Color Frame",
"category": "Video Quality"
},
"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"
]
}
}
],
"title": "Discrete Subtitle Test",
"category": "Caption Checks"
},
"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"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
},
"title": "Syntax Checks",
"category": "Syntax Checks"
},
"tek_mos": {
"type": "object",
"description": "Non-reference based perceptual video quality measurement for natural video content",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"properties": {
"frame_sampling_type": {
"const": 1
}
}
},
"then": {
"required": [
"frames_to_be_sampled"
]
}
}
],
"properties": {
"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",
"$ref": "#/definitions/int32",
"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",
"$ref": "#/definitions/int32",
"minimum": 0,
"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
}
},
"required": [
"frame_sampling_type",
"clip_threshold_score",
"clip_threshold_percentage",
"duration_threshold_score",
"duration_threshold_score_percentage",
"duration_averaged_over",
"deinterlace",
"region_of_interest"
],
"title": "TekMOS",
"category": "Video Quality"
},
"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"
}
}
},
"title": "ToneTest",
"category": "Audio Quality"
},
"upconversion_detection": {
"type": "object",
"description": "Detect if the input video stream has been upconverted from a lower resolution",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "Upconversion Detection Test",
"category": "Video Quality"
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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",
"description": "The allowed buffer sizes as a comma separated list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "KiB"
},
"minimum": {
"title": "Minimum",
"type": "number",
"minimum": 0,
"suffix": "KiB"
},
"maximum": {
"title": "Maximum",
"type": "number",
"minimum": 0,
"suffix": "KiB"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
}
]
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"mp2v"
]
}
}
}
},
"then": {
"required": [
"mpeg2_profile",
"mpeg2_level"
]
}
},
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"ap "
]
}
}
}
},
"then": {
"required": [
"prores_profile"
]
}
}
]
}
},
"video_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"$ref": "#/definitions/timecode"
},
"spread": {
"title": "Spread (+ or -)",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"$ref": "#/definitions/timecode"
},
"maximum": {
"title": "Maximum",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"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)"
}
]
}
},
"custom": {
"title": "Custom frame rate(s)",
"type": "string",
"suffix": "fps"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"properties": {
"custom": {
"minLength": 1
}
},
"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"
}
]
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"properties": {
"options": {
"minLength": 1
}
},
"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",
"description": "The allowed bit rates as a comma separted list, e.g. '<5,10,>=25'",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"properties": {
"ratios": {
"minItems": 1
}
},
"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)"
}
]
}
},
"custom": {
"title": "Custom",
"type": "number"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"ratios"
],
"properties": {
"ratios": {
"minItems": 1
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"subsampling"
],
"properties": {
"subsampling": {
"minItems": 1
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"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
}
}
}
}
}
},
"title": "Video Metadata",
"category": "Video Metadata"
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
},
"media_layouts": {
"description": "Media Layouts",
"type": [
"object",
"null"
],
"properties": {
"global_layout": {
"title": "Global layout",
"$ref": "#/definitions/media_layout"
},
"user_layout": {
"title": "User layout",
"$ref": "#/definitions/media_layout"
}
},
"required": [
"global_layout",
"user_layout"
],
"nullable": true
}
},
"additionalProperties": false,
"required": [
"name",
"tests",
"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"
}
}
},
"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"
]
}
]
},
"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",
"properties": {
"enable": {
"title": "Codec Syntax",
"description": "Run MPEG-2, AVC/H.264/MPEG-4 and Dolby E codec syntax checks",
"type": "boolean",
"default": false
}
},
"required": [
"enable"
]
}
}
},
"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": {
"codec": {
"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",
"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"
],
"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": {
"title": "MPAA",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"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"
}
]
}
},
"ustv": {
"title": "US TV",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"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"
}
]
}
},
"reserved": {
"title": "Reserved for Non-North American ratings",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"reserved"
]
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"anyOf": [
{
"required": [
"ustv"
],
"properties": {
"ustv": {
"minItems": 1
}
}
},
{
"required": [
"mpaa"
],
"properties": {
"mpaa": {
"minItems": 1
}
}
},
{
"properties": {
"reserved": {
"const": true
}
}
}
]
}
}
]
}
}
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
}
},
"additionalProperties": false,
"required": [
"name",
"tests",
"engine_version"
]
}
QC Engine Version 2023.3.2
{
"$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": [
"audio_track",
"dolbye_program",
"description",
"control"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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": [
"audio_track",
"dolbye_program",
"sensitivity"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"sensitivity": {
"$ref": "#/definitions/sensitivity"
}
}
},
"clipping_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"sensitivity",
"percentage_check"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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_track": {
"title": "Mix",
"type": "integer",
"description": "Audio mix to test",
"minimum": 1,
"default": 1
},
"dolbye_program": {
"title": "DolbyE Program",
"type": "integer",
"description": "DolbyE program to test (only for DolbyE 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": [
"audio_track",
"dolbye_program",
"minimum",
"maximum"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"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')",
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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
}
},
"allOf": [
{
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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": [
"audio_track",
"dolbye_program",
"silent_elsewhere"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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": [
"audio_track",
"dolbye_program",
"tone_type"
],
"allOf": [
{
"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"
]
}
}
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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"
}
}
},
"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"
}
]
}
}
},
{
"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"
]
}
}
]
}
]
},
"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": "Cloud engine version",
"type": [
"string",
"null"
],
"nullable": true
},
"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",
"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"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/blackframe_range"
}
}
},
"allOf": [
{
"required": [
"silence",
"custom_level"
]
},
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"dolbye_program"
]
}
}
]
},
"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"
}
}
},
"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",
"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"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/freezeframe_range"
}
}
},
"allOf": [
{
"required": [
"silence",
"ignore_black_frames"
]
},
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"dolbye_program"
]
}
}
]
},
"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": {
"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",
"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"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
}
},
"allOf": [
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"dolbye_program"
]
}
},
{
"required": [
"silence"
]
}
]
},
"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",
"properties": {
"enable": {
"title": "Codec Syntax",
"description": "Run MPEG-2, AVC/H.264/MPEG-4 and DolbyE codec syntax checks",
"type": "boolean",
"default": false
}
},
"required": [
"enable"
]
}
}
},
"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 ",
"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": "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": {
"codec": {
"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",
"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"
],
"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": {
"title": "MPAA",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"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"
}
]
}
},
"ustv": {
"title": "US TV",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"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"
}
]
}
},
"reserved": {
"title": "Reserved for Non-North American ratings",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"reserved"
]
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"anyOf": [
{
"required": [
"can_eng_lang"
]
},
{
"required": [
"can_fre_lang"
]
},
{
"required": [
"ustv"
]
},
{
"required": [
"mpaa"
]
},
{
"properties": {
"reserved": {
"const": true
}
}
}
]
}
}
]
}
}
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
}
},
"additionalProperties": false,
"required": [
"name",
"tests"
]
}
QC Engine VErsion 2023.1.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": [
"audio_track",
"dolbye_program",
"description",
"control"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"description": {
"title": "Audio Description Channel",
"type": "integer",
"minimum": 1
},
"control": {
"title": "Control Channel",
"type": "integer",
"minimum": 1
},
"advanced": {
"title": "Advanced",
"type": "boolean",
"default": false
},
"ctrl_frequency": {
"title": "Control channel Frequency",
"type": "number",
"default": 1280,
"suffix": "Hz"
},
"ctrl_frequency_tolerance": {
"title": "Control channel Frequency Tolerance",
"type": "number",
"default": 20,
"suffix": "Hz"
},
"ctrl_amplitude": {
"title": "Control channel Amplitude",
"type": "number",
"default": -36,
"suffix": "dBFS"
},
"ctrl_amplitude_tolerance": {
"title": "Control channel Amplitude Tolerance",
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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": [
"audio_track",
"dolbye_program",
"sensitivity"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"sensitivity": {
"$ref": "#/definitions/sensitivity"
}
}
},
"clipping_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"sensitivity"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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": "integer",
"description": "Specify custom value for successive samples which must be equal before the sequence is deemed to contain clipping",
"minimum": 1,
"suffix": "# samples"
}
},
"allOf": [
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity"
]
}
}
]
},
"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_track": {
"title": "Mix",
"type": "integer",
"description": "Audio mix to test",
"minimum": 1,
"default": 1
},
"dolbye_program": {
"title": "DolbyE Program",
"type": "integer",
"description": "DolbyE program to test (only for DolbyE 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": [
"audio_track",
"dolbye_program",
"minimum",
"maximum"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "ITU 1770-4 / EBU I"
},
{
"value": 1,
"name": "ITU 1770-1"
},
{
"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",
"required": [
"audio_track",
"dolbye_program"
],
"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')",
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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
}
},
"allOf": [
{
"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",
"required": [
"audio_track",
"dolbye_program"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"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": [
"audio_track",
"dolbye_program",
"silent_elsewhere"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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"
],
"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"
}
]
},
"tone_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"tone_type",
"tone_elsewhere"
],
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"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"
}
}
},
"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"
}
]
}
}
},
{
"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"
]
}
}
]
}
]
},
"tone_segment": {
"type": "object",
"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": {
"description": "Option to aggregate alerts of the same ID",
"type": [
"boolean",
"null"
],
"nullable": true
},
"aggregate_warning_limit": {
"description": "Amount of warning alerts with the same ID to be reported",
"type": [
"integer",
"null"
],
"nullable": true
},
"aggregate_error_limit": {
"description": "Amount of error alerts with the same ID to be reported",
"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": "Cloud engine version",
"type": [
"string",
"null"
],
"nullable": true
},
"treat_missing_media_as": {
"description": "What type of alerts missing media should generate, e.g. Info, Warning, Error, Fatal",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
},
{
"value": 3,
"name": "Fatal"
}
],
"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_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
],
"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": 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",
"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"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/blackframe_range"
}
}
},
"allOf": [
{
"required": [
"silence",
"custom_level"
]
},
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"dolbye_program"
]
}
}
]
},
"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"
}
}
},
"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"
}
}
}
},
"distribution_and_broadcast": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"itunes_compatibility_test": {
"type": "object",
"properties": {
"enable": {
"description": "Test several aspects of MOV file atom structure which are relevant for iTunes submission",
"title": "iTunes Compatibility",
"type": "boolean",
"default": false
}
}
}
}
},
"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": {
"anyOf": [
{
"required": [
"minimum"
]
},
{
"required": [
"maximum"
]
}
]
}
},
{
"required": [
"enable"
]
}
]
},
"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": {
"anyOf": [
{
"required": [
"minimum"
]
},
{
"required": [
"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",
"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"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
},
"ranges": {
"title": "Range",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/freezeframe_range"
}
}
},
"allOf": [
{
"required": [
"silence",
"ignore_black_frames"
]
},
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"dolbye_program"
]
}
}
]
},
"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"
}
}
}
},
"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": {
"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",
"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"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
}
},
"allOf": [
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"dolbye_program"
]
}
},
{
"required": [
"silence"
]
}
]
},
"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
},
"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"
]
}
}
]
},
"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",
"properties": {
"enable": {
"title": "Codec Syntax",
"description": "Run MPEG-2 and AVC/H.264/MPEG-4 codec syntax checks",
"type": "boolean",
"default": false
}
},
"required": [
"enable"
]
}
}
},
"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_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 ",
"avc1",
"hvc1",
"HFYU",
"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": "dv ",
"name": "DVC25"
},
{
"value": "avc1",
"name": "H.264/AVC"
},
{
"value": "hvc1",
"name": "H.265/HEVC"
},
{
"value": "HFYU",
"name": "HuffYUV"
},
{
"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"
}
]
}
}
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
]
}
},
"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",
"suffix": "wxh"
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"oneOf": [
{
"required": [
"options"
],
"not": {
"required": [
"custom"
]
}
},
{
"required": [
"custom"
],
"not": {
"required": [
"options"
]
}
}
]
}
},
"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_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"
],
"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": {
"title": "MPAA",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"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"
}
]
}
},
"ustv": {
"title": "US TV",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"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"
}
]
}
},
"reserved": {
"title": "Reserved for Non-North American ratings",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"reserved"
]
}
},
{
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"anyOf": [
{
"required": [
"can_eng_lang"
]
},
{
"required": [
"can_fre_lang"
]
},
{
"required": [
"ustv"
]
},
{
"required": [
"mpaa"
]
},
{
"properties": {
"reserved": {
"const": true
}
}
}
]
}
}
]
}
}
}
},
"additionalProperties": false,
"type": "object",
"description": "List of tests to run"
}
},
"additionalProperties": false,
"required": [
"name",
"tests"
]
}
Updated 11 months ago