codec-regression.sh 17.2 KB
Newer Older
1 2 3 4 5 6
#!/bin/sh
#
# automatic regression test for ffmpeg
#
#
#set -x
Michael Niedermayer's avatar
diff -w  
Michael Niedermayer committed
7

8 9
set -e

10 11 12
target_exec=$5
target_path=$6

13
datadir="./tests/data"
14
target_datadir="${target_path}/${datadir}"
Fabrice Bellard's avatar
Fabrice Bellard committed
15

16 17 18
test="${1#regtest-}"
this="$test.$2"
logfile="$datadir/$this.regression"
Måns Rullgård's avatar
Måns Rullgård committed
19
outfile="$datadir/$4-"
Fabrice Bellard's avatar
Fabrice Bellard committed
20

21 22
eval do_$test=y

23
# various files
24
ffmpeg="$target_exec ${target_path}/ffmpeg_g"
25
tiny_psnr="tests/tiny_psnr"
26 27 28
benchfile="$datadir/$this.bench"
bench="$datadir/$this.bench.tmp"
bench2="$datadir/$this.bench2.tmp"
29
raw_src="${target_path}/$3/%02d.pgm"
30 31
raw_dst="$datadir/$this.out.yuv"
raw_ref="$datadir/$2.ref.yuv"
32
pcm_src="$target_datadir/asynth1.sw"
33 34
pcm_dst="$datadir/$this.out.wav"
pcm_ref="$datadir/$2.ref.wav"
Måns Rullgård's avatar
Måns Rullgård committed
35
crcfile="$datadir/$this.crc"
36
target_crcfile="$target_datadir/$this.crc"
Måns Rullgård's avatar
Måns Rullgård committed
37

38 39
if [ X"`echo | md5sum 2> /dev/null`" != X ]; then
    do_md5sum() { md5sum -b $1; }
40 41
elif [ X"`echo | md5 2> /dev/null`" != X ]; then
    do_md5sum() { md5 -r $1 | sed 's# \**\./# *./#'; }
42 43 44 45 46
elif [ -x /sbin/md5 ]; then
    do_md5sum() { /sbin/md5 -r $1 | sed 's# \**\./# *./#'; }
else
    do_md5sum() { echo No md5sum program found; }
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
47

48
FFMPEG_OPTS="-y -flags +bitexact -dct fastint -idct simple -sws_flags +accurate_rnd+bitexact"
49

50
do_ffmpeg()
51
{
52
    f="$1"
53
    shift
54
    set -- $* ${target_path}/$f
55
    echo $ffmpeg $FFMPEG_OPTS $*
56
    $ffmpeg $FFMPEG_OPTS -benchmark $* > $bench 2> /tmp/ffmpeg$$
57
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:)" /tmp/ffmpeg$$ || true
58
    rm -f /tmp/ffmpeg$$
59 60 61 62 63
    do_md5sum $f >> $logfile
    if [ $f = $raw_dst ] ; then
        $tiny_psnr $f $raw_ref >> $logfile
    elif [ $f = $pcm_dst ] ; then
        $tiny_psnr $f $pcm_ref 2 >> $logfile
64
    else
65
        wc -c $f >> $logfile
66
    fi
67
    expr "`cat $bench`" : '.*utime=\(.*s\)' > $bench2
68
    echo `cat $bench2` $f >> $benchfile
69 70
}

71 72 73 74
do_ffmpeg_nomd5()
{
    f="$1"
    shift
75
    set -- $* ${target_path}/$f
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
    echo $ffmpeg $FFMPEG_OPTS $*
    $ffmpeg $FFMPEG_OPTS -benchmark $* > $bench 2> /tmp/ffmpeg$$
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:)" /tmp/ffmpeg$$ || true
    rm -f /tmp/ffmpeg$$
    if [ $f = $raw_dst ] ; then
        $tiny_psnr $f $raw_ref >> $logfile
    elif [ $f = $pcm_dst ] ; then
        $tiny_psnr $f $pcm_ref 2 >> $logfile
    else
        wc -c $f >> $logfile
    fi
    expr "`cat $bench`" : '.*utime=\(.*s\)' > $bench2
    echo `cat $bench2` $f >> $benchfile
}

