~ubuntu-branches/ubuntu/jaunty/xvidcap/jaunty-proposed

« back to all changes in this revision

Viewing changes to ffmpeg/tests/regression.sh

  • Committer: Bazaar Package Importer
  • Author(s): John Dong
  • Date: 2008-02-25 15:47:12 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080225154712-qvr11ekcea4c9ry8
Tags: 1.1.6-0.1ubuntu1
* Merge from debian-multimedia (LP: #120003), Ubuntu Changes:
 - For ffmpeg-related build-deps, remove cvs from package names.
 - Standards-Version 3.7.3
 - Maintainer Spec

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
#
5
5
#
6
6
#set -x
7
 
# Even in the 21st century some diffs are not supporting -u.
8
 
diff -u $0 $0 > /dev/null 2>&1
 
7
# Even in the 21st century some diffs do not support -u.
 
8
diff -u "$0" "$0" > /dev/null 2>&1
9
9
if [ $? -eq 0 ]; then
10
10
  diff_cmd="diff -u"
11
11
else
12
12
  diff_cmd="diff"
13
13
fi
14
14
 
 
15
diff -w "$0" "$0" > /dev/null 2>&1
 
16
if [ $? -eq 0 ]; then
 
17
  diff_cmd="$diff_cmd -w"
 
18
fi
 
19
 
15
20
set -e
16
21
 
17
22
datadir="./data"
19
24
logfile="$datadir/ffmpeg.regression"
20
25
outfile="$datadir/a-"
21
26
 
22
 
# tests to do
 
27
# tests to run
23
28
if [ "$1" = "mpeg4" ] ; then
24
29
    do_mpeg4=y
25
30
elif [ "$1" = "mpeg" ] ; then
26
31
    do_mpeg=y
 
32
    do_mpeg2=y
27
33
elif [ "$1" = "ac3" ] ; then
28
34
    do_ac3=y
 
35
elif [ "$1" = "huffyuv" ] ; then
 
36
    do_huffyuv=y
 
37
elif [ "$1" = "mpeg2thread" ] ; then
 
38
    do_mpeg2thread=y
 
39
elif [ "$1" = "snow" ] ; then
 
40
    do_snow=y
 
41
elif [ "$1" = "snowll" ] ; then
 
42
    do_snowll=y
29
43
elif [ "$1" = "libavtest" ] ; then
30
 
    do_libav=y
 
44
    do_libavtest=y
31
45
    logfile="$datadir/libav.regression"
32
46
    outfile="$datadir/b-"
33
47
else
34
48
    do_mpeg=y
35
49
    do_mpeg2=y
 
50
    do_mpeg2thread=y
36
51
    do_msmpeg4v2=y
37
52
    do_msmpeg4=y
38
53
    do_wmv1=y
39
54
    do_wmv2=y
 
55
    do_h261=y
40
56
    do_h263=y
41
57
    do_h263p=y
42
58
    do_mpeg4=y
 
59
    do_mp4psp=y
43
60
    do_huffyuv=y
44
61
    do_mjpeg=y
45
62
    do_ljpeg=y
 
63
    do_jpegls=y
46
64
    do_rv10=y
 
65
    do_rv20=y
47
66
    do_mp2=y
48
67
    do_ac3=y
 
68
    do_g726=y
 
69
    do_adpcm_ima_wav=y
 
70
    do_adpcm_ms=y
 
71
    do_flac=y
 
72
    do_wma=y
 
73
    do_vorbis=y
49
74
    do_rc=y
50
75
    do_mpeg4adv=y
 
76
    do_mpeg4thread=y
 
77
    do_mpeg4nr=y
51
78
    do_mpeg1b=y
52
79
    do_asv1=y
53
80
    do_asv2=y
54
81
    do_flv=y
 
82
    do_ffv1=y
 
83
    do_error=y
 
84
    do_svq1=y
 
85
    do_snow=y
 
86
    do_snowll=y
 
87
    do_adpcm_yam=y
 
88
    do_dv=y
 
89
    do_dv50=y
55
90
fi
56
91
 
57
92
 
60
95
tiny_psnr="./tiny_psnr"
61
96
reffile="$2"
62
97
benchfile="$datadir/ffmpeg.bench"
63
 
raw_src="$3/%d.pgm"
 
98
bench="$datadir/bench.tmp"
 
99
bench2="$datadir/bench2.tmp"
 
100
raw_src="$3/%02d.pgm"
64
101
raw_dst="$datadir/out.yuv"
65
102
raw_ref="$datadir/ref.yuv"
66
103
pcm_src="asynth1.sw"
67
104
pcm_dst="$datadir/out.wav"
 
105
pcm_ref="$datadir/ref.wav"
 
106
if [ X"`echo | md5sum 2> /dev/null`" != X ]; then
 
107
    do_md5sum() { md5sum -b $1; }
 
108
elif [ -x /sbin/md5 ]; then
 
109
    do_md5sum() { /sbin/md5 -r $1 | sed 's# \**\./# *./#'; }
 
110
else
 
111
    do_md5sum() { echo No md5sum program found; }
 
112
fi
68
113
 
69
 
# create the data directory if it does not exists
 
114
# create the data directory if it does not exist
70
115
mkdir -p $datadir
71
116
 
 
117
FFMPEG_OPTS="-y -flags +bitexact -dct fastint -idct simple"
 
118
 
72
119
do_ffmpeg()
73
120
{
74
121
    f="$1"
75
122
    shift
76
 
    echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $*
77
 
    $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 -benchmark $* > $datadir/bench.tmp 2> /tmp/ffmpeg$$
78
 
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration)" /tmp/ffmpeg$$ || true
79
 
    rm -f /tmp/ffmpeg$$
80
 
    md5sum -b $f >> $logfile
81
 
    if [ $f = $raw_dst ] ; then
82
 
        $tiny_psnr $f $raw_ref >> $logfile
83
 
    fi
84
 
    expr "`cat $datadir/bench.tmp`" : '.*utime=\(.*s\)' > $datadir/bench2.tmp
85
 
    echo `cat $datadir/bench2.tmp` $f >> $benchfile
 
123
    echo $ffmpeg $FFMPEG_OPTS $*
 
124
    $ffmpeg $FFMPEG_OPTS -benchmark $* > $bench 2> /tmp/ffmpeg$$
 
125
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:)" /tmp/ffmpeg$$ || true
 
