From e9f2bf43e921aca5c3185ba37ea55bf2684e8fde Mon Sep 17 00:00:00 2001 From: Michalis Dimopoulos Date: Wed, 6 Nov 2024 13:54:49 +0100 Subject: [PATCH 1/3] COM-12448: Add H264 MVC test suite - added test suite generator code for MVC - added MVC test suite - generated output checksums with reference decoder --- scripts/gen_jvt.py | 88 ++++++++++++------ test_suites/h264/JVT-MVC.json | 167 ++++++++++++++++++++++++++++++++++ 2 files changed, 226 insertions(+), 29 deletions(-) create mode 100644 test_suites/h264/JVT-MVC.json diff --git a/scripts/gen_jvt.py b/scripts/gen_jvt.py index 4c841ab..2ad1a56 100755 --- a/scripts/gen_jvt.py +++ b/scripts/gen_jvt.py @@ -81,7 +81,7 @@ def __init__( codec: Codec, description: str, site: str, - use_ffprobe: bool = False + use_ffprobe: bool = False, ): self.name = name self.suite_name = suite_name @@ -113,10 +113,15 @@ def generate(self, download, jobs): # The first item in the AVCv1 list is a readme file if "00readme_H" in url: continue + # MVC contains files marked as old, we want to skip those + if "_old" in url: + continue file_url = os.path.basename(url) name = os.path.splitext(file_url)[0] file_input = f"{name}.bin" - test_vector = TestVector(name, url, "__skip__", file_input, OutputFormat.YUV420P, "") + test_vector = TestVector( + name, url, "__skip__", file_input, OutputFormat.YUV420P, "" + ) test_suite.test_vectors[name] = test_vector if download: @@ -146,11 +151,19 @@ def generate(self, download, jobs): raise Exception(f"Bitstream file not found in {dest_dir}") test_vector.source_checksum = utils.file_checksum(dest_path) if self.use_ffprobe: - ffprobe = utils.normalize_binary_cmd('ffprobe') - command = [ffprobe, '-v', 'error', '-select_streams', 'v:0', - '-show_entries', 'stream=pix_fmt', '-of', - 'default=nokey=1:noprint_wrappers=1', - absolute_input_path] + ffprobe = utils.normalize_binary_cmd("ffprobe") + command = [ + ffprobe, + "-v", + "error", + "-select_streams", + "v:0", + "-show_entries", + "stream=pix_fmt", + "-of", + "default=nokey=1:noprint_wrappers=1", + absolute_input_path, + ] result = utils.run_command_with_output(command).splitlines() pix_fmt = result[0] @@ -173,18 +186,27 @@ def generate(self, download, jobs): "PPH444P6_Mitsubishi_A": OutputFormat.NONE, "PPH444P7_Mitsubishi_A": OutputFormat.NONE, "PPH444P8_Mitsubishi_A": OutputFormat.NONE, - "PPH444P9_Mitsubishi_A": OutputFormat.NONE + "PPH444P9_Mitsubishi_A": OutputFormat.NONE, } if test_vector.name in exceptions.keys(): test_vector.output_format = exceptions[test_vector.name] else: raise key_err - if self.name != "Professional_profiles": # result md5 generated from h264_reference_decoder - if self.name == "SVC": # result md5 generated for different Lines (L0, L1...) - new_vectors = self._fill_checksum_h264_multiple(test_vector, dest_dir) + if self.name not in ( + "Professional_profiles", + "MVC", + ): # result md5 generated from h264_reference_decoder + if ( + self.name == "SVC" + ): # result md5 generated for different Lines (L0, L1...) + new_vectors = self._fill_checksum_h264_multiple( + test_vector, dest_dir + ) new_test_vectors.extend(new_vectors) - test_suite.test_vectors = {vector.name: vector for vector in new_test_vectors} + test_suite.test_vectors = { + vector.name: vector for vector in new_test_vectors + } else: self._fill_checksum_h264(test_vector, dest_dir) @@ -201,11 +223,11 @@ def _fill_checksum_h264(test_vector, dest_dir): @staticmethod def _fill_checksum_h264_multiple(test_vector, dest_dir): def remove_r1_from_path(path): - parts = path.split('/') + parts = path.split("/") if len(parts) >= 2: - parts[-2] = re.sub(r'-r1', '', parts[-2]) - parts[-1] = re.sub(r'-r1', '', parts[-1]) - return '/'.join(parts) + parts[-2] = re.sub(r"-r1", "", parts[-2]) + parts[-1] = re.sub(r"-r1", "", parts[-1]) + return "/".join(parts) multiple_test_vectors = [] @@ -213,13 +235,19 @@ def remove_r1_from_path(path): new_vector = copy.deepcopy(test_vector) new_vector.name = test_vector.name + suffix - input_file_path = os.path.join(dest_dir, test_vector.name, f"{test_vector.name}{suffix}.264") - result_file_path = os.path.join(dest_dir, test_vector.name, f"{test_vector.name}{suffix}.yuv") + input_file_path = os.path.join( + dest_dir, test_vector.name, f"{test_vector.name}{suffix}.264" + ) + result_file_path = os.path.join( + dest_dir, test_vector.name, f"{test_vector.name}{suffix}.yuv" + ) corrected_input_path = remove_r1_from_path(input_file_path) corrected_result_path = remove_r1_from_path(result_file_path) - if os.path.exists(corrected_input_path) and os.path.exists(corrected_result_path): + if os.path.exists(corrected_input_path) and os.path.exists( + corrected_result_path + ): new_vector.input_file = os.path.relpath(corrected_input_path, dest_dir) new_vector.result = utils.file_checksum(corrected_result_path) @@ -244,22 +272,24 @@ def remove_r1_from_path(path): default=2 * multiprocessing.cpu_count(), ) args = parser.parse_args() + generator = JVTGenerator( - "AVCv1", - "JVT-AVC_V1", - Codec.H264, - "JVT AVC version 1", - H264_URL + "AVCv1", "JVT-AVC_V1", Codec.H264, "JVT AVC version 1", H264_URL ) generator.generate(not args.skip_download, args.jobs) generator = JVTGenerator( - "SVC", - "JVT-SVC_V1", + "MVC", + "JVT-MVC", Codec.H264, - "JVT SVC version 1", + "JVT Multiview Video Coding test suite", H264_URL, - True + True, + ) + generator.generate(not args.skip_download, args.jobs) + + generator = JVTGenerator( + "SVC", "JVT-SVC_V1", Codec.H264, "JVT SVC version 1", H264_URL, True ) generator.generate(not args.skip_download, args.jobs) @@ -269,6 +299,6 @@ def remove_r1_from_path(path): Codec.H264, "JVT professional profiles version 1", H264_URL, - True + True, ) generator.generate(not args.skip_download, args.jobs) diff --git a/test_suites/h264/JVT-MVC.json b/test_suites/h264/JVT-MVC.json new file mode 100644 index 0000000..1d41f62 --- /dev/null +++ b/test_suites/h264/JVT-MVC.json @@ -0,0 +1,167 @@ +{ + "name": "JVT-MVC", + "codec": "H.264", + "description": "JVT Multiview Video Coding test suite", + "test_vectors": [ + { + "name": "MVCDS-4", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCDS-4.264", + "source_checksum": "ed8c2beae88bf2a52416b32683972871", + "input_file": "MVCDS-4.264", + "output_format": "yuv420p", + "result": "4a15b286d65dc66099398e5ac008c06f" + }, + { + "name": "MVCDS-5", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCDS-5.264", + "source_checksum": "e4c19397f32be3c9d713b595763bffc0", + "input_file": "MVCDS-5.264", + "output_format": "yuv420p", + "result": "4a15b286d65dc66099398e5ac008c06f" + }, + { + "name": "MVCDS-6", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCDS-6.264", + "source_checksum": "943bcbb29c20c24d33fe3445206f12f8", + "input_file": "MVCDS-6.264", + "output_format": "yuv420p", + "result": "4a15b286d65dc66099398e5ac008c06f" + }, + { + "name": "MVCDS1", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCDS1.264", + "source_checksum": "387c5cdeaa86d1ae3ecf58a8fa74f795", + "input_file": "MVCDS1.264", + "output_format": "yuv420p", + "result": "4e93953a232fa6f4cd8b72339ce8a2f4" + }, + { + "name": "MVCDS2", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCDS2.264", + "source_checksum": "94eee17fc3733a85372a06ad877e850b", + "input_file": "MVCDS2.264", + "output_format": "yuv420p", + "result": "3d279d41cf52d70ca9af8ee7e950b504" + }, + { + "name": "MVCDS3", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCDS3.264", + "source_checksum": "8db1c1e4148a7c989598c2dd03e69a09", + "input_file": "MVCDS3.264", + "output_format": "yuv420p", + "result": "505cb8ad90da9a59e42d0a08569806e9" + }, + { + "name": "MVCICT-1", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCICT-1.264", + "source_checksum": "0948882f217b35fcbc2f2cb82a29faf9", + "input_file": "MVCICT-1.264", + "output_format": "yuv420p", + "result": "cfb27cf69ad9147bff1b6b528552fdb4" + }, + { + "name": "MVCICT-2", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCICT-2.264", + "source_checksum": "ef6b4c8a10743180eeff103f63e7165f", + "input_file": "MVCICT-2.264", + "output_format": "yuv420p", + "result": "140bb029c34692b67d15d4c5c957df7b" + }, + { + "name": "MVCNV-2", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCNV-2.264", + "source_checksum": "fa7418ba47995d6971243933eb2143c2", + "input_file": "MVCNV-2.264", + "output_format": "yuv420p", + "result": "4a15b286d65dc66099398e5ac008c06f" + }, + { + "name": "MVCNV-3", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCNV-3.264", + "source_checksum": "ef9aa6f176bb4706d4a6dbee5676b2e2", + "input_file": "MVCNV-3.264", + "output_format": "yuv420p", + "result": "4a15b286d65dc66099398e5ac008c06f" + }, + { + "name": "MVCNV1", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCNV1.264", + "source_checksum": "883d85865bbd6df9bf4ae3d3dae039de", + "input_file": "MVCNV1.264", + "output_format": "yuv420p", + "result": "3d279d41cf52d70ca9af8ee7e950b504" + }, + { + "name": "MVCNV4", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCNV4.264", + "source_checksum": "754cf17d50f76811142c826137f4280d", + "input_file": "MVCNV4.264", + "output_format": "yuv420p", + "result": "505cb8ad90da9a59e42d0a08569806e9" + }, + { + "name": "MVCRP_1", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCRP_1.264", + "source_checksum": "5f0b327fdd075a3d7e5f201ca86e291e", + "input_file": "MVCRP_1.264", + "output_format": "yuv420p", + "result": "1312ce1b578bdd66dbfaed67d3b13678" + }, + { + "name": "MVCRP_2", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCRP_2.264", + "source_checksum": "9f46037181092e5167efa27bcdbdfc34", + "input_file": "MVCRP_2.264", + "output_format": "yuv420p", + "result": "b89fdf72007d76e4611237ca113a9e47" + }, + { + "name": "MVCRP_3", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCRP_3.264", + "source_checksum": "019c9c799983e858a71faf4324ee3a5e", + "input_file": "MVCRP_3.264", + "output_format": "yuv420p", + "result": "b89fdf72007d76e4611237ca113a9e47" + }, + { + "name": "MVCRP_4", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCRP_4.264", + "source_checksum": "142e45e69f11787ffaef2df578177f44", + "input_file": "MVCRP_4.264", + "output_format": "yuv420p", + "result": "198afdb2a23f707b36be0c3e6e1dde96" + }, + { + "name": "MVCRP_5", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCRP_5.264", + "source_checksum": "142e45e69f11787ffaef2df578177f44", + "input_file": "MVCRP_5.264", + "output_format": "yuv420p", + "result": "198afdb2a23f707b36be0c3e6e1dde96" + }, + { + "name": "MVCRP_6", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCRP_6.264", + "source_checksum": "019c9c799983e858a71faf4324ee3a5e", + "input_file": "MVCRP_6.264", + "output_format": "yuv420p", + "result": "b89fdf72007d76e4611237ca113a9e47" + }, + { + "name": "MVCSPS-1", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCSPS-1.264", + "source_checksum": "85db58f59ab490b0e84c241b33a7da20", + "input_file": "MVCSPS-1.264", + "output_format": "yuv420p", + "result": "3db35ab5bd1b052b456f2e7ea7f3fb74" + }, + { + "name": "MVCSPS-2", + "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/MVC/MVCSPS-2.264", + "source_checksum": "17c86dbe49306710455dead0bc8afad0", + "input_file": "MVCSPS-2.264", + "output_format": "yuv420p", + "result": "3db35ab5bd1b052b456f2e7ea7f3fb74" + } + ] +} \ No newline at end of file From 805bb4395f58f03f2f79eb6b08e2dbdf239beb84 Mon Sep 17 00:00:00 2001 From: Michalis Dimopoulos Date: Thu, 7 Nov 2024 11:38:40 +0100 Subject: [PATCH 2/3] COM-12448: Refactor, correct syntax, generate H264 test suites - refactored gen_jvt.py - regenerated JVT-AVC, JVT-MVC, JVT-Professional_profiles and JVT-SVC test suites --- scripts/gen_jvt.py | 28 ++++++++++------ .../h264/{JVT-AVC_V1.json => JVT-AVC_v1.json} | 6 ++-- test_suites/h264/JVT-MVC.json | 2 +- ...V1.json => JVT-Professional_profiles.json} | 32 +++++++++---------- .../h264/{JVT-SVC_V1.json => JVT-SVC.json} | 6 ++-- 5 files changed, 42 insertions(+), 32 deletions(-) rename test_suites/h264/{JVT-AVC_V1.json => JVT-AVC_v1.json} (99%) rename test_suites/h264/{JVT-Professional_profiles_V1.json => JVT-Professional_profiles.json} (96%) rename test_suites/h264/{JVT-SVC_V1.json => JVT-SVC.json} (99%) diff --git a/scripts/gen_jvt.py b/scripts/gen_jvt.py index 2ad1a56..874c91e 100755 --- a/scripts/gen_jvt.py +++ b/scripts/gen_jvt.py @@ -36,7 +36,7 @@ BASE_URL = "https://www.itu.int/" H264_URL = BASE_URL + "wftp3/av-arch/jvt-site/draft_conformance/" -BITSTREAM_EXTS = ( +BITSTREAM_EXTS = [ ".264", ".h264", ".jsv", @@ -44,10 +44,10 @@ ".avc", ".26l", ".bits", -) -MD5_EXTS = ("yuv_2.md5", "yuv.md5", ".md5", "md5.txt", "md5sum.txt") -MD5_EXCLUDES = (".bin.md5", "bit.md5") -RAW_EXTS = ("nogray.yuv", ".yuv", ".qcif") +] +MD5_EXTS = ["yuv_2.md5", "yuv.md5", ".md5", "md5.txt", "md5sum.txt"] +MD5_EXCLUDES = [".bin.md5", "bit.md5"] +RAW_EXTS = ["nogray.yuv", ".yuv", ".qcif"] class HREFParser(HTMLParser): @@ -274,7 +274,12 @@ def remove_r1_from_path(path): args = parser.parse_args() generator = JVTGenerator( - "AVCv1", "JVT-AVC_V1", Codec.H264, "JVT AVC version 1", H264_URL + "AVCv1", + "JVT-AVC_v1", + Codec.H264, + "JVT Advanced Video Coding v1 test suite", + H264_URL, + True, ) generator.generate(not args.skip_download, args.jobs) @@ -289,15 +294,20 @@ def remove_r1_from_path(path): generator.generate(not args.skip_download, args.jobs) generator = JVTGenerator( - "SVC", "JVT-SVC_V1", Codec.H264, "JVT SVC version 1", H264_URL, True + "SVC", + "JVT-SVC", + Codec.H264, + "JVT Scalable Video Coding test suite", + H264_URL, + True, ) generator.generate(not args.skip_download, args.jobs) generator = JVTGenerator( "Professional_profiles", - "JVT-Professional_profiles_V1", + "JVT-Professional_profiles", Codec.H264, - "JVT professional profiles version 1", + "JVT Professional Profiles test suite", H264_URL, True, ) diff --git a/test_suites/h264/JVT-AVC_V1.json b/test_suites/h264/JVT-AVC_v1.json similarity index 99% rename from test_suites/h264/JVT-AVC_V1.json rename to test_suites/h264/JVT-AVC_v1.json index 7af52ac..20ec5bb 100644 --- a/test_suites/h264/JVT-AVC_V1.json +++ b/test_suites/h264/JVT-AVC_v1.json @@ -1,7 +1,7 @@ { - "name": "JVT-AVC_V1", + "name": "JVT-AVC_v1", "codec": "H.264", - "description": "JVT AVC version 1", + "description": "JVT Advanced Video Coding v1 test suite", "test_vectors": [ { "name": "AUD_MW_E", @@ -1084,4 +1084,4 @@ "result": "b47e932d436288013b8453d9a1d0f60d" } ] -} \ No newline at end of file +} diff --git a/test_suites/h264/JVT-MVC.json b/test_suites/h264/JVT-MVC.json index 1d41f62..400bfd3 100644 --- a/test_suites/h264/JVT-MVC.json +++ b/test_suites/h264/JVT-MVC.json @@ -164,4 +164,4 @@ "result": "3db35ab5bd1b052b456f2e7ea7f3fb74" } ] -} \ No newline at end of file +} diff --git a/test_suites/h264/JVT-Professional_profiles_V1.json b/test_suites/h264/JVT-Professional_profiles.json similarity index 96% rename from test_suites/h264/JVT-Professional_profiles_V1.json rename to test_suites/h264/JVT-Professional_profiles.json index 97ea76f..1311fb6 100644 --- a/test_suites/h264/JVT-Professional_profiles_V1.json +++ b/test_suites/h264/JVT-Professional_profiles.json @@ -1,7 +1,7 @@ { - "name": "JVT-Professional_profiles_V1", + "name": "JVT-Professional_profiles", "codec": "H.264", - "description": "JVT professional profiles version 1", + "description": "JVT Professional Profiles test suite", "test_vectors": [ { "name": "PPCV444I1_2008", @@ -32,7 +32,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPCV444I4_Mitsubishi_A.zip", "source_checksum": "078604ffd6509d9bfb9c6cae121188d8", "input_file": "PPCV444I4_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "6ddc08441ca450ae94c661e4978b777d" }, { @@ -40,7 +40,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPCV444I5_Mitsubishi_A.zip", "source_checksum": "c7a722cc6173be92c4ec170faa4d7ab7", "input_file": "PPCV444I5_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "679ca1edd2902c500fc137d7fdca3954" }, { @@ -48,7 +48,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPCV444I6_Mitsubishi_A.zip", "source_checksum": "08c7439b4fccb77f5e5e9cd8b4ad59a3", "input_file": "PPCV444I6_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "6ddc08441ca450ae94c661e4978b777d" }, { @@ -56,7 +56,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPCV444I7_SejongUniv_A.zip", "source_checksum": "410d50227f11871c334721e95f450fc0", "input_file": "PPCV444I-7.264", - "output_format": "None", + "output_format": "Unknown", "result": "70d81a76c8722f28917e2ea2307f1988" }, { @@ -200,7 +200,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444I4_Mitsubishi_A.zip", "source_checksum": "e2b72b15c00cce5fe58684ab6b75f25c", "input_file": "PPH444I4_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "65f523ebe1fd966b1f86d2b3e415d7d5" }, { @@ -208,7 +208,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444I5_Mitsubishi_A.zip", "source_checksum": "f7901b3579c43f7681b44b37ccbe4a20", "input_file": "PPH444I5_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "7362fc0ab046c7f0434f1cc4f26dbeed" }, { @@ -216,7 +216,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444I6_Mitsubishi_A.zip", "source_checksum": "86950ac7efffcbc8dd9b56eaed37dedb", "input_file": "PPH444I6_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "65f523ebe1fd966b1f86d2b3e415d7d5" }, { @@ -224,7 +224,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444I7_SejongUniv_A.zip", "source_checksum": "86d97c2fde74f7172f91a3e148db25c4", "input_file": "PPH444I-7.264", - "output_format": "None", + "output_format": "Unknown", "result": "70d81a76c8722f28917e2ea2307f1988" }, { @@ -232,7 +232,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444P10_SejongUniv_A.zip", "source_checksum": "72273f7382842423059666d67fe57fb7", "input_file": "PPH444P-10.264", - "output_format": "None", + "output_format": "Unknown", "result": "70d81a76c8722f28917e2ea2307f1988" }, { @@ -280,7 +280,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444P6_Mitsubishi_A.zip", "source_checksum": "28e7b3772d79d90b648f4382f0a782c4", "input_file": "PPH444P6_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "80a3e16e08a662e5b784aa1380c048e1" }, { @@ -288,7 +288,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444P7_Mitsubishi_A.zip", "source_checksum": "27e193897b21a9b732c105edd9c15bad", "input_file": "PPH444P7_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "2de6c4b551178c74aca5375f95bb15f8" }, { @@ -296,7 +296,7 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444P8_Mitsubishi_A.zip", "source_checksum": "c0054b570abb81f036657bcf1353344a", "input_file": "PPH444P8_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "42c6e811b6386158811a8a10fbf72e46" }, { @@ -304,8 +304,8 @@ "source": "https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/Professional_profiles/PPH444P9_Mitsubishi_A.zip", "source_checksum": "1d92115ba2820084e44f7c62cb50333f", "input_file": "PPH444P9_Mitsubishi_A.264", - "output_format": "None", + "output_format": "Unknown", "result": "3a77d0018ccb8784e298269a0c2e9aa7" } ] -} \ No newline at end of file +} diff --git a/test_suites/h264/JVT-SVC_V1.json b/test_suites/h264/JVT-SVC.json similarity index 99% rename from test_suites/h264/JVT-SVC_V1.json rename to test_suites/h264/JVT-SVC.json index c2ff29c..37f622a 100644 --- a/test_suites/h264/JVT-SVC_V1.json +++ b/test_suites/h264/JVT-SVC.json @@ -1,7 +1,7 @@ { - "name": "JVT-SVC_V1", + "name": "JVT-SVC", "codec": "H.264", - "description": "JVT SVC version 1", + "description": "JVT Scalable Video Coding test suite", "test_vectors": [ { "name": "SVCBC-1-L0", @@ -1484,4 +1484,4 @@ "result": "98412dc8e109897d2019451078470e3d" } ] -} \ No newline at end of file +} From 9f40a9c80b27ecf903aaa384541e58a972ff955f Mon Sep 17 00:00:00 2001 From: Michalis Dimopoulos Date: Thu, 7 Nov 2024 12:07:01 +0100 Subject: [PATCH 3/3] fixup! COM-12448: Refactor, correct syntax, generate H264 test suites --- pyproject.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a273c1a..fa6702d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,10 +52,11 @@ packages = ["fluster", "fluster.decoders"] "test_suites/av1/CHROMIUM-8bit-AV1-TEST-VECTORS.json" ] "share/fluster/test_suites/h264" = [ - "test_suites/h264/JVT-AVC_V1.json", + "test_suites/h264/JVT-AVC_v1.json", "test_suites/h264/JVT-FR-EXT.json", - "test_suites/h264/JVT-Professional_profiles_V1.json", - "test_suites/h264/JVT-SVC_V1.json" + "test_suites/h264/JVT-MVC.json", + "test_suites/h264/JVT-Professional_profiles.json", + "test_suites/h264/JVT-SVC.json" ] "share/fluster/test_suites/h265" = [ "test_suites/h265/JCT-VC-3D-HEVC.json",