91
do_ffmpeg_crc()
Fabrice Bellard's avatar
Fabrice Bellard committed
92
{
93
    f="$1"
Fabrice Bellard's avatar
Fabrice Bellard committed
94
    shift
95 96
    echo $ffmpeg $FFMPEG_OPTS $* -f crc "$target_crcfile"
    $ffmpeg $FFMPEG_OPTS $* -f crc "$target_crcfile" > /tmp/ffmpeg$$ 2>&1
97
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:|ffmpeg version|  configuration|  built)" /tmp/ffmpeg$$ || true
98
    rm -f /tmp/ffmpeg$$
Måns Rullgård's avatar
Måns Rullgård committed
99 100
    echo "$f `cat $crcfile`" >> $logfile
    rm -f "$crcfile"
Fabrice Bellard's avatar
Fabrice Bellard committed
101
}
102

103 104
do_ffmpeg_nocheck()
{
105
    f="$1"
106
    shift
107
    echo $ffmpeg $FFMPEG_OPTS $*
108
    $ffmpeg $FFMPEG_OPTS -benchmark $* > $bench 2> /tmp/ffmpeg$$
109
    egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration|video:)" /tmp/ffmpeg$$ || true
110
    rm -f /tmp/ffmpeg$$
111
    expr "`cat $bench`" : '.*utime=\(.*s\)' > $bench2
112
    echo `cat $bench2` $f >> $benchfile
113 114
}

115 116
do_video_decoding()
{
117
    do_ffmpeg $raw_dst $1 -i $target_path/$file -f rawvideo $2
118
    rm -f $raw_dst
119 120 121 122
}

do_video_encoding()
{
123
    file=${outfile}$1
124
    do_ffmpeg $file $2 -f image2 -vcodec pgmyuv -i $raw_src $3
125 126
}

127 128 129
do_audio_encoding()
{
    file=${outfile}$1
130
    do_ffmpeg $file -ab 128k -ac 2 -f s16le -i $pcm_src $3
131 132 133 134
}

do_audio_decoding()
{
135
    do_ffmpeg $pcm_dst -i $target_path/$file -sample_fmt s16 -f wav
136 137
}

138
do_lavf()
Diego Biurrun's avatar
Diego Biurrun committed
139
{
140
    file=${outfile}lavf.$1
141 142
    do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -f s16le -i $pcm_src $2
    do_ffmpeg_crc $file -i $target_path/$file $3
Diego Biurrun's avatar
Diego Biurrun committed
143 144
}

145 146
do_streamed_images()
{
Måns Rullgård's avatar
Måns Rullgård committed
147
    file=${outfile}${1}pipe.$1
148 149
    do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe
    do_ffmpeg_crc $file -f image2pipe -i $target_path/$file
150 151
}

152 153
do_image_formats()
{
154
    file=${outfile}lavf%02d.$1
155
    $ffmpeg -t 0.5 -y -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src $2 $3 -flags +bitexact -sws_flags +accurate_rnd+bitexact $target_path/$file
156
    do_md5sum ${outfile}lavf02.$1 >> $logfile
157
    do_ffmpeg_crc $file $3 -i $target_path/$file
158
    wc -c ${outfile}lavf02.$1 >> $logfile
159 160
}

161 162
do_audio_only()
{
163
    file=${outfile}lavf.$1
164 165
    do_ffmpeg $file -t 1 -qscale 10 -f s16le -i $pcm_src
    do_ffmpeg_crc $file -i $target_path/$file
166 167
}

168 169
rm -f "$logfile"
rm -f "$benchfile"
170

171
# generate reference for quality check
172
if [ -n "$do_ref" ]; then
173 174
do_ffmpeg_nocheck $raw_ref -f image2 -vcodec pgmyuv -i $raw_src -an -f rawvideo $target_path/$raw_ref
do_ffmpeg_nocheck $pcm_ref -ab 128k -ac 2 -ar 44100 -f s16le -i $pcm_src -f wav $target_path/$pcm_ref
175
fi
176

177
if [ -n "$do_mpeg" ] ; then
Diego Biurrun's avatar
Diego Biurrun committed
178
# mpeg1
179
do_video_encoding mpeg1.mpg "-qscale 10" "-f mpeg1video"
180
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
181 182 183
fi

if [ -n "$do_mpeg2" ] ; then
Diego Biurrun's avatar
Diego Biurrun committed
184
# mpeg2
185
do_video_encoding mpeg2.mpg "-qscale 10" "-vcodec mpeg2video -f mpeg1video"
186
do_video_decoding
187