126
    rm -f /tmp/ffmpeg$$
 
127
    do_md5sum $f >> $logfile
 
128
    if [ $f = $raw_dst ] ; then
 
129
        $tiny_psnr $f $raw_ref >> $logfile
 
130
    elif [ $f = $pcm_dst ] ; then
 
131
        $tiny_psnr $f $pcm_ref 2 >> $logfile
 
132
    else
 
133
        wc -c $f >> $logfile
 
134
    fi
 
135
    expr "`cat $bench`" : '.*utime=\(.*s\)' > $bench2
 
136
    echo `cat $bench2` $f >> $benchfile
 
137
}
 
138
 
 
139
do_ffmpeg_nomd5()
 
140
{
 
141
    f="$1"
 
142
    shift
 
143
    echo $ffmpeg $FFMPEG_OPTS $*
 
144
    $ffmpeg $FFMPEG_OPTS -benchmark $* > $bench 2> /tmp/ffmpeg$$
 
145
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:)" /tmp/ffmpeg$$ || true
 
146
    rm -f /tmp/ffmpeg$$
 
147
    if [ $f = $raw_dst ] ; then
 
148
        $tiny_psnr $f $raw_ref >> $logfile
 
149
    elif [ $f = $pcm_dst ] ; then
 
150
        $tiny_psnr $f $pcm_ref 2 >> $logfile
 
151
    else
 
152
        wc -c $f >> $logfile
 
153
    fi
 
154
    expr "`cat $bench`" : '.*utime=\(.*s\)' > $bench2
 
155
    echo `cat $bench2` $f >> $benchfile
86
156
}
87
157
 
88
158
do_ffmpeg_crc()
89
159
{
90
160
    f="$1"
91
161
    shift
92
 
    echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* -f crc $datadir/ffmpeg.crc
93
 
    $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* -f crc $datadir/ffmpeg.crc > /tmp/ffmpeg$$ 2>&1
94
 
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration)" /tmp/ffmpeg$$ || true
95
 
    rm -f /tmp/ffmpeg$$ 
 
162
    echo $ffmpeg $FFMPEG_OPTS $* -f crc $datadir/ffmpeg.crc
 
163
    $ffmpeg $FFMPEG_OPTS $* -f crc $datadir/ffmpeg.crc > /tmp/ffmpeg$$ 2>&1
 
164
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:|ffmpeg version|  configuration|  built)" /tmp/ffmpeg$$ || true
 
165
    rm -f /tmp/ffmpeg$$
96
166
    echo "$f `cat $datadir/ffmpeg.crc`" >> $logfile
97
167
}
98
168
 
100
170
{
101
171
    f="$1"
102
172
    shift
103
 
    echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $*
104
 
    $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 -benchmark $* > $datadir/bench.tmp 2> /tmp/ffmpeg$$
105
 
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration)" /tmp/ffmpeg$$ || true
 
173
    echo $ffmpeg $FFMPEG_OPTS $*
 
174
    $ffmpeg $FFMPEG_OPTS -benchmark $* > $bench 2> /tmp/ffmpeg$$
 
175
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:)" /tmp/ffmpeg$$ || true
106
176
    rm -f /tmp/ffmpeg$$
107
 
    expr "`cat $datadir/bench.tmp`" : '.*utime=\(.*s\)' > $datadir/bench2.tmp
