PR #22787 opened by i-Amogh
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22787
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22787.patch

Added tests for verifying decoded output on an MJPEG sample, decode 
verification, bitstream modification detection, and DHT segment handling.

Coverage:

1. 0% -> 85.2% Line, 100% Function in libavcodec/bsf/mjpega_dump_header.c 
(maximum limit for FATE coverage)
2. 0% -> 76.8% Line, 100% Function in libavcodec/bsf/mjpeg2jpeg.c (maximum 
limit for FATE coverage)


>From 8854f61e3e8838d36362c280f631fcbb67dd1184 Mon Sep 17 00:00:00 2001
From: i-Amogh <[email protected]>
Date: Thu, 9 Apr 2026 22:20:55 +0530
Subject: [PATCH 1/2] tests/fate/video: Add FATE test for
 libavcodec/bsf/mjpeg2jpeg.c

Addded tests for mjpeg2jpeg bitstream filter by applying it to an MJPEG sample 
during input demuxing and verifying the decoded output via framecrc.

Signed-off-by: i-Amogh <[email protected]>
---
 tests/fate/video.mak          | 3 +++
 tests/ref/fate/bsf-mjpeg2jpeg | 8 ++++++++
 2 files changed, 11 insertions(+)
 create mode 100644 tests/ref/fate/bsf-mjpeg2jpeg

diff --git a/tests/fate/video.mak b/tests/fate/video.mak
index 10d1b20cd5..6621a7757b 100644
--- a/tests/fate/video.mak
+++ b/tests/fate/video.mak
@@ -279,6 +279,9 @@ fate-mjpegb: CMD = framecrc -idct simple -fflags +bitexact 
-i $(TARGET_SAMPLES)/
 FATE_VIDEO-$(call FRAMECRC, AVI, MJPEG) += fate-mjpeg-ticket3229
 fate-mjpeg-ticket3229: CMD = framecrc -idct simple -fflags +bitexact -i 
$(TARGET_SAMPLES)/mjpeg/mjpeg_field_order.avi -an
 
+FATE_VIDEO-$(call FRAMECRC, AVI, MJPEG, MJPEG2JPEG_BSF) += fate-bsf-mjpeg2jpeg
+fate-bsf-mjpeg2jpeg: CMD = framecrc -bsf:v mjpeg2jpeg -idct simple -fflags 
+bitexact -i $(TARGET_SAMPLES)/mjpeg/mjpeg_field_order.avi -an
+
 FATE_VIDEO-$(call FRAMECRC, MVI, MOTIONPIXELS, SCALE_FILTER) += 
fate-motionpixels
 fate-motionpixels: CMD = framecrc -i 
$(TARGET_SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -frames:v 
111 -vf scale
 
diff --git a/tests/ref/fate/bsf-mjpeg2jpeg b/tests/ref/fate/bsf-mjpeg2jpeg
new file mode 100644
index 0000000000..fc5a8dd7ff
--- /dev/null
+++ b/tests/ref/fate/bsf-mjpeg2jpeg
@@ -0,0 +1,8 @@
+#tb 0: 1/30
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 468x312
+#sar 0: 0/1
+0,          0,          0,        1,   292032, 0x3af3a5f7
+0,          6,          6,        1,   292032, 0xe97fb504
+0,          8,          8,        1,   292032, 0xd448db04
-- 
2.52.0


>From ac79729779ab6fc57b0c1b32039368bc495d8c05 Mon Sep 17 00:00:00 2001
From: i-Amogh <[email protected]>
Date: Fri, 10 Apr 2026 03:14:23 +0530
Subject: [PATCH 2/2] tests/fate/video: Add FATE tests for
 libavcodec/bsf/mjpega_dump_header.c

The tests cover:
  - Basic decode verification
  - Bitstream modification detection
  - DHT segment handling

Signed-off-by: i-Amogh <[email protected]>
---
 tests/fate/video.mak                  | 12 ++++++++++++
 tests/ref/fate/bsf-mjpega-dump-header |  8 ++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 tests/ref/fate/bsf-mjpega-dump-header

diff --git a/tests/fate/video.mak b/tests/fate/video.mak
index 6621a7757b..2d9e5df679 100644
--- a/tests/fate/video.mak
+++ b/tests/fate/video.mak
@@ -282,6 +282,18 @@ fate-mjpeg-ticket3229: CMD = framecrc -idct simple -fflags 
+bitexact -i $(TARGET
 FATE_VIDEO-$(call FRAMECRC, AVI, MJPEG, MJPEG2JPEG_BSF) += fate-bsf-mjpeg2jpeg
 fate-bsf-mjpeg2jpeg: CMD = framecrc -bsf:v mjpeg2jpeg -idct simple -fflags 
+bitexact -i $(TARGET_SAMPLES)/mjpeg/mjpeg_field_order.avi -an
 
+FATE_VIDEO-$(call FRAMECRC, AVI, MJPEG, MJPEGA_DUMP_HEADER_BSF) += 
fate-bsf-mjpega-dump-header
+fate-bsf-mjpega-dump-header: CMD = framecrc -bsf:v mjpegadump -idct simple 
-fflags +bitexact -i $(TARGET_SAMPLES)/mjpeg/mjpeg_field_order.avi -an
+
+FATE_VIDEO-$(call ALLYES, AVI_DEMUXER MJPEG_DECODER MJPEGA_DUMP_HEADER_BSF) += 
fate-bsf-mjpega-dump-header-bitstream
+fate-bsf-mjpega-dump-header-bitstream: CMD = md5pipe -i 
$(TARGET_SAMPLES)/mjpeg/mjpeg_field_order.avi -c:v copy -bsf:v mjpegadump -f 
rawvideo
+fate-bsf-mjpega-dump-header-bitstream: CMP = oneline
+fate-bsf-mjpega-dump-header-bitstream: REF = 76e30eca467b056dbd65b929eb6c0d17
+
+FATE_VIDEO-$(call ENCDEC, MJPEG, AVI AVI, MJPEGA_DUMP_HEADER_BSF) += 
fate-bsf-mjpega-already-formatted
+fate-bsf-mjpega-already-formatted: CMD = framecrc -bsf:v mjpegadump,mjpegadump 
-idct simple -fflags +bitexact -i $(TARGET_SAMPLES)/mjpeg/mjpeg_field_order.avi 
-an
+fate-bsf-mjpega-already-formatted: REF = 
$(SRC_PATH)/tests/ref/fate/bsf-mjpega-dump-header
+
 FATE_VIDEO-$(call FRAMECRC, MVI, MOTIONPIXELS, SCALE_FILTER) += 
fate-motionpixels
 fate-motionpixels: CMD = framecrc -i 
$(TARGET_SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -frames:v 
111 -vf scale
 
diff --git a/tests/ref/fate/bsf-mjpega-dump-header 
b/tests/ref/fate/bsf-mjpega-dump-header
new file mode 100644
index 0000000000..fc5a8dd7ff
--- /dev/null
+++ b/tests/ref/fate/bsf-mjpega-dump-header
@@ -0,0 +1,8 @@
+#tb 0: 1/30
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 468x312
+#sar 0: 0/1
+0,          0,          0,        1,   292032, 0x3af3a5f7
+0,          6,          6,        1,   292032, 0xe97fb504
+0,          8,          8,        1,   292032, 0xd448db04
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to