188
# mpeg2 encoding intra vlc qprd
189
do_video_encoding mpeg2ivlc-qprd.mpg "-vb 500k -bf 2 -trellis 1 -flags +qprd+mv0 -flags2 +ivlc -cmp 2 -subcmp 2 -mbd rd" "-vcodec mpeg2video -f mpeg2video"
190
do_video_decoding
191

192
#mpeg2 4:2:2 encoding
193
do_video_encoding mpeg2_422.mpg "-vb 1000k -bf 2 -trellis 1 -flags +qprd+mv0+ildct+ilme -flags2 +ivlc -mbd rd" "-vcodec mpeg2video -pix_fmt yuv422p -f mpeg2video"
194 195
do_video_decoding

Diego Biurrun's avatar
Diego Biurrun committed
196
# mpeg2
197
do_video_encoding mpeg2.mpg "-qscale 10" "-vcodec mpeg2video -idct int -dct int -f mpeg1video"
198
do_video_decoding "-idct int"
Michael Niedermayer's avatar
Michael Niedermayer committed
199

200
# mpeg2 encoding interlaced
201
do_video_encoding mpeg2i.mpg "-qscale 10" "-vcodec mpeg2video -f mpeg1video -flags +ildct+ilme"
202
do_video_decoding
203 204
fi

205 206
if [ -n "$do_mpeg2thread" ] ; then
# mpeg2 encoding interlaced
207
do_video_encoding mpeg2thread.mpg "-qscale 10" "-vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -threads 2"
208
do_video_decoding
209 210

# mpeg2 encoding interlaced using intra vlc
211
do_video_encoding mpeg2threadivlc.mpg "-qscale 10" "-vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -flags2 +ivlc -threads 2"
212
do_video_decoding
213 214 215

# mpeg2 encoding interlaced
file=${outfile}mpeg2reuse.mpg
216
do_ffmpeg $file -sameq -me_threshold 256 -mb_threshold 1024 -i ${target_path}/${outfile}mpeg2thread.mpg -vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -threads 4
217
do_video_decoding
218 219
fi

220
if [ -n "$do_msmpeg4v2" ] ; then
221
do_video_encoding msmpeg4v2.avi "-qscale 10" "-an -vcodec msmpeg4v2"
222
do_video_decoding
223 224
fi

225
if [ -n "$do_msmpeg4" ] ; then
226
do_video_encoding msmpeg4.avi "-qscale 10" "-an -vcodec msmpeg4"
227
do_video_decoding
228 229
fi

230
if [ -n "$do_wmv1" ] ; then
231
do_video_encoding wmv1.avi "-qscale 10" "-an -vcodec wmv1"
232
do_video_decoding
233 234
fi

235
if [ -n "$do_wmv2" ] ; then
236
do_video_encoding wmv2.avi "-qscale 10" "-an -vcodec wmv2"
237
do_video_decoding
238 239
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
240
if [ -n "$do_h261" ] ; then
241
do_video_encoding h261.avi "-qscale 11" "-s 352x288 -an -vcodec h261"
242
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
243 244
fi

245
if [ -n "$do_h263" ] ; then
246
do_video_encoding h263.avi "-qscale 10" "-s 352x288 -an -vcodec h263"
247
do_video_decoding
248 249 250
fi

if [ -n "$do_h263p" ] ; then
251
do_video_encoding h263p.avi "-qscale 2 -flags +umv+aiv+aic" "-s 352x288 -an -vcodec h263p -ps 300"
252
do_video_decoding
253 254 255
fi

if [ -n "$do_mpeg4" ] ; then
256
do_video_encoding odivx.mp4 "-flags +mv4 -mbd bits -qscale 10" "-an -vcodec mpeg4"
257
do_video_decoding
258 259
fi

260
if [ -n "$do_huffyuv" ] ; then
261 262
do_video_encoding huffyuv.avi "" "-an -vcodec huffyuv -pix_fmt yuv422p -sws_flags neighbor+bitexact"
do_video_decoding "" "-strict -2 -pix_fmt yuv420p -sws_flags neighbor+bitexact"
263 264
fi

265
if [ -n "$do_rc" ] ; then
266
do_video_encoding mpeg4-rc.avi "-b 400k -bf 2" "-an -vcodec mpeg4"
267
do_video_decoding
268 269 270
fi

if [ -n "$do_mpeg4adv" ] ; then
271
do_video_encoding mpeg4-adv.avi "-qscale 9 -flags +mv4+part+aic -trellis 1 -mbd bits -ps 200" "-an -vcodec mpeg4"
272 273
do_video_decoding