108
 
    echo `cat $datadir/bench2.tmp` $f >> $benchfile
 
177
    expr "`cat $bench`" : '.*utime=\(.*s\)' > $bench2
 
178
    echo `cat $bench2` $f >> $benchfile
 
179
}
 
180
 
 
181
do_video_decoding()
 
182
{
 
183
    do_ffmpeg $raw_dst -y $1 -i $file -f rawvideo $2 $raw_dst
 
184
}
 
185
 
 
186
do_video_encoding()
 
187
{
 
188
    file=${outfile}$1
 
189
    do_ffmpeg $file -y $2 -f $3 -i $raw_src $4 $file
 
190
}
 
191
 
 
192
do_audio_encoding()
 
193
{
 
194
    file=${outfile}$1
 
195
    do_ffmpeg $file -y -ab 128 -ac 2 -f s16le -i $pcm_src $3 $file
 
196
}
 
197
 
 
198
do_audio_decoding()
 
199
{
 
200
    do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst
 
201
}
 
202
 
 
203
do_libav()
 
204
{
 
205
    file=${outfile}libav.$1
 
206
    do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $2 $file
 
207
    do_ffmpeg_crc $file -i $file $3
 
208
 
 
209
}
 
210
 
 
211
do_streamed_images()
 
212
{
 
213
    file=${outfile}libav.$1
 
214
    do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f image2pipe $file
 
215
    do_ffmpeg_crc $file -f image2pipe -i $file
 
216
}
 
217
 
 
218
do_image_formats()
 
219
{
 
220
    file=${outfile}libav%02d.$1
 
221
    $ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $2 $3 $file
 
222
    do_ffmpeg_crc $file $3 -i $file
 
223
 
 
224
}
 
225
 
 
226
do_audio_only()
 
227
{
 
228
    file=${outfile}libav.$1
 
229
    do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
 
230
    do_ffmpeg_crc $file -i $file
109
231
}
110
232
 
111
233
echo "ffmpeg regression test" > $logfile
114
236
###################################
115
237
# generate reference for quality check
116
238
do_ffmpeg_nocheck $raw_ref -y -f pgmyuv -i $raw_src -an -f rawvideo $raw_ref
 
239
do_ffmpeg_nocheck $pcm_ref -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src -f wav $pcm_ref
117
240
 
118
241
###################################
119
242
if [ -n "$do_mpeg" ] ; then
120
 
# mpeg1 encoding
121
 
file=${outfile}mpeg1.mpg
122
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -f mpeg1video $file 
123
 
 
124
 
# mpeg1 decoding
125
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
 
243
# mpeg1
 
244
do_video_encoding mpeg1.mpg "-qscale 10" pgmyuv "-f mpeg1video"
 
245
do_video_decoding
126
246
fi
127
247
 
128
248
###################################
129
249
if [ -n "$do_mpeg2" ] ; then
130
 
# mpeg2 encoding
131
 
file=${outfile}mpeg2.vob
132
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -vcodec mpeg2video $file 
133
 
 
134
 
# mpeg2 decoding
135
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
 
250
# mpeg2
 
251
do_video_encoding mpeg2.mpg "-qscale 10" pgmyuv "-vcodec mpeg2video -f mpeg1video"
 
252
do_video_decoding
 
253
 
 
254
# mpeg2 encoding intra vlc qprd
 
255
do_video_encoding mpeg2ivlc-qprd.mpg "-b 500k -bf 2 -flags +trell+qprd+mv0 -flags2 +ivlc -cmp 2 -subcmp 2 -mbd rd" pgmyuv "-vcodec mpeg2video -f mpeg2video"
 
256
 
 
257
# mpeg2 decoding
 
258
do_video_decoding
 
259
 
 
260
# mpeg2
 
261
do_video_encoding mpeg2.mpg "-qscale 10" pgmyuv "-vcodec mpeg2video -idct int -dct int -f mpeg1video"
 
262
do_video_decoding "-idct int"
 
263
 
 
264
# mpeg2 encoding interlaced
 
265
do_video_encoding mpeg2i.mpg "-qscale 10" pgmyuv "-vcodec mpeg2video -f mpeg1video -flags +ildct+ilme"
 
266
 
 
267
# mpeg2 decoding
 
268
do_video_decoding
 
269
fi
 
270
 
 
271
###################################
 
272
if [ -n "$do_mpeg2thread" ] ; then
 
273
# mpeg2 encoding interlaced
 
274
do_video_encoding mpeg2thread.mpg "-qscale 10" pgmyuv "-vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -threads 2"
 
275
 
 
276
# mpeg2 decoding
 
277
do_video_decoding
 
278
 
 
279
# mpeg2 encoding interlaced using intra vlc
 
280
do_video_encoding mpeg2threadivlc.mpg "-qscale 10" pgmyuv "-vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -flags2 +ivlc -threads 2"
 
