diff --git a/conformance/README.md b/conformance/README.md index 6c03ec7..ce7dab1 100644 --- a/conformance/README.md +++ b/conformance/README.md @@ -45,3 +45,20 @@ Follow these steps to contribute new files: This script will ask you a couple of questions for each file and will run the `cw.exe` on every file found in `./MyCompany` directory. It will then copy your conformance files to the `conformance/conformance_files` directory with all the metadata associated to it. After that you can open a new pull request to the repository. + +## Refreshing conformance report + +1. Update Compliance Warden to latest version +2. Update the conformance data +``` +cd conformance +poetry install +poetry run manage-files -e pathto/ComplianceWarden/bin/cw.exe --update --force // will update the individual JSON files +poetry run generate-report // will generate a coverage.json file from the individual JSON files +``` +3. Regenerate the report +``` +cd conformance_page +npm run build // will create a dist folder with HTML, CSS, JS from coverage.json +npm run dev // to serve the files locally +``` \ No newline at end of file diff --git a/conformance/conformance_files/Netflix/Sparks-5994fps-AV1-10bit-1920x1080-2194kbps_100_102.json b/conformance/conformance_files/Netflix/Sparks-5994fps-AV1-10bit-1920x1080-2194kbps_100_102.json index 1f5cee2..7d30bb4 100644 --- a/conformance/conformance_files/Netflix/Sparks-5994fps-AV1-10bit-1920x1080-2194kbps_100_102.json +++ b/conformance/conformance_files/Netflix/Sparks-5994fps-AV1-10bit-1920x1080-2194kbps_100_102.json @@ -8,7 +8,7 @@ "license": "AV1 Video Sequence \"Sparks\"\nCopyright (C) NETFLIX INC. 2019\n\nThis license covers OBU encodes.\n\nCOPYRIGHT AND LICENSE INFORMATION\nOctober, 2019\n\nNETFLIX INC.\n100 Winchester Circle, Los Gatos, CA 95032, USA\n\nThe audio and video sequences listed above and all intellectual property rights\ntherein remain the property of Netflix Inc. This video sequence is licensed\nunder the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0\nInternational License. To view a copy of this license, visit\nhttp://creativecommons.org/licenses/by-nc-nd/4.0/", "path": "./Sparks-5994fps-AV1-10bit-1920x1080-2194kbps_100_102.mp4", "compliance_warden": { - "cw_version": "v34-av1isobmff-rev17-g7365482", + "cw_version": "v34-master-rev26-gb20c334", "input_file": "Sparks-5994fps-AV1-10bit-1920x1080-2194kbps_100_102.mp4", "specification": "av1isobmff", "spec_name": "AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019\nhttps://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e\nhttps://aomediacodec.github.io/av1-isobmff/v1.2.0.html", @@ -32,7 +32,7 @@ }, { "rule": "2", - "id": "assert-0f24a9ee", + "id": "assert-bd1c6212", "details": "Section 2.1\nIt SHALL contain at least one track using an AV1SampleEntry" }, { @@ -42,12 +42,12 @@ }, { "rule": "4", - "id": "assert-1624cff2", + "id": "assert-b8425a84", "details": "Section 2.2.4\nThe width and height in the TrackHeaderBox SHOULD equal, respectively, the maximum RenderWidth, called MaxRenderWidth, and the maximum RenderHeight, called MaxRenderHeight, of all the frames associated with this sample entry." }, { "rule": "6", - "id": "assert-8d3f8e0c", + "id": "assert-f875c695", "details": "Section 2.2.4\nThe config field SHALL contain an AV1CodecConfigurationBox that applies to the samples associated with this sample entry." }, { @@ -57,262 +57,116 @@ }, { "rule": "8", + "id": "assert-49a325d3", "details": "Section 2.3.4\nThe AV1CodecConfigurationRecord version field SHALL be set to 1" }, { "rule": "33", + "id": "assert-0f174d22", "details": "Section 2.4\nIn tracks using the AV1SampleEntry, the ctts box and composition offsets in\nmovie fragments SHALL NOT be used." }, { "rule": "34", + "id": "assert-cb746c39", "details": "Section 2.4\nIn tracks using the AV1SampleEntry, the is_leading flag, if used,\nSHALL be set to 0 or 2." } ], "errors": [ - { - "rule": "9", - "details": "Section 2.3.4\nThe seq_profile field indicates the AV1 profile and SHALL be equal to\nthe seq_profile value from the Sequence Header OBU.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "9", - "details": "Section 2.3.4\nThe seq_profile field indicates the AV1 profile and SHALL be equal to\nthe seq_profile value from the Sequence Header OBU.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "10", - "details": "Section 2.3.4\nThe seq_level_idx_0 field indicates the value of seq_level_idx[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_level_idx[0] in the\nSequence Header OBU.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "10", - "details": "Section 2.3.4\nThe seq_level_idx_0 field indicates the value of seq_level_idx[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_level_idx[0] in the\nSequence Header OBU.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "10", - "details": "Section 2.3.4\nThe seq_level_idx_0 field indicates the value of seq_level_idx[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_level_idx[0] in the\nSequence Header OBU.", - "description": "[TrackId=1] The AV1CodecConfigurationBox seq_level_idx_0 field value (9) SHALL be\nequal to the seq_level_idx_0 value from the first Sequence Header OBU in the mdat (0)" - }, - { - "rule": "11", - "details": "Section 2.3.4\nThe seq_tier_0 field indicates the value of seq_tier[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_tier[0] in the\nSequence Header OBU.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "11", - "details": "Section 2.3.4\nThe seq_tier_0 field indicates the value of seq_tier[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_tier[0] in the\nSequence Header OBU.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "12", - "details": "Section 2.3.4\nThe high_bitdepth field indicates the value of the high_bitdepth flag from the\nSequence Header OBU.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "12", - "details": "Section 2.3.4\nThe high_bitdepth field indicates the value of the high_bitdepth flag from the\nSequence Header OBU.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "12", - "details": "Section 2.3.4\nThe high_bitdepth field indicates the value of the high_bitdepth flag from the\nSequence Header OBU.", - "description": "[TrackId=1] The AV1CodecConfigurationBox high_bitdepth field value (1) SHALL be\nequal to the high_bitdepth value from the first Sequence Header OBU in the mdat (0)" - }, - { - "rule": "13", - "details": "Section 2.3.4\nThe twelve_bit field indicates the value of the twelve_bit flag from the\nSequence Header OBU. When twelve_bit is not present in the Sequence Header\nOBU the AV1CodecConfigurationRecord twelve_bit value SHALL be 0.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "13", - "details": "Section 2.3.4\nThe twelve_bit field indicates the value of the twelve_bit flag from the\nSequence Header OBU. When twelve_bit is not present in the Sequence Header\nOBU the AV1CodecConfigurationRecord twelve_bit value SHALL be 0.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "14", - "details": "Section 2.3.4\nThe configOBUs field SHALL contain at most one Sequence Header OBU and if present, it SHALL be the first OBU.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "14", - "details": "Section 2.3.4\nThe configOBUs field SHALL contain at most one Sequence Header OBU and if present, it SHALL be the first OBU.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "15", - "details": "Section 2.3.4\nConfigOBUs: the flag obu_has_size_field SHALL be set to 1.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "15", - "details": "Section 2.3.4\nConfigOBUs: the flag obu_has_size_field SHALL be set to 1.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "16", - "details": "Section 2.3.4\nWhen a Sequence Header OBU is contained within the configOBUs of the\nAV1CodecConfigurationRecord, the values present in the Sequence Header OBU\ncontained within configOBUs SHALL match the values of the\nAV1CodecConfigurationRecord.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "16", - "details": "Section 2.3.4\nWhen a Sequence Header OBU is contained within the configOBUs of the\nAV1CodecConfigurationRecord, the values present in the Sequence Header OBU\ncontained within configOBUs SHALL match the values of the\nAV1CodecConfigurationRecord.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "16", - "details": "Section 2.3.4\nWhen a Sequence Header OBU is contained within the configOBUs of the\nAV1CodecConfigurationRecord, the values present in the Sequence Header OBU\ncontained within configOBUs SHALL match the values of the\nAV1CodecConfigurationRecord.", - "description": "[TrackId=1] The values of the AV1CodecConfigurationBox shall match\nthe Sequence Header OBU in the AV1 Image Item Data:\n\tAV1CodecConfigurationBox:\n\t\tseq_profile=0\n\t\tseq_level_idx_0=9\n\t\tseq_tier_0=0\n\t\thigh_bitdepth=1\n\t\ttwelve_bit=0\n\t\tmono_chrome=0\n\t\tchroma_subsampling_x=1\n\t\tchroma_subsampling_y=1\n\t\tchroma_sample_position=0\n\tSequence Header OBU in the AV1 Image Item Data:\n\t\tseq_profile=0\n\t\tseq_level_idx_0=9\n\t\tseq_tier_0=0\n\t\thigh_bitdepth=1\n\t\ttwelve_bit=0\n\t\tmono_chrome=0\n\t\tchroma_subsampling_x=0\n\t\tchroma_subsampling_y=0\n\t\tchroma_sample_position=0\n" - }, - { - "rule": "17", - "details": "Section 2.3.4\nThe timing_info_present_flag in the Sequence Header OBU (in the configOBUs field or in the associated samples) SHOULD be set to 0.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "17", - "details": "Section 2.3.4\nThe timing_info_present_flag in the Sequence Header OBU (in the configOBUs field or in the associated samples) SHOULD be set to 0.", - "description": "[TrackId=1] AV1 configuration should be present. Found in av1C(1), in configOBUs(1), in mdat(0)." - }, - { - "rule": "20", - "details": "Section 2.3.4\nFor sample entries corresponding to HDR content, the\nMasteringDisplayColourVolumeBox mdcv and ContentLightLevelBox clli SHOULD be\npresent, and their values SHALL match the values of contained in the Metadata\nOBUs of type METADATA_TYPE_HDR_CLL and METADATA_TYPE_HDR_MDCV, if present (in\nthe configOBUs or in the samples).", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "21", - "details": "Section 2.4\nThe sample data SHALL be a sequence of OBUs forming a Temporal Unit", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "22", - "details": "Section 2.4\nEach OBU SHALL follow the open_bitstream_unit Low Overhead Bitstream Format\nsyntax as specified in [AV1]. Each OBU SHALL have the obu_has_size_field set\nto 1 except for the last OBU in the sample, for which obu_has_size_field MAY be\nset to 0, in which case it is assumed to fill the remainder of the sample", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "23", - "details": "Section 2.4\nOBU trailing bits SHOULD be limited to byte alignment and SHOULD not be used for padding", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "24", - "details": "Section 2.4\nOBUs of type OBU_TILE_LIST SHALL NOT be used.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "25", - "details": "Section 2.4\nOBUs of type OBU_TEMPORAL_DELIMITER, OBU_PADDING, or OBU_REDUNDANT_FRAME_HEADER SHOULD NOT be used.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "26", - "details": "Section 2.4\nIntra-only frames SHOULD be signaled using the sample_depends_on flag set to 2.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "27", - "details": "Section 2.4\nDelayed Random Access Points SHOULD be signaled using sample groups and the\nAV1ForwardKeyFrameSampleGroupEntry.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "28", - "details": "Section 2.4\nSwitch Frames SHOULD be signaled using sample groups and the AV1SwitchFrameSampleGroupEntry.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "30", - "details": "Section 2.4\nMetadata OBUs may be carried in sample data. In this case, the\nAV1MetadataSampleGroupEntry SHOULD be used.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "31", - "details": "Section 2.4\nIf the metadata OBUs are static for the entire set of samples associated with a\ngiven sample description entry, they SHOULD also be in the OBU array in the\nsample description entry.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - }, - { - "rule": "32", - "details": "Section 2.4\nIf an AV1 Sample is signaled as a sync sample (in the SyncSampleBox or by\nsetting sample_is_non_sync_sample to 0), it SHALL be a Random Access Point\nas defined in [AV1], i.e. satisfy the following constraints:\n- Its first frame is a Key Frame that has show_frame flag set to 1,\n- It contains a Sequence Header OBU before the first Frame Header OBU.", - "description": "Found 4 samples offsets, and 95 sample sizes, while expecting an equal amount" - } ], "warnings": [ { "rule": "9", + "id": "assert-96a6c200", "details": "Section 2.3.4\nThe seq_profile field indicates the AV1 profile and SHALL be equal to\nthe seq_profile value from the Sequence Header OBU.", "description": "No sample found for trackId=1" }, { "rule": "10", + "id": "assert-4f91ed20", "details": "Section 2.3.4\nThe seq_level_idx_0 field indicates the value of seq_level_idx[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_level_idx[0] in the\nSequence Header OBU.", "description": "No sample found for trackId=1" }, { "rule": "11", + "id": "assert-c5e10274", "details": "Section 2.3.4\nThe seq_tier_0 field indicates the value of seq_tier[0] found in the\nSequence Header OBU and SHALL be equal to the value of seq_tier[0] in the\nSequence Header OBU.", "description": "No sample found for trackId=1" }, { "rule": "12", + "id": "assert-821f7437", "details": "Section 2.3.4\nThe high_bitdepth field indicates the value of the high_bitdepth flag from the\nSequence Header OBU.", "description": "No sample found for trackId=1" }, { "rule": "13", + "id": "assert-0027b3b1", "details": "Section 2.3.4\nThe twelve_bit field indicates the value of the twelve_bit flag from the\nSequence Header OBU. When twelve_bit is not present in the Sequence Header\nOBU the AV1CodecConfigurationRecord twelve_bit value SHALL be 0.", "description": "No sample found for trackId=1" }, { "rule": "14", + "id": "assert-755c9133", "details": "Section 2.3.4\nThe configOBUs field SHALL contain at most one Sequence Header OBU and if present, it SHALL be the first OBU.", "description": "No sample found for trackId=1" }, { "rule": "15", + "id": "assert-cf9ef74c", "details": "Section 2.3.4\nConfigOBUs: the flag obu_has_size_field SHALL be set to 1.", "description": "No sample found for trackId=1" }, { "rule": "16", + "id": "assert-745b4db3", "details": "Section 2.3.4\nWhen a Sequence Header OBU is contained within the configOBUs of the\nAV1CodecConfigurationRecord, the values present in the Sequence Header OBU\ncontained within configOBUs SHALL match the values of the\nAV1CodecConfigurationRecord.", "description": "No sample found for trackId=1" }, { "rule": "17", + "id": "assert-551498bd", "details": "Section 2.3.4\nThe timing_info_present_flag in the Sequence Header OBU (in the configOBUs field or in the associated samples) SHOULD be set to 0.", "description": "No sample found for trackId=1" }, { "rule": "20", + "id": "assert-3e46dfaf", "details": "Section 2.3.4\nFor sample entries corresponding to HDR content, the\nMasteringDisplayColourVolumeBox mdcv and ContentLightLevelBox clli SHOULD be\npresent, and their values SHALL match the values of contained in the Metadata\nOBUs of type METADATA_TYPE_HDR_CLL and METADATA_TYPE_HDR_MDCV, if present (in\nthe configOBUs or in the samples).", "description": "No sample found for trackId=1" }, { "rule": "26", + "id": "assert-0c895956", "details": "Section 2.4\nIntra-only frames SHOULD be signaled using the sample_depends_on flag set to 2.", "description": "No sample found for trackId=1" }, { "rule": "27", + "id": "assert-4f779503", "details": "Section 2.4\nDelayed Random Access Points SHOULD be signaled using sample groups and the\nAV1ForwardKeyFrameSampleGroupEntry.", "description": "No sample found for trackId=1" }, { "rule": "28", + "id": "assert-d10ee363", "details": "Section 2.4\nSwitch Frames SHOULD be signaled using sample groups and the AV1SwitchFrameSampleGroupEntry.", "description": "No sample found for trackId=1" }, { "rule": "30", + "id": "assert-d41e5e3f", "details": "Section 2.4\nMetadata OBUs may be carried in sample data. In this case, the\nAV1MetadataSampleGroupEntry SHOULD be used.", "description": "No sample found for trackId=1" }, { "rule": "31", + "id": "assert-f0ce5ae3", "details": "Section 2.4\nIf the metadata OBUs are static for the entire set of samples associated with a\ngiven sample description entry, they SHOULD also be in the OBU array in the\nsample description entry.", "description": "No sample found for trackId=1" }, { "rule": "32", + "id": "assert-bee456d5", "details": "Section 2.4\nIf an AV1 Sample is signaled as a sync sample (in the SyncSampleBox or by\nsetting sample_is_non_sync_sample to 0), it SHALL be a Random Access Point\nas defined in [AV1], i.e. satisfy the following constraints:\n- Its first frame is a Key Frame that has show_frame flag set to 1,\n- It contains a Sequence Header OBU before the first Frame Header OBU.", "description": "No sample found for trackId=1" } @@ -321,10 +175,11 @@ { "rule": "5", "id": "assert-54ae6192", - "details": "Section 2.2.4\nAdditionally, if MaxRenderWidth and MaxRenderHeight values do not equal respectively the max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 values of the Sequence Header OBU, a PixelAspectRatioBox box SHALL be present in the sample entry and set such that" + "details": "Section 2.2.4\nAdditionally, if MaxRenderWidth and MaxRenderHeight values do not equal respectively\nthe max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 values of the\nSequence Header OBU, a PixelAspectRatioBox box SHALL be present in the sample entry" }, { "rule": "18", + "id": "assert-6056f4f8", "details": "Section 2.3.4\nThe sample entry SHOULD contain a colr box with a colour_type set to nclx.\nIf present, the values of colour_primaries, transfer_characteristics, and\nmatrix_coefficients SHALL match the values given in the Sequence Header OBU (in\nthe configOBUs field or in the associated samples) if the\ncolor_description_present_flag is set to 1. Similarly, the full_range_flag in\nthe colr box shall match the color_range flag in the Sequence Header OBU. When\nconfigOBUs does not contain a Sequence Header OBU, this box with colour_type set\nto nclx SHALL be present." }, { @@ -333,10 +188,12 @@ }, { "rule": "29", + "id": "assert-ccbd7555", "details": "Section 2.4\nIf a file contains multiple tracks that are alternative representations of the\nsame content, in particular using Switch Frames, those tracks SHOULD be marked\nas belonging to the same alternate group and should use a track selection box\nwith an appropriate attribute (e.g. bitr)." }, { "rule": "35", + "id": "assert-7d13a03d", "details": "Section 2.8.4\nmetadata_specific_parameters is only defined when metadata_type is set to\nMETADATA_TYPE_ITUT_T35 in which case its value SHALL be set to the first 24 bits\nof the metadata_itut_t35 structure. For other types of metadata,\nits [metadata_specific_parameters] value SHOULD be set to 0." } ]