274
do_video_encoding mpeg4-qprd.avi "-b 450k -bf 2 -trellis 1 -flags +mv4+qprd+mv0 -cmp 2 -subcmp 2 -mbd rd" "-an -vcodec mpeg4"
275 276
do_video_decoding

277
do_video_encoding mpeg4-adap.avi "-b 550k -bf 2 -flags +mv4+mv0 -trellis 1 -cmp 1 -subcmp 2 -mbd rd -scplx_mask 0.3" "-an -vcodec mpeg4"
278
do_video_decoding
279

280
do_video_encoding mpeg4-Q.avi "-qscale 7 -flags +mv4+qpel -mbd 2 -bf 2 -cmp 1 -subcmp 2" "-an -vcodec mpeg4"
281
do_video_decoding
282 283
fi

284
if [ -n "$do_mpeg4thread" ] ; then
285
do_video_encoding mpeg4-thread.avi "-b 500k -flags +mv4+part+aic -trellis 1 -mbd bits -ps 200 -bf 2" "-an -vcodec mpeg4 -threads 2"
286
do_video_decoding
287 288
fi

289
if [ -n "$do_error" ] ; then
290
do_video_encoding error-mpeg4-adv.avi "-qscale 7 -flags +mv4+part+aic -mbd rd -ps 250 -error 10" "-an -vcodec mpeg4"
291
do_video_decoding
292 293
fi

294
if [ -n "$do_mpeg4nr" ] ; then
295
do_video_encoding mpeg4-nr.avi "-qscale 8 -flags +mv4 -mbd rd -nr 200" "-an -vcodec mpeg4"
296
do_video_decoding
297 298
fi

299
if [ -n "$do_mpeg1b" ] ; then
300
do_video_encoding mpeg1b.mpg "-qscale 8 -bf 3 -ps 200" "-an -vcodec mpeg1video -f mpeg1video"
301
do_video_decoding
302 303
fi

304
if [ -n "$do_mjpeg" ] ; then
305
do_video_encoding mjpeg.avi "-qscale 10" "-an -vcodec mjpeg -pix_fmt yuvj420p"
306
do_video_decoding "" "-pix_fmt yuv420p"
307 308
fi

309
if [ -n "$do_ljpeg" ] ; then
310
do_video_encoding ljpeg.avi "" "-an -vcodec ljpeg -strict -1"
311
do_video_decoding
312 313
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
314
if [ -n "$do_jpegls" ] ; then
315 316
do_video_encoding jpegls.avi "" "-an -vcodec jpegls -vtag MJPG -sws_flags neighbor+full_chroma_int+accurate_rnd+bitexact"
do_video_decoding "" "-pix_fmt yuv420p  -sws_flags area+bitexact"
Michael Niedermayer's avatar
Michael Niedermayer committed
317 318
fi

319
if [ -n "$do_rv10" ] ; then
320
do_video_encoding rv10.rm "-qscale 10" "-an"
321
do_video_decoding
322 323
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
324
if [ -n "$do_rv20" ] ; then
325
do_video_encoding rv20.rm "-qscale 10" "-vcodec rv20 -an"
326
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
327 328
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
329
if [ -n "$do_asv1" ] ; then
330
do_video_encoding asv1.avi "-qscale 10" "-an -vcodec asv1"
331
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
332 333
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
334
if [ -n "$do_asv2" ] ; then
335
do_video_encoding asv2.avi "-qscale 10" "-an -vcodec asv2"
336
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
337 338
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
339
if [ -n "$do_flv" ] ; then
340
do_video_encoding flv.flv "-qscale 10" "-an -vcodec flv"
341
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
342 343
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
344
if [ -n "$do_ffv1" ] ; then
345
do_video_encoding ffv1.avi "-strict -2" "-an -vcodec ffv1"
346
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
347 348 349
fi

if [ -n "$do_snow" ] ; then
350
do_video_encoding snow.avi "-strict -2" "-an -vcodec snow -qscale 2 -flags +qpel -me_method iter -dia_size 2 -cmp 12 -subcmp 12 -s 128x64"
351
do_video_decoding "" "-s 352x288"
Michael Niedermayer's avatar
Michael Niedermayer committed
352
fi
Michael Niedermayer's avatar
Michael Niedermayer committed
353