281
 
 
282
# mpeg2 decoding
 
283
do_video_decoding
 
284
 
 
285
# mpeg2 encoding interlaced
 
286
file=${outfile}mpeg2reuse.mpg
 
287
do_ffmpeg $file -y -sameq -me_threshold 256 -mb_threshold 1024 -i ${outfile}mpeg2thread.mpg -vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -threads 4 $file
 
288
 
 
289
# mpeg2 decoding
 
290
do_video_decoding
136
291
fi
137
292
 
138
293
###################################
139
294
if [ -n "$do_msmpeg4v2" ] ; then
140
 
# msmpeg4 encoding
141
 
file=${outfile}msmpeg4v2.avi
142
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4v2 $file
143
 
 
144
 
# msmpeg4v2 decoding
145
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
295
# msmpeg4
 
296
do_video_encoding msmpeg4v2.avi "-qscale 10" pgmyuv "-an -vcodec msmpeg4v2"
 
297
do_video_decoding
146
298
fi
147
299
 
148
300
###################################
149
301
if [ -n "$do_msmpeg4" ] ; then
150
 
# msmpeg4 encoding
151
 
file=${outfile}msmpeg4.avi
152
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4 $file
153
 
 
154
 
# msmpeg4 decoding
155
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
302
# msmpeg4
 
303
do_video_encoding msmpeg4.avi "-qscale 10" pgmyuv "-an -vcodec msmpeg4"
 
304
do_video_decoding
156
305
fi
157
306
 
158
307
###################################
159
308
if [ -n "$do_wmv1" ] ; then
160
 
# wmv1 encoding
161
 
file=${outfile}wmv1.avi
162
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec wmv1 $file
163
 
 
164
 
# wmv1 decoding
165
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
309
# wmv1
 
310
do_video_encoding wmv1.avi "-qscale 10" pgmyuv "-an -vcodec wmv1"
 
311
do_video_decoding
166
312
fi
167
313
 
168
314
###################################
169
315
if [ -n "$do_wmv2" ] ; then
170
 
# wmv2 encoding
171
 
file=${outfile}wmv2.avi
172
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec wmv2 $file
 
316
# wmv2
 
317
do_video_encoding wmv2.avi "-qscale 10" pgmyuv "-an -vcodec wmv2"
 
318
do_video_decoding
 
319
fi
173
320
 
174
 
# wmv2 decoding
175
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
321
###################################
 
322
if [ -n "$do_h261" ] ; then
 
323
# h261
 
324
do_video_encoding h261.avi "-qscale 11" pgmyuv "-s 352x288 -an -vcodec h261"
 
325
do_video_decoding
176
326
fi
177
327
 
178
328
###################################
179
329
if [ -n "$do_h263" ] ; then
180
 
# h263 encoding
181
 
file=${outfile}h263.avi
182
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263 $file
183
 
 
184
 
# h263 decoding
185
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
330
# h263
 
331
do_video_encoding h263.avi "-qscale 10" pgmyuv "-s 352x288 -an -vcodec h263"
 
332
do_video_decoding
186
333
fi
187
334
 
188
335
###################################
189
336
if [ -n "$do_h263p" ] ; then
190
 
# h263p encoding
191
 
file=${outfile}h263p.avi
192
 
do_ffmpeg $file -y -qscale 2 -umv -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263p -ps 300 $file
193
 
 
194
 
# h263p decoding
195
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
337
# h263p
 
338
do_video_encoding h263p.avi "-qscale 2 -flags +umv+aiv+aic" pgmyuv "-s 352x288 -an -vcodec h263p -ps 300"
 
339
do_video_decoding
196
340
fi
197
341
 
198
342
###################################
199
343
if [ -n "$do_mpeg4" ] ; then
200
344
# mpeg4
201
 
file=${outfile}odivx.avi
202
 
do_ffmpeg $file -y -4mv -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
203
 
 
204
 
# mpeg4 decoding
205
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
345
do_video_encoding odivx.mp4 "-flags +mv4 -mbd bits -qscale 10" pgmyuv "-an -vcodec mpeg4"
 
346
do_video_decoding
206
347
fi
207
348
 
208
349
###################################
209
350
if [ -n "$do_huffyuv" ] ; then
210
351
# huffyuv
211
 
file=${outfile}huffyuv.avi
212
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec huffyuv -strict -1 $file
213
 
 
214
 
# huffyuv decoding
215
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo -strict -1 $raw_dst
 
352
do_video_encoding huffyuv.avi "" pgmyuv "-an -vcodec huffyuv -pix_fmt yuv422p"
 
353
do_video_decoding "" "-strict -2 -pix_fmt yuv420p"
216
354
fi
217
355
 
218
356
###################################
219
357
if [ -n "$do_rc" ] ; then
220
358
# mpeg4 rate control
221
 
