This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 3b5b6298fbf62b4dabf6f8c393ee4deb584246a9 Author: guy-with-a-why <[email protected]> AuthorDate: Fri Aug 28 10:25:14 2026 +0100 Commit: Timo Rothenpieler <[email protected]> CommitDate: Mon Aug 31 18:13:21 2026 +0000 fate/h264: add slice data partitioning tests Three JM-encoded streams: all three partitions present, partition C legitimately absent, and constrained_intra_pred_flag set, which is the case that exercises the nC derivation of 9.2.1. The last stream is decoded both ways. -bug 0 selects the literal 9.2.1 reading, which desynchronises the residual of a JM-encoded stream; the concealed output then depends on the thread count, so that test pins threads to 1. Signed-off-by: guy-with-a-why <[email protected]> --- tests/fate/h264.mak | 12 ++++++++++++ tests/ref/fate/h264-data-partitioning | 15 +++++++++++++++ tests/ref/fate/h264-data-partitioning-ab | 15 +++++++++++++++ tests/ref/fate/h264-data-partitioning-cip | 15 +++++++++++++++ tests/ref/fate/h264-data-partitioning-cip-strict | 15 +++++++++++++++ 5 files changed, 72 insertions(+) diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak index dacaaab274..e55b06bd19 100644 --- a/tests/fate/h264.mak +++ b/tests/fate/h264.mak @@ -193,6 +193,10 @@ FATE_H264_REINIT_TESTS := large_420_8-to-small_420_8 \ small_422_9-to-small_420_9 \ FATE_H264 := $(FATE_H264:%=fate-h264-conformance-%) \ + fate-h264-data-partitioning \ + fate-h264-data-partitioning-ab \ + fate-h264-data-partitioning-cip \ + fate-h264-data-partitioning-cip-strict \ fate-h264-intra-refresh-recovery \ fate-h264-lossless \ fate-h264-3386 \ @@ -465,6 +469,14 @@ fate-h264-xavc-4389: CMD = framecrc -i $(TARGET_SAM fate-h264-attachment-631: CMD = framecrc -i $(TARGET_SAMPLES)/h264/attachment631-small.mp4 -an -max_error_rate 0.96 fate-h264-skip-nokey: CMD = framecrc -skip_frame nokey -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts -vf scale -af aresample fate-h264-skip-nointra: CMD = framecrc -skip_frame nointra -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts -vf scale -af aresample +# slice data partitioning: A+B+C, and with partition C legitimately absent +fate-h264-data-partitioning: CMD = framecrc -i $(TARGET_SAMPLES)/h264/data_partitioning.h264 +fate-h264-data-partitioning-ab: CMD = framecrc -i $(TARGET_SAMPLES)/h264/data_partitioning_ab.h264 +# constrained_intra_pred_flag=1, which changes the nC derivation (9.2.1) +fate-h264-data-partitioning-cip: CMD = framecrc -bug h264_dp_nnz -i $(TARGET_SAMPLES)/h264/data_partitioning_cip.h264 +# same stream read the way 9.2.1 is written instead of the way JM does it; that +# desynchronises the residual, so pin the threads to keep concealment stable +fate-h264-data-partitioning-cip-strict: CMD = threads=1 framecrc -bug 0 -i $(TARGET_SAMPLES)/h264/data_partitioning_cip.h264 fate-h264-intra-refresh-recovery: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra_refresh.h264 -frames:v 10 fate-h264-invalid-ref-mod: CMD = framecrc -i $(TARGET_SAMPLES)/h264/h264refframeregression.mp4 -an -frames 10 -pix_fmt yuv420p10le -vf scale fate-h264-lossless: CMD = framecrc -i $(TARGET_SAMPLES)/h264/lossless.h264 diff --git a/tests/ref/fate/h264-data-partitioning b/tests/ref/fate/h264-data-partitioning new file mode 100644 index 0000000000..00a1b45f92 --- /dev/null +++ b/tests/ref/fate/h264-data-partitioning @@ -0,0 +1,15 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 176x144 +#sar 0: 0/1 +0, 0, 0, 1, 38016, 0x1b6c95f8 +0, 1, 1, 1, 38016, 0x3321d0ef +0, 2, 2, 1, 38016, 0x8ab31546 +0, 3, 3, 1, 38016, 0x978d5bc8 +0, 4, 4, 1, 38016, 0xe3c1d02b +0, 5, 5, 1, 38016, 0x11bafd04 +0, 6, 6, 1, 38016, 0x8760741a +0, 7, 7, 1, 38016, 0x565ba13f +0, 8, 8, 1, 38016, 0xdf66f465 +0, 9, 9, 1, 38016, 0x54bf06b8 diff --git a/tests/ref/fate/h264-data-partitioning-ab b/tests/ref/fate/h264-data-partitioning-ab new file mode 100644 index 0000000000..6a430edda5 --- /dev/null +++ b/tests/ref/fate/h264-data-partitioning-ab @@ -0,0 +1,15 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 176x144 +#sar 0: 0/1 +0, 0, 0, 1, 38016, 0x1b6c95f8 +0, 1, 1, 1, 38016, 0xc732de4b +0, 2, 2, 1, 38016, 0x34875d49 +0, 3, 3, 1, 38016, 0x76906edf +0, 4, 4, 1, 38016, 0xe673e1a7 +0, 5, 5, 1, 38016, 0xc2f1f465 +0, 6, 6, 1, 38016, 0x08f49ac4 +0, 7, 7, 1, 38016, 0xee04b8ff +0, 8, 8, 1, 38016, 0xf45202b2 +0, 9, 9, 1, 38016, 0x40051425 diff --git a/tests/ref/fate/h264-data-partitioning-cip b/tests/ref/fate/h264-data-partitioning-cip new file mode 100644 index 0000000000..74f9ac0437 --- /dev/null +++ b/tests/ref/fate/h264-data-partitioning-cip @@ -0,0 +1,15 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 176x144 +#sar 0: 0/1 +0, 0, 0, 1, 38016, 0x1b6c95f8 +0, 1, 1, 1, 38016, 0x63e2d92f +0, 2, 2, 1, 38016, 0x6f631a0f +0, 3, 3, 1, 38016, 0xfee663ea +0, 4, 4, 1, 38016, 0x3866d66c +0, 5, 5, 1, 38016, 0xa918f919 +0, 6, 6, 1, 38016, 0xda56794e +0, 7, 7, 1, 38016, 0x53d9abfc +0, 8, 8, 1, 38016, 0x2deff2ec +0, 9, 9, 1, 38016, 0xae1c0e66 diff --git a/tests/ref/fate/h264-data-partitioning-cip-strict b/tests/ref/fate/h264-data-partitioning-cip-strict new file mode 100644 index 0000000000..73e882dedc --- /dev/null +++ b/tests/ref/fate/h264-data-partitioning-cip-strict @@ -0,0 +1,15 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 176x144 +#sar 0: 0/1 +0, 0, 0, 1, 38016, 0x1b6c95f8 +0, 1, 1, 1, 38016, 0xd3d595d5 +0, 2, 2, 1, 38016, 0xea00960e +0, 3, 3, 1, 38016, 0x9420960e +0, 4, 4, 1, 38016, 0x79df960c +0, 5, 5, 1, 38016, 0x76dc960b +0, 6, 6, 1, 38016, 0x304b960b +0, 7, 7, 1, 38016, 0x08ee960b +0, 8, 8, 1, 38016, 0xf5a295cc +0, 9, 9, 1, 38016, 0xf7b595cc -- To stop receiving notification emails like this one, please contact [email protected]. _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