Michael Niedermayer's avatar
Michael Niedermayer committed
354
if [ -n "$do_snowll" ] ; then
355
do_video_encoding snow53.avi "-strict -2" "-an -vcodec snow -qscale .001 -pred 1 -flags +mv4+qpel"
356
do_video_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
357 358
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
359
if [ -n "$do_dv" ] ; then
360
do_video_encoding dv.dv "-dct int" "-s pal -an"
361
do_video_decoding "" "-s cif"
362

363 364
do_video_encoding dv411.dv "-dct int" "-s pal -an -pix_fmt yuv411p -sws_flags area+accurate_rnd+bitexact"
do_video_decoding "" "-s cif -sws_flags area+accurate_rnd+bitexact"
Michael Niedermayer's avatar
Michael Niedermayer committed
365 366
fi

Daniel Maas's avatar
Daniel Maas committed
367
if [ -n "$do_dv50" ] ; then
368 369
do_video_encoding dv50.dv "-dct int" "-s pal -pix_fmt yuv422p -an -sws_flags neighbor+bitexact"
do_video_decoding "" "-s cif -pix_fmt yuv420p -sws_flags neighbor+bitexact"
Daniel Maas's avatar
Daniel Maas committed
370 371
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
372
if [ -n "$do_svq1" ] ; then
373
do_video_encoding svq1.mov "" "-an -vcodec svq1 -qscale 3 -pix_fmt yuv410p"
374
do_video_decoding "" "-pix_fmt yuv420p"
Michael Niedermayer's avatar
Michael Niedermayer committed
375 376
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
377
if [ -n "$do_flashsv" ] ; then
378 379
do_video_encoding flashsv.flv "" "-an -vcodec flashsv -sws_flags neighbor+full_chroma_int+accurate_rnd+bitexact"
do_video_decoding "" "-pix_fmt yuv420p -sws_flags area+accurate_rnd+bitexact"
Michael Niedermayer's avatar
Michael Niedermayer committed
380 381
fi

382
if [ -n "$do_mp2" ] ; then
383 384
do_audio_encoding mp2.mp2 "-ar 44100"
do_audio_decoding
385
$tiny_psnr $pcm_dst $pcm_ref 2 1924 >> $logfile
386 387 388
fi

if [ -n "$do_ac3" ] ; then
389
do_audio_encoding ac3.rm "" -vn
390
# binaries configured with --disable-sse decode ac3 differently
391 392
#do_audio_decoding
#$tiny_psnr $pcm_dst $pcm_ref 2 1024 >> $logfile
393 394
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
395
if [ -n "$do_g726" ] ; then
396
do_audio_encoding g726.wav "-ar 44100" "-ab 32k -ac 1 -ar 8000 -acodec g726"
397
do_audio_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
398 399
fi

400
if [ -n "$do_adpcm_ima_wav" ] ; then
401 402
do_audio_encoding adpcm_ima.wav "-ar 44100" "-acodec adpcm_ima_wav"
do_audio_decoding
403 404
fi

405 406 407 408 409
if [ -n "$do_adpcm_ima_qt" ] ; then
do_audio_encoding adpcm_qt.aiff "-ar 44100" "-acodec adpcm_ima_qt"
do_audio_decoding
fi

410
if [ -n "$do_adpcm_ms" ] ; then
411 412
do_audio_encoding adpcm_ms.wav "-ar 44100" "-acodec adpcm_ms"
do_audio_decoding
413 414
fi

415
if [ -n "$do_adpcm_yam" ] ; then
416 417
do_audio_encoding adpcm_yam.wav "-ar 44100" "-acodec adpcm_yamaha"
do_audio_decoding
418 419
fi

420 421 422 423 424
if [ -n "$do_adpcm_swf" ] ; then
do_audio_encoding adpcm_swf.flv "-ar 44100" "-acodec adpcm_swf"
do_audio_decoding
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
425
if [ -n "$do_flac" ] ; then
426 427
do_audio_encoding flac.flac "-ar 44100" "-acodec flac -compression_level 2"
do_audio_decoding
Michael Niedermayer's avatar
Michael Niedermayer committed
428 429
fi