file=${outfile}mpeg4-rc.avi
222
 
do_ffmpeg $file -y -b 400 -bf 2 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
223
 
 
224
 
# mpeg4 rate control decoding
225
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
359
do_video_encoding mpeg4-rc.avi "-b 400k -bf 2" pgmyuv "-an -vcodec mpeg4"
 
360
do_video_decoding
226
361
fi
227
362
 
228
363
###################################
229
364
if [ -n "$do_mpeg4adv" ] ; then
230
365
# mpeg4
231
 
file=${outfile}mpeg4-adv.avi
232
 
do_ffmpeg $file -y -qscale 9 -4mv -hq -part -ps 200 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file
233
 
 
234
 
# mpeg4 decoding
235
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
366
do_video_encoding mpeg4-adv.avi "-qscale 9 -flags +mv4+part+aic+trell -mbd bits -ps 200" pgmyuv "-an -vcodec mpeg4"
 
367
do_video_decoding
 
368
 
 
369
# mpeg4
 
370
do_video_encoding mpeg4-qprd.avi "-b 450k -bf 2 -flags +mv4+trell+qprd+mv0 -cmp 2 -subcmp 2 -mbd rd" pgmyuv "-an -vcodec mpeg4"
 
371
do_video_decoding
 
372
 
 
373
# mpeg4
 
374
do_video_encoding mpeg4-adap.avi "-b 550k -bf 2 -flags +mv4+trell+mv0 -cmp 1 -subcmp 2 -mbd rd -scplx_mask 0.3" pgmyuv "-an -vcodec mpeg4"
 
375
do_video_decoding
 
376
 
 
377
# mpeg4
 
378
do_video_encoding mpeg4-Q.avi "-qscale 7 -flags +mv4+qpel -mbd 2 -bf 2 -cmp 1 -subcmp 2" pgmyuv "-an -vcodec mpeg4"
 
379
do_video_decoding
 
380
fi
 
381
 
 
382
###################################
 
383
if [ -n "$do_mpeg4thread" ] ; then
 
384
# mpeg4
 
385
do_video_encoding mpeg4-thread.avi "-b 500k -flags +mv4+part+aic+trell -mbd bits -ps 200 -bf 2" pgmyuv "-an -vcodec mpeg4 -threads 2"
 
386
do_video_decoding
 
387
fi
 
388
 
 
389
###################################
 
390
if [ -n "$do_mp4psp" ] ; then
 
391
# mp4 PSP style
 
392
do_video_encoding mpeg4-PSP.mp4 "-b 768k -s 320x240" psp "-ar 24000 -ab 32 -i $raw_src"
 
393
fi
 
394
 
 
395
###################################
 
396
if [ -n "$do_error" ] ; then
 
397
# damaged mpeg4
 
398
do_video_encoding error-mpeg4-adv.avi "-qscale 7 -flags +mv4+part+aic -mbd rd -ps 250 -error 10" pgmyuv "-an -vcodec mpeg4"
 
399
do_video_decoding
 
400
fi
 
401
 
 
402
###################################
 
403
if [ -n "$do_mpeg4nr" ] ; then
 
404
# noise reduction
 
405
do_video_encoding mpeg4-nr.avi "-qscale 8 -flags +mv4 -mbd rd -nr 200" pgmyuv "-an -vcodec mpeg4"
 
406
do_video_decoding
236
407
fi
237
408
 
238
409
###################################
239
410
if [ -n "$do_mpeg1b" ] ; then
240
411
# mpeg1
241
 
file=${outfile}mpeg1b.mpg
242
 
do_ffmpeg $file -y -qscale 8 -bf 3 -ps 200 -f pgmyuv -i $raw_src -an -vcodec mpeg1video $file
243
 
 
244
 
# mpeg1 decoding
245
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
412
do_video_encoding mpeg1b.mpg "-qscale 8 -bf 3 -ps 200" pgmyuv "-an -vcodec mpeg1video -f mpeg1video"
 
413
do_video_decoding
246
414
fi
247
415
 
248
416
###################################
249
417
if [ -n "$do_mjpeg" ] ; then
250
418
# mjpeg
251
 
file=${outfile}mjpeg.avi
252
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mjpeg $file
253
 
 
254
 
# mjpeg decoding
255
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
419
do_video_encoding mjpeg.avi "-qscale 10" pgmyuv "-an -vcodec mjpeg -pix_fmt yuvj420p"
 
420
do_video_decoding "" "-pix_fmt yuv420p"
256
421
fi
257
422
 
258
423
###################################
259
424
if [ -n "$do_ljpeg" ] ; then
260
425
# ljpeg
261
 
file=${outfile}ljpeg.avi
262
 
do_ffmpeg $file -y -f pgmyuv -i $raw_src -an -vcodec ljpeg $file
 
