diff --git a/tests/Makefile b/tests/Makefile index 628d4bb8fe..99ea0fe20b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -161,6 +161,7 @@ include $(SRC_PATH)/tests/fate/mpegts.mak include $(SRC_PATH)/tests/fate/mxf.mak include $(SRC_PATH)/tests/fate/opus.mak include $(SRC_PATH)/tests/fate/pcm.mak +include $(SRC_PATH)/tests/fate/pixfmt.mak include $(SRC_PATH)/tests/fate/pixlet.mak include $(SRC_PATH)/tests/fate/probe.mak include $(SRC_PATH)/tests/fate/prores.mak diff --git a/tests/fate-run.sh b/tests/fate-run.sh index a141488b33..a2ccc65a63 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -331,6 +331,17 @@ refcmp_metadata(){ -f null /dev/null | awk -v ref=${ref} -v fuzz=${fuzz} -f ${base}/refcmp-metadata.awk - } +pixfmt_conversion(){ + conversion="${test#pixfmt-}" + outdir="tests/data/pixfmt" + raw_dst="$outdir/$conversion.out.yuv" + file=${outdir}/${conversion}.yuv + run_avconv $DEC_OPTS -r 1 -f image2 -c:v pgmyuv -i $raw_src \ + $ENC_OPTS -f rawvideo -t 1 -s 352x288 -pix_fmt $conversion $target_path/$raw_dst + do_avconv $file $DEC_OPTS -f rawvideo -s 352x288 -pix_fmt $conversion -i $target_path/$raw_dst \ + $ENC_OPTS -f rawvideo -s 352x288 -pix_fmt yuv444p +} + video_filter(){ filters=$1 shift diff --git a/tests/fate/avformat.mak b/tests/fate/avformat.mak index 461f9e01cb..452edc788f 100644 --- a/tests/fate/avformat.mak +++ b/tests/fate/avformat.mak @@ -25,8 +25,6 @@ FATE_LAVF-$(call ENCDEC, MP2, WTV) += wtv FATE_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER) += yuv4mpeg FATE_LAVF += $(FATE_LAVF-yes:%=fate-lavf-%) -FATE_LAVF_PIXFMT-$(CONFIG_SCALE_FILTER) += fate-lavf-pixfmt -FATE_LAVF += $(FATE_LAVF_PIXFMT-yes) $(FATE_LAVF): $(AREF) $(VREF) $(FATE_LAVF): CMD = lavftest diff --git a/tests/fate/pixfmt.mak b/tests/fate/pixfmt.mak new file mode 100644 index 0000000000..46fd888ac9 --- /dev/null +++ b/tests/fate/pixfmt.mak @@ -0,0 +1,28 @@ +FATE_PIXFMT-$(CONFIG_SCALE_FILTER) = bgr24 \ + gray \ + monob \ + monow \ + rgb24 \ + rgb32 \ + rgb555 \ + rgb565 \ + yuv410p \ + yuv411p \ + yuv420p \ + yuv422p \ + yuv440p \ + yuv444p \ + yuvj420p \ + yuvj422p \ + yuvj440p \ + yuvj444p \ + yuyv422 \ + +FATE_PIXFMT := $(FATE_PIXFMT-yes:%=fate-pixfmt-%) + +$(FATE_PIXFMT): CMD = pixfmt_conversion +$(FATE_PIXFMT): REF = $(SRC_PATH)/tests/ref/pixfmt/$(@:fate-pixfmt-%=%) +$(FATE_PIXFMT): $(VREF) + +FATE_AVCONV += $(FATE_PIXFMT) +fate-pixfmt: $(FATE_PIXFMT) diff --git a/tests/lavf-regression.sh b/tests/lavf-regression.sh index f3f6dc4e85..f703cb9c0e 100755 --- a/tests/lavf-regression.sh +++ b/tests/lavf-regression.sh @@ -209,19 +209,3 @@ fi if [ -n "$do_smjpeg" ] ; then do_lavf smjpeg "" "-f smjpeg" fi - -# pix_fmt conversions - -if [ -n "$do_pixfmt" ] ; then -outfile="$datadir/pixfmt/" -conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \ - yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \ - monob yuv440p yuvj440p" -for pix_fmt in $conversions ; do - file=${outfile}${pix_fmt}.yuv - run_avconv $DEC_OPTS -r 1 -f image2 -vcodec pgmyuv -i $raw_src \ - $ENC_OPTS -f rawvideo -t 1 -s 352x288 -pix_fmt $pix_fmt $target_path/$raw_dst - do_avconv $file $DEC_OPTS -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $target_path/$raw_dst \ - $ENC_OPTS -f rawvideo -s 352x288 -pix_fmt yuv444p -done -fi diff --git a/tests/ref/lavf/pixfmt b/tests/ref/lavf/pixfmt deleted file mode 100644 index ec75d4ce24..0000000000 --- a/tests/ref/lavf/pixfmt +++ /dev/null @@ -1,38 +0,0 @@ -5641dba168ff665af1cdb4a91e1afdd6 *./tests/data/pixfmt/yuv420p.yuv -304128 ./tests/data/pixfmt/yuv420p.yuv -ac68f9fdd9d55efd0306d9b004038761 *./tests/data/pixfmt/yuv422p.yuv -304128 ./tests/data/pixfmt/yuv422p.yuv -5641dba168ff665af1cdb4a91e1afdd6 *./tests/data/pixfmt/yuv444p.yuv -304128 ./tests/data/pixfmt/yuv444p.yuv -ac68f9fdd9d55efd0306d9b004038761 *./tests/data/pixfmt/yuyv422.yuv -304128 ./tests/data/pixfmt/yuyv422.yuv -507c7e9f0c97660385df977469ca9e6d *./tests/data/pixfmt/yuv410p.yuv -304128 ./tests/data/pixfmt/yuv410p.yuv -8594ea0b8d7c2c964525b0801b5351de *./tests/data/pixfmt/yuv411p.yuv -304128 ./tests/data/pixfmt/yuv411p.yuv -e176bd14185788110e055f945de7f95f *./tests/data/pixfmt/yuvj420p.yuv -304128 ./tests/data/pixfmt/yuvj420p.yuv -472028e46a81c98d9b2477507def4723 *./tests/data/pixfmt/yuvj422p.yuv -304128 ./tests/data/pixfmt/yuvj422p.yuv -c10442da177c9f1d12be3c53be6fa12c *./tests/data/pixfmt/yuvj444p.yuv -304128 ./tests/data/pixfmt/yuvj444p.yuv -6bb61113e7b70eb09dbcec356122a0e2 *./tests/data/pixfmt/rgb24.yuv -304128 ./tests/data/pixfmt/rgb24.yuv -6bb61113e7b70eb09dbcec356122a0e2 *./tests/data/pixfmt/bgr24.yuv -304128 ./tests/data/pixfmt/bgr24.yuv -6bb61113e7b70eb09dbcec356122a0e2 *./tests/data/pixfmt/rgb32.yuv -304128 ./tests/data/pixfmt/rgb32.yuv -efa7c0337cc00c796c6df615223716f1 *./tests/data/pixfmt/rgb565.yuv -304128 ./tests/data/pixfmt/rgb565.yuv -0df2a477af1415a1b8fbf2a3e552bc39 *./tests/data/pixfmt/rgb555.yuv -304128 ./tests/data/pixfmt/rgb555.yuv -1e080c12bd9755c41ecb8e19b756f406 *./tests/data/pixfmt/gray.yuv -304128 ./tests/data/pixfmt/gray.yuv -d87cf0c2e7a13cc693fe6ece22461c83 *./tests/data/pixfmt/monow.yuv -304128 ./tests/data/pixfmt/monow.yuv -d87cf0c2e7a13cc693fe6ece22461c83 *./tests/data/pixfmt/monob.yuv -304128 ./tests/data/pixfmt/monob.yuv -00b85790df5740bab95e2559d81603a7 *./tests/data/pixfmt/yuv440p.yuv -304128 ./tests/data/pixfmt/yuv440p.yuv -4d8d402c45d913038d4b725396719111 *./tests/data/pixfmt/yuvj440p.yuv -304128 ./tests/data/pixfmt/yuvj440p.yuv diff --git a/tests/ref/pixfmt/bgr24 b/tests/ref/pixfmt/bgr24 new file mode 100644 index 0000000000..43af80b8a5 --- /dev/null +++ b/tests/ref/pixfmt/bgr24 @@ -0,0 +1,2 @@ +6bb61113e7b70eb09dbcec356122a0e2 *tests/data/pixfmt/bgr24.yuv +304128 tests/data/pixfmt/bgr24.yuv diff --git a/tests/ref/pixfmt/gray b/tests/ref/pixfmt/gray new file mode 100644 index 0000000000..fe5e5464f8 --- /dev/null +++ b/tests/ref/pixfmt/gray @@ -0,0 +1,2 @@ +1e080c12bd9755c41ecb8e19b756f406 *tests/data/pixfmt/gray.yuv +304128 tests/data/pixfmt/gray.yuv diff --git a/tests/ref/pixfmt/monob b/tests/ref/pixfmt/monob new file mode 100644 index 0000000000..002dda1d3d --- /dev/null +++ b/tests/ref/pixfmt/monob @@ -0,0 +1,2 @@ +d87cf0c2e7a13cc693fe6ece22461c83 *tests/data/pixfmt/monob.yuv +304128 tests/data/pixfmt/monob.yuv diff --git a/tests/ref/pixfmt/monow b/tests/ref/pixfmt/monow new file mode 100644 index 0000000000..485f256bba --- /dev/null +++ b/tests/ref/pixfmt/monow @@ -0,0 +1,2 @@ +d87cf0c2e7a13cc693fe6ece22461c83 *tests/data/pixfmt/monow.yuv +304128 tests/data/pixfmt/monow.yuv diff --git a/tests/ref/pixfmt/rgb24 b/tests/ref/pixfmt/rgb24 new file mode 100644 index 0000000000..b38611343b --- /dev/null +++ b/tests/ref/pixfmt/rgb24 @@ -0,0 +1,2 @@ +6bb61113e7b70eb09dbcec356122a0e2 *tests/data/pixfmt/rgb24.yuv +304128 tests/data/pixfmt/rgb24.yuv diff --git a/tests/ref/pixfmt/rgb32 b/tests/ref/pixfmt/rgb32 new file mode 100644 index 0000000000..741e60a4e1 --- /dev/null +++ b/tests/ref/pixfmt/rgb32 @@ -0,0 +1,2 @@ +6bb61113e7b70eb09dbcec356122a0e2 *tests/data/pixfmt/rgb32.yuv +304128 tests/data/pixfmt/rgb32.yuv diff --git a/tests/ref/pixfmt/rgb555 b/tests/ref/pixfmt/rgb555 new file mode 100644 index 0000000000..eecc974d1c --- /dev/null +++ b/tests/ref/pixfmt/rgb555 @@ -0,0 +1,2 @@ +0df2a477af1415a1b8fbf2a3e552bc39 *tests/data/pixfmt/rgb555.yuv +304128 tests/data/pixfmt/rgb555.yuv diff --git a/tests/ref/pixfmt/rgb565 b/tests/ref/pixfmt/rgb565 new file mode 100644 index 0000000000..b249f4a0ef --- /dev/null +++ b/tests/ref/pixfmt/rgb565 @@ -0,0 +1,2 @@ +efa7c0337cc00c796c6df615223716f1 *tests/data/pixfmt/rgb565.yuv +304128 tests/data/pixfmt/rgb565.yuv diff --git a/tests/ref/pixfmt/yuv410p b/tests/ref/pixfmt/yuv410p new file mode 100644 index 0000000000..0f1dcfda8c --- /dev/null +++ b/tests/ref/pixfmt/yuv410p @@ -0,0 +1,2 @@ +507c7e9f0c97660385df977469ca9e6d *tests/data/pixfmt/yuv410p.yuv +304128 tests/data/pixfmt/yuv410p.yuv diff --git a/tests/ref/pixfmt/yuv411p b/tests/ref/pixfmt/yuv411p new file mode 100644 index 0000000000..0122b68e4a --- /dev/null +++ b/tests/ref/pixfmt/yuv411p @@ -0,0 +1,2 @@ +8594ea0b8d7c2c964525b0801b5351de *tests/data/pixfmt/yuv411p.yuv +304128 tests/data/pixfmt/yuv411p.yuv diff --git a/tests/ref/pixfmt/yuv420p b/tests/ref/pixfmt/yuv420p new file mode 100644 index 0000000000..9adf81f856 --- /dev/null +++ b/tests/ref/pixfmt/yuv420p @@ -0,0 +1,2 @@ +5641dba168ff665af1cdb4a91e1afdd6 *tests/data/pixfmt/yuv420p.yuv +304128 tests/data/pixfmt/yuv420p.yuv diff --git a/tests/ref/pixfmt/yuv422p b/tests/ref/pixfmt/yuv422p new file mode 100644 index 0000000000..4240ec95a3 --- /dev/null +++ b/tests/ref/pixfmt/yuv422p @@ -0,0 +1,2 @@ +ac68f9fdd9d55efd0306d9b004038761 *tests/data/pixfmt/yuv422p.yuv +304128 tests/data/pixfmt/yuv422p.yuv diff --git a/tests/ref/pixfmt/yuv440p b/tests/ref/pixfmt/yuv440p new file mode 100644 index 0000000000..4e6ee4df6b --- /dev/null +++ b/tests/ref/pixfmt/yuv440p @@ -0,0 +1,2 @@ +00b85790df5740bab95e2559d81603a7 *tests/data/pixfmt/yuv440p.yuv +304128 tests/data/pixfmt/yuv440p.yuv diff --git a/tests/ref/pixfmt/yuv444p b/tests/ref/pixfmt/yuv444p new file mode 100644 index 0000000000..85c871229a --- /dev/null +++ b/tests/ref/pixfmt/yuv444p @@ -0,0 +1,2 @@ +5641dba168ff665af1cdb4a91e1afdd6 *tests/data/pixfmt/yuv444p.yuv +304128 tests/data/pixfmt/yuv444p.yuv diff --git a/tests/ref/pixfmt/yuvj420p b/tests/ref/pixfmt/yuvj420p new file mode 100644 index 0000000000..47a729ed45 --- /dev/null +++ b/tests/ref/pixfmt/yuvj420p @@ -0,0 +1,2 @@ +e176bd14185788110e055f945de7f95f *tests/data/pixfmt/yuvj420p.yuv +304128 tests/data/pixfmt/yuvj420p.yuv diff --git a/tests/ref/pixfmt/yuvj422p b/tests/ref/pixfmt/yuvj422p new file mode 100644 index 0000000000..6ab97d59db --- /dev/null +++ b/tests/ref/pixfmt/yuvj422p @@ -0,0 +1,2 @@ +472028e46a81c98d9b2477507def4723 *tests/data/pixfmt/yuvj422p.yuv +304128 tests/data/pixfmt/yuvj422p.yuv diff --git a/tests/ref/pixfmt/yuvj440p b/tests/ref/pixfmt/yuvj440p new file mode 100644 index 0000000000..2beeae52c1 --- /dev/null +++ b/tests/ref/pixfmt/yuvj440p @@ -0,0 +1,2 @@ +4d8d402c45d913038d4b725396719111 *tests/data/pixfmt/yuvj440p.yuv +304128 tests/data/pixfmt/yuvj440p.yuv diff --git a/tests/ref/pixfmt/yuvj444p b/tests/ref/pixfmt/yuvj444p new file mode 100644 index 0000000000..63fb813d4b --- /dev/null +++ b/tests/ref/pixfmt/yuvj444p @@ -0,0 +1,2 @@ +c10442da177c9f1d12be3c53be6fa12c *tests/data/pixfmt/yuvj444p.yuv +304128 tests/data/pixfmt/yuvj444p.yuv diff --git a/tests/ref/pixfmt/yuyv422 b/tests/ref/pixfmt/yuyv422 new file mode 100644 index 0000000000..0978690007 --- /dev/null +++ b/tests/ref/pixfmt/yuyv422 @@ -0,0 +1,2 @@ +ac68f9fdd9d55efd0306d9b004038761 *tests/data/pixfmt/yuyv422.yuv +304128 tests/data/pixfmt/yuyv422.yuv