Michael Niedermayer's avatar
Michael Niedermayer committed
430 431 432
if [ -n "$do_wma" ] ; then
# wmav1
do_audio_encoding wmav1.asf "-ar 44100" "-acodec wmav1"
433
do_ffmpeg_nomd5 $pcm_dst -i $target_path/$file -f wav
Michael Niedermayer's avatar
Michael Niedermayer committed
434 435 436
$tiny_psnr $pcm_dst $pcm_ref 2 8192 >> $logfile
# wmav2
do_audio_encoding wmav2.asf "-ar 44100" "-acodec wmav2"
437
do_ffmpeg_nomd5 $pcm_dst -i $target_path/$file -f wav
Michael Niedermayer's avatar
Michael Niedermayer committed
438 439 440
$tiny_psnr $pcm_dst $pcm_ref 2 8192 >> $logfile
fi

441
#if [ -n "$do_vorbis" ] ; then
Michael Niedermayer's avatar
Michael Niedermayer committed
442
# vorbis
Diego Biurrun's avatar
Diego Biurrun committed
443
#disabled because it is broken
444 445 446
#do_audio_encoding vorbis.asf "-ar 44100" "-acodec vorbis"
#do_audio_decoding
#fi
Michael Niedermayer's avatar
Michael Niedermayer committed
447

Peter Ross's avatar
Peter Ross committed
448 449 450 451 452 453 454 455
do_audio_enc_dec() {
    do_audio_encoding $3.$1 "" "$4 -sample_fmt $2 -acodec $3"
    do_audio_decoding
}

if [ -n "$do_pcm" ] ; then
do_audio_enc_dec wav s16 pcm_alaw
do_audio_enc_dec wav s16 pcm_mulaw
456 457
do_audio_enc_dec mov u8 pcm_s8
do_audio_enc_dec wav u8 pcm_u8
Peter Ross's avatar
Peter Ross committed
458 459
do_audio_enc_dec mov s16 pcm_s16be
do_audio_enc_dec wav s16 pcm_s16le
460 461
do_audio_enc_dec mkv s16 pcm_s16be
do_audio_enc_dec mkv s16 pcm_s16le
462 463 464 465 466 467 468 469
do_audio_enc_dec mov s32 pcm_s24be
do_audio_enc_dec wav s32 pcm_s24le
#do_audio_enc_dec ??? s32 pcm_u24be #no compatible muxer or demuxer
#do_audio_enc_dec ??? s32 pcm_u24le #no compatible muxer or demuxer
do_audio_enc_dec mov s32 pcm_s32be
do_audio_enc_dec wav s32 pcm_s32le
#do_audio_enc_dec ??? s32 pcm_u32be #no compatible muxer or demuxer
#do_audio_enc_dec ??? s32 pcm_u32le #no compatible muxer or demuxer
Peter Ross's avatar
Peter Ross committed
470
do_audio_enc_dec au  flt pcm_f32be
471 472 473
do_audio_enc_dec wav flt pcm_f32le
do_audio_enc_dec au  dbl pcm_f64be
do_audio_enc_dec wav dbl pcm_f64le
Peter Ross's avatar
Peter Ross committed
474 475 476 477
do_audio_enc_dec wav s16 pcm_zork
do_audio_enc_dec 302 s16 pcm_s24daud "-ac 6 -ar 96000"
fi

Diego Biurrun's avatar
Diego Biurrun committed
478
# libavformat testing
Fabrice Bellard's avatar
Fabrice Bellard committed
479

Måns Rullgård's avatar
Måns Rullgård committed
480
if [ -n "$do_avi" ] ; then
481
do_lavf avi
Måns Rullgård's avatar
Måns Rullgård committed
482
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
483

Måns Rullgård's avatar
Måns Rullgård committed
484
if [ -n "$do_asf" ] ; then
485
do_lavf asf "-acodec mp2" "-r 25"
Måns Rullgård's avatar
Måns Rullgård committed
486
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
487

Måns Rullgård's avatar
Måns Rullgård committed
488
if [ -n "$do_rm" ] ; then
489
file=${outfile}lavf.rm
490
do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -f s16le -i $pcm_src
Fabrice Bellard's avatar
Fabrice Bellard committed
491
# broken
492
#do_ffmpeg_crc $file -i $target_path/$file
Måns Rullgård's avatar
Måns Rullgård committed
493
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
494

Måns Rullgård's avatar
Måns Rullgård committed
495
if [ -n "$do_mpg" ] ; then
496
do_lavf mpg
Måns Rullgård's avatar
Måns Rullgård committed
497
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
498