426
do_video_encoding ljpeg.avi "" pgmyuv "-an -vcodec ljpeg -strict -1"
 
427
do_video_decoding
 
428
fi
263
429
 
264
 
# ljpeg decoding
265
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
430
###################################
 
431
if [ -n "$do_jpegls" ] ; then
 
432
# jpeg ls
 
433
do_video_encoding jpegls.avi "" pgmyuv "-an -vcodec jpegls -vtag MJPG"
 
434
do_video_decoding "" "-pix_fmt yuv420p"
266
435
fi
267
436
 
268
437
###################################
269
438
if [ -n "$do_rv10" ] ; then
270
439
# rv10 encoding
271
 
file=${outfile}rv10.rm
272
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an $file 
 
440
do_video_encoding rv10.rm "-qscale 10" pgmyuv "-an"
 
441
do_video_decoding
 
442
fi
273
443
 
274
 
# rv10 decoding
275
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
444
###################################
 
445
if [ -n "$do_rv20" ] ; then
 
446
# rv20 encoding
 
447
do_video_encoding rv20.rm "-qscale 10" pgmyuv "-vcodec rv20 -an"
 
448
do_video_decoding
276
449
fi
277
450
 
278
451
###################################
279
452
if [ -n "$do_asv1" ] ; then
280
453
# asv1 encoding
281
 
file=${outfile}asv1.avi
282
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec asv1 $file
283
 
 
284
 
# asv1 decoding
285
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
454
do_video_encoding asv1.avi "-qscale 10" pgmyuv "-an -vcodec asv1"
 
455
do_video_decoding
286
456
fi
287
457
 
288
458
###################################
289
459
if [ -n "$do_asv2" ] ; then
290
460
# asv2 encoding
291
 
file=${outfile}asv2.avi
292
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec asv2 $file
293
 
 
294
 
# asv2 decoding
295
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
461
do_video_encoding asv2.avi "-qscale 10" pgmyuv "-an -vcodec asv2"
 
462
do_video_decoding
296
463
fi
297
464
 
298
465
###################################
299
466
if [ -n "$do_flv" ] ; then
300
467
# flv encoding
301
 
file=${outfile}flv.flv
302
 
do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec flv $file
303
 
 
304
 
# flv decoding
305
 
do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 
468
do_video_encoding flv.flv "-qscale 10" pgmyuv "-an -vcodec flv"
 
469
do_video_decoding
 
470
fi
 
471
 
 
472
###################################
 
473
if [ -n "$do_ffv1" ] ; then
 
474
# ffv1 encoding
 
475
do_video_encoding ffv1.avi "-strict -2" pgmyuv "-an -vcodec ffv1"
 
476
do_video_decoding
 
477
fi
 
478
 
 
479
###################################
 
480
if [ -n "$do_snow" ] ; then
 
481
# snow
 
482
do_video_encoding snow.avi "-strict -2" pgmyuv "-an -vcodec snow -qscale 2 -flags +qpel -me iter -dia_size 2 -cmp 12 -subcmp 12 -s 128x64"
 
483
do_video_decoding "" "-s 352x288"
 
484
fi
 
485
 
 
486
###################################
 
487
if [ -n "$do_snowll" ] ; then
 
488
# snow
 
489
do_video_encoding snow53.avi "-strict -2" pgmyuv "-an -vcodec snow -qscale .001 -pred 1 -flags +mv4+qpel"
 
490
do_video_decoding
 
491
fi
 
492
 
 
493
###################################
 
494
if [ -n "$do_dv" ] ; then
 
495
# dv
 
496
do_video_encoding dv.dv "-dct int" pgmyuv "-s pal -an"
 
497
do_video_decoding "" "-s cif"
 
498
fi
 
499
 
 
500
###################################
 
501
if [ -n "$do_dv50" ] ; then
 
502
# dv50
 
503
do_video_encoding dv.dv "-dct int" pgmyuv "-s pal -pix_fmt yuv422p -an"
 
504
do_video_decoding "" "-s cif -pix_fmt yuv420p"
 
505
fi
 
506
 
 
507
 
 
508
###################################
 
509
if [ -n "$do_svq1" ] ; then
 
510
# svq1
 
511
do_video_encoding svq1.mov "" pgmyuv "-an -vcodec svq1 -qscale 3 -pix_fmt yuv410p"
 
512
do_video_decoding "" "-pix_fmt yuv420p"
306
513
fi
307
514
 
308
515
###################################
309
516
if [ -n "$do_mp2" ] ; then
310
 
# mp2 encoding
311
 
file=${outfile}mp2.mp2
312
 
do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src $file 
313
 
 
314
 
# mp2 decoding
315
 
do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst 
 
517
# mp2
 
518
do_audio_encoding mp2.mp2 "-ar 44100"
 
519
do_audio_decoding
 
