summaryrefslogtreecommitdiff
path: root/tests/regression.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regression.sh')
-rwxr-xr-xtests/regression.sh145
1 files changed, 145 insertions, 0 deletions
diff --git a/tests/regression.sh b/tests/regression.sh
new file mode 100755
index 0000000000..187aa10b1f
--- /dev/null
+++ b/tests/regression.sh
@@ -0,0 +1,145 @@
+#!/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