499
if [ -n "$do_mxf" ] ; then
500 501
do_lavf mxf "-ar 48000 -bf 2 -timecode_frame_start 264363"
do_lavf mxf_d10 "-ar 48000 -ac 2 -r 25 -s 720x576 -padtop 32 -vcodec mpeg2video -intra -flags +ildct+low_delay -dc 10 -flags2 +ivlc+non_linear_q -qscale 1 -ps 1 -qmin 1 -rc_max_vbv_use 1 -rc_min_vbv_use 1 -pix_fmt yuv422p -minrate 30000k -maxrate 30000k -b 30000k -bufsize 1200000 -top 1 -rc_init_occupancy 1200000 -qmax 12 -f mxf_d10"
502 503
fi

Måns Rullgård's avatar
Måns Rullgård committed
504
if [ -n "$do_ts" ] ; then
505
do_lavf ts
Måns Rullgård's avatar
Måns Rullgård committed
506
fi
Michael Niedermayer's avatar
Michael Niedermayer committed
507

Måns Rullgård's avatar
Måns Rullgård committed
508
if [ -n "$do_swf" ] ; then
509
do_lavf swf -an
Måns Rullgård's avatar
Måns Rullgård committed
510
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
511

Måns Rullgård's avatar
Måns Rullgård committed
512
if [ -n "$do_ffm" ] ; then
513
do_lavf ffm
Måns Rullgård's avatar
Måns Rullgård committed
514
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
515

Måns Rullgård's avatar
Måns Rullgård committed
516
if [ -n "$do_flv_fmt" ] ; then
517
do_lavf flv -an
Måns Rullgård's avatar
Måns Rullgård committed
518
fi
Michael Niedermayer's avatar
Michael Niedermayer committed
519

Måns Rullgård's avatar
Måns Rullgård committed
520
if [ -n "$do_mov" ] ; then
521
do_lavf mov "-acodec pcm_alaw"
Måns Rullgård's avatar
Måns Rullgård committed
522
fi
Michael Niedermayer's avatar
Michael Niedermayer committed
523

Måns Rullgård's avatar
Måns Rullgård committed
524
if [ -n "$do_dv_fmt" ] ; then
525
do_lavf dv "-ar 48000 -r 25 -s pal -ac 2"
Måns Rullgård's avatar
Måns Rullgård committed
526
fi
Michael Niedermayer's avatar
Michael Niedermayer committed
527

Måns Rullgård's avatar
Måns Rullgård committed
528
if [ -n "$do_gxf" ] ; then
529
do_lavf gxf "-ar 48000 -r 25 -s pal -ac 1"
Måns Rullgård's avatar
Måns Rullgård committed
530
fi
Baptiste Coudurier's avatar
Baptiste Coudurier committed
531

Måns Rullgård's avatar
Måns Rullgård committed
532
if [ -n "$do_nut" ] ; then
533
do_lavf nut "-acodec mp2"
Måns Rullgård's avatar
Måns Rullgård committed
534
fi
Michael Niedermayer's avatar
Michael Niedermayer committed
535

Måns Rullgård's avatar
Måns Rullgård committed
536
if [ -n "$do_mkv" ] ; then
537
do_lavf mkv
Måns Rullgård's avatar
Måns Rullgård committed
538
fi
David Conrad's avatar
David Conrad committed
539

Michael Niedermayer's avatar
Michael Niedermayer committed
540

Fabrice Bellard's avatar
Fabrice Bellard committed
541 542
# streamed images
# mjpeg
543
#file=${outfile}lavf.mjpeg
544 545
#do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src
#do_ffmpeg_crc $file -i $target_path/$file
Fabrice Bellard's avatar
Fabrice Bellard committed
546

Måns Rullgård's avatar
Måns Rullgård committed
547
if [ -n "$do_pbmpipe" ] ; then
548
do_streamed_images pbm
Måns Rullgård's avatar
Måns Rullgård committed
549
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
550

Måns Rullgård's avatar
Måns Rullgård committed
551
if [ -n "$do_pgmpipe" ] ; then
552
do_streamed_images pgm
Måns Rullgård's avatar
Måns Rullgård committed
553
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
554

Måns Rullgård's avatar
Måns Rullgård committed
555
if [ -n "$do_ppmpipe" ] ; then
556
do_streamed_images ppm
Måns Rullgård's avatar
Måns Rullgård committed
557
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
558

Måns Rullgård's avatar
Måns Rullgård committed
559
if [ -n "$do_gif" ] ; then
560
file=${outfile}lavf.gif
561 562
do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -pix_fmt rgb24
#do_ffmpeg_crc $file -i $target_path/$file
Måns Rullgård's avatar
Måns Rullgård committed
563
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
564