520
$tiny_psnr $pcm_dst $pcm_ref 2 1924 >> $logfile
316
521
fi
317
522
 
318
523
###################################
319
524
if [ -n "$do_ac3" ] ; then
320
 
# ac3 encoding
321
 
file=${outfile}ac3.rm
322
 
do_ffmpeg $file -y -ab 128 -ac 2 -f s16le  -i $pcm_src -vn $file 
323
 
 
324
 
# ac3 decoding
325
 
#do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst 
326
 
fi
327
 
 
328
 
###################################
329
 
# libav testing
330
 
###################################
331
 
 
332
 
if [ -n "$do_libav" ] ; then
 
525
# ac3
 
526
do_audio_encoding ac3.rm "" -vn
 
527
#do_audio_decoding
 
528
fi
 
529
 
 
530
###################################
 
531
if [ -n "$do_g726" ] ; then
 
532
# g726
 
533
do_audio_encoding g726.wav "-ar 44100" "-ab 32 -ac 1 -ar 8000 -acodec g726"
 
534
do_audio_decoding
 
535
fi
 
536
 
 
537
###################################
 
538
if [ -n "$do_adpcm_ima_wav" ] ; then
 
539
# adpcm ima
 
540
do_audio_encoding adpcm_ima.wav "-ar 44100" "-acodec adpcm_ima_wav"
 
541
do_audio_decoding
 
542
fi
 
543
 
 
544
###################################
 
545
if [ -n "$do_adpcm_ms" ] ; then
 
546
# adpcm ms
 
547
do_audio_encoding adpcm_ms.wav "-ar 44100" "-acodec adpcm_ms"
 
548
do_audio_decoding
 
549
fi
 
550
 
 
551
###################################
 
552
if [ -n "$do_adpcm_yam" ] ; then
 
553
# adpcm yamaha
 
554
do_audio_encoding adpcm_yam.wav "-ar 44100" "-acodec adpcm_yamaha"
 
555
do_audio_decoding
 
556
fi
 
557
 
 
558
###################################
 
559
if [ -n "$do_flac" ] ; then
 
560
# flac
 
561
do_audio_encoding flac.flac "-ar 44100" "-acodec flac -compression_level 2"
 
562
do_audio_decoding
 
563
fi
 
564
 
 
565
###################################
 
566
if [ -n "$do_wma" ] ; then
 
567
# wmav1
 
568
do_audio_encoding wmav1.asf "-ar 44100" "-acodec wmav1"
 
569
do_ffmpeg_nomd5 $pcm_dst -y -i $file -f wav $pcm_dst
 
570
$tiny_psnr $pcm_dst $pcm_ref 2 8192 >> $logfile
 
571
# wmav2
 
572
do_audio_encoding wmav2.asf "-ar 44100" "-acodec wmav2"
 
573
do_ffmpeg_nomd5 $pcm_dst -y -i $file -f wav $pcm_dst
 
574
$tiny_psnr $pcm_dst $pcm_ref 2 8192 >> $logfile
 
575
fi
 
576
 
 
577
###################################
 
578
#if [ -n "$do_vorbis" ] ; then
 
579
# vorbis
 
580
#disabled because its broken
 
581
#do_audio_encoding vorbis.asf "-ar 44100" "-acodec vorbis"
 
582
#do_audio_decoding
 
583
#fi
 
584
 
 
585
###################################
 
586
# libavformat testing
 
587
###################################
 
588
 
 
589
if [ -n "$do_libavtest" ] ; then
333
590
 
334
591
# avi
335
 
file=${outfile}libav.avi
336
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
337
 
do_ffmpeg_crc $file -i $file
 
592
do_libav avi
338
593
 
339
594
# asf
340
 
file=${outfile}libav.asf
341
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
342
 
do_ffmpeg_crc $file -i $file
 
595
do_libav asf "-acodec mp2" "-r 25"
343
596
 
344
597
# rm
345
598
file=${outfile}libav.rm
348
601
#do_ffmpeg_crc $file -i $file
349
602
 
350
603
# mpegps
351
 
file=${outfile}libav.mpg
352
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
353
 
do_ffmpeg_crc $file -i $file
354
 
 
355
 
# swf (decode audio only)
356
 
file=${outfile}libav.swf
357
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
358
 
do_ffmpeg_crc $file -i $file
 
604
do_libav mpg
 
605
 
 
606
# mpegts
 
607
do_libav ts
 
608
 
 
609
# swf
 
610
do_libav swf -an
359
611
 
360
612
# ffm
361
 
file=${outfile}libav.ffm
362
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
363
 
do_ffmpeg_crc $file -i $file
 
613
do_libav ffm
364
614
 
365
615
# flv
366
 
file=${outfile}libav.flv
367
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file
368
 
do_ffmpeg_crc $file -i $file
369
 
 
370
 
# XXX: need mov and mpegts tests (add bitstreams or add output capability in ffmpeg)
 
