Qualify is an award winning, cloud native, file based QC service designed for broadcasters, content creators and distributors who need to meet industry requirements for media delivery. Ideal for media QC checks for inbound content from creators or outbound content delivery to Netflix and Prime or public broadcasters who require strict compliance for:
- Format (codec, resolution, frame rate)
- Bitrate and audio channels configuration
- Video range, black levels, color gamut
- Specific layout (bars + black + program)
- Loudness levels (ATSC A/85, EBU R128)
- Quality levels (blockiness, letterboxing)
Custom Qualify test plan creation is available in the Encoding.com UI and complete API integration documentation is referenced below. Please see the Qualify User Guide for more test plan configuration details and a Complete List of Qualify QC Tests.
Media Format
Qualify Validation available only for mp4, cablelabs_mpegts, mainconcept_mxf, and mxf_op1a output formats. For qc_check format, You can use all single-bitrate media containers, Mpeg-DASH container, and all video and audio codecs.
Template name as identifier
Prior to 7.22 release Qualify Template parameter name used as identifier, after 7.22 release template identifier changed to the unique GUID.
Template name still can be used as identifier but it's not recommended because now name parameter isn't unique e.g. it will address the first template with provided name.
<?xml version="1.0"?>
<query>
<userid>[UserID]</userid> <!-- required-->
<userkey>[UserKey]</userkey> <!-- required-->
<action>AddMedia</action>
<source>[SourceFile|SourcePlaylist]</source><!-- required -->
<format>
<output>[mp4|cablelabs_mpegts|mainconcept_mxf|mxf_op1a]</output><!-- required -->
<qc>
<qc_qualify_validation>
<template_id>[TemplateGUID]</template_id><!-- required if template_json not specified -->
<template>[TemplateName]</template><!-- optional, deprecated -->
<template_json><![CDATA[
{
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
// package_layout params
},
"audio_layout": {
// audio_layout params
}
}
]]></template_json>
<sidecar>[SidecarURL_1]</sidecar>
<sidecar>[SidecarURL_2]</sidecar>
<!-- ... -->
<sidecar>[SidecarURL_N]</sidecar>
<report_destination>[ReportDestinationURL]</report_destination>
</qc_qualify_validation>
</qc>
<!-- format params -->
</format>
</query>
{
"query": {
"userid": "[UserID]", // required
"userkey": "[UserKey]", // required
"action": "AddMedia", // required
"source": "[SourceFile|SourcePlaylist]", // required
"format": {
"output": "[mp4|cablelabs_mpegts|mainconcept_mxf|mxf_op1a]", // required
"qc": {
"qc_qualify_validation": {
"template_id": "[TemplateGUID]", // required if template_json not specified
"template": "[TemplateName]", // optional, deprecated
"template_json": {
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
// package_layout params
},
"audio_layout": {
// audio_layout params
}
},
"sidecar": [
"SidecarURL_1",
"SidecarURL_2",
// ...
"SidecarURL_N"
],
"report_destination": "[ReportDestinationURL]"
}
}
// format params
}
}
}
<?xml version="1.0"?>
<query>
<userid>[UserID]</userid> <!-- required-->
<userkey>[UserKey]</userkey> <!-- required-->
<action>AddMedia</action>
<source>[SourceFile|SourcePlaylist]</source><!-- required -->
<format>
<output>qc_check</output><!-- required -->
<source_options>
<qc>
<qc_qualify_validation>
<template_id>[TemplateGUID]</template_id><!-- required if template_json not specified -->
<template>[TemplateName]</template><!-- optional, deprecated -->
<template_json><![CDATA[
{
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
// package_layout params
},
"audio_layout": {
// audio_layout params
}
}
]]></template_json>
<sidecar>[SidecarURL_1]</sidecar>
<sidecar>[SidecarURL_2]</sidecar>
<!-- ... -->
<sidecar>[SidecarURL_N]</sidecar>
<report_destination>[ReportDestinationURL]</report_destination>
</qc_qualify_validation>
</qc>
</source_options>
</format>
</query>
{
"query": {
"userid": "[UserID]", // required
"userkey": "[UserKey]", // required
"action": "AddMedia", // required
"source": "[SourceFile|SourcePlaylist]", // required
"format": {
"output": "qc_check", // required
"source_options": {
"qc": {
"qc_qualify_validation": {
"template_id": "[TemplateGUID]", // required if template_json not specified
"template": "[TemplateName]", // optional, deprecated
"template_json": {
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
// package_layout params
},
"audio_layout": {
// audio_layout params
}
},
"sidecar": [
"SidecarURL_1",
"SidecarURL_2",
// ...
"SidecarURL_N"
],
"report_destination": "[ReportDestinationURL]"
}
}
}
}
}
}
Parameter | Decription | Allowed Values | Default Value |
---|---|---|---|
template_id | Qualify Template GUID. | String | none |
template | Qualify Template name. Deprected | String | none |
template_json | Qualify Template JSON | Valid JSON | none |
sidecar | Template sidecar files array | Valid URL | none |
report_destination | Qualify QC report destination URL | Valid URL String can contain placeholder $media_id$ that will be replaced with ID of QC media | none |
For template_json parameter
- If parameter <template_json /> specified then <template_id /> and <template /> parameters will be ignored.
- It's not possible to refer to saved audio and package layouts by <id /> parameter.
- Template specified in <template_json /> parameter not saved in database.
Full Template Schema - 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"
]
}
Utilization of Template Schema Example:
User ID, User Key, and source file information will need to be filled in appropriately. This specific template pulls the "Integrated Loudness" and "Cadence" tests from the schema above.
{
"query": {
"userid": "<BLANK>",
"userkey": "<BLANK>",
"action": "AddMedia",
"notify_format": "json",
"source": “<BLANK>”,
"format": {
"output": "qc_check",
"source_options": {
"qc": {
"qc_qualify_validation": {
"template_json": {
"tests": {
"integrated_loudness": {
"treat_warnings_as": 1,
"audioconfigs": [
{
"audio_track": 1,
"dolbye_program": 1,
"level": -24,
"tolerance": 1.6,
"mode": 0,
"dialog_gating": false
}
]
},
"cadence": {
"treat_warnings_as": 1,
"cadence_must_be": 0,
"broken_cadence": true,
"report_all_cadences": true,
"poor_patterns": true
}
}
}
}
}
}
}
}
}
Full Output Report Schema Engine 2023.10.1
{
"$schema": "http://json-schema.org/schema#",
"title": "Report Schema",
"type": "object",
"description": "Represents a Qualify report",
"definitions": {
"result": {
"type": "object",
"properties": {
"type": {
"description": "Result type. 0: alert, 1: graph data, 2: fileinfo",
"type": "integer",
"enum": [
0,
1,
2
]
},
"name": {
"description": "Result name",
"type": "string"
},
"alert_list": {
"description": "List of alerts to report",
"$ref": "#/definitions/alert_list"
},
"graph_data": {
"description": "Fragment of histogram graph data",
"type": [
"string",
"null"
]
},
"file_info": {
"description": "File information for the input file. Appears once per job",
"type": [
"string",
"null"
]
},
"payload_case": {
"description": "Protobuf artifact, not in use",
"type": [
"integer",
"null"
],
"nullable": true
}
},
"additionalProperties": false
},
"alert_list": {
"type": [
"object",
"null"
],
"properties": {
"alerts": {
"type": "array",
"items": {
"$ref": "#/definitions/alert"
}
}
}
},
"level": {
"type": "integer",
"enum": [
0,
1,
2,
3
]
},
"alert": {
"type": "object",
"properties": {
"id": {
"description": "Alert ID",
"type": "string"
},
"test_id": {
"description": "Test ID",
"type": "string"
},
"alert_id": {
"description": "Alert ID",
"type": [
"integer",
"null&quo