Commit ac4b5d86 authored by James Almer's avatar James Almer

Merge commit 'f8df5e2f'

* commit 'f8df5e2f':
  tests: Add a convenience function for video-only lavf tests
Merged-by: 's avatarJames Almer <jamrial@gmail.com>
parents a200bf80 f8df5e2f
...@@ -89,11 +89,11 @@ include $(SRC_PATH)/$(APITESTSDIR)/Makefile ...@@ -89,11 +89,11 @@ include $(SRC_PATH)/$(APITESTSDIR)/Makefile
include $(SRC_PATH)/tests/fate/acodec.mak include $(SRC_PATH)/tests/fate/acodec.mak
include $(SRC_PATH)/tests/fate/vcodec.mak include $(SRC_PATH)/tests/fate/vcodec.mak
include $(SRC_PATH)/tests/fate/avformat.mak
include $(SRC_PATH)/tests/fate/lavf-audio.mak include $(SRC_PATH)/tests/fate/lavf-audio.mak
include $(SRC_PATH)/tests/fate/lavf-container.mak include $(SRC_PATH)/tests/fate/lavf-container.mak
include $(SRC_PATH)/tests/fate/lavf-image.mak include $(SRC_PATH)/tests/fate/lavf-image.mak
include $(SRC_PATH)/tests/fate/lavf-image2pipe.mak include $(SRC_PATH)/tests/fate/lavf-image2pipe.mak
include $(SRC_PATH)/tests/fate/lavf-video.mak
include $(SRC_PATH)/tests/fate/seek.mak include $(SRC_PATH)/tests/fate/seek.mak
include $(SRC_PATH)/tests/fate/aac.mak include $(SRC_PATH)/tests/fate/aac.mak
...@@ -170,6 +170,7 @@ include $(SRC_PATH)/tests/fate/qt.mak ...@@ -170,6 +170,7 @@ include $(SRC_PATH)/tests/fate/qt.mak
include $(SRC_PATH)/tests/fate/qtrle.mak include $(SRC_PATH)/tests/fate/qtrle.mak
include $(SRC_PATH)/tests/fate/real.mak include $(SRC_PATH)/tests/fate/real.mak
include $(SRC_PATH)/tests/fate/screen.mak include $(SRC_PATH)/tests/fate/screen.mak
include $(SRC_PATH)/tests/fate/segment.mak
include $(SRC_PATH)/tests/fate/source.mak include $(SRC_PATH)/tests/fate/source.mak
include $(SRC_PATH)/tests/fate/speedhq.mak include $(SRC_PATH)/tests/fate/speedhq.mak
include $(SRC_PATH)/tests/fate/subtitles.mak include $(SRC_PATH)/tests/fate/subtitles.mak
......
...@@ -340,16 +340,12 @@ lavf_image2pipe(){ ...@@ -340,16 +340,12 @@ lavf_image2pipe(){
do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file
} }
lavffatetest(){ lavf_video(){
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-}" t="${test#lavf-}"
ref=${base}/ref/lavf/$t outdir="tests/data/lavf"
${base}/lavf-regression.sh $t lavf tests/vsynth1 "$target_exec" "$target_path" "$threads" "$thread_type" "$cpuflags" "$target_samples" file=${outdir}/lavf.$t
do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src "$ENC_OPTS -metadata title=lavftest" -t 1 -qscale 10 $1 $2
do_avconv_crc $file $DEC_OPTS -i $target_path/$file $1
} }
refcmp_metadata(){ refcmp_metadata(){
......
...@@ -93,6 +93,10 @@ fate-copy-trac2211-avi: $(TARGET_SAMPLES)/h264/bbc2.sample.h264 ...@@ -93,6 +93,10 @@ fate-copy-trac2211-avi: $(TARGET_SAMPLES)/h264/bbc2.sample.h264
fate-copy-trac2211-avi: CMD = transcode "h264 -r 14" $(TARGET_SAMPLES)/h264/bbc2.sample.h264\ fate-copy-trac2211-avi: CMD = transcode "h264 -r 14" $(TARGET_SAMPLES)/h264/bbc2.sample.h264\
avi "-c:a copy -c:v copy" avi "-c:a copy -c:v copy"
FATE_STREAMCOPY-$(call ALLYES, APNG_DEMUXER APNG_MUXER) += fate-copy-apng
fate-copy-apng: fate-lavf-apng
fate-copy-apng: CMD = transcode apng "$(TARGET_PATH)/tests/data/lavf/lavf.apng" apng "-c:v copy"
FATE_STREAMCOPY-$(call DEMMUX, OGG, OGG) += fate-limited_input_seek fate-limited_input_seek-copyts FATE_STREAMCOPY-$(call DEMMUX, OGG, OGG) += fate-limited_input_seek fate-limited_input_seek-copyts
fate-limited_input_seek: $(TARGET_SAMPLES)/vorbis/moog_small.ogg fate-limited_input_seek: $(TARGET_SAMPLES)/vorbis/moog_small.ogg
fate-limited_input_seek: CMD = md5 -ss 1.5 -t 1.3 -i $(TARGET_SAMPLES)/vorbis/moog_small.ogg -c:a copy -fflags +bitexact -f ogg fate-limited_input_seek: CMD = md5 -ss 1.5 -t 1.3 -i $(TARGET_SAMPLES)/vorbis/moog_small.ogg -c:a copy -fflags +bitexact -f ogg
......
FATE_LAVF_VIDEO-$(call ENCDEC, APNG, APNG) += apng
FATE_LAVF_VIDEO-$(call ENCDEC, APNG, APNG) += apng.png
FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gray.fits
FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gray16be.fits
FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrp.fits
FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrap.fits
FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrp16be.fits
FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrap16be.fits
FATE_LAVF_VIDEO-$(call ENCDEC, GIF, FITS) += gif
FATE_LAVF_VIDEO-$(CONFIG_YUV4MPEGPIPE_MUXER) += y4m
FATE_LAVF_VIDEO = $(FATE_LAVF_VIDEO-yes:%=fate-lavf-%)
$(FATE_LAVF_VIDEO): CMD = lavf_video
$(FATE_LAVF_VIDEO): REF = $(SRC_PATH)/tests/ref/lavf/$(@:fate-lavf-%=%)
$(FATE_LAVF_VIDEO): $(VREF)
fate-lavf-apng: CMD = lavf_video "-pix_fmt rgb24"
fate-lavf-apng.png: CMD = lavf_video "-pix_fmt rgb24" "-frames:v 1 -f apng"
fate-lavf-gray.fits: CMD = lavf_video "-pix_fmt gray"
fate-lavf-gray16be.fits: CMD = lavf_video "-pix_fmt gray16be"
fate-lavf-gbrp.fits: CMD = lavf_video "-pix_fmt gbrp"
fate-lavf-gbrap.fits: CMD = lavf_video "-pix_fmt gbrap"
fate-lavf-gbrp16be.fits: CMD = lavf_video "-pix_fmt gbrp16be"
fate-lavf-gbrap16be.fits: CMD = lavf_video "-pix_fmt gbrap16be"
fate-lavf-gif: CMD = lavf_video "-pix_fmt rgb24"
FATE_AVCONV += $(FATE_LAVF_VIDEO)
fate-lavf-video fate-lavf: $(FATE_LAVF_VIDEO)
...@@ -200,7 +200,7 @@ FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts ...@@ -200,7 +200,7 @@ FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts
FATE_SEEK_LAVF-$(call ENCDEC, PCM_U8, VOC) += voc FATE_SEEK_LAVF-$(call ENCDEC, PCM_U8, VOC) += voc
FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16LE, WAV) += wav FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16LE, WAV) += wav
FATE_SEEK_LAVF-$(call ENCDEC, MP2, WTV) += wtv FATE_SEEK_LAVF-$(call ENCDEC, MP2, WTV) += wtv
FATE_SEEK_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER) += yuv4mpeg FATE_SEEK_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER) += y4m
fate-seek-lavf-aiff: SRC = lavf/lavf.aiff fate-seek-lavf-aiff: SRC = lavf/lavf.aiff
fate-seek-lavf-al: SRC = lavf/lavf.al fate-seek-lavf-al: SRC = lavf/lavf.al
...@@ -241,7 +241,7 @@ fate-seek-lavf-ts: SRC = lavf/lavf.ts ...@@ -241,7 +241,7 @@ fate-seek-lavf-ts: SRC = lavf/lavf.ts
fate-seek-lavf-voc: SRC = lavf/lavf.voc fate-seek-lavf-voc: SRC = lavf/lavf.voc
fate-seek-lavf-wav: SRC = lavf/lavf.wav fate-seek-lavf-wav: SRC = lavf/lavf.wav
fate-seek-lavf-wtv: SRC = lavf/lavf.wtv fate-seek-lavf-wtv: SRC = lavf/lavf.wtv
fate-seek-lavf-yuv4mpeg: SRC = lavf/lavf.y4m fate-seek-lavf-y4m: SRC = lavf/lavf.y4m
FATE_SEEK += $(FATE_SEEK_LAVF-yes:%=fate-seek-lavf-%) FATE_SEEK += $(FATE_SEEK_LAVF-yes:%=fate-seek-lavf-%)
......
FATE_LAVF-$(call ENCDEC, APNG, APNG) += apng
FATE_LAVF-$(call ENCDEC, FITS, FITS) += fits
FATE_LAVF-$(call ENCDEC, GIF, IMAGE2) += gif
FATE_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER) += yuv4mpeg
FATE_LAVF += $(FATE_LAVF-yes:%=fate-lavf-%)
$(FATE_LAVF): $(AREF) $(VREF)
$(FATE_LAVF): CMD = lavftest
$(FATE_LAVF): CMP =
FATE_AVCONV += $(FATE_LAVF)
fate-lavf: $(FATE_LAVF)
tests/data/mp4-to-ts.m3u8: TAG = GEN tests/data/mp4-to-ts.m3u8: TAG = GEN
tests/data/mp4-to-ts.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data tests/data/mp4-to-ts.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \ $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \
......
#!/bin/sh
#
# automatic regression test for libavformat
#
#
#set -x
set -e
. $(dirname $0)/regression-funcs.sh
eval do_$test=y
ENC_OPTS="$ENC_OPTS -metadata title=lavftest"
# streamed images
# mjpeg
#file=${outfile}lavf.mjpeg
#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_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
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
if [ -n "$do_yuv4mpeg" ] ; then
file=${outfile}lavf.y4m
do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10
do_avconv_crc $file -i $target_path/$file
fi
if [ -n "$do_fits" ] ; then
pix_fmts="gray gray16be gbrp gbrap gbrp16be gbrap16be"
for pix_fmt in $pix_fmts ; do
file=${outfile}${pix_fmt}lavf.fits
do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -pix_fmt $pix_fmt
do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt $pix_fmt
done
fi
a4c46fad7716ad094eb3c78b74ca0244 *tests/data/fate/copy-apng.apng
6209864 tests/data/fate/copy-apng.apng
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 352x288
#sar 0: 0/1
0, 0, 0, 1, 304128, 0x348bb7a0
0, 1, 1, 1, 304128, 0xaf9634d7
0, 2, 2, 1, 304128, 0x81161fd3
0, 3, 3, 1, 304128, 0x6839b383
0, 4, 4, 1, 304128, 0xa55299b8
0, 5, 5, 1, 304128, 0x66fb65b3
0, 6, 6, 1, 304128, 0xe6be2a99
0, 7, 7, 1, 304128, 0xfb33cb55
0, 8, 8, 1, 304128, 0x51ab3d74
0, 9, 9, 1, 304128, 0x67dc44ee
0, 10, 10, 1, 304128, 0x2eac3b50
0, 11, 11, 1, 304128, 0xd4a4c377
0, 12, 12, 1, 304128, 0x1eefe29c
0, 13, 13, 1, 304128, 0x3a84d488
0, 14, 14, 1, 304128, 0x70d3b165
0, 15, 15, 1, 304128, 0x578e58d4
0, 16, 16, 1, 304128, 0x08bba87e
0, 17, 17, 1, 304128, 0xccc86c47
0, 18, 18, 1, 304128, 0x70bf9aa2
0, 19, 19, 1, 304128, 0x3fc3d5b5
0, 20, 20, 1, 304128, 0xef52590b
0, 21, 21, 1, 304128, 0x4f7adde0
0, 22, 22, 1, 304128, 0xc076ef54
0, 23, 23, 1, 304128, 0xed2bba2d
0, 24, 24, 1, 304128, 0x6fce6367
a4c46fad7716ad094eb3c78b74ca0244 *./tests/data/lavf/lavf.apng a4c46fad7716ad094eb3c78b74ca0244 *tests/data/lavf/lavf.apng
6209864 ./tests/data/lavf/lavf.apng 6209864 tests/data/lavf/lavf.apng
./tests/data/lavf/lavf.apng CRC=0x87b3c15f tests/data/lavf/lavf.apng CRC=0x87b3c15f
a4c46fad7716ad094eb3c78b74ca0244 *./tests/data/lavf/lavf.copy.apng
6209864 ./tests/data/lavf/lavf.copy.apng
./tests/data/lavf/lavf.copy.apng CRC=0x87b3c15f
c5900fdd1b2fc30b985793f5226fd0c4 *./tests/data/lavf/lavf.png
248854 ./tests/data/lavf/lavf.png
./tests/data/lavf/lavf.png CRC=0xd8c7b7a1
c5900fdd1b2fc30b985793f5226fd0c4 *tests/data/lavf/lavf.apng.png
248854 tests/data/lavf/lavf.apng.png
tests/data/lavf/lavf.apng.png CRC=0xd8c7b7a1
28eb102547b82acca57ef097a6c639d8 *tests/data/lavf/lavf.gbrap.fits
10224000 tests/data/lavf/lavf.gbrap.fits
tests/data/lavf/lavf.gbrap.fits CRC=0x883af247
ff5fb24a67aeabd4f56088ca8b03d8b0 *tests/data/lavf/lavf.gbrap16be.fits
20376000 tests/data/lavf/lavf.gbrap16be.fits
tests/data/lavf/lavf.gbrap16be.fits CRC=0xa981271b
dae49b5f6eb58981ba91e3e108355717 *tests/data/lavf/lavf.gbrp.fits
7704000 tests/data/lavf/lavf.gbrp.fits
tests/data/lavf/lavf.gbrp.fits CRC=0x80745c5e
693ea80c33eb9b348db27a0bc4a5cc8a *tests/data/lavf/lavf.gbrp16be.fits
15336000 tests/data/lavf/lavf.gbrp16be.fits
tests/data/lavf/lavf.gbrp16be.fits CRC=0x9573fb2b
e35f5ea283bbcb249818e0078ec72664 *./tests/data/lavf/lavf.gif e35f5ea283bbcb249818e0078ec72664 *tests/data/lavf/lavf.gif
2011766 ./tests/data/lavf/lavf.gif 2011766 tests/data/lavf/lavf.gif
./tests/data/lavf/lavf.gif CRC=0x2429faff tests/data/lavf/lavf.gif CRC=0x2429faff
d76b46a5a336b56f73451817cdf3897c *tests/data/lavf/lavf.gray.fits
2664000 tests/data/lavf/lavf.gray.fits
tests/data/lavf/lavf.gray.fits CRC=0x7aa0122f
15e85a553bbd07783f92377ed369308b *tests/data/lavf/lavf.gray16be.fits
5184000 tests/data/lavf/lavf.gray16be.fits
tests/data/lavf/lavf.gray16be.fits CRC=0x8b840cff
ec8178cb152f9cdbfd9cb724d977db2e *tests/data/lavf/lavf.y4m
3801808 tests/data/lavf/lavf.y4m
tests/data/lavf/lavf.y4m CRC=0x0a941f26
ec8178cb152f9cdbfd9cb724d977db2e *./tests/data/lavf/lavf.y4m
3801808 ./tests/data/lavf/lavf.y4m
./tests/data/lavf/lavf.y4m CRC=0x0a941f26
#!/bin/sh
#
# common regression functions for ffmpeg
#
#
test="${1#regtest-}"
test_ref=$2
raw_src_dir=$3
target_exec=$4
target_path=$5
threads=${6:-1}
cpuflags=${8:-all}
target_samples=$9
datadir="./tests/data"
target_datadir="${target_path}/${datadir}"
this="$test.$test_ref"
outfile="$datadir/$test_ref/"
# various files
ffmpeg="$target_exec ${target_path}/ffmpeg${PROGSUF}"
raw_src="${target_path}/$raw_src_dir/%02d.pgm"
raw_dst="$datadir/$this.out.yuv"
pcm_src="$target_datadir/asynth1.sw"
pcm_src_1ch="$target_datadir/asynth-16000-1.wav"
pcm_ref_1ch="$datadir/$test_ref-16000-1.ref.wav"
crcfile="$datadir/$this.crc"
target_crcfile="$target_datadir/$this.crc"
cleanfiles="$raw_dst $crcfile"
trap 'rm -f -- $cleanfiles' EXIT
[ "${V-0}" -gt 0 ] && echov=echov || echov=:
echov(){
echo "$@" >&3
}
. $(dirname $0)/md5.sh
AVCONV_OPTS="-nostdin -nostats -y -cpuflags $cpuflags"
COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact -fflags +bitexact"
DEC_OPTS="$COMMON_OPTS -threads $threads"
ENC_OPTS="$COMMON_OPTS -threads $threads -dct fastint"
run_avconv()
{
$echov $ffmpeg $AVCONV_OPTS $*
$ffmpeg $AVCONV_OPTS $*
}
do_avconv()
{
f="$1"
shift
set -- $* ${target_path}/$f
run_avconv $*
do_md5sum $f
echo $(wc -c $f)
}
do_avconv_nomd5()
{
f="$1"
shift
set -- $* ${target_path}/$f
run_avconv $*
if [ $f = $raw_dst ] ; then
$tiny_psnr $f $raw_ref
elif [ $f = $pcm_dst ] ; then
$tiny_psnr $f $pcm_ref 2
else
echo $(wc -c $f)
fi
}
do_avconv_crc()
{
f="$1"
shift
run_avconv $* -f crc "$target_crcfile"
echo "$f $(cat $crcfile)"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment