Commit | Line | Data |
---|---|---|
51133a7d FB |
1 | #!/bin/sh |
2 | # | |
3 | # automatic regression test for ffmpeg | |
4 | # | |
5 | # | |
6 | #set -x | |
7 | set -e | |
8 | ||
9 | # tests to do | |
10 | if [ "$1" = "mpeg4" ] ; then | |
11 | do_mpeg4=y | |
12 | elif [ "$1" = "mpeg" ] ; then | |
13 | do_mpeg=y | |
14 | else | |
15 | do_mpeg=y | |
16 | do_msmpeg4=y | |
17 | do_h263=y | |
18 | do_mpeg4=y | |
19 | do_mjpeg=y | |
20 | #do_rv10=y #broken! | |
21 | do_mp2=y | |
22 | do_ac3=y | |
23 | fi | |
24 | ||
25 | ||
26 | # various files | |
27 | ffmpeg="../ffmpeg" | |
28 | outfile="/tmp/a-" | |
29 | reffile="$2" | |
30 | logfile="/tmp/ffmpeg.regression" | |
31 | benchfile="/tmp/ffmpeg.bench" | |
32 | raw_src="vsynth1/%d.pgm" | |
33 | raw_dst="/tmp/out.yuv" | |
34 | pcm_src="asynth1.sw" | |
35 | pcm_dst="/tmp/out.wav" | |
36 | ||
37 | function do_ffmpeg () | |
38 | { | |
39 | f="$1" | |
40 | shift | |
41 | echo $ffmpeg $* | |
42 | $ffmpeg -benchmark $* > /tmp/bench.tmp | |
43 | md5sum $f >> $logfile | |
44 | expr match "`cat /tmp/bench.tmp`" '.*utime=\(.*s\)' > /tmp/bench2.tmp | |
45 | echo `cat /tmp/bench2.tmp` $f >> $benchfile | |
46 | } | |
47 | ||
48 | ||
49 | echo "ffmpeg regression test" > $logfile | |
50 | echo "ffmpeg benchmarks" > $benchfile | |
51 | ||
52 | ################################### | |
53 | if [ -n "$do_mpeg" ] ; then | |
54 | # mpeg1 encoding | |
55 | file=${outfile}mpeg1.mpg | |
56 | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -f mpegvideo $file | |
57 | ||
58 | # mpeg1 decoding | |
59 | do_ffmpeg $raw_dst -y -f mpegvideo -i $file -f rawvideo $raw_dst | |
60 | ||
61 | # mpeg2 decoding | |
62 | #do_ffmpeg /tmp/out-mpeg2.yuv -y -f mpegvideo -i a.vob \ | |
63 | # -f rawvideo /tmp/out-mpeg2.yuv | |
64 | fi | |
65 | ||
66 | ################################### | |
67 | if [ -n "$do_msmpeg4" ] ; then | |
68 | # msmpeg4 encoding | |
69 | file=${outfile}msmpeg4.avi | |
70 | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4 $file | |
71 | ||
72 | # msmpeg4 decoding | |
73 | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | |
74 | fi | |
75 | ||
76 | ################################### | |
77 | if [ -n "$do_h263" ] ; then | |
78 | # h263 encoding | |
79 | file=${outfile}h263.avi | |
80 | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263 $file | |
81 | ||
82 | # h263p decoding | |
83 | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | |
84 | fi | |
85 | ||
86 | ################################### | |
87 | if [ -n "$do_mpeg4" ] ; then | |
88 | # mpeg4 | |
89 | file=${outfile}odivx.avi | |
90 | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file | |
91 | ||
92 | # mpeg4 decoding | |
93 | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | |
94 | fi | |
95 | ||
96 | ################################### | |
97 | if [ -n "$do_mjpeg" ] ; then | |
98 | # mjpeg | |
99 | file=${outfile}mjpeg.avi | |
100 | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mjpeg $file | |
101 | ||
102 | # mjpeg decoding | |
103 | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | |
104 | fi | |
105 | ||
106 | ################################### | |
107 | if [ -n "$do_rv10" ] ; then | |
108 | # rv10 encoding | |
109 | file=${outfile}rv10.rm | |
110 | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an $file | |
111 | ||
112 | # rv10 decoding | |
113 | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | |
114 | fi | |
115 | ||
116 | ################################### | |
117 | if [ -n "$do_mp2" ] ; then | |
118 | # mp2 encoding | |
119 | file=${outfile}mp2.mp2 | |
120 | do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src $file | |
121 | ||
122 | # mp2 decoding | |
123 | do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst | |
124 | fi | |
125 | ||
126 | ################################### | |
127 | if [ -n "$do_ac3" ] ; then | |
128 | # ac3 encoding | |
129 | file=${outfile}ac3.rm | |
130 | do_ffmpeg $file -y -ab 128 -ac 2 -f s16le -i $pcm_src -vn $file | |
131 | ||
132 | # ac3 decoding | |
133 | do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst | |
134 | fi | |
135 | ||
136 | ||
137 | if diff -u $logfile $reffile ; then | |
138 | echo | |
139 | echo Regression test succeeded. | |
140 | exit 0 | |
141 | else | |
142 | echo | |
143 | echo Regression test: Error. | |
144 | exit 1 | |
145 | fi |