mirror of https://git.ffmpeg.org/ffmpeg.git
146 lines
3.1 KiB
Bash
146 lines
3.1 KiB
Bash
|
#!/bin/sh
|
||
|
#
|
||
|
# automatic regression test for ffmpeg
|
||
|
#
|
||
|
#
|
||
|
#set -x
|
||
|
set -e
|
||
|
|
||
|
# tests to do
|
||
|
if [ "$1" = "mpeg4" ] ; then
|
||
|
do_mpeg4=y
|
||
|
elif [ "$1" = "mpeg" ] ; then
|
||
|
do_mpeg=y
|
||
|
else
|
||
|
do_mpeg=y
|
||
|
do_msmpeg4=y
|
||
|
do_h263=y
|
||
|
do_mpeg4=y
|
||
|
do_mjpeg=y
|
||
|
#do_rv10=y #broken!
|
||
|
do_mp2=y
|
||
|
do_ac3=y
|
||
|
fi
|
||
|
|
||
|
|
||
|
# various files
|
||
|
ffmpeg="../ffmpeg"
|
||
|
outfile="/tmp/a-"
|
||
|
reffile="$2"
|
||
|
logfile="/tmp/ffmpeg.regression"
|
||
|
benchfile="/tmp/ffmpeg.bench"
|
||
|
raw_src="vsynth1/%d.pgm"
|
||
|
raw_dst="/tmp/out.yuv"
|
||
|
pcm_src="asynth1.sw"
|
||
|
pcm_dst="/tmp/out.wav"
|
||
|
|
||
|
function do_ffmpeg ()
|
||
|
{
|
||
|
f="$1"
|
||
|
shift
|
||
|
echo $ffmpeg $*
|
||
|
$ffmpeg -benchmark $* > /tmp/bench.tmp
|
||
|
md5sum $f >> $logfile
|
||
|
expr match "`cat /tmp/bench.tmp`" '.*utime=\(.*s\)' > /tmp/bench2.tmp
|
||
|
echo `cat /tmp/bench2.tmp` $f >> $benchfile
|
||
|
}
|
||
|
|
||
|
|
||
|
echo "ffmpeg regression test" > $logfile
|
||
|
echo "ffmpeg benchmarks" > $benchfile
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_mpeg" ] ; then
|
||
|
# mpeg1 encoding
|
||
|
file=${outfile}mpeg1.mpg
|
||
|
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -f mpegvideo $file
|
||
|
|
||
|
# mpeg1 decoding
|
||
|
do_ffmpeg $raw_dst -y -f mpegvideo -i $file -f rawvideo $raw_dst
|
||
|
|
||
|
# mpeg2 decoding
|
||
|
#do_ffmpeg /tmp/out-mpeg2.yuv -y -f mpegvideo -i a.vob \
|
||
|
# -f rawvideo /tmp/out-mpeg2.yuv
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_msmpeg4" ] ; then
|
||
|
# msmpeg4 encoding
|
||
|
file=${outfile}msmpeg4.avi
|
||
|
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4 $file
|
||
|
|
||
|
# msmpeg4 decoding
|
||
|
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_h263" ] ; then
|
||
|
# h263 encoding
|
||
|
file=${outfile}h263.avi
|
||
|
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263 $file
|
||
|
|
||
|
# h263p decoding
|
||
|
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_mpeg4" ] ; then
|
||
|
# mpeg4
|
||
|
file=${outfile}odivx.avi
|
||
|
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
|
||
|
|
||
|
# mpeg4 decoding
|
||
|
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_mjpeg" ] ; then
|
||
|
# mjpeg
|
||
|
file=${outfile}mjpeg.avi
|
||
|
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mjpeg $file
|
||
|
|
||
|
# mjpeg decoding
|
||
|
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_rv10" ] ; then
|
||
|
# rv10 encoding
|
||
|
file=${outfile}rv10.rm
|
||
|
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an $file
|
||
|
|
||
|
# rv10 decoding
|
||
|
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_mp2" ] ; then
|
||
|
# mp2 encoding
|
||
|
file=${outfile}mp2.mp2
|
||
|
do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src $file
|
||
|
|
||
|
# mp2 decoding
|
||
|
do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
|
||
|
fi
|
||
|
|
||
|
###################################
|
||
|
if [ -n "$do_ac3" ] ; then
|
||
|
# ac3 encoding
|
||
|
file=${outfile}ac3.rm
|
||
|
do_ffmpeg $file -y -ab 128 -ac 2 -f s16le -i $pcm_src -vn $file
|
||
|
|
||
|
# ac3 decoding
|
||
|
do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
|
||
|
fi
|
||
|
|
||
|
|
||
|
if diff -u $logfile $reffile ; then
|
||
|
echo
|
||
|
echo Regression test succeeded.
|
||
|
exit 0
|
||
|
else
|
||
|
echo
|
||
|
echo Regression test: Error.
|
||
|
exit 1
|
||
|
fi
|