616
do_libav flv -an
 
617
 
 
618
# mov
 
619
do_libav mov "-acodec pcm_alaw"
 
620
 
 
621
# nut
 
622
#do_libav nut "-acodec mp2"
 
623
 
 
624
# dv
 
625
do_libav dv "-ar 48000 -r 25 -s pal -ac 2"
 
626
 
 
627
# gxf
 
628
do_libav gxf "-ar 48000 -r 25 -s pal -ac 1"
371
629
 
372
630
####################
373
631
# streamed images
377
635
#do_ffmpeg_crc $file -i $file
378
636
 
379
637
# pbmpipe
380
 
file=${outfile}libav.pbm
381
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file
382
 
do_ffmpeg_crc $file -f imagepipe -i $file
 
638
do_streamed_images pbm
383
639
 
384
640
# pgmpipe
385
 
file=${outfile}libav.pgm
386
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file
387
 
do_ffmpeg_crc $file -f imagepipe -i $file
 
641
do_streamed_images pgm
388
642
 
389
643
# ppmpipe
390
 
file=${outfile}libav.ppm
391
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file
392
 
do_ffmpeg_crc $file -f imagepipe -i $file
 
644
do_streamed_images ppm
393
645
 
394
646
# gif
395
647
file=${outfile}libav.gif
396
 
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file
 
648
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -pix_fmt rgb24 $file
397
649
#do_ffmpeg_crc $file -i $file
398
650
 
399
651
# yuv4mpeg
400
 
file=${outfile}libav.yuv4mpeg
 
652
file=${outfile}libav.y4m
401
653
do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file
402
654
#do_ffmpeg_crc $file -i $file
403
655
 
404
656
####################
405
657
# image formats
406
658
# pgm (we do not do md5 on image files yet)
407
 
file=${outfile}libav%d.pgm
408
 
$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file
409
 
do_ffmpeg_crc $file -i $file
 
659
do_image_formats pgm
410
660
 
411
661
# ppm (we do not do md5 on image files yet)
412
 
file=${outfile}libav%d.ppm
413
 
$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file
414
 
do_ffmpeg_crc $file -i $file
 
662
do_image_formats ppm
415
663
 
416
664
# jpeg (we do not do md5 on image files yet)
417
 
#file=${outfile}libav%d.jpg
418
 
#$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file
419
 
#do_ffmpeg_crc $file -i $file
 
665
do_image_formats jpg "-flags +bitexact -dct fastint -idct simple -pix_fmt yuvj420p" "-f image2"
420
666
 
421
667
####################
422
668
# audio only
423
669
 
424
670
# wav
425
 
file=${outfile}libav.wav
426
 
do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
427
 
do_ffmpeg_crc $file -i $file
 
671
do_audio_only wav
428
672
 
429
673
# alaw
430
 
file=${outfile}libav.al
431
 
do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
432
 
do_ffmpeg_crc $file -i $file
 
674
do_audio_only al
433
675
 
434
676
# mulaw
435
 
file=${outfile}libav.ul
436
 
do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
437
 
do_ffmpeg_crc $file -i $file
 
677
do_audio_only ul
438
678
 
439
679
# au
440
 
file=${outfile}libav.au
441
 
do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file
442
 
do_ffmpeg_crc $file -i $file
 
680
do_audio_only au
 
681
 
 
682
# mmf
 
683
do_audio_only mmf
 
684
 
 
685
# aiff
 
686
do_audio_only aif
 
687
 
 
688
# voc
 
689
do_audio_only voc
443
690
 
444
691
####################
445
692
# pix_fmt conversions
446
 
conversions="yuv420p yuv422p yuv444p yuv422 yuv410p yuv411p yuvj420p \
447
 
             yuvj422p yuvj444p rgb24 bgr24 rgba32 rgb565 rgb555 gray monow \
448
 
             monob pal8"
 
693
conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \
 
694
             yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \
 
695
             monob pal8"
449
696
for pix_fmt in $conversions ; do
450
697
    file=${outfile}libav-${pix_fmt}.yuv
451
698
    do_ffmpeg_nocheck $file -r 1 -t 1 -y -f pgmyuv -i $raw_src \
454
701
                    -f rawvideo -s 352x288 -pix_fmt yuv444p $file
455
702
done
456
703
 
457
 
fi
458
 
 
459
 
 
460
 
 
461
 
if $diff_cmd $logfile $reffile ; then
462
 
    echo 
 
704
fi #  [ -n "$do_libavtest" ]
 
705
 
 
706
 
 
707
 
 
708
if $diff_cmd "$logfile" "$reffile" ; then
 
709
    echo
463
710
    echo Regression test succeeded.
464
711
    exit 0
465
712
else
466
 
    echo 
 
713
    echo
467
714
    echo Regression test: Error.
468
715
    exit 1
469
716
fi