[FFmpeg-cvslog] tests/fate/vcodec: add tests for ffv1 2pass mode

Anton Khirnov git at videolan.org
Tue May 24 14:45:48 EEST 2022


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Fri May 20 11:33:03 2022 +0200| [60f948dd55641419ab6d92ecd287cc65d52f0d8e] | committer: Anton Khirnov

tests/fate/vcodec: add tests for ffv1 2pass mode

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=60f948dd55641419ab6d92ecd287cc65d52f0d8e
---

 tests/fate-run.sh                       | 12 ++++++++++++
 tests/fate/vcodec.mak                   |  7 +++++--
 tests/ref/vsynth/vsynth1-ffv1-2pass     |  4 ++++
 tests/ref/vsynth/vsynth2-ffv1-2pass     |  4 ++++
 tests/ref/vsynth/vsynth3-ffv1-2pass     |  4 ++++
 tests/ref/vsynth/vsynth_lena-ffv1-2pass |  4 ++++
 6 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 6501dea8f8..525e8e5499 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -207,6 +207,7 @@ enc_dec(){
     dec_opt_out=$6
     dec_opt_in=$7
     ffprobe_opts=$8
+    twopass=$9
     encfile="${outdir}/${test}.${enc_fmt_out}"
     decfile="${outdir}/${test}.out.${dec_fmt_out}"
     cleanfiles="$cleanfiles $decfile"
@@ -214,6 +215,17 @@ enc_dec(){
     tsrcfile=$(target_path $srcfile)
     tencfile=$(target_path $encfile)
     tdecfile=$(target_path $decfile)
+
+    if [ -n "$twopass" ]; then
+        logfile_prefix="${outdir}/${test}.pass1"
+        cleanfiles="$cleanfiles ${logfile_prefix}-0.log"
+        tlogfile_prefix=$(target_path $logfile_prefix)
+        ffmpeg -auto_conversion_filters -f $enc_fmt_in $DEC_OPTS -i $tsrcfile  \
+            $ENC_OPTS $enc_opt_out $FLAGS -pass 1 -passlogfile $tlogfile_prefix \
+            -f $enc_fmt_out -y $tencfile || return
+        enc_opt_out="$enc_opt_out -pass 2 -passlogfile $tlogfile_prefix"
+    fi
+
     ffmpeg -auto_conversion_filters -f $enc_fmt_in $DEC_OPTS -i $tsrcfile $ENC_OPTS $enc_opt_out $FLAGS \
         -f $enc_fmt_out -y $tencfile || return
     do_md5sum $encfile
diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak
index c19fb8633a..8ca17950ea 100644
--- a/tests/fate/vcodec.mak
+++ b/tests/fate/vcodec.mak
@@ -6,7 +6,7 @@ fate-vsynth%: CODEC = $(word 3, $(subst -, ,$(@)))
 fate-vsynth%: FMT = avi
 fate-vsynth%: DEFAULT_SIZE = -s 352x288
 fate-vsynth3-%: DEFAULT_SIZE = -s $(FATEW)x$(FATEH)
-fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -vsync passthrough $(DECOPTS)"
+fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -vsync passthrough $(DECOPTS)" "" "" ${TWOPASS}
 fate-vsynth%: CMP_UNIT = 1
 fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%)
 
@@ -155,7 +155,8 @@ $(FATE_VCODEC_DV:%=fate-vsynth\%-%): FMT      = dv
 $(FATE_VCODEC_DV:%=fate-vsynth\%-%): DECOPTS += $(DEFAULT_SIZE)
 
 FATE_VCODEC-$(call ENCDEC, FFV1, AVI)   += ffv1 ffv1-v0 \
-                                           ffv1-v3-yuv420p
+                                           ffv1-v3-yuv420p \
+                                           ffv1-2pass
 FATE_VCODEC_SCALE-$(call ENCDEC, FFV1, AVI) += ffv1-v3-yuv422p10 ffv1-v3-yuv444p16 \
                                                ffv1-v3-bgr0 ffv1-v3-rgb48
 fate-vsynth%-ffv1:               ENCOPTS = -slices 4
@@ -173,6 +174,8 @@ fate-vsynth%-ffv1-v3-bgr0:       DECOPTS = -sws_flags neighbor+bitexact
 fate-vsynth%-ffv1-v3-rgb48:      ENCOPTS = -level 3 -pix_fmt rgb48 -strict -2 \
                                            -sws_flags neighbor+bitexact
 fate-vsynth%-ffv1-v3-rgb48:      DECOPTS = -sws_flags neighbor+bitexact
+fate-vsynth%-ffv1-2pass:         TWOPASS = 1
+fate-vsynth%-ffv1-2pass:         ENCOPTS = -coder range_tab -context 1
 
 FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff
 FATE_VCODEC_SCALE-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff444 ffvhuff420p12 ffvhuff422p10left ffvhuff444p16
diff --git a/tests/ref/vsynth/vsynth1-ffv1-2pass b/tests/ref/vsynth/vsynth1-ffv1-2pass
new file mode 100644
index 0000000000..c27c9691d2
--- /dev/null
+++ b/tests/ref/vsynth/vsynth1-ffv1-2pass
@@ -0,0 +1,4 @@
+7332cfda96233acc7178b09868c07ad7 *tests/data/fate/vsynth1-ffv1-2pass.avi
+2382244 tests/data/fate/vsynth1-ffv1-2pass.avi
+c5ccac874dbf808e9088bc3107860042 *tests/data/fate/vsynth1-ffv1-2pass.out.rawvideo
+stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
diff --git a/tests/ref/vsynth/vsynth2-ffv1-2pass b/tests/ref/vsynth/vsynth2-ffv1-2pass
new file mode 100644
index 0000000000..26c20db24d
--- /dev/null
+++ b/tests/ref/vsynth/vsynth2-ffv1-2pass
@@ -0,0 +1,4 @@
+2f5af924c6f7de1d4c34ec2dc9fca4ac *tests/data/fate/vsynth2-ffv1-2pass.avi
+3530664 tests/data/fate/vsynth2-ffv1-2pass.avi
+36d7ca943916e1743cefa609eba0205c *tests/data/fate/vsynth2-ffv1-2pass.out.rawvideo
+stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
diff --git a/tests/ref/vsynth/vsynth3-ffv1-2pass b/tests/ref/vsynth/vsynth3-ffv1-2pass
new file mode 100644
index 0000000000..dd0fd615f4
--- /dev/null
+++ b/tests/ref/vsynth/vsynth3-ffv1-2pass
@@ -0,0 +1,4 @@
+5b658e65541539248035c17da5eada3a *tests/data/fate/vsynth3-ffv1-2pass.avi
+53522 tests/data/fate/vsynth3-ffv1-2pass.avi
+a038ad7c3c09f776304ef7accdea9c74 *tests/data/fate/vsynth3-ffv1-2pass.out.rawvideo
+stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:    86700/    86700
diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-2pass b/tests/ref/vsynth/vsynth_lena-ffv1-2pass
new file mode 100644
index 0000000000..9ece86aaa3
--- /dev/null
+++ b/tests/ref/vsynth/vsynth_lena-ffv1-2pass
@@ -0,0 +1,4 @@
+2e1833cf75da113a6fabbaae07ddd455 *tests/data/fate/vsynth_lena-ffv1-2pass.avi
+3490450 tests/data/fate/vsynth_lena-ffv1-2pass.avi
+dde5895817ad9d219f79a52d0bdfb001 *tests/data/fate/vsynth_lena-ffv1-2pass.out.rawvideo
+stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200



More information about the ffmpeg-cvslog mailing list