Commit 87635c8874 for ffmpeg
commit 87635c88742eb8767f32fa6199828b523d2b3a48
Author: Michael Niedermayer <michael@niedermayer.cc>
Date: Thu Oct 22 09:10:27 2026 -0700
fate: cover MJPEG restart markers with one macroblock column
Encode two 16x160 frames with two slices to cover internal row boundaries, slice endings, restart-number wraparound and omission of a marker after the final row. Check the encoded packets with framecrc so decoder tolerance cannot hide incorrect markers. Use the existing testsrc2 source, integer DCT and a reference under tests/ref/fate.
Assisted-by: Fairy
diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak
index a5abace91f..c5f7a5ffe4 100644
--- a/tests/fate/vcodec.mak
+++ b/tests/fate/vcodec.mak
@@ -245,6 +245,12 @@ fate-vsynth3-magicyuv: ENCOPTS = -pix_fmt yuv444p -pred median \
fate-vsynth_lena-magicyuv: ENCOPTS = -slices 3 -pix_fmt gray -pred left
fate-vsynth%-magicyuv: DECOPTS = -sws_flags neighbor+bitexact
+# Exercise both row and slice boundaries, RST7 wraparound, and the final row.
+FATE_MJPEG_RST-$(call ENCMUX, MJPEG, FRAMECRC, TESTSRC2_FILTER FORMAT_FILTER PIPE_PROTOCOL) += fate-mjpeg-slice-rst
+fate-mjpeg-slice-rst: CMD = framecrc -lavfi testsrc2=size=16x160:rate=1:duration=2,format=yuvj420p \
+ -c:v mjpeg -dct int -huffman default -threads 1 -slices 2
+FATE_FFMPEG += $(FATE_MJPEG_RST-yes)
+
FATE_VCODEC_SCALE-$(call ENCDEC, MJPEG, AVI) += mjpeg mjpeg-422 mjpeg-444 mjpeg-trell mjpeg-huffman mjpeg-trell-huffman mjpeg-dcprec
fate-vsynth%-mjpeg: ENCOPTS = -qscale 9 -pix_fmt yuvj420p -huffman default -threads 5 -thread_type slice
fate-vsynth%-mjpeg-422: ENCOPTS = -qscale 9 -pix_fmt yuvj422p
@@ -544,4 +550,4 @@ fate-vsynth1: $(FATE_VSYNTH1)
fate-vsynth2: $(FATE_VSYNTH2)
fate-vsynth_lena: $(FATE_VSYNTH_LENA)
fate-vsynth3: $(FATE_VSYNTH3)
-fate-vcodec: fate-vsynth1 fate-vsynth_lena fate-vsynth2 fate-vsynth3
+fate-vcodec: fate-vsynth1 fate-vsynth_lena fate-vsynth2 fate-vsynth3 $(FATE_MJPEG_RST-yes)
diff --git a/tests/ref/fate/mjpeg-slice-rst b/tests/ref/fate/mjpeg-slice-rst
new file mode 100644
index 0000000000..3e3675e1a1
--- /dev/null
+++ b/tests/ref/fate/mjpeg-slice-rst
@@ -0,0 +1,7 @@
+#tb 0: 1/1
+#media_type 0: video
+#codec_id 0: mjpeg
+#dimensions 0: 16x160
+#sar 0: 1/1
+0, 0, 0, 1, 1710, 0xd5ad41fb, S=1, Quality stats, 8, 0x01fb0040
+0, 1, 1, 1, 2197, 0x4ae229b5, S=1, Quality stats, 8, 0x05ec00be