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>
<send_pdf>[yes|no]</send_pdf>
</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]",
"send_pdf": "[yes|no]"
}
}
// 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>
<send_pdf>[yes|no]</send_pdf>
</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]",
"send_pdf": "[yes|no]"
}
}
}
}
}
}
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 |
send_pdf | Attach a PDF report to the email notification from "qc_notify" | yes, no | no |
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 2024.9.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"
},
"use_start_timecode_for_media_layout": {
"title": "Use Start Timecode For Media Layout",
"description": "Whether to use the start timecode of the media for the media layout.",
"type": [
"boolean",
"null"
],
"nullable": true,
"default": false
},
"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"
]
}
},
"upgrade_note": {
"type": "object",
"title": "Upgrade Note",
"description": "Upgrade Note(s).",
"additonalProperties": false,
"required": [
"version",
"notes"
],
"properties": {
"version": {
"type": "string",
"title": "Upgrade Version",
"description": "The engine version that the template has been upgraded to.",
"minLength": 1
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"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"
}
}
}
]
},
"audio_hiss_detection_test_config": {
"type": "object",
"required": [
"target"
],
"properties": {
"target": {
"type": "number",
"title": "Target frequency",
"description": "The target frequency to look for, e.g. 15000 Hz.",
"default": 15000,
"minimum": 5000,
"maximum": 25000
}
},
"allOf": [
{
"$ref": "#/definitions/audio_config"
}
]
},
"audio_hum_detection_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
}
]
},
"audio_identification_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/original_audio_config"
},
{
"properties": {
"language": {
"title": "Expected language",
"description": "Checks that identified language is the same as this one.",
"type": "string",
"enum": [
"ara",
"rus",
"hin",
"spa",
"por",
"eng",
"zho",
"fra",
"deu",
"ita",
"ell",
"tur",
"ukr",
"nld",
"jpn",
"kor",
"swe",
"pol",
"ben",
"urd",
"ces"
],
"titleMap": [
{
"value": "ara",
"name": "Arabic - ara"
},
{
"value": "rus",
"name": "Russian - rus"
},
{
"value": "hin",
"name": "Hindi - hin"
},
{
"value": "spa",
"name": "Castilian, Spanish - spa"
},
{
"value": "por",
"name": "Portuguese - por"
},
{
"value": "eng",
"name": "English - eng"
},
{
"value": "zho",
"name": "Chinese - zho"
},
{
"value": "fra",
"name": "French - fra"
},
{
"value": "deu",
"name": "German - deu"
},
{
"value": "ita",
"name": "Italian - ita"
},
{
"value": "ell",
"name": "Greek - ell"
},
{
"value": "tur",
"name": "Turkish - tur"
},
{
"value": "ukr",
"name": "Ukrainian - ukr"
},
{
"value": "nld",
"name": "Dutch, Flemish - nld"
},
{
"value": "jpn",
"name": "Japanese - jpn"
},
{
"value": "kor",
"name": "Korean - kor"
},
{
"value": "swe",
"name": "Swedish - swe"
},
{
"value": "pol",
"name": "Polish - pol"
},
{
"value": "ben",
"name": "Bengali - ben"
},
{
"value": "urd",
"name": "Urdu - urd"
},
{
"value": "ces",
"name": "Czech - ces"
}
],
"default": "eng"
},
"same_as_metadata": {
"title": "Identified language should be same as metadata",
"description": "Checks identified language against metadata, overrides chosen language.",
"type": "boolean",
"default": false
}
}
}
],
"anyOf": [
{
"required": [
"language"
]
},
{
"required": [
"same_as_metadata"
],
"properties": {
"same_as_metadata": {
"title": "Identified language should be same as metadata",
"description": "Checks identified language against metadata, overrides chosen language.",
"type": "boolean",
"default": true,
"const": true
}
}
}
]
},
"blackframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "Must Be.",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Black"
},
{
"value": 1,
"name": "Not Black"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"caption_paint_style_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Caption Styles",
"type": "boolean",
"description": "Find captions styles.",
"default": false
},
"allow_popon": {
"title": "Allow pop-on caption",
"type": "boolean",
"description": "Allow the pop-on caption style in the selected channel/service. i.e. This enabling this allows static/non-animated captions.",
"default": false
},
"allow_painton": {
"title": "Allow paint-on caption",
"type": "boolean",
"description": "Allow paint-on caption style in selected channels/services. i.e. This enabling this allows character-by-character animated captions.",
"default": false
},
"allow_rollup": {
"title": "Allow roll-up caption",
"type": "boolean",
"description": "Allow roll-up caption style in selected channels/services. i.e. This enabling this allows line-by-line animated captions. Often used in live broadcasts.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"allow_popon",
"allow_rollup",
"allow_painton"
]
}
}
]
},
"channelmapping_test_config": {
"type": "object",
"required": [
"mapping"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"mapping": {
"title": "Channel Mapping",
"type": "string",
"pattern": "^$|^\\s*(?:U|L|R|C|LFE|Ls|Rs|Lc|Rc|Cs|Lsd|Rsd|Tcs|Tfl|Tfc|Tfr|Tbl|Tbc|Tbr|Tsl|Tsr|Lw|Rw|LFE2|Lrs|Rrs|Lt|Rt|M|,|\\s)*\\s*$",
"description": "Expected channel mapping. Use comma separated channel labels."
}
}
}
]
},
"channel_position_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_center_freq": {
"title": "Minimum center channel frequency",
"type": "number",
"description": "Minimum center frequency.",
"default": 80,
"minimum": 0
},
"max_center_freq": {
"title": "Maximum center channel frequency",
"type": "number",
"description": "Maximum center frequency.",
"default": 6000,
"minimum": 0
},
"min_lfe_freq": {
"title": "Minimum LFE channel frequency",
"type": "number",
"description": "Minimum LFE frequency.",
"default": 3,
"minimum": 0
},
"max_lfe_freq": {
"title": "Maximum LFE channel frequency",
"type": "number",
"description": "Maximum LFE frequency.",
"default": 120,
"minimum": 0
}
}
}
]
},
"clicksandpops_test_config": {
"type": "object",
"required": [
"sensitivity"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"ignore_silence": {
"type": "boolean",
"title": "Ignore silence",
"description": "When turned on, silent parts will be ignored.",
"default": true
},
"sensitivity": {
"$ref": "#/definitions/customizable_sensitivity",
"title": "Sensitivity",
"description": "Determines how sensitive the test will be in detecting clicks and pops."
},
"custom_sensitivity": {
"type": "number",
"title": "Custom Sensitivity",
"description": "Custom sensitivity percentage. Higher is more sensitive.",
"minimum": 0.0,
"maximum": 100.0,
"default": 68.75
}
}
},
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity"
]
}
}
]
},
"clipping_test_config": {
"type": "object",
"required": [
"sensitivity",
"percentage_check"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_threshold": {
"type": "number",
"title": "Minimum Threshold",
"description": "Specify custom value where samples are suppressed and do not count towards the clipping test.",
"suffix": "dB",
"default": -60.0,
"minimum": -100
},
"sensitivity": {
"$ref": "#/definitions/customizable_sensitivity",
"title": "Sensitivity",
"description": "Determines the number of successive samples which must be equal before the sequence is deemed to contain clipping. Choose between High (least number of samples), Medium, and Low (most number of samples)."
},
"custom_sensitivity": {
"type": "number",
"title": "Custom Sensitivity",
"description": "Specify custom value for successive samples which must be equal before the sequence is deemed to contain clipping."
},
"units": {
"type": "integer",
"title": "Custom Sensitivity Units",
"description": "Custom Sensitivity Units.",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Samples"
},
{
"value": 1,
"name": "Milliseconds"
}
]
},
"percentage_check": {
"title": "Percentage Check",
"description": "Whether to enable the percentage clipping check. This applies to the entire file/layout.",
"type": "boolean",
"default": false
},
"percentage": {
"title": "Percentage",
"description": "The maximum percentage of clipping allowed. 100% means the entire file/layout can be clipped.",
"type": "number",
"minimum": 0,
"maximum": 100.0,
"default": 1,
"suffix": "%"
}
},
"allOf": [
{
"if": {
"properties": {
"sensitivity": {
"const": 3
}
}
},
"then": {
"required": [
"custom_sensitivity",
"units"
]
}
},
{
"if": {
"properties": {
"percentage_check": {
"const": true
}
}
},
"then": {
"required": [
"percentage"
]
}
},
{
"if": {
"properties": {
"units": {
"const": 0
}
}
},
"then": {
"properties": {
"custom_sensitivity": {
"minimum": 2
}
}
}
},
{
"if": {
"properties": {
"units": {
"const": 1
}
}
},
"then": {
"properties": {
"custom_sensitivity": {
"minimum": 0.1
}
}
}
}
]
}
]
},
"colorbar_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The color bar must be type.",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "ColorBars"
},
{
"value": 1,
"name": "Not ColorBars"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"comparative_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"required": [
"second_audio_track",
"second_audio_track_type",
"mode",
"dialog_gating",
"tolerance"
],
"properties": {
"second_audio_track": {
"title": "Mix 2",
"type": "integer",
"description": "Audio mix to compare with other mix.",
"minimum": 1,
"default": 1
},
"second_audio_track_type": {
"title": "Mix 2 type",
"type": "integer",
"description": "Audio mix type to test.",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "PCM"
},
{
"value": 2,
"name": "DolbyE"
},
{
"value": 3,
"name": "Encoded"
}
],
"default": 0
},
"tolerance": {
"title": "Loudness Tolerance",
"description": "Specify the loudness (and tolerance range) within which the mixes' loudness must be in.",
"type": "number",
"default": 2.0,
"minimum": 0.0,
"suffix": "LU"
},
"mode": {
"title": "Loudness Mode",
"description": "Select standard to use for measuring comparative loudness.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "ITU 1770-4 / EBU I"
},
{
"value": 1,
"name": "ITU 1770-1"
},
{
"value": 3,
"name": "ITU 1770-2"
},
{
"value": 4,
"name": "ITU 1770-3"
},
{
"value": 2,
"name": "ARIB TR-B32"
}
]
},
"dialog_gating": {
"title": "Dialog Gating",
"description": "Measure loudness only when dialog is present.",
"type": "boolean",
"default": false
}
}
}
]
},
"iso639_2_languages": {
"title": "Languages",
"description": "Which language to check for.",
"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"
}
]
}
},
"gop_structure": {
"type": "object",
"required": [
"open_closed"
],
"additionalProperties": false,
"properties": {
"i_distance": {
"title": "I-Frame distance",
"type": "string",
"description": "The distance allowed between gop i-frames as a comma seperated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"p_distance": {
"title": "P-Frame distance",
"type": "string",
"description": "The distance allowed between gop p-frames as a comma seperated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
},
"open_closed": {
"title": "Open/Closed",
"type": "integer",
"description": "Whether the gop structure should be open/closed or either.",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Either"
},
{
"value": 1,
"name": "Open"
},
{
"value": 2,
"name": "Closed"
}
]
}
}
},
"timecode": {
"type": "string",
"title": "Timecode",
"description": "Timecode, E.g. HH:MM:SS:FF, HH:MM:SS;FF or HH:MM:SS.mmm.",
"default": "00:00:00:00",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}[;:.][0-9]{2,3}$"
},
"basic_timecode": {
"type": "string",
"default": "00:00:00.000",
"title": "Timecode",
"description": "Timecode, E.g. HH:MM:SS:FF or HH:MM:SS.mmm.",
"pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}$"
},
"bool_false": {
"type": "boolean",
"title": "Value",
"description": "Value.",
"default": false
},
"bool_true": {
"type": "boolean",
"title": "Value",
"description": "Value.",
"default": true
},
"uint32": {
"type": "integer",
"title": "Value",
"description": "Value.",
"minimum": 0,
"maximum": 4294967295
},
"int32": {
"type": "integer",
"title": "Value",
"description": "Value.",
"minimum": -2147483648,
"maximum": 2147483647
},
"bool_optional": {
"type": "integer",
"title": "Value",
"description": "Value.",
"enum": [
0,
1,
2
],
"default": 0
},
"bool_extended": {
"type": "integer",
"title": "Value",
"description": "Value.",
"enum": [
0,
1,
2,
3
],
"default": 2
},
"comma_separated_positive_numbers": {
"type": "string",
"title": "Comma separated positive numbers",
"description": "A list of comma separated positive whole numbers or an empty string, e.g. '1', '1,2', '1,2,3'.",
"pattern": "^$|^\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*)*$"
},
"comma_separated_frame_sizes": {
"type": "string",
"title": "Comma separated frame sizes",
"description": "Allowed frame sizes as a comma separated list or an empty string, e.g. '320x240', '1920x544,320x240'.",
"pattern": "^$|^\\s*[0-9]+\\s*x\\s*[0-9]+\\s*(,\\s*[0-9]+\\s*x\\s*[0-9]+\\s*)*$"
},
"comma_separated_positive_numbers_with_operators": {
"type": "string",
"title": "Comma separated positive numbers/operators",
"description": "A list of comma separated positive whole numbers with optional operators or an empty string, e.g. '1', '1-2', '>1,<=2,3'.",
"pattern": "^$|^(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?)((\\s)*(,(\\s)*([<>]=?\\d+(\\.\\d+)?|\\d+(\\.\\d+)?|\\d+(\\.\\d+)?-\\d+(\\.\\d+)?))?)*$"
},
"allowed_disallowed_required": {
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"value": 0,
"name": "Allowed"
},
{
"value": 1,
"name": "Disallowed"
},
{
"value": 2,
"name": "Required"
}
]
},
"rational": {
"type": "object",
"required": [
"num",
"denom"
],
"properties": {
"num": {
"title": "Numerator",
"description": "Numerator.",
"type": "integer",
"minimum": 0,
"default": 0
},
"denom": {
"title": "Denominator",
"description": "Denominator.",
"type": "integer",
"minimum": 1,
"default": 1
}
}
},
"minmax": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"min": {
"title": "Minimum",
"description": "Minimum.",
"type": "integer",
"minimum": 0,
"default": 0
},
"max": {
"title": "Maximum",
"description": "Maximum.",
"type": "integer",
"minimum": 0,
"default": 0
}
}
},
"minmax_bits": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"min": {
"title": "Minimum",
"description": "Minimum.",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
},
"max": {
"title": "Maximum",
"description": "Maximum.",
"type": "integer",
"minimum": 0,
"default": 0,
"suffix": "bits per second"
}
}
},
"video_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"audio_config_silence": {
"properties": {
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"audio_track_type": {
"$ref": "#/definitions/audio_track_type"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"allOf": [
{
"if": {
"properties": {
"silence": {
"const": true
}
}
},
"then": {
"required": [
"audio_track",
"audio_track_type"
],
"allOf": [
{
"if": {
"properties": {
"audio_track_type": {
"const": 2
}
}
},
"then": {
"required": [
"dolbye_program"
]
}
}
]
}
}
]
},
"audio_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"audio_track_type": {
"$ref": "#/definitions/audio_track_type"
},
"dolbye_program": {
"$ref": "#/definitions/dolbye_program"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"required": [
"audio_track",
"audio_track_type"
],
"allOf": [
{
"if": {
"properties": {
"audio_track_type": {
"const": 2
}
}
},
"then": {
"required": [
"dolbye_program"
]
}
}
]
},
"original_audio_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"audio_track": {
"$ref": "#/definitions/audio_track"
},
"channel_mask": {
"$ref": "#/definitions/channel_mask"
}
},
"required": [
"audio_track"
]
},
"audio_track": {
"title": "Mix",
"$ref": "#/definitions/uint32",
"description": "Audio mix to test.",
"minimum": 1,
"default": 1
},
"audio_track_type": {
"title": "Mix type",
"type": "integer",
"description": "Audio mix type to test.",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "PCM"
},
{
"value": 2,
"name": "DolbyE"
},
{
"value": 3,
"name": "Encoded"
}
],
"default": 0
},
"dolbye_program": {
"title": "Dolby E Program",
"$ref": "#/definitions/uint32",
"description": "Dolby E program to test (only for Dolby E mixes).",
"minimum": 1,
"default": 1
},
"channel_mask": {
"title": "Channel Selection",
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"description": "Select channels using comma separated numbers. Leave empty to select all."
},
"subtitle_config": {
"properties": {
"media_layout": {
"$ref": "#/definitions/media_layout_type"
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
}
},
"time_units": {
"type": "integer",
"title": "Time Units",
"description": "Test in seconds or frames.",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
}
]
},
"time_units_extended": {
"type": "integer",
"title": "Time Units",
"description": "Define duration in seconds, frames or timecodes.",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Seconds"
},
{
"value": 1,
"name": "Frames"
},
{
"value": 2,
"name": "Timecodes"
}
]
},
"base_range_type": {
"type": "integer",
"title": "Range Type",
"description": "Range Type.",
"enum": [
0,
1,
2
],
"default": 0
},
"range_limit": {
"type": "number",
"title": "Range Limit",
"description": "Range Limit.",
"default": 0,
"minimum": 0
},
"base_range": {
"type": "object",
"required": [
"layout"
],
"properties": {
"layout": {
"title": "Layout",
"description": "The media layout to test with.",
"type": "string",
"enum": [
"0",
"1"
],
"default": "0",
"titleMap": [
{
"value": "0",
"name": "Test Fixed Duration"
},
{
"value": "1",
"name": "Test End Of File"
}
]
},
"start": {
"title": "Starts At",
"description": "Starts At.",
"$ref": "#/definitions/range_limit"
},
"end": {
"title": "Ends At",
"description": "Ends At.",
"$ref": "#/definitions/range_limit"
},
"start_from_end": {
"title": "Test Last",
"description": "Test Last.",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "With Duration",
"description": "With Duration.",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"description": "Time Units.",
"$ref": "#/definitions/time_units"
}
}
},
"tolerant_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"tolerance": {
"title": "Tolerance +/-",
"description": "Tolerance +/-.",
"type": "number",
"default": 0,
"minimum": 0
}
}
}
]
},
"video_bit_depth": {
"type": "integer",
"title": "Video Bit Depth",
"description": "Video Bit Depth.",
"enum": [
8,
10,
12,
14
],
"default": 8
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 16
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 64
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 256
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 1024
},
"max_black_level_8_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 255,
"default": 235
},
"max_black_level_10_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 1023,
"default": 940
},
"max_black_level_12_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 4095,
"default": 3760
},
"max_black_level_14_bit": {
"title": "Max Black Level",
"description": "Max Black Level.",
"type": "integer",
"minimum": 0,
"maximum": 16383,
"default": 15040
},
"warnings_as": {
"title": "Treat Warnings as",
"description": "Treat Warnings As.",
"type": "integer",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
}
],
"default": 1
},
"warnings_as_child": {
"title": "Treat Warnings as",
"description": "Treat Warnings As.",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Info"
},
{
"value": 1,
"name": "Warning"
},
{
"value": 2,
"name": "Error"
},
{
"value": 3,
"name": "Same As Parent"
}
],
"default": 3
},
"container_agrees_with_essence": {
"type": "boolean",
"title": "Container agrees with Essence",
"description": "Check that the container metadata matches the essence.",
"default": false
},
"sensitivity": {
"title": "Sensitivity",
"type": "integer",
"description": "A High sensitivity will find more problems but could also find more false positives. A Low sensitivity will only detect more obvious problems.",
"enum": [
0,
1,
2
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Low"
},
{
"value": 1,
"name": "Medium"
},
{
"value": 2,
"name": "High"
}
]
},
"customizable_sensitivity": {
"title": "Sensitivity",
"description": "Sensitivity.",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Low"
},
{
"value": 1,
"name": "Medium"
},
{
"value": 2,
"name": "High"
},
{
"value": 3,
"name": "Custom"
}
]
},
"drop_frame": {
"type": "integer",
"title": "Drop Frame",
"description": "What type of drop frame is required.",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Drop"
},
{
"value": 1,
"name": "Non-drop"
}
]
},
"media_layout_type": {
"type": "integer",
"title": "Media Layout",
"description": "The media layout to use for the test, global, whole file or user.",
"enum": [
0,
1,
2
],
"titleMap": [
{
"value": 0,
"name": "Global layout"
},
{
"value": 1,
"name": "Whole File"
},
{
"value": 2,
"name": "User layout"
}
],
"default": 0
},
"dialnorm_test_config": {
"type": "object",
"required": [
"minimum",
"maximum"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"minimum": {
"title": "Minimum Dialnorm Value",
"description": "Minimum valid dialnorm value is 1.",
"type": "integer",
"minimum": 1,
"maximum": 31
},
"maximum": {
"title": "Maximum Dialnorm Value",
"description": "Maximum valid dialnorm value is 31.",
"type": "integer",
"minimum": 1,
"maximum": 31
}
}
}
]
},
"dualmono_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"max_allowed": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Max Allowed Duration",
"description": "The total amount of dual mono allowed in the file.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Max Allowed",
"description": "Whether the max dual mono allowed test is enabled.",
"default": false
},
"units": {
"type": "integer",
"title": "Max Allowed Units",
"description": "The units for the max dual mono allowed duration.",
"default": 2,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
},
{
"name": "Percentage",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
},
"tolerance_window": {
"type": "object",
"required": [
"enable"
],
"properties": {
"duration": {
"type": "number",
"title": "Tolerance Window Duration",
"description": "A dual mono section lasting less than this time window will be ignored.",
"default": 1
},
"enable": {
"type": "boolean",
"title": "Tolerance Window",
"description": "Whether to enable the dual mono tolerance window test.",
"default": false
},
"units": {
"type": "integer",
"title": "Tolerance Window Units",
"description": "The units for the tolerance window duration.",
"default": 2,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Samples",
"value": 0
},
{
"name": "Milliseconds",
"value": 1
},
{
"name": "Seconds",
"value": 2
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"duration",
"units"
]
}
}
}
}
]
},
"freezeframe_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The freeze frame range must be type.",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Freeze"
},
{
"value": 1,
"name": "Not Freeze"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"integrated_loudness_test_config": {
"type": "object",
"required": [
"level",
"tolerance",
"mode",
"dialog_gating"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"description": "Specify the loudness (and tolerance range) within which loudness must lie.",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"tolerance": {
"title": "Loudness Tolerance",
"description": "Specify the loudness (and tolerance range) within which loudness must lie.",
"type": "number",
"default": 2.0,
"minimum": 0.0,
"suffix": "dB"
},
"mode": {
"title": "Loudness Mode",
"description": "Select standard to use for measuring integrated loudness.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "ITU 1770-4 / EBU I"
},
{
"value": 1,
"name": "ITU 1770-1"
},
{
"value": 3,
"name": "ITU 1770-2"
},
{
"value": 4,
"name": "ITU 1770-3"
},
{
"value": 2,
"name": "ARIB TR-B32"
}
]
},
"dialog_gating": {
"title": "Dialog Gating",
"description": "Measure loudness only when dialog is present.",
"type": "boolean",
"default": false
}
}
}
]
},
"loudness_range_test_config": {
"type": "object",
"title": "Loudness Range",
"description": "Measure the variation in loudness over the duration of a file. The algorithm is specified in EBU-Tech 3342 and produces an output Loudness Range ('LRA') in terms of Loudness Units ('LU').",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"check_min": {
"title": "Check Minimum",
"type": "boolean",
"description": "Whether to enable the minimum loudness test.",
"default": false
},
"min_range": {
"title": "Min",
"description": "The minimum permitted loudness range.",
"type": "number",
"suffix": "LU"
},
"check_max": {
"title": "Check Maximum",
"description": "Whether to enable the maximum loudness test.",
"type": "boolean",
"default": false
},
"max_range": {
"title": "Max",
"description": "Maximum permitted loudness range.",
"type": "number",
"suffix": "LU"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"check_min": {
"const": false
}
}
}
},
"then": {
"required": [
"min_range"
]
}
},
{
"if": {
"not": {
"properties": {
"check_max": {
"const": false
}
}
}
},
"then": {
"required": [
"max_range"
]
}
}
]
}
]
},
"minlevel_test_config": {
"type": "object",
"required": [
"audio_track",
"dolbye_program",
"minlevel_elsewhere",
"level",
"duration",
"units"
],
"title": "Minimum Level",
"description": "Checks if the RMS level for a given channel drops below the given level for a window longer than the given duration.",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"minlevel_elsewhere": {
"title": "Test whole file",
"description": "Evaluate minimum level across the whole file.",
"type": "boolean",
"default": true
},
"level": {
"title": "Min Level Threshold (dBFS)",
"type": "number",
"default": -70.0,
"description": "The minimum acceptable level over the window duration, in dBFS RMS."
},
"duration": {
"title": "Window Duration",
"description": "Window Duration in time units.",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"description": "The time units to use.",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"description": "The minimum level ranges to use.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/minlevel_range"
}
}
}
}
]
},
"minlevel_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Test for minimum level",
"description": "Test for minimum level.",
"type": "integer",
"enum": [
0,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Should be below"
},
{
"value": 2,
"name": "Don't care"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
}
]
},
"momentary_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"description": "Loudness Level.",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"violations": {
"title": "Report Violations",
"description": "Max Violations will report only the worst violation.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Max Only"
},
{
"value": 1,
"name": "All Violations"
}
],
"default": 0
}
}
}
]
},
"location_test": {
"type": "object",
"required": [
"exclude_first",
"is_repeated",
"present"
],
"additionalProperties": false,
"properties": {
"body": {
"title": "Body Partition(s)",
"description": "Body Partition(s).",
"$ref": "#/definitions/allowed_disallowed_required"
},
"exclude_first": {
"type": "boolean",
"title": "Exclude First Body Partition",
"description": "Exclude First Body Partition.",
"default": false
},
"footer": {
"title": "Footer Partition",
"description": "Footer Partition.",
"$ref": "#/definitions/allowed_disallowed_required"
},
"header": {
"title": "Header Partition",
"description": "Header Partition.",
"$ref": "#/definitions/allowed_disallowed_required"
},
"is_repeated": {
"type": "boolean",
"title": "Repeated footer partition",
"description": "Repeated footer partition.",
"default": false
},
"present": {
"type": "boolean",
"title": "Present In At Least One",
"description": "Present In At Least One.",
"default": false
}
}
},
"partition_status_test": {
"type": "object",
"required": [
"closedcomplete",
"closedincomplete",
"notpresent",
"opencomplete",
"openincomplete"
],
"additionalProperties": false,
"properties": {
"closedcomplete": {
"type": "boolean",
"title": "Closed / Complete",
"description": "Closed / Complete.",
"default": false
},
"closedincomplete": {
"type": "boolean",
"title": "Closed / Incomplete",
"description": "Closed / Incomplete.",
"default": false
},
"notpresent": {
"type": "boolean",
"title": "Not Present",
"description": "Not Present.",
"default": false
},
"opencomplete": {
"type": "boolean",
"title": "Open / Complete",
"description": "Open / Complete.",
"default": false
},
"openincomplete": {
"type": "boolean",
"title": "Open / Incomplete",
"description": "Open / Incomplete.",
"default": false
}
}
},
"timecode_track_test": {
"type": "object",
"required": [
"continuity"
],
"additionalProperties": false,
"properties": {
"continuity": {
"type": "boolean",
"title": "Structural Continuity",
"description": "Structural Continuity.",
"default": false
},
"dropframe": {
"title": "Drop Frame",
"description": "The drop frame type required.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
}
}
},
"sid": {
"type": "string",
"pattern": "^$|^\\s*\\d+\\s*(,\\s*\\d+\\s*)*$",
"title": "Sid",
"description": "The sid to find. Leave blank for any."
},
"nielsen_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"naes2": {
"title": "NAES 2",
"type": "boolean",
"default": false,
"description": "Detects and reports N2 watermarks."
},
"naes2_sids": {
"$ref": "#/definitions/sid"
},
"naes6": {
"title": "NAES 6",
"type": "boolean",
"default": false,
"description": "Detects and reports Nielsen Watermark TAM** Codes (NW) and Nielsen Watermark Commercial Codes (NWCC)."
},
"naes6_sids": {
"$ref": "#/definitions/sid"
}
}
}
]
},
"peak_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_peak_enable": {
"title": "Min Peak Enable",
"description": "Whether the min peak test is enabled.",
"type": "boolean",
"default": false
},
"min_peak_level": {
"title": "Min Peak Level",
"description": "Minimum acceptable peak level.",
"type": "number"
},
"max_peak_enable": {
"title": "Max Peak Enable",
"description": "Whether the max peak test is enabled.",
"type": "boolean",
"default": false
},
"max_peak_level": {
"title": "Max Peak Level",
"description": "Maximum acceptable peak level.",
"type": "number"
},
"peak_type": {
"title": "Peak Type",
"description": "dbTP (True Peak) as per Annex 2 of ITU-R BS.1770-1 or in dbFS (Full Scale).",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "dBFS"
},
{
"value": 1,
"name": "dBTP"
}
],
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"min_peak_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_peak_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_peak_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_peak_level"
]
}
}
]
}
]
},
"phase_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"min_instant_phase_enable": {
"title": "Min Instant Phase Enable",
"description": "Whether the min instant phase test is enabled.",
"type": "boolean",
"default": false
},
"min_instant_phase": {
"title": "Min Instant Phase",
"description": "Taken over a window period (defined by the min instant phase duration), the lowest value for the stream is recorded.",
"type": "number"
},
"min_instant_phase_duration": {
"title": "Min Instant Phase Duration",
"description": "The window period for the min instance phase in seconds. Uses 0.1 seconds if unspecified.",
"type": "number",
"default": 0.1,
"minimum": 0.01
},
"min_mean_phase_enable": {
"title": "Min Mean Phase Enable",
"description": "Whether the min mean phase test is enabled.",
"type": "boolean",
"default": false
},
"min_mean_phase": {
"title": "Min Mean Phase",
"description": "Measured over the whole audio stream.",
"type": "number"
},
"max_mean_phase_enable": {
"title": "Max Mean Phase Enable",
"description": "Whether the max mean phase test is enabled.",
"type": "boolean",
"default": false
},
"max_mean_phase": {
"title": "Max Mean Phase",
"description": "Measured over the whole audio stream.",
"type": "number"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"min_instant_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_instant_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"min_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_mean_phase"
]
}
},
{
"if": {
"not": {
"properties": {
"max_mean_phase_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_mean_phase"
]
}
}
]
}
]
},
"ppm_level_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"max_ppm_enable": {
"type": "boolean",
"title": "Max PPM Level Enable",
"description": "Whether the max PPM level test is enabled.",
"default": false
},
"max_ppm_level": {
"type": "number",
"title": "Max PPM Level",
"description": "The maximum acceptable PPM level."
},
"min_ppm_enable": {
"type": "boolean",
"title": "Min PPM Level Enable",
"description": "Whether the minimum PPM level test is enabled.",
"default": false
},
"min_ppm_level": {
"type": "number",
"title": "Min PPM Level",
"description": "The minimum acceptable PPM level."
},
"ppm_mode": {
"type": "integer",
"title": "PPM Mode",
"description": "The PPM (Peak Programme Meter) Mode to test with.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "M3",
"value": 0
},
{
"name": "M6",
"value": 1
},
{
"name": "AB",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"min_ppm_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"min_ppm_level"
]
}
},
{
"if": {
"not": {
"properties": {
"max_ppm_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_ppm_level"
]
}
}
]
}
]
},
"shortterm_loudness_test_config": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"level": {
"title": "Loudness Level",
"description": "Loudness Level.",
"type": "number",
"default": -20.0,
"suffix": "dB"
},
"window": {
"title": "Loudness Window",
"description": "Default window length of 3 seconds corresponds to EBU-Tech 3341 Short-term mode.",
"type": "number",
"suffix": "seconds",
"default": 3.0,
"minimum": 0
},
"violations": {
"title": "Report Violations",
"description": "Max Violations will report only the worst violation.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Max Only"
},
{
"value": 1,
"name": "All Violations"
}
],
"default": 0
}
}
}
]
},
"silence_test_config": {
"type": "object",
"required": [
"silent_elsewhere"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"silent_elsewhere": {
"title": "Test whole file",
"description": "Test whole file for the presence of silence.",
"type": "boolean",
"default": true
},
"silent": {
"type": "boolean",
"title": "Silent",
"description": "Whether the audio must be silent or not.",
"default": true,
"titleMap": [
{
"value": true,
"name": "Must Be Silent"
},
{
"value": false,
"name": "Must Not Be Silent"
}
]
},
"digital": {
"title": "Digital Silence",
"type": "boolean",
"description": "The track is checked for the presence or absence of audio samples.",
"default": false
},
"threshold": {
"title": "Silence Threshold",
"type": "number",
"default": -70.0,
"description": "The threshold below which an audio track is considered silent."
},
"ranges": {
"title": "Range",
"description": "The ranges where silence is expected to be or not.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/silence_range"
}
},
"quiet": {
"type": "boolean",
"title": "Quiet",
"description": "Whether to enable quiet mode.",
"default": false
}
}
}
]
},
"silence_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The silence range must be type.",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Silent"
},
{
"value": 1,
"name": "Not Silent"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
}
]
},
"singlecolor_range": {
"allOf": [
{
"$ref": "#/definitions/tolerant_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The single color range must be type.",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Single Color"
},
{
"value": 1,
"name": "Not Single Color"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"allOf": [
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"tolerance",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"tolerance",
"units",
"range_type"
]
}
}
]
}
]
},
"tone_type": {
"title": "Tone Type",
"type": "string",
"description": "Check for presence of sine wave tone at level given in dBFS peak-to-peak (to convert from RMS add 3dB).",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6"
],
"default": "0",
"titleMap": [
{
"value": "0",
"name": "Continuous"
},
{
"value": "1",
"name": "Ebu1000Hz"
},
{
"value": "2",
"name": "Ebu440Hz"
},
{
"value": "3",
"name": "Glits1000Hz"
},
{
"value": "4",
"name": "Glits2000Hz"
},
{
"value": "5",
"name": "Blits"
},
{
"value": "6",
"name": "EAS (Emergency Alert System)"
}
]
},
"tone_test_config": {
"type": "object",
"required": [
"tone_type"
],
"allOf": [
{
"$ref": "#/definitions/audio_config"
},
{
"properties": {
"tone_type": {
"$ref": "#/definitions/tone_type"
},
"tone_elsewhere": {
"title": "Test whole file",
"description": "Test whole file for the presence of a test tone.",
"type": "boolean",
"default": true
},
"tone": {
"type": "boolean",
"title": "Tone",
"description": "Whether the tone must be present or not.",
"default": false,
"titleMap": [
{
"value": true,
"name": "Must Be Present"
},
{
"value": false,
"name": "Must Be Absent"
}
]
},
"frequency": {
"title": "Tone frequency",
"description": "The expected frequency of the test tone.",
"type": "number",
"default": 1000.0,
"suffix": "Hz"
},
"power": {
"title": "Tone level",
"description": "The power level required of the tone.",
"type": "number",
"default": -6.0,
"suffix": "dBFS"
},
"tolerance": {
"title": "Level tolerance",
"description": "The tolerance of the power allowed when detecting the tone.",
"type": "number",
"default": 0.5,
"suffix": "dB"
},
"ranges": {
"title": "Range",
"description": "The tone ranges allowed.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/tone_range"
}
},
"segment": {
"$ref": "#/definitions/tone_segment"
}
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "0"
}
}
},
"then": {
"required": [
"tolerance",
"frequency",
"power",
"tone_elsewhere"
],
"allOf": [
{
"if": {
"properties": {
"tone_elsewhere": {
"const": true
}
}
},
"then": {
"required": [
"tone"
]
}
}
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "1"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "2"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "3"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "4"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
},
{
"if": {
"properties": {
"tone_type": {
"const": "5"
}
}
},
"then": {
"required": [
"tolerance",
"segment"
]
}
}
]
},
"tone_range": {
"allOf": [
{
"$ref": "#/definitions/base_range"
},
{
"properties": {
"range_type": {
"title": "Must Be",
"description": "The tone range must be type.",
"$ref": "#/definitions/base_range_type",
"titleMap": [
{
"value": 0,
"name": "Present"
},
{
"value": 1,
"name": "Not Present"
},
{
"value": 2,
"name": "Any"
}
]
}
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"0"
]
}
}
},
"then": {
"required": [
"start",
"end",
"units",
"range_type"
]
}
},
{
"if": {
"properties": {
"layout": {
"enum": [
"1"
]
}
}
},
"then": {
"required": [
"start_from_end",
"duration",
"units",
"range_type"
]
}
}
]
},
"tone_segment": {
"type": "object",
"required": [
"start",
"duration",
"units"
],
"properties": {
"start": {
"title": "Start At",
"description": "Start At.",
"$ref": "#/definitions/range_limit"
},
"duration": {
"title": "Duration",
"description": "Duration.",
"$ref": "#/definitions/range_limit"
},
"units": {
"title": "Time Units",
"description": "The time units to use.",
"$ref": "#/definitions/time_units"
}
}
}
},
"properties": {
"name": {
"description": "User given name of a template",
"type": "string",
"nullable": false
},
"id": {
"description": "Cloud ID",
"type": [
"string",
"null"
],
"nullable": true
},
"created_at": {
"description": "Cloud Created at",
"type": [
"string",
"null"
],
"regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"nullable": true
},
"updated_at": {
"description": "Cloud Updated at",
"type": [
"string",
"null"
],
"regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"nullable": true
},
"aggregate_alerts_limit": {
"description": "Option to aggregate alerts of the same ID",
"type": [
"integer",
"null"
],
"nullable": true
},
"use_starttimecode": {
"description": "Option to use the video's timecode for alert start & end times",
"type": [
"boolean",
"null"
],
"default": false,
"nullable": true
},
"audio_layout": {
"description": "Audio layout to use",
"$ref": "#/definitions/audio_layout"
},
"audio_layout_id": {
"description": "Id of audio layout to use",
"type": [
"string",
"null"
],
"nullable": true
},
"package_layout": {
"description": "Package layout to use",
"$ref": "#/definitions/package_layout"
},
"package_layout_id": {
"description": "Id of package layout to use",
"type": [
"string",
"null"
],
"nullable": true
},
"engine_version": {
"description": "Engine version",
"type": "string",
"regex": "^[0-9]{4}.[0-9]{1,2}.[1-9]{1,2}$"
},
"user_notes": {
"title": "User Notes",
"description": "User notes - this can contain any extra information.",
"type": [
"string",
"null"
],
"nullable": true,
"default": ""
},
"upgrade_notes": {
"title": "Upgrade Notes",
"description": "Upgrade notes.",
"type": "array",
"items": {
"$ref": "#/definitions/upgrade_note"
}
},
"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": {
"analogue_dropouts": {
"type": "object",
"title": "Analogue Dropouts",
"description": "Check for analogue dropouts.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"sensitivity": {
"title": "Analogue Dropouts Sensitivity",
"description": "The Analogue Dropouts Sensitivity.",
"$ref": "#/definitions/sensitivity"
}
},
"category": "Video Quality"
},
"audio_description": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Audio Description Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/audio_description_test_config"
}
}
},
"title": "Audio Description",
"category": "Audio Quality"
},
"audio_hiss_detection": {
"type": "object",
"title": "Audio Hiss Detection",
"description": "The Verification Unit applies a low pass filter to the frequency transform of the audio track and determines if tape hiss noise is present. By default, the verification unit is checking for hiss noise across the entire time domain above 15,000 Hz.",
"properties": {
"audioconfigs": {
"type": "array",
"title": "Audio Hiss Detection Test Configuration",
"description": "The audio configurations to test.",
"items": {
"$ref": "#/definitions/audio_hiss_detection_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Audio Quality"
},
"audio_hum_detection": {
"type": "object",
"title": "Audio Hum Detection",
"description": "The Verification Unit applies a high pass filter to the frequency domain of the audio waveform to determine if 50 Hz or 60 Hz hum (mono tone frequency) is present (+/- 1 Hz) anywhere within the clip.",
"properties": {
"audioconfigs": {
"type": "array",
"title": "Audio Hum Detection Test Configuration",
"description": "The audio configurations to test.",
"items": {
"$ref": "#/definitions/audio_hum_detection_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"type": "string",
"title": "Options",
"description": "Select multiple by using comma separated values.",
"default": "16",
"pattern": "^([0-9]+)(\\s*,\\s*[0-9]+)*\\s*$",
"suffix": "bits per sample"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
"audio_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Bit Rate",
"description": "Check the bit rate of the audio track as it appears in the input file.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"container_agrees_with_essence": {
"$ref": "#/definitions/container_agrees_with_essence"
},
"mode": {
"title": "Test mode",
"description": "Test specific value(s) or that bit rate lies within given range.",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"type": "string",
"description": "The allowed bit rates as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "kbps"
},
"minimum": {
"title": "Minimum",
"description": "The minimum allowed bit rate.",
"type": "number",
"minimum": 0,
"suffix": "kbps"
},
"maximum": {
"title": "Maximum",
"description": "The maximum allowed bit rate.",
"type": "number",
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"container_agrees_with_essence": {
"$ref": "#/definitions/container_agrees_with_essence"
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"description": "Whether the duration value test is enabled.",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"description": "The duration value allowed.",
"$ref": "#/definitions/basic_timecode"
},
"spread": {
"title": "Spread (+ or -)",
"description": "The spread (+ or -) allowed.",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"description": "Whether the duration range test is enabled.",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum duration allowed.",
"$ref": "#/definitions/basic_timecode"
},
"maximum": {
"title": "Maximum",
"description": "The maximum duration allowed.",
"$ref": "#/definitions/basic_timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{
"not": {
"properties": {
"duration_range": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
}
]
}
}
]
},
"audio_endianness_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check endianness of LPCM",
"type": "boolean",
"default": false,
"description": "Check the endianness of the audio LPCM data against the original audio."
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"title": "Endianness Required",
"description": "The endianness required.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Little Endian"
},
{
"value": 1,
"name": "Big Endian"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"audio_codec_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Codec",
"description": "Check the format of the audio elementary stream.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"codec": {
"title": "All",
"description": "Which codecs to allow.",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"value": 0,
"name": "AAC"
},
{
"value": 1,
"name": "Dolby AC-3"
},
{
"value": 2,
"name": "Dolby Digital Plus"
},
{
"value": 3,
"name": "Dolby E"
},
{
"value": 4,
"name": "MPEG-1 / MPEG-2"
},
{
"value": 5,
"name": "PCM"
},
{
"value": 7,
"name": "SMPTE 331M"
},
{
"value": 6,
"name": "WMA"
}
]
}
},
"mpeg_layer": {
"title": "MPEG Layer",
"description": "Which MPEG Audio Layer to allow.",
"type": "array",
"items": {
"type": "integer",
"enum": [
1,
2,
3
],
"titleMap": [
{
"value": 1,
"name": "Layer 1"
},
{
"value": 2,
"name": "Layer 2"
},
{
"value": 3,
"name": "Layer 3"
}
]
}
},
"aac_profile": {
"title": "AAC profiles",
"description": "Which AAC profiles to allow.",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"value": 0,
"name": "HE-AAC"
},
{
"value": 1,
"name": "HE-AACv2"
},
{
"value": 2,
"name": "LC"
},
{
"value": 3,
"name": "Main"
},
{
"value": 4,
"name": "SSR"
},
{
"value": 5,
"name": "LTP"
}
]
}
},
"pcm_type": {
"title": "PCM types",
"description": "Which PCM types to allow.",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
],
"titleMap": [
{
"value": 0,
"name": "Frame (BWF)"
},
{
"value": 1,
"name": "Clip (BWF)"
},
{
"value": 2,
"name": "Frame (AES)"
},
{
"value": 3,
"name": "Clip (AES)"
},
{
"value": 4,
"name": "Custom (BWF)"
},
{
"value": 5,
"name": "Custom (AES)"
},
{
"value": 6,
"name": "Frame"
},
{
"value": 7,
"name": "Clip"
},
{
"value": 8,
"name": "D-10"
},
{
"value": 9,
"name": "Custom"
},
{
"value": 10,
"name": "Custom: Fixed Audio Size"
},
{
"value": 11,
"name": "Frame (D-10)"
},
{
"value": 12,
"name": "Wav (BWF)"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codec"
],
"properties": {
"codec": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
0
]
}
}
}
},
"then": {
"required": [
"aac_profile"
],
"properties": {
"aac_profile": {
"minItems": 1
}
}
}
},
{
"if": {
"properties": {
"codec": {
"contains": {
"enum": [
5
]
}
}
}
},
"then": {
"required": [
"pcm_type"
]
}
}
]
}
}
]
},
"audio_channelcountchangedetection_test": {
"type": "object",
"additionalProperties": false,
"properties": {
"enable": {
"title": "Audio Channel Count Detection",
"description": "Enable the audio channel count change detection test.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
}
}
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"$ref": "#/definitions/iso639_2_languages",
"title": "Languages",
"description": "Which languages to allow."
},
"audioconfigs": {
"title": "Audio Identification Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/audio_identification_test_config"
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"anyOf": [
{
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
},
{
"required": [
"audioconfigs"
],
"properties": {
"audioconfigs": {
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"type": "string",
"title": "Options",
"description": "The allowed sample rates as a comma separted list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "kHz"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minLength": 1
}
}
}
},
"audio_ac3servicetype_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "AC-3 Service Type",
"description": "Check the AC-3 Service Type in an AC-3 audio stream.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"service_type": {
"title": "Service Types",
"description": "The service types allowed in an AC-3 audio stream.",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8
],
"titleMap": [
{
"value": 0,
"name": "Complete Main"
},
{
"value": 1,
"name": "Music and Effects"
},
{
"value": 2,
"name": "Visually Impaired"
},
{
"value": 3,
"name": "Hearing Impaired"
},
{
"value": 4,
"name": "Dialogue"
},
{
"value": 5,
"name": "Commentary"
},
{
"value": 6,
"name": "Emergency"
},
{
"value": 7,
"name": "Voice Over"
},
{
"value": 8,
"name": "Karaoke"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"service_type"
],
"properties": {
"service_type": {
"minItems": 1
}
}
}
}
},
"title": "Audio Metadata",
"category": "Audio Metadata"
},
"black_frame": {
"type": "object",
"required": [
"silence",
"custom_level"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage Of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "Percentage of frame required to be black."
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of black frames.",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Black Video Allowed",
"description": "The maximum black video allowed (frames/seconds).",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"description": "The maximum allowed time units.",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Must Also Be Digitally Silent",
"description": "Test for digital silence in conjunction with black frames.",
"type": "boolean",
"default": false
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/blackframe_range"
}
}
},
"title": "Black Frame",
"category": "Video Quality"
},
"cadence": {
"type": "object",
"required": [
"cadence_must_be",
"broken_cadence",
"report_all_cadences",
"poor_patterns"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"cadence_must_be": {
"title": "Cadence Must Be",
"description": "The cadence expected in the stream.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"titleMap": [
{
"value": 0,
"name": "Progressive"
},
{
"value": 1,
"name": "2:2 (TFF)"
},
{
"value": 2,
"name": "2:2 (BFF)"
},
{
"value": 3,
"name": "2:3 (TFF)"
},
{
"value": 4,
"name": "2:3 (BFF)"
},
{
"value": 5,
"name": "24->25 fps (TFF)"
},
{
"value": 6,
"name": "24->25 fps (BFF)"
},
{
"value": 7,
"name": "2:2:2:4 (frame repeated)"
},
{
"value": 8,
"name": "2:3:3:2 (TFF)"
},
{
"value": 9,
"name": "2:3:3:2 (BFF)"
}
],
"default": 0
},
"broken_cadence": {
"title": "Check for broken 2:3 cadence (compromises Reverse Telecine)",
"type": "boolean",
"default": false,
"description": "Look for breaks in the cadence pattern such as can be caused by editing 2:3 cadence video. An interrupted pattern can cause problems with a Reverse Telecine operation."
},
"report_all_cadences": {
"title": "Report all detected cadences",
"type": "boolean",
"default": false,
"description": "Analyze the video stream and report all cadences found as Info alerts."
},
"poor_patterns": {
"title": "Check for poor patterns",
"type": "boolean",
"default": false,
"description": "Raises an alert if a cadence pattern is found that causes excessive visual 'stutter'. This includes patterns which repeat frames (e.g. 2:2:2:4) and pull-down patterns not best suited for broadcast (e.g. 'Advanced' pull-down 2:3:3:2)."
}
},
"title": "CadenceTest",
"category": "Video Quality"
},
"caption_paint_style": {
"type": "object",
"required": [
"treat_warnings_as",
"cc1",
"cc2",
"cc3",
"cc4",
"service1",
"service2",
"service3",
"service4",
"service5",
"service6"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"cc1": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "CC1 Styles",
"type": "boolean",
"description": "Find captions styles in CC1.",
"default": false
}
}
}
]
},
"cc2": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "CC2 Styles",
"type": "boolean",
"description": "Find captions styles in CC2.",
"default": false
}
}
}
]
},
"cc3": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "CC3 Styles",
"type": "boolean",
"description": "Find captions styles in CC3.",
"default": false
}
}
}
]
},
"cc4": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "CC4 Styles",
"type": "boolean",
"description": "Find captions styles in CC4.",
"default": false
}
}
}
]
},
"service1": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "Service1 Styles",
"type": "boolean",
"description": "Find captions styles in Service1.",
"default": false
}
}
}
]
},
"service2": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "Service2 Styles",
"type": "boolean",
"description": "Find captions styles in Service2.",
"default": false
}
}
}
]
},
"service3": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "Service3 Styles",
"type": "boolean",
"description": "Find captions styles in Service3.",
"default": false
}
}
}
]
},
"service4": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "Service4 Styles",
"type": "boolean",
"description": "Find captions styles in Service4.",
"default": false
}
}
}
]
},
"service5": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "Service5 Styles",
"type": "boolean",
"description": "Find captions styles in Service5.",
"default": false
}
}
}
]
},
"service6": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/caption_paint_style_test"
},
{
"properties": {
"enable": {
"title": "Service6 Styles",
"type": "boolean",
"description": "Find captions styles in Service6.",
"default": false
}
}
}
]
}
},
"title": "Caption Paint Style",
"category": "Caption Checks"
},
"caption_subtitle": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"caption_present_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Detect and report the presence of Closed Captions",
"description": "Will test for the absence of captions.",
"type": "boolean",
"default": false
},
"cc1": {
"title": "CC1 Presence",
"type": "boolean",
"description": "Find captions in CC1.",
"default": false
},
"cc2": {
"title": "CC2 Presence",
"type": "boolean",
"description": "Find captions in CC2.",
"default": false
},
"cc3": {
"title": "CC3 Presence",
"type": "boolean",
"description": "Find captions in CC3.",
"default": false
},
"cc4": {
"title": "CC4 Presence",
"type": "boolean",
"description": "Find captions in CC4.",
"default": false
},
"service1": {
"title": "Service 1 Presence",
"type": "boolean",
"description": "Find captions in Service 1.",
"default": false
},
"service2": {
"title": "Service 2 Presence",
"type": "boolean",
"description": "Find captions in Service 2.",
"default": false
},
"service3": {
"title": "Service 3 Presence",
"type": "boolean",
"description": "Find captions in Service 3.",
"default": false
},
"service4": {
"title": "Service 4 Presence",
"type": "boolean",
"description": "Find captions in Service 4.",
"default": false
},
"service5": {
"title": "Service 5 Presence",
"type": "boolean",
"description": "Find captions in Service 5.",
"default": false
},
"service6": {
"title": "Service 6 Presence",
"type": "boolean",
"description": "Find captions in Service 6.",
"default": false
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"cc1",
"cc2",
"cc3",
"cc4",
"service1",
"service2",
"service3",
"service4",
"service5",
"service6"
]
}
},
"caption_dropout_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Detect and report any Closed Caption Dropouts",
"type": "boolean",
"description": "Will test for the absence of captions in the given interval.",
"default": false
},
"no_caption_threshold": {
"title": "Max time allowed with no caption data",
"type": "number",
"minimum": 0.0,
"maximum": 3600.0,
"description": "The minimum threshold for which captions must be updated.",
"default": 10.0
},
"duration_units": {
"$ref": "#/definitions/time_units"
},
"cc1": {
"title": "CC1 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC1.",
"default": false
},
"cc2": {
"title": "CC2 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC2.",
"default": false
},
"cc3": {
"title": "CC3 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC3.",
"default": false
},
"cc4": {
"title": "CC4 Dropout",
"type": "boolean",
"description": "Find caption gaps in CC4.",
"default": false
},
"service1": {
"title": "Service 1 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 1.",
"default": false
},
"service2": {
"title": "Service 2 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 2.",
"default": false
},
"service3": {
"title": "Service 3 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 3.",
"default": false
},
"service4": {
"title": "Service 4 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 4.",
"default": false
},
"service5": {
"title": "Service 5 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 5.",
"default": false
},
"service6": {
"title": "Service 6 Dropout",
"type": "boolean",
"description": "Find caption gaps in Service 6.",
"default": false
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"no_caption_threshold",
"duration_units",
"cc1",
"cc2",
"cc3",
"cc4",
"service1",
"service2",
"service3",
"service4",
"service5",
"service6"
]
}
},
"teletext_presence_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Detect and report the presence of Teletext subtitles",
"type": "boolean",
"description": "Find Teletext in specified page number.",
"default": false
},
"pages": {
"title": "Teletext page(s)",
"type": "string",
"description": "The specified page number(s) as a comma separated list, e.g. '888', '888,889'.",
"allOf": [
{
"$ref": "#/definitions/comma_separated_positive_numbers"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pages"
]
}
}
},
"title": "Caption/Subtitle Test",
"category": "Caption Checks"
},
"caption_word_detection": {
"type": "object",
"title": "Caption Word Detection",
"description": "Enable checking for words in captions.",
"required": [
"words"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"words": {
"title": "Words to detect",
"description": "The list of words or phrases to detect.",
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
},
"category": "Caption Checks"
},
"cgmsa_value": {
"type": "object",
"title": "CGMS-A Value",
"description": "Test the CGMS-A value from the CEA-608 caption data packet.",
"required": [],
"properties": {
"copy_permitted": {
"title": "Copying permitted without restriction",
"description": "Copying permitted without restriction.",
"type": "boolean",
"default": false
},
"no_more_copies": {
"title": "No more copies",
"description": "No more copies.",
"type": "boolean",
"default": false
},
"one_generation": {
"title": "One generation of copies made",
"description": "One generation of copies made.",
"type": "boolean",
"default": false
},
"no_copying": {
"title": "No copying is permitted",
"description": "No copying is permitted.",
"type": "boolean",
"default": false
}
},
"category": "Caption Checks"
},
"channel_mapping": {
"type": "object",
"title": "Channel Mapping",
"description": "Checks the channel mapping of the given track against an expected channel mapping.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Channel Mapping Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/channelmapping_test_config"
}
}
},
"category": "Audio Quality"
},
"channel_position": {
"type": "object",
"title": "Channel Position",
"description": "Test whether 5.1 channels are in the correct place by analyzing base band and checking against what it should be.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Channel Position Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/channel_position_test_config"
}
}
},
"category": "Audio Quality"
},
"clicks_and_pops": {
"type": "object",
"title": "Clicks and Pops",
"description": "Detect transients or sudden changes in amplitude, such as those caused by noise on an analog or digital audio line.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Clicks and Pops Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/clicksandpops_test_config"
}
}
},
"category": "Audio Quality"
},
"clipping": {
"type": "object",
"title": "Clipping",
"description": "Detect audio clipping by testing for successive samples of equal value. Quiet samples (those below a fixed small value) are suppressed and do not count towards the clipping test.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Clipping Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/clipping_test_config"
}
}
},
"category": "Audio Quality"
},
"color_bars": {
"type": "object",
"title": "Color Bars",
"description": "Detect the presence of color bars in the video to determine that they are of the correct type and/or that they are present when they should be and not present when they should not be.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"standard": {
"title": "Color Bar Standard",
"description": "The color bar standard to test against.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "SMPTE SD"
},
{
"value": 2,
"name": "SMPTE HD"
},
{
"value": 3,
"name": "EBU 75"
},
{
"value": 4,
"name": "EBU 100"
},
{
"value": 5,
"name": "EBU UHD"
}
]
},
"color_tolerance": {
"title": "Color Level Tolerance (%)",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 3,
"description": "Percentage of allowed deviation from colorbar specification colors."
},
"details": {
"title": "Provide extra details",
"description": "Provides information on why a frame is not a colorbar.",
"type": "boolean",
"default": false
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of colorbars.",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max ColorBars Allowed",
"description": "The maximum number of colorbars allowed.",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"description": "The maximum allowed time units.",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/colorbar_range"
}
}
},
"category": "Video Quality"
},
"comb_artifacts": {
"type": "object",
"title": "Combing Artifacts Detection Test",
"description": "Detect if the input video stream has any interlacing or combing artifacts.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"consecutive_frame_count": {
"title": "Consecutive Error Frames",
"type": "integer",
"default": 1,
"suffix": "frames",
"description": "Raise an alert if number of Consecutive Error Frames exceeds this limit."
}
},
"required": [
"consecutive_frame_count"
],
"category": "Video Quality"
},
"comparative_loudness": {
"type": "object",
"required": [
"audioconfigs"
],
"title": "Comparative Loudness",
"description": "Detect mismatch in program loudness across multiple audio tracks.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Comparative Loudness Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/comparative_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"corrupt_frame": {
"type": "object",
"title": "Corrupt Frame",
"description": "Check for corrupt or unexpected frames.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"sensitivity": {
"title": "Corrupt Frame Detection Sensitivity",
"description": "The Corrupt Frame Detection Sensitivity.",
"$ref": "#/definitions/sensitivity"
}
},
"category": "Video Quality"
},
"dead_pixel": {
"type": "object",
"title": "Dead Pixel",
"description": "Test for the presence of dead pixels.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"dialnorm": {
"type": "object",
"title": "Dialnorm",
"description": "Test the dialnorm value of Dolby AC-3 and Dolby Digital Plus audio tracks. Valid values are from 1 to 31.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Dialnorm Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/dialnorm_test_config"
}
}
},
"category": "Audio Metadata"
},
"digital_dropouts": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"speckle": {
"title": "Speckle Dropouts",
"type": "boolean",
"description": "Check for speckle dropout artifacts caused by digital tape transfer errors.",
"default": false
},
"speckle_sensitivity": {
"title": "Speckle Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"chroma": {
"title": "Chroma Block Dropouts",
"description": "Check for chroma dropout artifacts.",
"type": "boolean",
"default": false
},
"chroma_sensitivity": {
"title": "Chroma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"luma": {
"title": "Luma Block Dropouts",
"description": "Check for luma dropout artifacts.",
"type": "boolean",
"default": false
},
"luma_sensitivity": {
"title": "Luma Block Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
},
"repeated_tile": {
"title": "Repeated Tile Dropouts",
"description": "Check for repeated tile dropout artifacts.",
"type": "boolean",
"default": false
},
"repeated_tile_sensitivity": {
"title": "Repeated Tile Detection Sensitivity",
"description": "A High sensitivity will find more problems but could also find more 'false positives'. A Low sensitivity will only detect more obvious dropouts. Note that not all dropouts may be detected - in particular larger problems may be ignored.",
"$ref": "#/definitions/sensitivity"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"speckle": {
"const": false
}
}
}
},
"then": {
"required": [
"speckle_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"chroma": {
"const": false
}
}
}
},
"then": {
"required": [
"chroma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"luma": {
"const": false
}
}
}
},
"then": {
"required": [
"luma_sensitivity"
]
}
},
{
"if": {
"not": {
"properties": {
"repeated_tile": {
"const": false
}
}
}
},
"then": {
"required": [
"repeated_tile_sensitivity"
]
}
}
],
"title": "Digital Dropouts",
"category": "Video Quality"
},
"dolbye_presence": {
"type": "object",
"title": "Dolby E Presence",
"description": "Test for the presence of Dolby E.",
"additionalProperties": false,
"required": [
"treat_warnings_as",
"must_be_present"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"must_be_present": {
"title": "Must be Present",
"description": "Check that Dolby E is present or not present.",
"type": "boolean",
"default": true
}
},
"category": "File Checks"
},
"dolby_vision_metadata": {
"type": "object",
"title": "Dolby Vision Metadata",
"description": "Dolby Vision metadata validation version 2.0.5, 4.0.2 or 5.1.0.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Video Quality"
},
"dual_mono": {
"type": "object",
"title": "Dual Mono",
"description": "Compares 2 audio streams and reports back if dual mono sections are detected between them.",
"additionalProperties": false,
"properties": {
"audioconfigs": {
"type": "array",
"title": "DualMono Test Configuration",
"description": "The audio configurations to test.",
"items": {
"$ref": "#/definitions/dualmono_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Audio Quality"
},
"faulty_test": {
"type": "object",
"title": "Faulty Test",
"description": "This test is designed to fail.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"fail_type": {
"type": "integer",
"title": "Fail Type",
"description": "Fail Type.",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "No Fail"
},
{
"value": 1,
"name": "KrakenConfigurationError on Begin"
},
{
"value": 2,
"name": "KrakenRuntimeError on Begin"
},
{
"value": 3,
"name": "Fatal error on Begin"
},
{
"value": 4,
"name": "Unknown error on Begin"
},
{
"value": 5,
"name": "KrakenConfigurationError on AddFrame"
},
{
"value": 6,
"name": "KrakenRuntimeError on AddFrame"
},
{
"value": 7,
"name": "Fatal error on AddFrame"
},
{
"value": 8,
"name": "Unknown error on AddFrame"
},
{
"value": 9,
"name": "KrakenConfigurationError on End"
},
{
"value": 10,
"name": "KrakenRuntimeError on End"
},
{
"value": 11,
"name": "Fatal error on End"
},
{
"value": 12,
"name": "Unknown error on End"
}
]
}
},
"category": "Developer"
},
"field_order": {
"type": "object",
"required": [
"encoded_flag"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Will play correctly with this flag"
}
}
},
"then": {
"disabled": [
"field_order_must_be"
]
}
}
},
{
"if": {
"not": {
"properties": {
"check_baseband": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"baseband_mode": {
"const": "Field order must be"
}
}
},
"then": {
"enabled": [
"field_order_must_be"
],
"required": [
"field_order_must_be"
]
}
}
}
],
"properties": {
"encoded_flag": {
"title": "Encoded Flag",
"type": "integer",
"description": "Field order that should be flagged in the stream.",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Top field first"
},
{
"value": 1,
"name": "Bottom field first"
},
{
"value": 2,
"name": "Progressive"
},
{
"value": 3,
"name": "Any"
}
],
"default": 0
},
"check_baseband": {
"title": "Analyze Baseband",
"type": "boolean",
"description": "Analyze baseband against given field order.",
"default": false
},
"baseband_mode": {
"type": "integer",
"title": "Baseband Mode",
"description": "Check that the video will play without problems or that the video is a specific field order.",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Will play correctly with this flag"
},
{
"value": 1,
"name": "Field order must be"
}
]
},
"field_order_must_be": {
"title": "Field Order expected",
"description": "The expected field order of the video.",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "Top field first"
},
{
"value": 1,
"name": "Bottom field first"
},
{
"value": 2,
"name": "Progressive"
},
{
"value": 3,
"name": "Same as encoded flag"
}
],
"default": 0
}
},
"title": "Field Order",
"category": "Video Quality"
},
"file_checks": {
"type": "object",
"additionalProperties": false,
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"hash_value_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check Hash Value",
"description": "Check MD5 and/or SHA-1 hash values of the container file against the relevant hash file.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"md5_check": {
"title": "MD5 Check",
"description": "Check MD5 hash value.",
"type": "boolean",
"default": true
},
"sha1_check": {
"title": "SHA-1 Check",
"description": "Check SHA-1 hash value.",
"type": "boolean",
"default": true
},
"ignore_missing_hashfile": {
"title": "Ignore Missing hash file",
"description": "Do not alert if a hash file is not present.",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"md5_check",
"sha1_check",
"ignore_missing_hashfile"
],
"oneOf": [
{
"not": {
"properties": {
"md5_check": {
"const": false
}
}
}
},
{
"not": {
"properties": {
"sha1_check": {
"const": false
}
}
}
}
]
}
}
]
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"maximum": {
"title": "Maximum",
"description": "The maximum duration allowed.",
"$ref": "#/definitions/timecode"
},
"minimum": {
"title": "Minimum",
"description": "The minimum duration allowed.",
"$ref": "#/definitions/timecode"
}
},
"allOf": [
{
"if": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_ebpmarker_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "EBP Metadata Checks",
"description": "Whether to enable EBP Metadata checks.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"mode": {
"title": "Mode",
"description": "The mode to test.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Explicit"
},
{
"value": 1,
"name": "Implicit"
}
],
"default": 0
},
"distance": {
"type": "object",
"title": "EBP Marker Distance",
"description": "EBP Marker Distance.",
"required": [
"minimum",
"maximum"
],
"properties": {
"minimum": {
"title": "Minimum",
"description": "The minimum distance allowed.",
"type": "integer",
"suffix": "seconds",
"minimum": 0,
"default": 1
},
"maximum": {
"title": "Maximum",
"description": "The maximum distance allowed.",
"type": "integer",
"suffix": "seconds",
"minimum": 0,
"default": 10
}
}
}
},
"allOf": [
{
"if": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"mode",
"distance"
]
}
}
]
},
"container_filesize_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Size",
"description": "Check that the total file size falls within the Min/Max parameters.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"maximum": {
"title": "Maximum (bytes)",
"description": "The maximum (bytes) allowed.",
"type": "number",
"default": 0
},
"minimum": {
"title": "Minimum (bytes)",
"description": "The minimum (bytes) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"enable": {
"const": false
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
},
"container_format_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container Format",
"description": "Check the 'wrapper' or container file used to hold the video and/or audio matches the user defined value.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"title": "All formats",
"description": "Which formats to allow.",
"type": "array",
"items": {
"type": "string",
"enum": [
"3gpp",
"aac ",
"asf ",
"avi ",
"avs",
"dcp ",
"dpx ",
"flv ",
"gxf ",
"imf ",
"lxf ",
"m2ps",
"m2ts",
"mkv ",
"mov ",
"mp4 ",
"mpga",
"mxf ",
"oexr",
"wav ",
"fmp4"
],
"titleMap": [
{
"value": "3gpp",
"name": "3GPP"
},
{
"value": "aac ",
"name": "AAC Audio (ADTS)"
},
{
"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": "fmp4",
"name": "Fragmented MP4"
},
{
"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": "mpga",
"name": "MPEG Audio"
},
{
"value": "mxf ",
"name": "MXF"
},
{
"value": "oexr",
"name": "OpenEXR"
},
{
"value": "wav ",
"name": "Windows Audio Format"
}
]
}
}
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"mode": {
"title": "Test mode",
"description": "Test specific value(s) or that bit rate lies within given range.",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"description": "The allowed bit rates as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"type": "string",
"suffix": "Mbit/s"
},
"minimum": {
"title": "Minimum (Mbit/s)",
"description": "The minimum allowed bit rate.",
"type": "number",
"suffix": "Mbit/s",
"default": 0
},
"maximum": {
"title": "Maximum (Mbit/s)",
"description": "The maximum allowed bit rate.",
"type": "number",
"suffix": "Mbit/s",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mode"
],
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
]
}
}
]
},
"comparestreamlengths_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Compare Stream Lengths",
"description": "Check whether the audio track is present throughout the duration of the video.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"tolerance": {
"title": "Tolerance",
"description": "The tolerance allowed.",
"type": "number",
"default": 2,
"suffix": "seconds",
"minimum": 0
},
"mismatch_units": {
"title": "Mismatch Units",
"description": "Whether to show the mismatch between stream durations in milliseconds or frames. With milliseconds the duration would be shown as 'HH:MM:SS.mmm'. With frames the duration would be shown as 'HH:MM:SS:ff' (for non drop-frame) or 'HH:MM:SS;ff' (for drop-frame).",
"type": "number",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Milliseconds"
},
{
"value": 1,
"name": "Frames"
}
]
}
},
"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."
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
}
}
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"container_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container End Timecode",
"description": "Check the Container End Timecode.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"container_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Container Drop Frame",
"description": "Check that the container's start timecode is either drop-frame or non-drop as specified.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"tolerance": {
"title": "Tolerance (seconds/frames)",
"description": "The tolerance (seconds/frames) allowed.",
"type": "number",
"default": 0
},
"units": {
"title": "Tolerance Units",
"description": "Tolerance Units.",
"$ref": "#/definitions/time_units"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"tolerance",
"units"
]
}
}
]
},
"container_numberoftracks_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Number of Tracks",
"type": "boolean",
"description": "Check the number of tracks in the file.",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
}
}
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
},
"matches_container": {
"title": "Matches container",
"description": "If the file is MXF and video is H.262, compare the video start-timecode against the Material Package start-timecode.",
"type": "boolean",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode"
]
}
}
]
},
"video_endtimecode_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence End Timecode",
"description": "Check the Essence End Timecode.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"timecode": {
"title": "Timecode",
"description": "The expected timecode.",
"$ref": "#/definitions/timecode"
},
"tolerance": {
"title": "Tolerance (+/- frames)",
"description": "The timecode tolerance (+/- frames) allowed.",
"type": "number",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"timecode",
"tolerance"
]
}
}
]
},
"video_dropframe_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Essence Drop Frame",
"description": "Check that the essence's start timecode is either drop-frame or non-drop as specified.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"order": {
"title": "Test order",
"description": "The expected test order.",
"type": "integer",
"enum": [
0,
1
],
"default": 1,
"titleMap": [
{
"value": 0,
"name": "Coded"
},
{
"value": 1,
"name": "Display"
}
]
},
"report": {
"title": "Report",
"description": "Report each unique GOP structure or all errors as specified.",
"type": "integer",
"enum": [
0,
1
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "Each unique GOP structure"
},
{
"value": 1,
"name": "All errors"
}
]
},
"first_gop": {
"title": "First GOP",
"description": "Enable specific values to be given for the first GOP structure.",
"type": "boolean",
"default": false
},
"first_gop_options": {
"title": "Options",
"description": "The first GOP options allowed.",
"type": "object",
"$ref": "#/definitions/gop_structure"
},
"other_gop": {
"title": "Other GOPs",
"description": "Enable specific values to be given for other GOP structures. This will apply to first and last GOPs if their specific sections are not selected.",
"type": "boolean",
"default": false
},
"other_gop_options": {
"type": "object",
"$ref": "#/definitions/gop_structure"
},
"last_2gop": {
"title": "Last 2 GOPs",
"description": "Enable specific values to be given for the last two GOP structures.",
"type": "boolean",
"default": false
},
"last_2gop_options": {
"type": "object",
"$ref": "#/definitions/gop_structure"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"order",
"report",
"first_gop",
"other_gop",
"last_2gop"
]
}
},
{
"if": {
"not": {
"properties": {
"first_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"first_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"other_gop": {
"const": false
}
}
}
},
"then": {
"required": [
"other_gop_options"
]
}
},
{
"if": {
"not": {
"properties": {
"last_2gop": {
"const": false
}
}
}
},
"then": {
"required": [
"last_2gop_options"
]
}
}
]
},
"transportstream_bitrate_test": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Transport Stream Bit Rate",
"description": "Check stream bitrate using PCRs which accounts for various stuffing methods.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"check_instantaneous": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Instantaneous Bitrate",
"description": "Enable the Instantaneous Bitrate test.",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum instantaneous bit-rate threshold.",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
},
"maximum": {
"title": "Maximum",
"description": "The maximum instantaneous bit-rate threshold.",
"type": "number",
"default": 1000000,
"minimum": 0,
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
},
"check_average": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Average Bitrate",
"description": "Enable the Average Bitrate test.",
"type": "boolean",
"default": false
},
"average": {
"title": "Average",
"description": "The average container bit rate (over the entire stream, from first to last PCR).",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"default": "1000000",
"suffix": "bits/s"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"average"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"anyOf": [
{
"required": [
"check_instantaneous"
]
},
{
"required": [
"check_average"
]
}
]
}
}
]
},
"container_pidversuslanguage_test": {
"type": "object",
"required": [],
"additionalProperties": false,
"properties": {
"enable": {
"title": "PID Versus Language Test",
"description": "Check the PID (Packet Identified in Transport Stream) versus the audio/subtitle language ID coded in the PMT descriptor.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"type": "array",
"title": "PID vs Language Test Configuration",
"description": "The configurations to test.",
"items": {
"type": "object",
"required": [
"pid",
"language"
],
"properties": {
"pid": {
"title": "PID value",
"description": "Comma separated PID values in hex (0xFFFF notation) to check.",
"type": "string",
"default": "0x1000",
"pattern": "^0x[0-9A-F]{1,4}(?:,0x[0-9A-F]{1,4})*$"
},
"language": {
"$ref": "#/definitions/iso639_2_languages",
"title": "Language ID",
"description": "The Language ID to check."
}
}
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
]
},
"timecode_discontinuity_test": {
"type": "object",
"required": [],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Timecode Discontinuity",
"description": "Check Timecodes or Decoding TimeStamps (DTS) are continuous with regular intervals.",
"type": "boolean",
"default": false
}
}
}
},
"title": "File Checks",
"category": "File Checks"
},
"freeze_frame": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"ignore_black_frames": {
"title": "Ignore Black Frames",
"description": "Whether to ignore black frames.",
"type": "boolean",
"default": false
},
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage Of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "Percentage of frame required to be frozen."
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of frozen frames.",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Frozen Video Allowed",
"description": "The maximum frozen video (in frames/seconds) allowed.",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"description": "The maximum allowed time units.",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Must Also Be Digitally Silent",
"description": "Test for digital silence in conjunction with frozen frames.",
"type": "boolean",
"default": false
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/freezeframe_range"
}
}
},
"required": [
"silence",
"ignore_black_frames"
],
"title": "Freeze Frame",
"category": "Video Quality"
},
"hdr_area": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"luminance": {
"title": "Luminance",
"type": "number",
"default": 203,
"description": "Minimum desired Luminance value greater than 0."
},
"luminance_units": {
"title": "Luminance Units",
"description": "The luminance units to use.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "NITS"
},
{
"value": 1,
"name": "Code Values"
}
],
"default": 0
},
"area_threshold": {
"title": "Area Threshold",
"type": "number",
"default": 20,
"minimum": 0,
"maximum": 100,
"suffix": "%",
"description": "Area threshold in percentage (0 to 100)."
},
"continues_for": {
"title": "Continues For",
"type": "number",
"default": 5,
"minimum": 0,
"maximum": 100,
"description": "Value in number of measurements."
}
},
"required": [
"luminance",
"area_threshold",
"continues_for"
],
"title": "HDR Area",
"category": "Video Quality"
},
"hdr_change_detection": {
"type": "object",
"title": "HDR Change Detection",
"description": "Check each frame for changes in the HDR metadata encoded as SEI messages in the HEVC bit-stream.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"hdr_limit": {
"type": "object",
"title": "HDR Limit",
"description": "Check the luminance level that marks the boundary such that (x) percentile of pixels in a frame lie above this level and the remaining, (100-x) percentile of pixels, lie below this level. Both PQ and HLG-1000 gradings are supported.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"limit_brightest_percentage": {
"title": "First Brightest Check",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "Percentage of Pixels in a frame above luminance threshold."
},
"limit_threshold_luminance": {
"title": "Luminance",
"type": "number",
"default": 320,
"minimum": 0,
"maximum": 10000,
"description": "The luminance threshold."
},
"limit_brightest_percentage_top": {
"title": "Second Brightest Check",
"type": "number",
"default": 10,
"minimum": 0,
"maximum": 100,
"description": "Percentage of Pixels in a frame above luminance threshold."
},
"limit_threshold_luminance_top": {
"title": "Luminance",
"type": "number",
"default": 150,
"minimum": 0,
"maximum": 10000,
"description": "The luminance threshold."
},
"limit_darkest_percentage": {
"title": "Darkest",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "Percentage of Pixels in a frame below luminance threshold."
},
"limit_threshold_luminance_dark": {
"title": "Luminance",
"type": "number",
"default": 10,
"minimum": 0,
"maximum": 10000,
"description": "The luminance threshold."
},
"luminance_units": {
"title": "Luminance Units",
"description": "The luminance units to use.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "NITS"
},
{
"value": 1,
"name": "CODE VALUES"
}
],
"default": 0
},
"continues_for": {
"title": "Continues for",
"type": "number",
"default": 1,
"minimum": 0,
"description": "Measurements."
}
},
"required": [
"limit_brightest_percentage",
"limit_threshold_luminance",
"limit_brightest_percentage_top",
"limit_threshold_luminance_top",
"limit_darkest_percentage",
"limit_threshold_luminance_dark",
"luminance_units",
"continues_for"
],
"category": "Video Quality"
},
"hdr_measurement": {
"type": "object",
"title": "HDR Measurement",
"description": "Check each decoded frame in its native bit depth to calculate the MaxCLL and MaxFALL.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"imf_conformance": {
"type": "object",
"required": [
"treat_warnings_as",
"check_package_integrity"
],
"title": "IMF Conformance",
"description": "Check for IMF conformance.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_package_integrity": {
"description": "Perform basic consistency checking of IMF assets.",
"title": "Check Package Integrity",
"type": "boolean",
"default": true
},
"checksum_calculations": {
"description": "Check package list asset hashes.",
"title": "Perform Checksum Calculations",
"type": "boolean",
"default": false
}
},
"if": {
"not": {
"properties": {
"check_package_integrity": {
"const": false
}
}
},
"then": {
"required": [
"checksum_calculations"
]
}
},
"category": "Distribution and Broadcast"
},
"integrated_loudness": {
"type": "object",
"title": "Integrated Loudness (inc Dialog Gating)",
"description": "Measure Integrated loudness over the duration of the file.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Integrated Loudness Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/integrated_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"itunes_compatibility": {
"type": "object",
"title": "iTunes Compatibility",
"description": "Test several aspects of MOV file atom structure which are relevant for iTunes submission.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Distribution and Broadcast"
},
"letterboxing": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"if": {
"not": {
"properties": {
"letterboxing_pillarboxing": {
"const": false
}
}
}
},
"then": {
"required": [
"aspect_ratio",
"tolerance"
],
"allOf": [
{
"if": {
"properties": {
"aspect_ratio": {
"const": 0
}
}
},
"then": {
"required": [
"active_picture_ratio_value"
]
}
},
{
"if": {
"properties": {
"aspect_ratio": {
"const": 1
}
}
},
"then": {
"required": [
"custom_aspect_ratio_numerator",
"custom_aspect_ratio_denominator"
]
}
},
{
"if": {
"properties": {
"aspect_ratio": {
"const": 2
}
}
},
"then": {
"required": [
"lines_required_top_bottom",
"lines_required_left_right"
]
}
}
]
}
},
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth"
],
"anyOf": [
{
"if": {
"properties": {
"bit_depth": {
"const": 8
}
}
},
"then": {
"required": [
"level_8_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 10
}
}
},
"then": {
"required": [
"level_10_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 12
}
}
},
"then": {
"required": [
"level_12_bit"
]
}
},
{
"if": {
"properties": {
"bit_depth": {
"const": 14
}
}
},
"then": {
"required": [
"level_14_bit"
]
}
}
]
}
}
],
"properties": {
"active_picture_ratio_value": {
"type": "integer",
"title": "Active picture aspect ratio must be :",
"description": "Select from a number of common aspect ratios.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"name": "4:3",
"value": 0
},
{
"name": "14:9",
"value": 1
},
{
"name": "16:9",
"value": 2
},
{
"name": "1.85:1",
"value": 3
},
{
"name": "2.35:1",
"value": 4
},
{
"name": "2.39:1",
"value": 5
},
{
"name": "2.40:1",
"value": 6
}
]
},
"aspect_ratio": {
"type": "integer",
"title": "Aspect ratio",
"description": "The number of black lines needed at the edges is automatically calculated based on this ratio, the frame size and the pixel aspect ratio.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Defined aspect ratio",
"value": 0
},
{
"name": "Custom aspect ratio",
"value": 1
},
{
"name": "Defined number of lines",
"value": 2
}
]
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"custom_aspect_ratio_denominator": {
"type": "integer",
"title": "Custom aspect ratio denominator",
"description": "Specify the required custom aspect ratio.",
"default": 1,
"minimum": 1
},
"custom_aspect_ratio_numerator": {
"type": "number",
"title": "Custom aspect ratio numerator",
"description": "Specify the required custom aspect ratio.",
"default": 1,
"minimum": 0
},
"custom_level": {
"type": "boolean",
"title": "Custom Black Level",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"letterboxing_pillarboxing": {
"type": "boolean",
"title": "Detect and report letterboxing/pillarboxing violations",
"description": "This test is used to detect if video content has the correct letterboxing and/or pillarboxing.",
"default": false
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$ref": "#/definitions/level_14_bit"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"lines_required_left_right": {
"type": "integer",
"title": "Set the number of required black lines at the left/right",
"description": "This allows the number of required black lines at the left/right to be set to any value.",
"default": 0,
"minimum": 0
},
"lines_required_top_bottom": {
"type": "integer",
"title": "Set the number of required black lines at the top/bottom",
"description": "This allows the number of required black lines at the top/bottom to be set to any value.",
"default": 0,
"minimum": 0
},
"report_blanking": {
"type": "boolean",
"title": "Detect and report all changes in blanking",
"description": "Will raise info alerts detailing the number of black lines bordering the active picture content.",
"default": false
},
"tolerance": {
"type": "integer",
"title": "Tolerance",
"description": "If the number of lines to give the selected active picture varies by +/- Tolerance lines then no error or warning will be given. This can be set to zero if required.",
"default": 0,
"minimum": 0
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "LetterboxingTest",
"category": "Video Quality"
},
"luma_chroma_levels": {
"type": "object",
"title": "Luma/Chroma Levels",
"description": "Check the Y, U and V levels of the video are within the given limits.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"luma_range_from": {
"title": "Low Luma Limit (%)",
"type": "number",
"default": -1,
"minimum": -9,
"maximum": 109,
"description": "Default value is 1%, as suggested in EBU R103-2000. Use 0-100 for no tolerance."
},
"luma_range_to": {
"title": "High Luma Limit (%)",
"type": "number",
"default": 103,
"minimum": -9,
"maximum": 109,
"description": "Default value is 3%, as suggested in EBU R103-2000. Use 0-100 for no tolerance."
},
"luma_max_area_outside": {
"title": "Luma Max area outside (%)",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "The maximum area of the video picture that can be outside the given range without generating an error. Typically set to 1% (as per EBU R103-2000 recommendation)."
},
"luma_low_pass_filter": {
"title": "Luma Low-pass filter",
"type": "integer",
"description": "When EBU R103 2000 is selected, a horizontal signal filter (as described in EBU R103-2000) is applied to the luma component before testing to remove transient violations. When EBU R103-2016 is selected, a quarter band signal filter is applied horizontally and a half band signal filter is applied vertically (as described in EBU R103-2016) to the luma component before testing to remove transient violations.",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "EBU R103 2000"
},
{
"value": 2,
"name": "EBU R103 2016"
}
]
},
"chroma_range_from": {
"title": "Low Chroma Limit (%)",
"type": "number",
"default": -1,
"minimum": -9,
"maximum": 109,
"description": "Default value is 1%, as suggested in EBU R103-2000. Use 0-100 for no tolerance."
},
"chroma_range_to": {
"title": "High Chroma Limit (%)",
"type": "number",
"default": 103,
"minimum": -9,
"maximum": 109,
"description": "Default value is 3%, as suggested in EBU R103-2000. Use 0-100 for no tolerance."
},
"chroma_max_area_outside": {
"title": "Chroma max area outside (%)",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "The maximum area of the video picture that can be outside the given range without generating an error. Typically set to 1% (as per EBU R103-2000 recommendation)."
}
},
"required": [
"luma_range_from",
"luma_range_to",
"luma_max_area_outside",
"luma_low_pass_filter",
"chroma_range_from",
"chroma_range_to",
"chroma_max_area_outside"
],
"category": "Video Quality"
},
"loss_of_chroma": {
"type": "object",
"title": "Loss of Chroma",
"description": "Check for loss of chroma.",
"required": [
"tolerance"
],
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"tolerance": {
"type": "integer",
"title": "Loss of Chroma Tolerance",
"description": "The tolerance for loss of chroma detection as a percentage.",
"minimum": 0,
"maximum": 100
}
},
"category": "Video Quality"
},
"loudness_range": {
"type": "object",
"title": "Loudness Range (LUFS)",
"description": "Measure the variation in loudness over the duration of a file.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Loudness Range Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/loudness_range_test_config"
}
}
},
"category": "Audio Quality"
},
"macro_block": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"title": "MacroBlockTest",
"description": "Check for macroblocking artifacts where the macroblock edge is clearly visible.",
"properties": {
"quality_score": {
"title": "Quality Score",
"type": "number",
"default": 80,
"minimum": 0,
"maximum": 100,
"description": "Minimum desired quality score, varies from 0 (poor/blocky) to 99 (excellent)."
},
"averaged_over": {
"title": "Averaged Over",
"type": "number",
"default": 5,
"description": "Duration over which the quality scores are averaged."
},
"duration_units": {
"title": "Duration Units",
"description": "The duration units to use.",
"$ref": "#/definitions/time_units"
}
},
"required": [
"quality_score",
"averaged_over",
"duration_units"
],
"category": "Video Quality"
},
"media_demux_decode": {
"type": "object",
"title": "Media Demux Decode Frame",
"description": "Checks and reports errors when demuxing or decoding the media.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "File Quality"
},
"media_offline": {
"type": "object",
"title": "Media Offline",
"description": "Test for the presence of a media offline slate.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"minimum_level": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Minimum Level Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/minlevel_test_config"
}
}
},
"title": "Minimum Level",
"category": "Audio Quality"
},
"momentary_loudness": {
"type": "object",
"title": "Momentary Loudness",
"description": "Measure Momentary Loudness over a 400ms sliding rectangular time window as per EBU-Tech 3341 Momentary mode. The measurement is not gated.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Momentary Loudness Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/momentary_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"deep_mxf": {
"type": "object",
"properties": {
"active_format_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"allowed_formats": {
"type": "string",
"title": "AFD Information Byte Values",
"description": "A comma separated list can be provided for multiple values e.g. 4,36,68,76."
},
"enable": {
"type": "boolean",
"title": "Active Format Descriptor",
"description": "Examine the AFD information byte, present in the Generic Picture Essence Descriptor and specified in SMPTE S2016-1. This is not the 4-bit AFD code, but the whole AFD information byte which also includes an Aspect Ratio (AR) bit.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"allowed_formats"
]
}
}
]
},
"as11_uk_dpp_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AS-11 UK DPP Metadata",
"description": "Test MXF structural and descriptive metadata against selected shim.",
"default": false
},
"shim": {
"type": "integer",
"title": "AS-11 UK DPP Shim",
"description": "AS-11 UK DPP Shim.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Auto",
"value": 0
},
{
"name": "SD",
"value": 1
},
{
"name": "HD",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"shim"
]
}
}
]
},
"as11_xprofile": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"embedded_xml_documents": {
"type": "integer",
"title": "Embedded XML Documents",
"description": "Embedded XML Documents.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "XML DM for Programmes",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"title": "AMWA AS-11 Rule Blocks",
"default": false,
"description": "Compliance checking to AMWA AS-11 X profile specifications."
},
"extra_audio_layout_modes": {
"type": "integer",
"title": "Extra Audio Layout Modes",
"description": "Extra Audio Layout Modes.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Mode 1",
"value": 1
},
{
"name": "Modes 1 and 2",
"value": 2
}
]
},
"file_format_specification_identification_label": {
"type": "integer",
"title": "Specification Identification",
"description": "Specification Identification.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "Blocks_FF_1",
"value": 1
},
{
"name": "Blocks_FF_2",
"value": 2
},
{
"name": "Blocks_FF_5_WIP",
"value": 3
},
{
"name": "Blocks_FF_6_WIP",
"value": 4
},
{
"name": "Blocks_FF_11_WIP",
"value": 5
}
]
},
"picture_essence_constraints": {
"type": "integer",
"title": "Picture Essence Constraints",
"description": "Picture Essence Constraints.",
"default": 0,
"enum": [
0,
1,
5
],
"titleMap": [
{
"name": "None",
"value": 0
},
{
"name": "X1 (AVC)",
"value": 1
},
{
"name": "X9 (AVC)",
"value": 5
}
]
},
"rules": {
"type": "array",
"title": "AMWA AS-11 Rules",
"description": "AMWA AS-11 Rules.",
"items": {
"type": "string",
"enum": [
"STRICT_FRAME_WRAPPING",
"ONE_TO_ONE_TRACK_MAPPING",
"SEGMENT_THE_ESSENCE_CONTAINER",
"INDEX_EACH_ESSENCE_CONTAINER_SEGMENT",
"GENERIC_CONTAINER",
"MXF_INDEXING_AND_PARTITIONING",
"MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE",
"MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE",
"ONE_PICTURE_TRACK",
"AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE",
"ST831_3_MAPPING",
"ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK",
"UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ",
"CONSTRAINED_ST382_WAVE_PCM_MAPPING",
"AUDIO_LAYOUT",
"AUDIO_LAYOUT_X8",
"AS11_SEGMENTATION_DM",
"SPECIFICATION_IDENTIFICATION",
"SPECIFICATION_IDENTIFICATION_X7",
"SPECIFICATION_IDENTIFICATION_X8",
"SPECIFICATION_IDENTIFICATION_X9",
"TIMECODE_TRACK_PRESENCE",
"CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE",
"TIMECODE_MODE_SIGNALLING"
]
},
"titleMap": [
{
"name": "Strict Frame Wrapping",
"value": "STRICT_FRAME_WRAPPING"
},
{
"name": "One-to-one Track Mapping",
"value": "ONE_TO_ONE_TRACK_MAPPING"
},
{
"name": "Segment The Essence Container",
"value": "SEGMENT_THE_ESSENCE_CONTAINER"
},
{
"name": "Index Each Essence Container Segment",
"value": "INDEX_EACH_ESSENCE_CONTAINER_SEGMENT"
},
{
"name": "Generic Container",
"value": "GENERIC_CONTAINER"
},
{
"name": "MXF Indexing and Partitioning (VBE or CBE)",
"value": "MXF_INDEXING_AND_PARTITIONING"
},
{
"name": "MXF Indexing and Partitioning for VBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_VBE_ESSENCE"
},
{
"name": "MXF Indexing and Partitioning for CBE Essence",
"value": "MXF_INDEXING_AND_PARTITIONING_FOR_CBE_ESSENCE"
},
{
"name": "One Picture Track",
"value": "ONE_PICTURE_TRACK"
},
{
"name": "AVC byte Stream Format Picture Essence",
"value": "AVC_BYTE_STREAM_FORMAT_PICTURE_ESSENCE"
},
{
"name": "ST831-3 mapping",
"value": "ST831_3_MAPPING"
},
{
"name": "One Soundfield Group per Sound Track",
"value": "ONE_SOUNDFIELD_GROUP_PER_SOUND_TRACK"
},
{
"name": "Uncompressed 24-bit PCM Audio at 48kHz",
"value": "UNCOMPRESSED_24BIT_PCM_AUDIO_AT_48KHZ"
},
{
"name": "Constrained ST382 Wave PCM Mapping",
"value": "CONSTRAINED_ST382_WAVE_PCM_MAPPING"
},
{
"name": "Audio Layout",
"value": "AUDIO_LAYOUT"
},
{
"name": "Audio Layout [X8]",
"value": "AUDIO_LAYOUT_X8"
},
{
"name": "AS-11 Segmentation DM",
"value": "AS11_SEGMENTATION_DM"
},
{
"name": "Specification Identification",
"value": "SPECIFICATION_IDENTIFICATION"
},
{
"name": "Specification Identification [X7]",
"value": "SPECIFICATION_IDENTIFICATION_X7"
},
{
"name": "Specification Identification [X8]",
"value": "SPECIFICATION_IDENTIFICATION_X8"
},
{
"name": "Specification Identification [X9]",
"value": "SPECIFICATION_IDENTIFICATION_X9"
},
{
"name": "Timecode Track Presence",
"value": "TIMECODE_TRACK_PRESENCE"
},
{
"name": "Constrained Timecode Track in Material Package",
"value": "CONSTRAINED_TIMECODE_TRACK_IN_MATERIAL_PACKAGE"
},
{
"name": "Timecode Mode Signalling",
"value": "TIMECODE_MODE_SIGNALLING"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"rules",
"embedded_xml_documents",
"extra_audio_layout_modes",
"file_format_specification_identification_label",
"picture_essence_constraints"
]
}
}
]
},
"aspect_ratio": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Aspect Ratio",
"description": "Ensure that the given aspect ratio is present in the picture essence descriptor.",
"default": false
},
"ratio": {
"title": "Ratio",
"description": "The expected aspect ratio.",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"audio_locked": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Locked/Unlocked",
"description": "Check the value of the Locked/Unlocked flag in the Generic Sound Essence Descriptor(s), indicating whether the number of audio samples per frame is constant or not.",
"default": false
},
"value": {
"type": "boolean",
"title": "Locked / Unlocked",
"description": "Locked / Unlocked.",
"default": true,
"titleMap": [
{
"name": "Locked",
"value": true
},
{
"name": "Unlocked",
"value": false
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"audio_ref_level": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Ref Level",
"description": "Check the value of the Audio Ref Level item in the Generic Sound Essence Descriptor(s).",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"audio_sampling_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Audio Sampling Rate",
"description": "Check the value of the Audio Sampling Rate item in the Generic Sound Essence Descriptor(s).",
"default": false
},
"options": {
"type": "number",
"title": "Options",
"description": "The audio sampling rate in Hz, e.g. 48000.",
"suffix": "Hz"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
]
},
"avc_average_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Average Bit Rate",
"description": "Check the value of the Average Bit Rate item within the AVC Video SubDescriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Max Bit Rate",
"description": "Check the value of the Maximum Bit Rate item within the AVC Video SubDescriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "bits per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"avc_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Coded Content Kind",
"description": "Check the value of the Coded Content Kind item within the AVC Video SubDescriptor.",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"description": "The coded kind expected.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive Frame",
"value": 1
},
{
"name": "Interlaced Field",
"value": 2
},
{
"name": "Interlaced Frame",
"value": 3
},
{
"name": "Interlaced Field and Frame",
"value": 4
},
{
"name": "Any",
"value": 5
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
}
]
},
"avc_decoding_delay": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"delay": {
"type": "integer",
"title": "Decoding Delay",
"description": "The decoding delay expected.",
"default": 0
},
"enable": {
"type": "boolean",
"title": "AVC Decoding Delay",
"description": "Check the value of the Decoding Delay item within the AVC Video SubDescriptor.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"delay"
]
}
}
]
},
"avc_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Identical GOP Indicator",
"description": "Check the value of the AVC Identical GOP Indicator item within the AVC Video SubDescriptor.",
"default": false
},
"value": {
"type": "boolean",
"title": "Flag Value",
"description": "Flag Value.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"avc_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Max B Picture Count",
"description": "Check the value of the Maximum B Picture Count item within the AVC Video SubDescriptor. This is the maximum number of B-pictures between P- or I-frames.",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum Count",
"description": "Maximum Count.",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC Max GOP Size",
"description": "Check the value of the Maximum B Picture Count item within the AVC Video SubDescriptor. This is the maximum spacing of IDR frames in the sequence.",
"default": false
},
"max": {
"type": "integer",
"title": "Maximum GOP",
"description": "Maximum GOP.",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max"
]
}
}
]
},
"avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS and PPS",
"description": "Check various profile and level flags within the AVC Video SubDescriptor.",
"default": false
},
"level": {
"type": "integer",
"title": "Level",
"description": "Level.",
"default": 0
},
"ppsflag": {
"type": "integer",
"title": "PPS Flag",
"description": "PPS Flag.",
"default": 0
},
"profile": {
"type": "integer",
"title": "Profile",
"description": "Profile.",
"default": 0
},
"profileconstraint": {
"type": "integer",
"title": "Profile Constraint",
"description": "Profile Constraint.",
"default": 0
},
"spsflag": {
"type": "integer",
"title": "SPS Flag",
"description": "SPS Flag.",
"default": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"level",
"ppsflag",
"profile",
"profileconstraint",
"spsflag"
]
}
}
]
},
"average_bytes_per_second": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Average Bytes per Second",
"description": "Check the value of the Average Bytes Per Second item in the Wave Audio Essence Descriptor(s).",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "bytes per second",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"basic_avc_sps_pps": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "AVC SPS/PPS",
"description": "AVC SPS/PPS.",
"default": false
}
}
},
"basic_operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MXF Operational Pattern",
"description": "MXF Operational Pattern.",
"default": false
},
"partition_closed": {
"type": "boolean",
"title": "Partition must be Closed",
"description": "Partition must be Closed.",
"default": false
},
"partition_complete": {
"type": "boolean",
"title": "Partition must be Complete",
"description": "Partition must be Complete.",
"default": false
},
"pattern": {
"type": "integer",
"title": "Operational Pattern",
"description": "Operational Pattern.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "OP-1a",
"value": 0
},
{
"name": "OP Atom",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"pattern",
"partition_closed",
"partition_complete"
]
}
}
]
},
"body_partition_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Count",
"description": "Enforce a minimum or maximum number of body partitions in the file.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_duration": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Duration",
"description": "Scan each body partition to ensure that its duration (measured in edit units) is within a given range.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_length": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Length",
"description": "Scan each body partition to ensure that its length (measured in bytes) is within a given range.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"body_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Body Partition Status",
"description": "Ensure that the body partition is restricted to a given combination of open/closed and complete/incomplete.",
"default": false
},
"test": {
"title": "Partition Status Test",
"description": "Partition Status Test.",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"channel_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"channels": {
"type": "integer",
"title": "Number Of Channels",
"description": "The number of channels expected.",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Channel Count",
"description": "Check the value of the Channel Count item in the Generic Sound Essence Descriptor(s). Because each track has a separate descriptor, this should be set to '1' for formats which expect multiple mono tracks.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"channels"
]
}
}
]
},
"color_range": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Color Range",
"description": "Check the Color Range item in the CDCI Picture Essence Descriptor, which is the number of distinct values for color difference (chroma) samples.",
"default": false
},
"range": {
"type": "integer",
"title": "Color Range",
"description": "The color range expected.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"range"
]
}
}
]
},
"colorsiting": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"colorsiting": {
"type": "integer",
"title": "Color Siting",
"description": "The color siting expected.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
255
],
"titleMap": [
{
"name": "CoSiting",
"value": 0
},
{
"name": "HorizontalMidpoint",
"value": 1
},
{
"name": "ThreeTap",
"value": 2
},
{
"name": "Quincunx",
"value": 3
},
{
"name": "Rec601",
"value": 4
},
{
"name": "LineAlternating",
"value": 5
},
{
"name": "VerticalMidpoint",
"value": 6
},
{
"name": "Unknown",
"value": 255
}
]
},
"enable": {
"type": "boolean",
"title": "Color Siting",
"description": "Check the Color Siting item of the CDCI Picture Essence Descriptor. This item describes the spatial relationship between the luma and chroma samples.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"colorsiting"
]
}
}
]
},
"component_depth": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"depth": {
"type": "integer",
"title": "Component Depth",
"description": "The component depth expected.",
"default": 0,
"suffix": "bits per sample",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Component Depth",
"description": "Check the Component Depth item in the CDCI Picture Essence Descriptor.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"depth"
]
}
}
]
},
"dialnorm": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "DialNorm",
"description": "Check the value of the Dial Norm item in the Generic Sound Essence Descriptor(s).",
"default": false
},
"test": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "integer",
"title": "Maximum",
"description": "The maximum value expected.",
"default": 31,
"minimum": 1,
"maximum": 31
},
"min": {
"type": "integer",
"title": "Minimum",
"description": "The minimum value expected.",
"default": 1,
"minimum": 1,
"maximum": 31
}
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"display_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Display Frame Size",
"description": "Restrict the values of 'Display Width' and 'Display Height' in the picture essence descriptor.",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'.",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"edit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Edit Rate",
"description": "Ensure that the given edit rate is present in the picture essence descriptor.",
"default": false
},
"ratio": {
"title": "Ratio",
"description": "The expected edit rate ratio.",
"$ref": "#/definitions/rational"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"ratio"
]
}
}
]
},
"element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"title": "e.g. 06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"description": "Custom keys may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00'). Multiple allowable keys may be separated by commas, and any single hex digit may be given as 'x' as a wildcard."
},
"enable": {
"type": "boolean",
"title": "Element Key",
"description": "Ensure that the Picture Element Keys (which wrap the stored essence) match the given value(s). Only the first content package is examined; this is not a continuous test throughout the whole file.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
],
"titleMap": [
{
"name": "GC SMPTE 381M MPEG Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.15.01.05.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"title": "e.g. 06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"description": "Custom labels may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01'). Multiple allowable labels may be separated by commas, and any single hex digit may be given as 'x' as a wildcard."
},
"enable": {
"type": "boolean",
"title": "Essence Container Label",
"description": "Ensure that the given Picture Essence Container Label(s) appear in the Partition Pack and Preface Set (if any) of every Partition.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"enum": [
"06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01",
"06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01"
],
"titleMap": [
{
"name": "GC AVC Byte Stream VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.0a.0d.01.03.01.02.10.60.01"
},
{
"name": "GC MPEG-ES VideoStream-0 SID Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"essence_location": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Essence Location",
"description": "Restrict the places in the file where essence may appear.",
"default": false
},
"test": {
"title": "Location Test",
"description": "Location Test.",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"essence_wrapping": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Wrapping Type",
"description": "Wrapping Type.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "Clip Wrapped",
"value": 0
},
{
"name": "Frame Wrapped",
"value": 1
}
]
},
"enable": {
"type": "boolean",
"title": "Essence Wrapping",
"description": "Ensure that any essence is either clip-wrapped or frame-wrapped. It looks at the Essence Container labels in every partition pack.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"field_dominance": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Field Dominance",
"description": "Examine the FieldDominance item in the Generic Picture Essence Descriptor.",
"default": false
},
"firstfield": {
"type": "integer",
"title": "First Field",
"description": "First Field.",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "Field 1 First",
"value": 0
},
{
"name": "Field 2 First",
"value": 1
},
{
"name": "No Field Dominance Flag ",
"value": 2
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"firstfield"
]
}
}
]
},
"footer_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Footer Partition Status",
"description": "Ensure that the footer partition is restricted to a given combination of open/closed and complete/incomplete.",
"default": false
},
"test": {
"title": "Partition Status Test",
"description": "Partition Status Test.",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"header_fill": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"suffix": "bytes Of KLV Fill after Header Metadata",
"title": "Header Fill Bytes",
"description": "Header Fill Bytes.",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Fill Test",
"description": "Check for a KLV fill item of at least the specified length, following the header metadata.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_metadata": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bytes": {
"type": "integer",
"default": 0,
"title": "Header Metadata Bytes",
"description": "Header Metadata Bytes.",
"suffix": "bytes Of Header Metadata including KLV Fill",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Header Metadata Size",
"description": "Check the value of HeaderByteCount in the header partition.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bytes"
]
}
}
]
},
"header_partition_status": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Header Partition Status",
"description": "Ensure that the header partition is present and is restricted to a given combination of open/closed and complete/incomplete.",
"default": false
},
"test": {
"title": "Partition Status Test",
"description": "Partition Status Test.",
"$ref": "#/definitions/partition_status_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"index_table": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"duration": {
"title": "Index Duration",
"description": "Tests the duration of the index table segment, in edit rate units. 0 is a valid duration with a special meaning for constant sized edit units.",
"suffix": "edit rate units",
"$ref": "#/definitions/minmax"
},
"edit_rate": {
"title": "Edit Rate",
"description": "Tests the numerator and denominator of the edit rate. This is typically a frame rate, e.g. 25 / 1 or 30000 / 1001.",
"suffix": "Hz",
"$ref": "#/definitions/rational"
},
"editunit_bytecount": {
"title": "Edit Unit Bytecount",
"description": "Tests the value of the Edit Unit Byte count field. 0 is a valid byte count, meaning that each edit unit is individually indexed.",
"$ref": "#/definitions/minmax"
},
"editunit_bytecount_constant": {
"type": "boolean",
"title": "Edit Unit Bytecount Is Constant",
"description": "Ensure that only a single value is ever used.",
"default": false
},
"enable": {
"type": "boolean",
"title": "Index Table Test",
"description": "Check each index table segment in isolation.",
"default": false
},
"forward_index_direction": {
"title": "Forward Index Direction",
"description": "Forward Index Direction.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"index_entry_array": {
"title": "Index Entry Array",
"description": "Index Entry Array.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Absent",
"value": 1
},
{
"name": "Present",
"value": 2
}
]
},
"single_essence_location": {
"title": "Single Essence Location",
"description": "Single Essence Location.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"single_index_location": {
"title": "Single Index Location",
"description": "Flags are described in Amendment 2:2012 to SMPTE ST 377M.",
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "False",
"value": 1
},
{
"name": "True",
"value": 2
}
]
},
"slicecount": {
"type": "integer",
"title": "Slice Count",
"description": "Number of slices in each index entry, minus one."
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"edit_rate",
"duration",
"editunit_bytecount",
"editunit_bytecount_constant",
"slicecount",
"single_index_location",
"single_essence_location",
"forward_index_direction",
"index_entry_array"
]
}
}
]
},
"index_table_location": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Index Table Location",
"description": "Restrict the places in the file where index table segments may appear.",
"default": false
},
"test": {
"title": "Location Test",
"description": "Location Test.",
"$ref": "#/definitions/location_test"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
}
]
},
"kagsize": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "KAG Size Test",
"description": "Ensure that the file offset of every partition pack matches the stated alignment.",
"default": false
},
"size": {
"type": "integer",
"title": "KAG Size",
"description": "KAG Size.",
"default": 0,
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"size"
]
}
}
]
},
"material_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Material Package Timecode Test",
"description": "Ensures that there is only one timecode track in the Material Package.",
"default": false
},
"test": {
"title": "Timecode Track Test",
"description": "Timecode Track Test.",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_bit_rate": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Bit Rate",
"description": "Check the value of the BitRate item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"$ref": "#/definitions/minmax_bits"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_coded_content": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Coded Content Kind",
"description": "Check the value of the CodedContentType item within the MPEG-2 Video Descriptor, indicating whether the content is interlaced, progressive or mixed.",
"default": false
},
"kind": {
"type": "integer",
"title": "Coded Kind",
"description": "Coded Kind.",
"default": 0,
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"name": "Unknown",
"value": 0
},
{
"name": "Progressive",
"value": 1
},
{
"name": "Interlaced",
"value": 2
},
{
"name": "Mixed",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"kind"
]
}
},
"mpeg_constant_bpicture_flag": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Constant B Picture Flag",
"description": "Check the value of the ConstantBframes item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Extended Bool Test",
"description": "Extended Bool Test.",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_identical_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Identical GOP Indicator",
"description": "Check the value of the IdenticalGOP item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Extended Bool Test",
"description": "Extended Bool Test.",
"$ref": "#/definitions/bool_extended",
"titleMap": [
{
"name": "1",
"value": 0
},
{
"name": "0",
"value": 1
},
{
"name": "Either",
"value": 2
},
{
"name": "Not Present",
"value": 3
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_bpicture_count": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max B Picture Count",
"description": "Check the value of the BPictureCount item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "B pictures",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"mpeg_max_gop": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "MPEG Max GOP Size",
"description": "Check the value of the MaxGOP item within the MPEG-2 Video Descriptor.",
"default": false
},
"test": {
"title": "Min Max Test",
"description": "Min Max Test.",
"suffix": "frames",
"$ref": "#/definitions/minmax"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"operational_pattern": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Operational Pattern",
"default": false,
"description": "Scan every Operational Pattern (in every partition pack and in the preface of any header metadata) to ensure that it is identical in every location, and that it matches the given constraints."
},
"essence_containers": {
"default": 0,
"title": "Essence Containers",
"description": "Essence Containers.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-track",
"value": 1
},
{
"name": "Uni-track",
"value": 2
}
]
},
"essence_reference": {
"default": 0,
"title": "Essence Reference",
"description": "Essence Reference.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "External",
"value": 1
},
{
"name": "Internal",
"value": 2
}
]
},
"essence_streaming": {
"default": 0,
"title": "Essence Streaming",
"description": "Essence Streaming.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Non-Streamable",
"value": 1
},
{
"name": "Streamable",
"value": 2
}
]
},
"essence_tracks": {
"default": 0,
"title": "Essence Tracks",
"description": "Essence Tracks.",
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-essence",
"value": 1
},
{
"name": "Single-essence",
"value": 2
}
]
},
"generalized": {
"type": "array",
"title": "Generalized",
"description": "Generalized.",
"items": {
"type": "string",
"enum": [
"Op1a",
"Op1b",
"Op1c",
"Op2a",
"Op2b",
"Op2c",
"Op3a",
"Op3b",
"Op3c"
]
}
},
"material_package": {
"default": 0,
"$ref": "#/definitions/bool_optional",
"titleMap": [
{
"name": "Don't Test",
"value": 0
},
{
"name": "Multi-source",
"value": 1
},
{
"name": "Single-source",
"value": 2
}
]
},
"specialized": {
"type": "boolean",
"title": "OP-Atom",
"description": "OP-Atom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"essence_reference",
"essence_streaming",
"essence_containers",
"specialized",
"material_package",
"essence_tracks"
]
}
}
]
},
"padding_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Padding Bits",
"description": "Padding Bits.",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Padding Bits",
"description": "Check the Padding Bits item in the CDCI Picture Essence Descriptor, which is the number of bits added to each component sample to pad it to its stored size.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"picture_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"description": "Codings.",
"items": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22
],
"titleMap": [
{
"name": "AVCI-50-1080-60-I",
"value": 0
},
{
"name": "AVCI-50-1080-50-I",
"value": 1
},
{
"name": "AVCI-50-1080-30-P",
"value": 2
},
{
"name": "AVCI-50-1080-25-P",
"value": 3
},
{
"name": "AVCI-50-720-60-P",
"value": 4
},
{
"name": "AVCI-50-720-50-P",
"value": 5
},
{
"name": "AVCI-100-1080-60-I",
"value": 6
},
{
"name": "AVCI-100-1080-50-I",
"value": 7
},
{
"name": "AVCI-100-1080-30-P",
"value": 8
},
{
"name": "AVCI-100-1080-25-P",
"value": 9
},
{
"name": "AVCI-100-720-60-P",
"value": 10
},
{
"name": "AVCI-100-720-50-P",
"value": 11
},
{
"name": "AVC-HIGH-10-INTRA-UNCS",
"value": 12
},
{
"name": "AVC-HIGH-422-INTRA-UNCS",
"value": 13
},
{
"name": "MPEG2-MP-HL-LONGGOP",
"value": 14
},
{
"name": "MPEG2-422P-HL-LONGGOP",
"value": 15
},
{
"name": "MPEG2-MP-H14-LONGGOP",
"value": 16
},
{
"name": "D10-50-625-50",
"value": 17
},
{
"name": "D10-50-525-60",
"value": 18
},
{
"name": "D10-40-625-50",
"value": 19
},
{
"name": "D10-40-525-60",
"value": 20
},
{
"name": "D10-30-625-50",
"value": 21
},
{
"name": "D10-30-525-60",
"value": 22
}
]
}
},
"enable": {
"type": "boolean",
"title": "Picture Essence Coding",
"description": "Ensure that the picture essence coding label is one of the given value(s).",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"picture_offsets": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"displayftwo": {
"type": "integer",
"title": "Display F2",
"description": "Display F2.",
"default": 0,
"minimum": 0
},
"displayx": {
"type": "integer",
"title": "Display X",
"description": "Display X.",
"default": 0,
"minimum": 0
},
"displayy": {
"type": "integer",
"title": "Display Y",
"description": "Display Y.",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Picture Offsets",
"description": "Examine several items in the Generic Picture Essence Descriptor which describe the geometrical relationship between the Stored Rectangle, the Sampled Rectangle and the Display Rectangle.",
"default": false
},
"imageend": {
"type": "integer",
"title": "Image End",
"description": "Image End.",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"imagestart": {
"type": "integer",
"title": "Image Start",
"description": "Image Start.",
"default": 0,
"suffix": "byte(s)",
"minimum": 0
},
"sampledx": {
"type": "integer",
"title": "Sampled X",
"description": "Sampled X.",
"default": 0,
"minimum": 0
},
"sampledy": {
"type": "integer",
"title": "Sampled Y",
"description": "Sampled Y.",
"default": 0,
"minimum": 0
},
"storedftwo": {
"type": "integer",
"title": "Stored F2",
"description": "Stored F2.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"storedftwo",
"displayftwo",
"sampledx",
"sampledy",
"displayx",
"displayy",
"imagestart",
"imageend"
]
}
}
]
},
"quantization_bits": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"bits": {
"type": "integer",
"title": "Number Of Bits",
"description": "Number Of Bits.",
"default": 0,
"suffix": "bits",
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Quantization Bits",
"description": "Check the value of the Quantization Bits item in the Generic Sound Essence Descriptor(s).",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"bits"
]
}
}
]
},
"reference_levels": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"black": {
"type": "integer",
"title": "Black",
"description": "Black.",
"default": 0,
"minimum": 0
},
"enable": {
"type": "boolean",
"title": "Reference Levels",
"description": "Check for specific black and white reference levels in the picture essence descriptor (see SMPTE 377M G.2.32 and G.2.33 respectively).",
"default": false
},
"white": {
"type": "integer",
"title": "White",
"description": "White.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"black",
"white"
]
}
}
]
},
"rip_presence": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "RIP Presence",
"description": "Ensure a Random Index Pack is present at the end of the file.",
"default": false
}
}
},
"runin": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Run-In Test",
"description": "Ensure that any run-in does not exceed a given length. It is most often used with a value of 0 to prohibit any run-in.",
"default": false
},
"max_bytes": {
"type": "integer",
"default": 0,
"title": "Max Bytes",
"description": "Max Bytes.",
"suffix": "bytes",
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_bytes"
]
}
}
]
},
"sampled_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Sampled Frame Size",
"description": "Restrict the values of 'Sampled Width' and 'Sampled Height' in the picture essence descriptor.",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'.",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"sdti_timecode_continuity": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "SDTI Timecode Continuity Test",
"description": "Inspect the SDTI timestamp of every MXF Content Package and ensure that the timestamps are continuous. This test should only be enabled for MXF files conforming to the SDTI Content Package Format (see SMPTE 326M and 331M).",
"default": false
}
}
},
"signal_standard": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Signal Standard",
"description": "Examine the Signal Standard item in the Generic Picture Essence Descriptor, indicating the source of the video essence.",
"default": false
},
"standard": {
"type": "integer",
"title": "Standard",
"description": "Signal Standard.",
"default": 0,
"enum": [
0,
1,
2,
3,
4,
5,
6,
7
],
"titleMap": [
{
"name": "0: No Specific Underlying Standard",
"value": 0
},
{
"name": "1: ITU-R BT.601 and BT.656, SMPTE 125M",
"value": 1
},
{
"name": "2: ITU-R BT.1358 and ITU-R BT.799-3, SMPTE 293M",
"value": 2
},
{
"name": "3: SMPTE 347M (540 Mbps Mappings)",
"value": 3
},
{
"name": "4: SMPTE 274M (1125 Line)",
"value": 4
},
{
"name": "5: SMPTE 296M (750 Line Progressive)",
"value": 5
},
{
"name": "6: SMPTE 349M (1485 Mbps Mappings)",
"value": 6
},
{
"name": "7: SMPTE 428-1 DCDM",
"value": 7
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"standard"
]
}
}
]
},
"sound_element_key": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"title": "e.g. 06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"description": "Custom keys may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x'). Multiple allowable keys may be separated by commas, and any single hex digit may be given as 'x' as a wildcard."
},
"enable": {
"type": "boolean",
"title": "Sound Element Key",
"description": "Ensure that the Sound Element Keys (which wrap the stored essence) match the given value(s). Only the first content package is examined; this is not a continuous test throughout the whole file.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"enum": [
"06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x",
"06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x"
],
"titleMap": [
{
"name": "GC SMPTE 382M 8-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.08.03.0x"
},
{
"name": "GC SMPTE 382M 16-Ch AES Frame-wrapped",
"value": "06.0e.2b.34.01.02.01.01.0d.01.03.01.16.10.03.0x"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"sound_essence_coding": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"codings": {
"type": "array",
"title": "Codings",
"description": "The expected codings.",
"items": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2
],
"titleMap": [
{
"name": "PCM",
"value": 0
},
{
"name": "Default Uncompressed",
"value": 1
},
{
"name": "Dolby E",
"value": 2
}
]
}
},
"enable": {
"type": "boolean",
"title": "Sound Essence Coding",
"description": "Ensure that the sound essence coding label is one of the given values.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"codings"
]
}
}
]
},
"sound_essence_container_label": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"custom": {
"type": "string",
"title": "e.g. 06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"description": "Custom labels may be specified using a dotted 16-hex-byte format (e.g. '06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00'). Multiple allowable labels may be separated by commas, and any single hex digit may be given as 'x' as a wildcard."
},
"enable": {
"type": "boolean",
"title": "Sound Essence Container Label",
"description": "Ensure that the given Sound Essence Container Label(s) appear in the Partition Pack and Preface Set (if any) of every Partition.",
"default": false
},
"predefined": {
"type": "string",
"title": "Predefined",
"description": "Predefined.",
"default": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"enum": [
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00",
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00",
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00",
"06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00"
],
"titleMap": [
{
"name": "GC BWF Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.01.00"
},
{
"name": "GC BWF Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.02.00"
},
{
"name": "GC AES-3 Frame-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.03.00"
},
{
"name": "GC AES-3 Clip-wrapped",
"value": "06.0e.2b.34.04.01.01.01.0d.01.03.01.02.06.04.00"
}
]
},
"usecustom": {
"type": "boolean",
"title": "Use Custom",
"description": "Use Custom.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"predefined",
"usecustom"
]
}
},
{
"if": {
"not": {
"properties": {
"usecustom": {
"const": false
}
}
}
},
"then": {
"required": [
"custom"
]
}
}
]
},
"source_package_timecode": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Source Package Timecode Test",
"description": "Ensure that there is only one timecode track in the File Source Package.",
"default": false
},
"test": {
"title": "Timecode Track Test",
"description": "Timecode Track Test.",
"$ref": "#/definitions/timecode_track_test"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"test"
]
}
},
"stored_frame_size": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Stored Frame Size",
"description": "Restrict the values of 'Stored Width' and 'Stored Height' in the picture essence descriptor.",
"default": false
},
"frame_size": {
"type": "string",
"title": "Frame Size(s)",
"description": "Allowed frame sizes as a comma seperated list, e.g. '320x240', '1920x544,320x240'.",
"suffix": "(WxH) e.g. '1920x544'"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"frame_size"
],
"properties": {
"frame_size": {
"minLength": 3,
"allOf": [
{
"$ref": "#/definitions/comma_separated_frame_sizes"
}
]
}
}
}
}
]
},
"subsampling": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Subsampling",
"description": "Check the Horizontal and Vertical Subsampling items in the CDCI Picture Essence Descriptor.",
"default": false
},
"horizontal": {
"type": "integer",
"title": "Horizontal",
"description": "Horizontal.",
"default": 0,
"minimum": 0
},
"vertical": {
"type": "integer",
"title": "Vertical",
"description": "Vertical.",
"default": 0,
"minimum": 0
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"horizontal",
"vertical"
]
}
}
]
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"version": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Version Test",
"description": "Check for a specific MXF version. All versions within a file (inside each Preface and Partition Pack) are tested.",
"default": false
},
"mxf_version": {
"type": "integer",
"title": "MXF Version",
"description": "The MXF Version to use.",
"default": 0,
"enum": [
0,
1
],
"titleMap": [
{
"name": "SMPTE 377 2004",
"value": 0
},
{
"name": "SMPTE 377 2011",
"value": 1
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"mxf_version"
]
}
}
]
},
"video_descriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Descriptor Type",
"description": "Descriptor Type.",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "MPEG",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Descriptor",
"description": "Ensure that the Picture Essence Descriptor is an MPEG-2 Video Descriptor as specified in SMPTE 381M.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
},
"video_line_map": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"type": "boolean",
"title": "Video Line Map",
"description": "Check for a given comma-separated list of Video Line Map entries (e.g. '16,278') in the picture essence descriptor. The order of the entries is important.",
"default": false
},
"linemaps": {
"type": "string",
"title": "Line Maps",
"description": "A list of comma-separated values, e.g. '21, 584'."
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"linemaps"
]
}
}
]
},
"video_subdescriptor": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "integer",
"title": "Subdescriptor Type",
"description": "Subdescriptor Type.",
"default": 0,
"enum": [
0
],
"titleMap": [
{
"name": "AVC",
"value": 0
}
]
},
"enable": {
"type": "boolean",
"title": "Video Subdescriptor",
"description": "Check for the presence of an AVC SubDescriptor within the Picture Essence Descriptor.",
"default": false
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"type"
]
}
}
]
}
},
"title": "Deep MXF Tests",
"category": "Deep MXF Tests"
},
"netflix_photon": {
"type": "object",
"title": "Netflix Photon",
"description": "Validate IMF assets using Netflix Photon.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Distribution and Broadcast"
},
"nielsen_watermark": {
"type": "object",
"title": "Nielsen Watermark",
"description": "Decode an audio stream and reports Nielsen watermarks found in the stream.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Nielsen Watermark Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/nielsen_test_config"
}
}
},
"category": "Distribution and Broadcast"
},
"peak_level": {
"type": "object",
"title": "Peak Level",
"description": "Measure the instantaneous audio level on the selected audio Channel(s).",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Peak Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/peak_test_config"
}
}
},
"category": "Audio Quality"
},
"phase_coherence": {
"type": "object",
"title": "Phase Coherence",
"description": "Measure how similar the left and right channels are.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Phase Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/phase_test_config"
}
}
},
"category": "Audio Quality"
},
"ppm_level": {
"type": "object",
"properties": {
"audioconfigs": {
"type": "array",
"title": "PPM Level Test Configuration",
"description": "The peak level according to the \"BBC Peak Program Meter\" (IEC 60268-10 Type IIa) standard. The meter can operate in MS (sum/difference) mode (modes M3 and M6), or AB mode (individual channels). Note that in MS mode, only the sum is measured.",
"items": {
"$ref": "#/definitions/ppm_level_test_config"
}
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"title": "PPM Level",
"category": "Audio Quality"
},
"programstream_syntax_test": {
"type": "object",
"title": "Program Stream Container Syntax",
"description": "Check Program Stream.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
}
},
"category": "Syntax Checks"
},
"pse_harding": {
"type": "object",
"title": "PSE Harding Test",
"description": "PSE (photosensitive epilepsy) test using Harding.",
"required": [
"standard"
],
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"standard": {
"title": "Standard",
"description": "The standard to test against.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4
],
"titleMap": [
{
"value": 0,
"name": "Ofcom 2009"
},
{
"value": 1,
"name": "NAB Japan 2006"
},
{
"value": 2,
"name": "ITU BT.1702-1"
},
{
"value": 3,
"name": "ITU BT.1702-2"
},
{
"value": 4,
"name": "Japan HDR"
}
],
"default": 2
},
"dolby_vision_hdr": {
"type": "object",
"title": "Enable Dolby Vision HDR testing",
"description": "Whether to enable dolby vision hdr testing.",
"required": [
"enable"
],
"properties": {
"enable": {
"type": "boolean",
"default": false,
"title": "Enable Dolby Vision HDR testing",
"description": "Whether to enable dolby vision hdr testing."
},
"dolbyvision_targetdisplay": {
"title": "Dolby Vision target display",
"description": "The target display to use when assessing Dolby Vision HDR videos.",
"type": "integer",
"enum": [
21,
27,
37,
42,
48,
255
],
"titleMap": [
{
"value": 21,
"name": "48-nit, P3, D65, Gamma2.6, Full (CINEMA)"
},
{
"value": 27,
"name": "600-nit, P3, D65, ST.2084, Full (HOME)"
},
{
"value": 37,
"name": "2000-nit, P3, D65, ST.2084, Full (HOME)"
},
{
"value": 42,
"name": "108-nit, P3, D65, ST.2084, Full (CINEMA)"
},
{
"value": 48,
"name": "1000-nit, P3, D65, ST.2084, Full (HOME)"
},
{
"value": 255,
"name": "Custom"
}
],
"default": 48
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"dolbyvision_targetdisplay"
]
}
},
"default_color_space": {
"title": "Default Color Space",
"description": "The default color space to test with if the media file color space is unspecified. For PSE SD (standard definition) is typically BT.601, HD (High Definition) is typically BT.709 and anything higher than that is BT.2020. Use 'None' if the PSE test should fail when there is no color space specified.",
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "BT.601"
},
{
"value": 2,
"name": "BT.709"
},
{
"value": 3,
"name": "BT.2020"
}
],
"default": 0
}
},
"category": "Video Quality"
},
"pse": {
"type": "object",
"title": "PSE Test (Proprietary)",
"description": "PSE (photosensitive epilepsy) test using Telestream PSE Algorithm v5.1.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"use_legacy": {
"title": "Use Legacy Standard",
"type": "boolean",
"description": "Use BT1702-1 PSE checking standard.",
"default": false
},
"check_type": {
"title": "Check Type",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Standard"
},
{
"value": 1,
"name": "Strict"
}
],
"default": 0,
"description": "Standard: 3.5 flashes at 25% of the picture\nStrict: 3.5 flashes at 20% of the picture."
},
"check_for_extended": {
"title": "Check For Extended",
"type": "boolean",
"description": "Check For Extended flashing.",
"default": true
},
"check_for_red": {
"title": "Check For Red",
"type": "boolean",
"description": "Check for saturated red flashes.",
"default": true
},
"check_for_patterns": {
"title": "Check For Patterns",
"type": "boolean",
"description": "Check for potentially harmful regular patterns.",
"default": true
}
},
"category": "Video Quality"
},
"rgb_gamut": {
"type": "object",
"title": "RGB Gamut",
"description": "Detect if the RGB color values are within the given range.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"range_from": {
"title": "Low RGB Component Limit (%)",
"type": "number",
"default": -5,
"minimum": -9,
"maximum": 109,
"description": "Default value is 5%, as suggested in the EBU R103-2000 section 'Tolerances on color gamut'. Use 0-100 for no tolerance."
},
"range_to": {
"title": "High RGB Component Limit (%)",
"type": "number",
"default": 105,
"minimum": -9,
"maximum": 109,
"description": "Default value is 5%, as suggested in the EBU R103-2000 section 'Tolerances on color gamut'. Use 0-100 for no tolerance."
},
"max_area_outside": {
"title": "Max area outside (%)",
"type": "number",
"default": 1,
"minimum": 0,
"maximum": 100,
"description": "Maximum area of the video picture that can be outside the given range without generating an error."
},
"low_pass_filter": {
"title": "Low-pass filter",
"type": "integer",
"description": "When EBU R103 2000 is selected, a horizontal signal filter (as described in EBU R103-2000) is applied to the RGB components before testing to remove transient violations. When EBU R103-2016 is selected, a quarter band signal filter is applied horizontally and a half band signal filter is applied vertically (as described in EBU R103-2016) to the RGB components before testing to remove transient violations.",
"enum": [
0,
1,
2
],
"default": 0,
"titleMap": [
{
"value": 0,
"name": "None"
},
{
"value": 1,
"name": "EBU R103 2000"
},
{
"value": 2,
"name": "EBU R103 2016"
}
]
}
},
"required": [
"range_from",
"range_to",
"max_area_outside",
"low_pass_filter"
],
"category": "Video Quality"
},
"video_segment_detection": {
"type": "object",
"required": [
"custom_level",
"silence",
"duration",
"units",
"percentage"
],
"title": "Video Segment Detection",
"description": "Detect video segments within the content.",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"$ref": "#/definitions/audio_config_silence"
}
],
"properties": {
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$ref": "#/definitions/level_14_bit"
},
"percentage": {
"title": "Percentage of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "This is the area of the frame which must all be non-active in order to trigger the alert."
},
"duration": {
"title": "Minimum Black Frame Duration",
"type": "number",
"minimum": 0,
"default": 10,
"description": "Black frames with duration below the given threshold will be treated as active frames."
},
"units": {
"title": "Time Units",
"description": "The time units to use.",
"$ref": "#/definitions/time_units"
},
"silence": {
"title": "Digital Silence",
"type": "boolean",
"description": "Black frames must be accompanied by digital silence across all tracks otherwise they will be treated as active frames.",
"default": false
}
},
"category": "Video Quality"
},
"service_count": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"check_any": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of services of any type",
"description": "Check the number of services of any type in the file. E.g. CC 1 to CC 4 and Service 1 to Service 6.",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of services expected",
"type": "string",
"description": "The specified service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c608": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-608 services",
"description": "Check number of CEA-608 services in the file. E.g. CC 1 to CC 4.",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-608 services expected",
"type": "string",
"description": "The specified CEA-608 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"check_c708": {
"type": "object",
"required": [
"enable"
],
"additionalProperties": false,
"properties": {
"enable": {
"title": "Check number of CEA-708 services",
"description": "Check number of CEA-708 services in the file. E.g. Service 1 to Service 6.",
"type": "boolean",
"default": false
},
"options": {
"title": "Number of CEA-708 services expected",
"type": "string",
"description": "The specified CEA-708 service counts(s) as a comma seperated list, e.g. '1,>=3' for 1 or >=3 services.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
}
},
"title": "Service Count Test",
"category": "Caption Checks"
},
"short_term_loudness": {
"type": "object",
"title": "Short-term Loudness",
"description": "Measure short-term loudness over a sliding rectangular time window. The measurement is not gated.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Short-term Loudness Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/shortterm_loudness_test_config"
}
}
},
"category": "Audio Quality"
},
"silence": {
"type": "object",
"title": "Silence",
"description": "Check for the presence or absence of silence for the whole or parts of a track.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Silence Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/silence_test_config"
}
}
},
"category": "Audio Quality"
},
"single_color_frame": {
"type": "object",
"title": "Single Color Frame",
"description": "Detect sequences where the entire frame is a single color.",
"allOf": [
{
"$ref": "#/definitions/video_config"
},
{
"allOf": [
{
"if": {
"not": {
"properties": {
"custom_level": {
"const": false
}
}
}
},
"then": {
"required": [
"bit_depth",
"level_8_bit",
"level_10_bit",
"level_12_bit",
"level_14_bit"
]
}
},
{
"if": {
"not": {
"properties": {
"max_allowed_enable": {
"const": false
}
}
}
},
"then": {
"required": [
"max_allowed_duration",
"max_allowed_units"
]
}
}
]
}
],
"properties": {
"custom_level": {
"title": "Custom Level",
"type": "boolean",
"description": "Use custom luminance level (Y) for non-active picture area.",
"default": false
},
"bit_depth": {
"$ref": "#/definitions/video_bit_depth"
},
"level_8_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 8.",
"$ref": "#/definitions/level_8_bit"
},
"level_10_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 10.",
"$ref": "#/definitions/level_10_bit"
},
"level_12_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 12.",
"$ref": "#/definitions/level_12_bit"
},
"level_14_bit": {
"title": "Black Level",
"description": "The black level to use when bit depth is 14.",
"$ref": "#/definitions/level_14_bit"
},
"percentage_of_frame": {
"title": "Percentage of Frame",
"type": "integer",
"minimum": 0,
"maximum": 100,
"default": 100,
"description": "This is the area of the frame which must all be a single color in order to trigger the alert. When testing video from an analog source (or in the presence of other noise) it may be desirable to select a value less than 100% to ensure that colored frames are still detected."
},
"ignore_black_frames": {
"title": "Ignore black frames",
"type": "boolean",
"default": false,
"description": "Whether to ignore black frames."
},
"max_allowed_enable": {
"title": "Test Whole File",
"description": "Test whole file for the presence of single color frames.",
"type": "boolean",
"default": true
},
"max_allowed_duration": {
"title": "Max Single Color Frames Allowed",
"description": "Maximum permitted duration of a single-color sequence. Set to 0 to disallow any single-color frames.",
"$ref": "#/definitions/range_limit"
},
"max_allowed_units": {
"title": "Max Allowed Time Units",
"description": "Max Allowed Time Units.",
"$ref": "#/definitions/time_units"
},
"ranges": {
"title": "Range",
"description": "The ranges to test against.",
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/singlecolor_range"
}
}
},
"category": "Video Quality"
},
"stripe_errors": {
"type": "object",
"title": "Stripe Errors",
"description": "Check for stripe errors.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"properties": {
"sensitivity": {
"title": "Stripe Errors Sensitivity",
"description": "The Stripe Errors Sensitivity.",
"$ref": "#/definitions/sensitivity"
}
},
"category": "Video Quality"
},
"discrete_subtitle": {
"type": "object",
"title": "Discrete Subtitle Test",
"description": "Check for the presence of discreet subtitles.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"subtitle_presence": {
"title": "Detect and Report the Presence of Discrete Subtitles",
"type": "boolean",
"description": "Find subtitles.",
"default": false
},
"subtitle_dropout": {
"title": "Detect and report any Subtitle Dropouts",
"type": "boolean",
"description": "Will test for the absence of subtitles in the given interval.",
"default": false
},
"no_subtitle_threshold": {
"title": "Max time allowed with no subtitle data",
"type": "number",
"minimum": 0.0,
"maximum": 3600.0,
"description": "The minimum threshold for which subtitles must be updated.",
"default": 10.0
},
"subtitle_dropout_duration_units": {
"title": "Time Units",
"description": "The time units to use for subtitle dropout.",
"$ref": "#/definitions/time_units"
},
"check_stl": {
"title": "STL checks",
"description": "Enables STL sidecar checks.",
"type": "boolean",
"default": false
},
"sidecar_stl_present": {
"title": "Check that Sidecar STL is present",
"description": "Checks that the STL sidecar is present.",
"type": "boolean",
"default": false
},
"stl_service_group": {
"title": "STL Group",
"description": "Verify all subtitles are in the same subtitling group.",
"type": "integer",
"default": 0,
"minimum": 0,
"maximum": 255
},
"stl_start_timecode": {
"title": "STL start timecode check",
"description": "Check that the start timecode of the STL matches the container start timecode of the media.",
"type": "boolean",
"default": false
},
"stl_start_timecode_source": {
"title": "Start Timecode source priority",
"description": "The start timecode source priority.",
"type": "string",
"enum": [
"deft",
"movt",
"pic ",
"MDPM",
"avc1",
"gopt",
"mxft",
"mxfs",
"mxfm",
"mxfa",
"anc ",
"gxft",
"gxtt",
"gxst",
"vbi ",
"gxfa",
"lxft",
"lxfa",
"tfot",
"dift"
],
"titleMap": [
{
"value": "deft",
"name": "Default"
},
{
"value": "movt",
"name": "QuickTime Time Code track"
},
{
"value": "pic ",
"name": "SEI Picture Timing"
},
{
"value": "MDPM",
"name": "SEI AVCHD Metadata"
},
{
"value": "avc1",
"name": "AVC-Intra SEI Message Type-1"
},
{
"value": "gopt",
"name": "MPEG-2 GOP Time Code"
},
{
"value": "mxft",
"name": "SMPTE ST377 MXF Time Code Track"
},
{
"value": "mxfs",
"name": "SMPTE ST377 MXF System Item Time Code"
},
{
"value": "mxfm",
"name": "SMPTE ST377 MXF Material Package Time Code"
},
{
"value": "mxfa",
"name": "SMPTE ST436 MXF Ancillary Data"
},
{
"value": "anc ",
"name": "SMPTE ST291 Ancillary Data"
},
{
"value": "gxft",
"name": "SMPTE ST360 GXF Time Code"
},
{
"value": "gxtt",
"name": "SMPTE ST360 GXF Track Time Code"
},
{
"value": "gxst",
"name": "SMPTE ST360 GXF Striped Time Code"
},
{
"value": "vbi ",
"name": "Vertical Blanking Interval"
},
{
"value": "gxfa",
"name": "SMPTE ST360 GXF Ancillary Data"
},
{
"value": "lxft",
"name": "LXF Time Code"
},
{
"value": "lxfa",
"name": "LXF Ancillary Data"
},
{
"value": "dift",
"name": "DV/DVCPRO LTC Time Code"
}
],
"default": "deft"
},
"fallback_framerate": {
"title": "If no framerate is detected, default to",
"type": "number",
"minimum": 1,
"description": "A fallback framerate for sources with no framerate properties.",
"default": 25,
"suffix": "fps"
}
},
"allOf": [
{
"if": {
"properties": {
"subtitle_dropout": {
"const": true
}
}
},
"then": {
"required": [
"no_subtitle_threshold",
"subtitle_dropout_duration_units"
]
}
},
{
"if": {
"properties": {
"subtitle_dropout_duration_units": {
"const": 1
}
}
},
"then": {
"required": [
"fallback_framerate"
]
}
},
{
"if": {
"properties": {
"check_stl": {
"const": true
}
}
},
"then": {
"required": [
"sidecar_stl_present",
"stl_service_group",
"stl_start_timecode",
"fallback_framerate"
]
}
},
{
"if": {
"properties": {
"stl_start_timecode": {
"const": true
}
}
},
"then": {
"required": [
"stl_start_timecode_source"
]
}
}
],
"category": "Caption Checks"
},
"syntax_checks": {
"type": "object",
"title": "Syntax Checks",
"description": "Enable syntax checking for some codec types.",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"video_codecsyntax_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Codec Syntax",
"description": "Run MPEG-2, AVC/H.264, Dolby E and VC-3 codec syntax checks.",
"type": "boolean",
"default": false
},
"options": {
"title": "Codecs",
"description": "Which syntax checks to run.",
"type": "array",
"items": {
"type": "string",
"enum": [
"h264",
"mpeg2",
"dolbye",
"vc3"
],
"titleMap": [
{
"value": "h264",
"name": "H.264/AVC"
},
{
"value": "mpeg2",
"name": "MPEG-2"
},
{
"value": "dolbye",
"name": "Dolby E"
},
{
"value": "vc3",
"name": "VC-3"
}
]
}
}
},
"if": {
"properties": {
"enable": {
"const": true
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
}
},
"category": "Syntax Checks"
},
"tek_mos": {
"type": "object",
"title": "TMOS",
"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 TMOS score, varies from 0 (Poor) to 5 (Excellent)."
},
"clip_threshold_percentage": {
"title": "TMOS Clip Threshold Percentage",
"type": "number",
"default": 5,
"minimum": 0,
"maximum": 100,
"suffix": "%",
"description": "% of all frames have TMOS scores less than the program threshold."
},
"duration_threshold_score": {
"title": "Short-term Threshold",
"type": "number",
"default": 3,
"minimum": 0,
"maximum": 5,
"description": "Minimum desired TMOS 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 TMOS score less than the short-term threshold."
},
"duration_averaged_over": {
"title": "For A Minimum Duration Of",
"description": "For A Minimum Duration Of.",
"$ref": "#/definitions/int32",
"minimum": 1,
"default": 10,
"suffix": "Seconds"
},
"frame_sampling_type": {
"title": "Frame Sampling",
"description": "How often to measure/score frames.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Measure TMOS score for every frame"
},
{
"value": 1,
"name": "Measure TMOS score at a target frame rate of"
}
],
"default": 1
},
"frames_to_be_sampled": {
"title": "Frames per Second",
"description": "Frames to be sampled per second.",
"$ref": "#/definitions/int32",
"minimum": 0,
"default": 5
},
"deinterlace": {
"title": "Apply De-interlacing",
"description": "Whether the image is expected to be interlaced.",
"type": "boolean",
"default": false
},
"region_of_interest": {
"title": "Region-of-interest",
"description": "The region of interest of the frame.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "Automatic"
},
{
"value": 1,
"name": "Center Of Frame"
}
],
"default": 0
}
},
"required": [
"frame_sampling_type",
"clip_threshold_score",
"clip_threshold_percentage",
"duration_threshold_score",
"duration_threshold_score_percentage",
"duration_averaged_over",
"deinterlace",
"region_of_interest"
],
"category": "Video Quality"
},
"tone": {
"type": "object",
"title": "ToneTest",
"description": "Checks for the presence of a sine wave tone (a test tone).",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"audioconfigs": {
"title": "Tone Test Configuration",
"description": "The audio configurations to test.",
"type": "array",
"items": {
"$ref": "#/definitions/tone_test_config"
}
}
},
"category": "Audio Quality"
},
"upconversion_detection": {
"type": "object",
"title": "Upconversion Detection Test",
"description": "Detect if the input video stream has been upconverted from a lower resolution.",
"allOf": [
{
"$ref": "#/definitions/video_config"
}
],
"category": "Video Quality"
},
"video_metadata": {
"type": "object",
"properties": {
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as"
},
"afd_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Active Format Description",
"description": "Test the value of the Active Format Description (AFD) as sent in the User Data of an MPEG-2 video sequence.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"value": {
"title": "AFD must be",
"description": "What the Active Format Description (AFD) must be.",
"type": "integer",
"enum": [
-1,
2,
3,
4,
8,
9,
10,
11,
13,
14,
15
],
"titleMap": [
{
"value": -1,
"name": "Not present in stream"
},
{
"value": 2,
"name": "(2) Top-aligned 16:9 image"
},
{
"value": 3,
"name": "(3) Top-aligned 14:9 image"
},
{
"value": 4,
"name": "(4) Letterbox aspect > 16:9"
},
{
"value": 8,
"name": "(8) Full frame"
},
{
"value": 9,
"name": "(9) 4:3 image"
},
{
"value": 10,
"name": "(10) 16:9 image"
},
{
"value": 11,
"name": "(11) 14:9 image"
},
{
"value": 13,
"name": "(13) 4:3 image with alternative 14:9 center"
},
{
"value": 14,
"name": "(14) 16:9 image with alternative 14:9 center"
},
{
"value": 15,
"name": "(15) 16:9 image with alternative 4:3 center"
}
]
},
"changes": {
"title": "Report Dynamic AFD Changes",
"description": "Report Dynamic AFD Changes.",
"type": "boolean",
"default": false
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"changes"
]
}
},
"video_palorntsc_test": {
"type": "object",
"properties": {
"enable": {
"title": "Is PAL or NTSC",
"type": "boolean",
"description": "This checks if PAL/NTSC video is present.",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"standard": {
"title": "Broadcast format must be",
"description": "Whether the broadcast format is NTSC or PAL.",
"type": "string",
"enum": [
"ntsc",
"pal"
],
"titleMap": [
{
"value": "ntsc",
"name": "NTSC"
},
{
"value": "pal",
"name": "PAL"
}
]
},
"total_lines": {
"title": "Check Total lines",
"type": "boolean",
"description": "Checks if total lines are 525/625 lines.",
"default": false
},
"display_lines": {
"title": "Check Display lines",
"type": "boolean",
"description": "Checks if display lines are 480/576 lines.",
"default": true
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"standard",
"total_lines",
"display_lines"
]
}
}
]
},
"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
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"value": {
"title": "Alpha channel must be",
"description": "Whether the alpha channel must be present or not.",
"type": "boolean",
"enum": [
false,
true
],
"default": false,
"titleMap": [
{
"value": false,
"name": "not present"
},
{
"value": true,
"name": "present"
}
]
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value"
]
}
}
]
},
"video_buffersize_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Buffer Size",
"description": "Video Buffer Size.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"mode": {
"title": "Test mode",
"description": "Test mode.",
"type": "string",
"enum": [
"value",
"range"
],
"default": "value"
},
"options": {
"title": "Value(s)",
"type": "string",
"description": "The allowed buffer sizes as a comma separated list, e.g. '<5,10,>=25'.",
"$ref": "#/definitions/comma_separated_positive_numbers_with_operators",
"suffix": "KiB"
},
"minimum": {
"title": "Minimum",
"description": "The minimum value allowed.",
"type": "number",
"minimum": 0,
"suffix": "KiB"
},
"maximum": {
"title": "Maximum",
"description": "The maximum value allowed.",
"type": "number",
"minimum": 0,
"suffix": "KiB"
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "value"
}
}
},
"then": {
"required": [
"options"
]
}
}
},
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"if": {
"properties": {
"mode": {
"const": "range"
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
}
]
},
"video_bitratemode_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Bit Rate Mode",
"description": "Check whether the bit rate mode is variable (VBR) or constant (CBR).",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"option": {
"title": "Mode",
"description": "The video bitrate mode to allow.",
"type": "string",
"enum": [
"cbr",
"vbr"
],
"titleMap": [
{
"value": "cbr",
"name": "CBR"
},
{
"value": "vbr",
"name": "VBR"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"option"
]
}
},
"video_codec_test": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Codec",
"description": "Test the format of the video elementary stream.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"title": "All codecs",
"description": "Which video codecs are allowed.",
"type": "array",
"items": {
"type": "string",
"enum": [
"ap ",
"AVDJ",
"AVdn",
"AVdh",
"dv ",
"dvp ",
"dv50",
"dv1 ",
"dvh1",
"avc1",
"hvc1",
"mp2v",
"mp4v",
"mjpg",
"mjp2",
"RGB ",
"SRAW",
"YUV ",
"WVC1"
],
"titleMap": [
{
"value": "ap ",
"name": "Apple ProRes"
},
{
"value": "AVDJ",
"name": "Avid Meridien"
},
{
"value": "AVdn",
"name": "Avid DNxHD"
},
{
"value": "AVdh",
"name": "Avid DNxHR"
},
{
"value": "dvp ",
"name": "DVCPRO25"
},
{
"value": "dv50",
"name": "DVCPRO50"
},
{
"value": "dv1 ",
"name": "DVCPRO100"
},
{
"value": "dvh1",
"name": "DVCPROHD"
},
{
"value": "dv ",
"name": "DVC25"
},
{
"value": "avc1",
"name": "H.264/AVC"
},
{
"value": "hvc1",
"name": "H.265/HEVC"
},
{
"value": "mjpg",
"name": "M-JPEG"
},
{
"value": "mjp2",
"name": "JPEG 2000"
},
{
"value": "mp2v",
"name": "MPEG-2"
},
{
"value": "mp4v",
"name": "MPEG-4"
},
{
"value": "RGB ",
"name": "Uncompressed RGB"
},
{
"value": "SRAW",
"name": "Sony Raw"
},
{
"value": "YUV ",
"name": "Uncompressed YUV"
},
{
"value": "WVC1",
"name": "VC-1"
}
]
}
},
"video_entropymode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Entropy Coding Mode",
"description": "Test whether an H.264 video stream uses 'CABAC'.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"title": "Mode",
"description": "Which Entropy Coding Mode to allow.",
"type": "integer",
"enum": [
0,
1
],
"titleMap": [
{
"value": 0,
"name": "CABAC"
},
{
"value": 1,
"name": "CAVLC"
}
]
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
]
}
},
"video_codedinterlacemode_test": {
"type": "object",
"properties": {
"enable": {
"title": "Coded Interlace Mode",
"description": "Check the coded interlaced mode. E.g. interlaced or progressive.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"options": {
"title": "Mode",
"description": "The coded interlace mode to allow.",
"type": "array",
"items": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"titleMap": [
{
"value": 0,
"name": "FMBS"
},
{
"value": 1,
"name": "MBAFF"
},
{
"value": 2,
"name": "PAFF"
},
{
"value": 3,
"name": "PSF"
}
]
}
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
}
}
},
"mpeg2_profile": {
"title": "MPEG-2 Profile",
"description": "The MPEG-2 Profile to allow.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"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"
},
{
"value": 6,
"name": "422"
}
],
"default": 0
},
"mpeg2_level": {
"title": "MPEG-2 Level",
"description": "The MPEG-2 Level to allow.",
"type": "integer",
"enum": [
0,
2,
4,
6,
8,
10
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 2,
"name": "HighP"
},
{
"value": 4,
"name": "High"
},
{
"value": 6,
"name": "High-1440"
},
{
"value": 8,
"name": "Main"
},
{
"value": 10,
"name": "Low"
}
],
"default": 0
},
"prores_profile": {
"title": "ProRes Profile",
"description": "The ProRes Profile to allow.",
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6
],
"titleMap": [
{
"value": 0,
"name": "Any"
},
{
"value": 1,
"name": "422"
},
{
"value": 2,
"name": "422 (HQ)"
},
{
"value": 3,
"name": "422 (LT)"
},
{
"value": 4,
"name": "422 (Proxy)"
},
{
"value": 5,
"name": "4444"
},
{
"value": 6,
"name": "4444 XQ"
}
],
"default": 0
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"minItems": 1
}
},
"allOf": [
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"mp2v"
]
}
}
}
},
"then": {
"required": [
"mpeg2_profile",
"mpeg2_level"
]
}
},
{
"if": {
"properties": {
"options": {
"contains": {
"enum": [
"ap "
]
}
}
}
},
"then": {
"required": [
"prores_profile"
]
}
}
]
}
},
"video_essenceduration_test": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Video Essence Duration",
"description": "Test if the essence is shorter/longer than specified value/range.",
"type": "boolean",
"default": false
},
"treat_warnings_as": {
"$ref": "#/definitions/warnings_as_child"
},
"container_agrees_with_essence": {
"$ref": "#/definitions/container_agrees_with_essence"
},
"duration_value": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Value",
"description": "Whether the duration value test is enabled.",
"type": "boolean",
"default": false
},
"value": {
"title": "Value",
"description": "The duration value to allow.",
"$ref": "#/definitions/timecode"
},
"spread": {
"title": "Spread (+ or -)",
"description": "The spread (+ or -) to allow.",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"value",
"spread"
]
}
},
"duration_range": {
"type": "object",
"additionalProperties": false,
"required": [
"enable"
],
"properties": {
"enable": {
"title": "Range",
"description": "Test for a duration range between a minimum and maximum value allowed.",
"type": "boolean",
"default": false
},
"minimum": {
"title": "Minimum",
"description": "The minimum duration allowed.",
"$ref": "#/definitions/timecode"
},
"maximum": {
"title": "Maximum",
"description": "The maximum duration allowed.",
"$ref": "#/definitions/timecode"
}
},
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"required": [
"minimum",
"maximum"
]
}
}
},
"allOf": [
{
"if": {
"not": {
"properties": {
"enable": {
"const": false
}
}
}
},
"then": {
"oneOf": [
{
"not": {
"properties": {
"duration_value": {
"properties": {
"enable": {
"const": false
}
}
}
}
}
},
{