Måns Rullgård's avatar
Måns Rullgård committed
565
if [ -n "$do_yuv4mpeg" ] ; then
566
file=${outfile}lavf.y4m
567 568
do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src
#do_ffmpeg_crc $file -i $target_path/$file
Måns Rullgård's avatar
Måns Rullgård committed
569
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
570 571

# image formats
Måns Rullgård's avatar
Måns Rullgård committed
572 573

if [ -n "$do_pgm" ] ; then
574
do_image_formats pgm
Måns Rullgård's avatar
Måns Rullgård committed
575
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
576

Måns Rullgård's avatar
Måns Rullgård committed
577
if [ -n "$do_ppm" ] ; then
578
do_image_formats ppm
Måns Rullgård's avatar
Måns Rullgård committed
579
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
580

Måns Rullgård's avatar
Måns Rullgård committed
581
if [ -n "$do_bmp" ] ; then
582
do_image_formats bmp
Måns Rullgård's avatar
Måns Rullgård committed
583
fi
584

Måns Rullgård's avatar
Måns Rullgård committed
585
if [ -n "$do_tga" ] ; then
586
do_image_formats tga
Måns Rullgård's avatar
Måns Rullgård committed
587
fi
588

Måns Rullgård's avatar
Måns Rullgård committed
589
if [ -n "$do_tiff" ] ; then
590
do_image_formats tiff "-pix_fmt rgb24"
Måns Rullgård's avatar
Måns Rullgård committed
591
fi
592

Måns Rullgård's avatar
Måns Rullgård committed
593
if [ -n "$do_sgi" ] ; then
594
do_image_formats sgi
Måns Rullgård's avatar
Måns Rullgård committed
595
fi
596

Måns Rullgård's avatar
Måns Rullgård committed
597
if [ -n "$do_jpg" ] ; then
598
do_image_formats jpg "-flags +bitexact -dct fastint -idct simple -pix_fmt yuvj420p" "-f image2"
Måns Rullgård's avatar
Måns Rullgård committed
599
fi
600

601 602 603 604
if [ -n "$do_pcx" ] ; then
do_image_formats pcx
fi

Fabrice Bellard's avatar
Fabrice Bellard committed
605 606
# audio only

Måns Rullgård's avatar
Måns Rullgård committed
607
if [ -n "$do_wav" ] ; then
608
do_audio_only wav
Måns Rullgård's avatar
Måns Rullgård committed
609
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
610

Måns Rullgård's avatar
Måns Rullgård committed
611
if [ -n "$do_alaw" ] ; then
612
do_audio_only al
Måns Rullgård's avatar
Måns Rullgård committed
613
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
614

Måns Rullgård's avatar
Måns Rullgård committed
615
if [ -n "$do_mulaw" ] ; then
616
do_audio_only ul
Måns Rullgård's avatar
Måns Rullgård committed
617
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
618

Måns Rullgård's avatar
Måns Rullgård committed
619
if [ -n "$do_au" ] ; then
620
do_audio_only au
Måns Rullgård's avatar
Måns Rullgård committed
621
fi
Fabrice Bellard's avatar
Fabrice Bellard committed
622

Måns Rullgård's avatar
Måns Rullgård committed
623
if [ -n "$do_mmf" ] ; then
624
do_audio_only mmf
Måns Rullgård's avatar
Måns Rullgård committed
625
fi
626

Måns Rullgård's avatar
Måns Rullgård committed
627
if [ -n "$do_aiff" ] ; then
628
do_audio_only aif
Måns Rullgård's avatar
Måns Rullgård committed
629
fi
630

Måns Rullgård's avatar
Måns Rullgård committed
631
if [ -n "$do_voc" ] ; then
632
do_audio_only voc
Måns Rullgård's avatar
Måns Rullgård committed
633
fi
Aurelien Jacobs's avatar
Aurelien Jacobs committed
634

Måns Rullgård's avatar
Måns Rullgård committed
635
if [ -n "$do_ogg" ] ; then
Baptiste Coudurier's avatar
Baptiste Coudurier committed
636
do_audio_only ogg
Måns Rullgård's avatar
Måns Rullgård committed
637
fi
Baptiste Coudurier's avatar
Baptiste Coudurier committed
638

639
# pix_fmt conversions