ffmpeg | branch: master | James Almer <[email protected]> | Thu Mar 14 14:04:55 2019 -0300| [d0c43e32427ec1efac364be0987a6aafa695527f] | committer: James Almer
Merge commit 'a70eac7a9b193e8434b5bed90bd72aa4cb688363' * commit 'a70eac7a9b193e8434b5bed90bd72aa4cb688363': tests: Convert image2pipe tests to non-legacy test scripts Merged-by: James Almer <[email protected]> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d0c43e32427ec1efac364be0987a6aafa695527f --- tests/Makefile | 1 + tests/fate-run.sh | 47 ++++++++++++++++++++++++++++++++++++++++++ tests/fate/avformat.mak | 3 --- tests/fate/lavf-image2pipe.mak | 12 +++++++++++ tests/lavf-regression.sh | 19 ----------------- tests/ref/lavf/pbmpipe | 6 +++--- tests/ref/lavf/pgmpipe | 6 +++--- tests/ref/lavf/ppmpipe | 6 +++--- 8 files changed, 69 insertions(+), 31 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index ae658693db..0def7e0dae 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -90,6 +90,7 @@ include $(SRC_PATH)/tests/fate/acodec.mak include $(SRC_PATH)/tests/fate/vcodec.mak include $(SRC_PATH)/tests/fate/avformat.mak +include $(SRC_PATH)/tests/fate/lavf-image2pipe.mak include $(SRC_PATH)/tests/fate/seek.mak include $(SRC_PATH)/tests/fate/aac.mak diff --git a/tests/fate-run.sh b/tests/fate-run.sh index f1a1e34c36..2d5dbf2f47 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -243,6 +243,53 @@ stream_remux(){ -f framecrc - || return } +# FIXME: There is a certain duplication between the avconv-related helper +# functions above and below that should be refactored. +ffmpeg2="$target_exec ${target_path}/ffmpeg" +raw_src="${target_path}/tests/vsynth1/%02d.pgm" +crcfile="tests/data/$test.lavf.crc" +target_crcfile="${target_path}/$crcfile" + +[ "${V-0}" -gt 0 ] && echov=echov || echov=: + +echov(){ + echo "$@" >&3 +} + +AVCONV_OPTS="-nostdin -nostats -y -cpuflags $cpuflags -threads $threads" +DEC_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact -fflags +bitexact" +ENC_OPTS="$DEC_OPTS -threads $threads -dct fastint" + +run_avconv(){ + $echov $ffmpeg2 $AVCONV_OPTS $* + $ffmpeg2 $AVCONV_OPTS $* +} + +do_avconv(){ + f="$1" + shift + set -- $* ${target_path}/$f + run_avconv $* + do_md5sum $f + echo $(wc -c $f) +} + +do_avconv_crc(){ + f="$1" + shift + run_avconv $* -f crc "$target_crcfile" + echo "$f $(cat $crcfile)" +} + +lavf_image2pipe(){ + t="${test#lavf-}" + t="${t%pipe}" + outdir="tests/data/lavf" + file=${outdir}/${t}pipe.$t + do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src -f image2pipe "$ENC_OPTS -metadata title=lavftest" -t 1 -qscale 10 + do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file +} + lavffatetest(){ t="${test#lavf-fate-}" ref=${base}/ref/lavf-fate/$t diff --git a/tests/fate/avformat.mak b/tests/fate/avformat.mak index a12f9ccc71..a0eaeefbe0 100644 --- a/tests/fate/avformat.mak +++ b/tests/fate/avformat.mak @@ -31,13 +31,10 @@ FATE_LAVF-$(call ENCDEC2, DNXHD, PCM_S16LE, MXF_OPATOM MXF) += mxf_opat FATE_LAVF-$(call ENCDEC2, MPEG4, MP2, NUT) += nut FATE_LAVF-$(call ENCDEC, FLAC, OGG) += ogg FATE_LAVF-$(call ENCDEC, PAM, IMAGE2) += pam -FATE_LAVF-$(call ENCDEC, PBM, IMAGE2PIPE) += pbmpipe FATE_LAVF-$(call ENCDEC, PCX, IMAGE2) += pcx FATE_LAVF-$(call ENCDEC, PGM, IMAGE2) += pgm -FATE_LAVF-$(call ENCDEC, PGM, IMAGE2PIPE) += pgmpipe FATE_LAVF-$(call ENCDEC, PNG, IMAGE2) += png FATE_LAVF-$(call ENCDEC, PPM, IMAGE2) += ppm -FATE_LAVF-$(call ENCDEC, PPM, IMAGE2PIPE) += ppmpipe FATE_LAVF-$(call ENCMUX, RV10 AC3_FIXED, RM) += rm FATE_LAVF-$(call ENCDEC, PCM_U8, RSO) += rso FATE_LAVF-$(call ENCDEC, SGI, IMAGE2) += sgi diff --git a/tests/fate/lavf-image2pipe.mak b/tests/fate/lavf-image2pipe.mak new file mode 100644 index 0000000000..297f677ada --- /dev/null +++ b/tests/fate/lavf-image2pipe.mak @@ -0,0 +1,12 @@ +FATE_LAVF_IMAGE2PIPE-$(call ENCDEC, PBM, IMAGE2PIPE) += pbmpipe +FATE_LAVF_IMAGE2PIPE-$(call ENCDEC, PGM, IMAGE2PIPE) += pgmpipe +FATE_LAVF_IMAGE2PIPE-$(call ENCDEC, PPM, IMAGE2PIPE) += ppmpipe + +FATE_LAVF_IMAGE2PIPE = $(FATE_LAVF_IMAGE2PIPE-yes:%=fate-lavf-%) + +$(FATE_LAVF_IMAGE2PIPE): CMD = lavf_image2pipe +$(FATE_LAVF_IMAGE2PIPE): REF = $(SRC_PATH)/tests/ref/lavf/$(@:fate-lavf-%=%) +$(FATE_LAVF_IMAGE2PIPE): $(VREF) + +FATE_AVCONV += $(FATE_LAVF_IMAGE2PIPE) +fate-lavf-image2pipe fate-lavf: $(FATE_LAVF_IMAGE2PIPE) diff --git a/tests/lavf-regression.sh b/tests/lavf-regression.sh index c5b6734815..baf2dc76a5 100755 --- a/tests/lavf-regression.sh +++ b/tests/lavf-regression.sh @@ -39,13 +39,6 @@ do_lavf_timecode() do_lavf $1 "" "$2" } -do_streamed_images() -{ - file=${outfile}${1}pipe.$1 - do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10 - do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file -} - do_image_formats() { outfile="$datadir/images/$1/" @@ -202,18 +195,6 @@ fi #do_avconv $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src #do_avconv_crc $file -i $target_path/$file -if [ -n "$do_pbmpipe" ] ; then -do_streamed_images pbm -fi - -if [ -n "$do_pgmpipe" ] ; then -do_streamed_images pgm -fi - -if [ -n "$do_ppmpipe" ] ; then -do_streamed_images ppm -fi - if [ -n "$do_gif" ] ; then file=${outfile}lavf.gif do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24 diff --git a/tests/ref/lavf/pbmpipe b/tests/ref/lavf/pbmpipe index 284f90b16b..5cfb9b5e77 100644 --- a/tests/ref/lavf/pbmpipe +++ b/tests/ref/lavf/pbmpipe @@ -1,3 +1,3 @@ -8b974da7f48f9e6d5ae327b4444a71fb *./tests/data/lavf/pbmpipe.pbm -317075 ./tests/data/lavf/pbmpipe.pbm -./tests/data/lavf/pbmpipe.pbm CRC=0xfc010c66 +8b974da7f48f9e6d5ae327b4444a71fb *tests/data/lavf/pbmpipe.pbm +317075 tests/data/lavf/pbmpipe.pbm +tests/data/lavf/pbmpipe.pbm CRC=0xfc010c66 diff --git a/tests/ref/lavf/pgmpipe b/tests/ref/lavf/pgmpipe index da6f9a6d3a..1077a9514a 100644 --- a/tests/ref/lavf/pgmpipe +++ b/tests/ref/lavf/pgmpipe @@ -1,3 +1,3 @@ -c34e37ea49237c2d1ea81a5944328e59 *./tests/data/lavf/pgmpipe.pgm -2534775 ./tests/data/lavf/pgmpipe.pgm -./tests/data/lavf/pgmpipe.pgm CRC=0x7aa0122f +c34e37ea49237c2d1ea81a5944328e59 *tests/data/lavf/pgmpipe.pgm +2534775 tests/data/lavf/pgmpipe.pgm +tests/data/lavf/pgmpipe.pgm CRC=0x7aa0122f diff --git a/tests/ref/lavf/ppmpipe b/tests/ref/lavf/ppmpipe index b703e16e50..a50dbb0671 100644 --- a/tests/ref/lavf/ppmpipe +++ b/tests/ref/lavf/ppmpipe @@ -1,3 +1,3 @@ -74f1f6651ad8f192a7b4c11c2b6c71e5 *./tests/data/lavf/ppmpipe.ppm -7603575 ./tests/data/lavf/ppmpipe.ppm -./tests/data/lavf/ppmpipe.ppm CRC=0x87b3c15f +74f1f6651ad8f192a7b4c11c2b6c71e5 *tests/data/lavf/ppmpipe.ppm +7603575 tests/data/lavf/ppmpipe.ppm +tests/data/lavf/ppmpipe.ppm CRC=0x87b3c15f ====================================================================== diff --cc tests/fate-run.sh index f1a1e34c36,0221e5c1dc..2d5dbf2f47 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@@ -209,46 -152,51 +209,93 @@@ enc_dec() tests/tiny_psnr $srcfile $decfile $cmp_unit $cmp_shift } +transcode(){ + src_fmt=$1 + srcfile=$2 + enc_fmt=$3 + enc_opt=$4 + final_decode=$5 + encfile="${outdir}/${test}.${enc_fmt}" + test "$7" = -keep || cleanfiles="$cleanfiles $encfile" + tsrcfile=$(target_path $srcfile) + tencfile=$(target_path $encfile) + ffmpeg -f $src_fmt $DEC_OPTS -i $tsrcfile $ENC_OPTS $enc_opt $FLAGS \ + -f $enc_fmt -y $tencfile || return + do_md5sum $encfile + echo $(wc -c $encfile) + ffmpeg $DEC_OPTS -i $encfile $ENC_OPTS $FLAGS $final_decode \ + -f framecrc - || return +} + +stream_remux(){ + src_fmt=$1 + srcfile=$2 + enc_fmt=$3 + stream_maps=$4 + final_decode=$5 + encfile="${outdir}/${test}.${enc_fmt}" + test "$7" = -keep || cleanfiles="$cleanfiles $encfile" + tsrcfile=$(target_path $srcfile) + tencfile=$(target_path $encfile) + ffmpeg -f $src_fmt -i $tsrcfile $stream_maps -codec copy $FLAGS \ + -f $enc_fmt -y $tencfile || return + ffmpeg $DEC_OPTS -i $encfile $ENC_OPTS $FLAGS $final_decode \ + -f framecrc - || return +} + + # FIXME: There is a certain duplication between the avconv-related helper + # functions above and below that should be refactored. -avconv2="$target_exec ${target_path}/avconv" ++ffmpeg2="$target_exec ${target_path}/ffmpeg" + raw_src="${target_path}/tests/vsynth1/%02d.pgm" + crcfile="tests/data/$test.lavf.crc" + target_crcfile="${target_path}/$crcfile" + ++[ "${V-0}" -gt 0 ] && echov=echov || echov=: ++ + echov(){ + echo "$@" >&3 + } + -AVCONV_OPTS="-nostats -y -cpuflags $cpuflags -threads $threads" ++AVCONV_OPTS="-nostdin -nostats -y -cpuflags $cpuflags -threads $threads" + DEC_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact -fflags +bitexact" -ENC_OPTS="$DEC_OPTS -threads 1 -dct fastint" ++ENC_OPTS="$DEC_OPTS -threads $threads -dct fastint" + + run_avconv(){ - $echov $avconv2 $AVCONV_OPTS $* - $avconv2 $AVCONV_OPTS $* ++ $echov $ffmpeg2 $AVCONV_OPTS $* ++ $ffmpeg2 $AVCONV_OPTS $* + } + + do_avconv(){ + f="$1" + shift + set -- $* ${target_path}/$f + run_avconv $* + do_md5sum $f + echo $(wc -c $f) + } + + do_avconv_crc(){ + f="$1" + shift + run_avconv $* -f crc "$target_crcfile" + echo "$f $(cat $crcfile)" + } + + lavf_image2pipe(){ + t="${test#lavf-}" + t="${t%pipe}" + outdir="tests/data/lavf" + file=${outdir}/${t}pipe.$t - do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10 ++ do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src -f image2pipe "$ENC_OPTS -metadata title=lavftest" -t 1 -qscale 10 + do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file + } + +lavffatetest(){ + t="${test#lavf-fate-}" + ref=${base}/ref/lavf-fate/$t + ${base}/lavf-regression.sh $t lavf-fate tests/vsynth1 "$target_exec" "$target_path" "$threads" "$thread_type" "$cpuflags" "$target_samples" +} + lavftest(){ t="${test#lavf-}" ref=${base}/ref/lavf/$t diff --cc tests/lavf-regression.sh index c5b6734815,fecc36c0fd..baf2dc76a5 --- a/tests/lavf-regression.sh +++ b/tests/lavf-regression.sh @@@ -29,23 -19,6 +29,16 @@@ do_lavf( do_avconv_crc $file $DEC_OPTS -i $target_path/$file $4 } +do_lavf_timecode_nodrop() { do_lavf $1 "" "$2 -timecode 02:56:14:13"; } +do_lavf_timecode_drop() { do_lavf $1 "" "$2 -timecode 02:56:14.13 -r 30000/1001"; } + +do_lavf_timecode() +{ + do_lavf_timecode_nodrop "$@" + do_lavf_timecode_drop "$@" + do_lavf $1 "" "$2" +} + - do_streamed_images() - { - file=${outfile}${1}pipe.$1 - do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10 - do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file - } - do_image_formats() { outfile="$datadir/images/$1/" @@@ -199,36 -99,12 +192,24 @@@ f # streamed images # mjpeg #file=${outfile}lavf.mjpeg -#do_avconv $file -t 1 -qscale 10 -f image2 -c:v pgmyuv -i $raw_src +#do_avconv $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src #do_avconv_crc $file -i $target_path/$file - if [ -n "$do_pbmpipe" ] ; then - do_streamed_images pbm - fi - - if [ -n "$do_pgmpipe" ] ; then - do_streamed_images pgm - fi - - if [ -n "$do_ppmpipe" ] ; then - do_streamed_images ppm - fi - if [ -n "$do_gif" ] ; then file=${outfile}lavf.gif -do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24 +do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24 +do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24 +fi + +if [ -n "$do_apng" ] ; then +file=${outfile}lavf.apng +do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -pix_fmt rgb24 +do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24 +file_copy=${outfile}lavf.copy.apng +do_avconv $file_copy $DEC_OPTS -i $file $ENC_OPTS -c copy +do_avconv_crc $file_copy $DEC_OPTS -i $target_path/$file_copy +file=${outfile}lavf.png +do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -pix_fmt rgb24 -frames:v 1 -f apng do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24 fi diff --cc tests/ref/lavf/pbmpipe index 284f90b16b,ab7d302b4d..5cfb9b5e77 --- a/tests/ref/lavf/pbmpipe +++ b/tests/ref/lavf/pbmpipe @@@ -1,3 -1,3 +1,3 @@@ - 8b974da7f48f9e6d5ae327b4444a71fb *./tests/data/lavf/pbmpipe.pbm - 317075 ./tests/data/lavf/pbmpipe.pbm - ./tests/data/lavf/pbmpipe.pbm CRC=0xfc010c66 -8ced96f5b6b7362358199ae993b4ceb7 *tests/data/lavf/pbmpipe.pbm ++8b974da7f48f9e6d5ae327b4444a71fb *tests/data/lavf/pbmpipe.pbm + 317075 tests/data/lavf/pbmpipe.pbm -tests/data/lavf/pbmpipe.pbm CRC=0xfae0a1ba ++tests/data/lavf/pbmpipe.pbm CRC=0xfc010c66 diff --cc tests/ref/lavf/pgmpipe index da6f9a6d3a,d854897492..1077a9514a --- a/tests/ref/lavf/pgmpipe +++ b/tests/ref/lavf/pgmpipe @@@ -1,3 -1,3 +1,3 @@@ - c34e37ea49237c2d1ea81a5944328e59 *./tests/data/lavf/pgmpipe.pgm - 2534775 ./tests/data/lavf/pgmpipe.pgm - ./tests/data/lavf/pgmpipe.pgm CRC=0x7aa0122f -04e66c8e9e064c8310bd657ee559bd70 *tests/data/lavf/pgmpipe.pgm ++c34e37ea49237c2d1ea81a5944328e59 *tests/data/lavf/pgmpipe.pgm + 2534775 tests/data/lavf/pgmpipe.pgm -tests/data/lavf/pgmpipe.pgm CRC=0xadf48ba9 ++tests/data/lavf/pgmpipe.pgm CRC=0x7aa0122f _______________________________________________ ffmpeg-cvslog mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
