From 02ab6c6586819fe9d49afa6109c3cf69f642d874 Mon Sep 17 00:00:00 2001 From: Sami Boukortt Date: Wed, 6 Aug 2025 18:31:08 +0200 Subject: [PATCH 1/2] Detect and report when there are too many decoded frames --- scripts/conformance.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/conformance.py b/scripts/conformance.py index 7d511b1..c72177c 100755 --- a/scripts/conformance.py +++ b/scripts/conformance.py @@ -239,11 +239,16 @@ def ConformanceTestRunner(args): reference_npy = numpy.load(reference_npy) decoded_npy = numpy.load(decoded_npy) - test_dump["num_frames"] = len(descriptor['frames']) - for i, fd in enumerate(descriptor['frames']): - test_dump[f"frame{i}_compare_npy"] = CompareNPY(reference_npy, reference_icc, decoded_npy, - decoded_icc if try_color_transform else reference_icc, - i, fd['rms_error'], fd['peak_error'], args.lax) + test_dump["num_frames"] = num_frames = max(len(descriptor['frames']), decoded_npy.shape[0]) + for i in range(num_frames): + try: + fd = descriptor['frames'][i] + except IndexError: + test_dump[f"frame{i}_compare_npy"] = Failure("extraneous decoded frame") + else: + test_dump[f"frame{i}_compare_npy"] = CompareNPY(reference_npy, reference_icc, decoded_npy, + decoded_icc if try_color_transform else reference_icc, + i, fd['rms_error'], fd['peak_error'], args.lax) if 'preview' in descriptor: reference_npy = os.path.join(test_dir, From 9f4a5d63c32a02ee769f567ea9db5c41399af096 Mon Sep 17 00:00:00 2001 From: Sami Boukortt Date: Wed, 6 Aug 2025 18:35:03 +0200 Subject: [PATCH 2/2] Fix typo --- scripts/conformance.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/conformance.py b/scripts/conformance.py index c72177c..4acfbd3 100755 --- a/scripts/conformance.py +++ b/scripts/conformance.py @@ -43,7 +43,7 @@ def CompareNPY(ref, ref_icc, dec, dec_icc, frame_idx, rmse_limit, peak_error, la return Failure(f'Expected shape {ref.shape} but found {dec.shape}') num_channels = ref_frame.shape[2] - if ref_icc != dec_icc && peak_error > 0: + if ref_icc != dec_icc and peak_error > 0: # Transform colors before comparison. # Skip this if we expect fully lossless, since it introduces tiny errors # (even in the case where ref_icc and dec_icc are equivalent so it's a no-op)