1#!/bin/sh 2# 3# automatic regression test for avconv 4# 5# 6#set -x 7 8set -e 9 10. $(dirname $0)/regression-funcs.sh 11 12eval do_$test=y 13 14# generate reference for quality check 15if [ -n "$do_vref" ]; then 16do_avconv $raw_ref -f image2 -vcodec pgmyuv -i $raw_src -an -f rawvideo 17fi 18if [ -n "$do_aref" ]; then 19do_avconv $pcm_ref -b 128k -ac 2 -ar 44100 -f s16le -i $pcm_src -f wav 20fi 21 22if [ -n "$do_cljr" ] ; then 23do_video_encoding cljr.avi "-an -vcodec cljr" 24do_video_decoding 25fi 26 27if [ -n "$do_mpeg" ] ; then 28# mpeg1 29do_video_encoding mpeg1.mpg "-qscale 10 -f mpeg1video" 30do_video_decoding 31fi 32 33if [ -n "$do_mpeg2" ] ; then 34# mpeg2 35do_video_encoding mpeg2.mpg "-qscale 10 -vcodec mpeg2video -f mpeg1video" 36do_video_decoding 37fi 38 39if [ -n "$do_mpeg2_ivlc_qprd" ]; then 40# mpeg2 encoding intra vlc qprd 41do_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" 42do_video_decoding 43fi 44 45if [ -n "$do_mpeg2_422" ]; then 46#mpeg2 4:2:2 encoding 47do_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" 48do_video_decoding 49fi 50 51if [ -n "$do_mpeg2_idct_int" ]; then 52# mpeg2 53do_video_encoding mpeg2_idct_int.mpg "-qscale 10 -vcodec mpeg2video -idct int -dct int -f mpeg1video" 54do_video_decoding "-idct int" 55fi 56 57if [ -n "$do_mpeg2_ilace" ]; then 58# mpeg2 encoding interlaced 59do_video_encoding mpeg2i.mpg "-qscale 10 -vcodec mpeg2video -f mpeg1video -flags +ildct+ilme" 60do_video_decoding 61fi 62 63if [ -n "$do_mpeg2thread" ] ; then 64# mpeg2 encoding interlaced 65do_video_encoding mpeg2thread.mpg "-qscale 10 -vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -threads 2 -slices 2" 66do_video_decoding 67fi 68 69if [ -n "$do_mpeg2thread_ilace" ]; then 70# mpeg2 encoding interlaced using intra vlc 71do_video_encoding mpeg2threadivlc.mpg "-qscale 10 -vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -flags2 +ivlc -threads 2 -slices 2" 72do_video_decoding 73fi 74 75if [ -n "$do_msmpeg4v2" ] ; then 76do_video_encoding msmpeg4v2.avi "-qscale 10 -an -vcodec msmpeg4v2" 77do_video_decoding 78fi 79 80if [ -n "$do_msmpeg4" ] ; then 81do_video_encoding msmpeg4.avi "-qscale 10 -an -vcodec msmpeg4" 82do_video_decoding 83fi 84 85if [ -n "$do_wmv1" ] ; then 86do_video_encoding wmv1.avi "-qscale 10 -an -vcodec wmv1" 87do_video_decoding 88fi 89 90if [ -n "$do_wmv2" ] ; then 91do_video_encoding wmv2.avi "-qscale 10 -an -vcodec wmv2" 92do_video_decoding 93fi 94 95if [ -n "$do_h261" ] ; then 96do_video_encoding h261.avi "-qscale 11 -s 352x288 -an -vcodec h261" 97do_video_decoding 98fi 99 100if [ -n "$do_h263" ] ; then 101do_video_encoding h263.avi "-qscale 10 -s 352x288 -an -vcodec h263" 102do_video_decoding 103fi 104 105if [ -n "$do_h263p" ] ; then 106do_video_encoding h263p.avi "-qscale 2 -flags +umv+aiv+aic -s 352x288 -an -vcodec h263p -ps 300" 107do_video_decoding 108fi 109 110if [ -n "$do_mpeg4" ] ; then 111do_video_encoding odivx.mp4 "-flags +mv4 -mbd bits -qscale 10 -an -vcodec mpeg4" 112do_video_decoding 113fi 114 115if [ -n "$do_huffyuv" ] ; then 116do_video_encoding huffyuv.avi "-an -vcodec huffyuv -pix_fmt yuv422p -sws_flags neighbor+bitexact" 117do_video_decoding "" "-strict -2 -pix_fmt yuv420p -sws_flags neighbor+bitexact" 118fi 119 120if [ -n "$do_rc" ] ; then 121do_video_encoding mpeg4-rc.avi "-b 400k -bf 2 -an -vcodec mpeg4" 122do_video_decoding 123fi 124 125if [ -n "$do_mpeg4adv" ] ; then 126do_video_encoding mpeg4-adv.avi "-qscale 9 -flags +mv4+part+aic -trellis 1 -mbd bits -ps 200 -an -vcodec mpeg4" 127do_video_decoding 128fi 129 130if [ -n "$do_mpeg4_qprd" ]; then 131do_video_encoding mpeg4-qprd.avi "-b 450k -bf 2 -trellis 1 -flags +mv4+qprd+mv0 -cmp 2 -subcmp 2 -mbd rd -an -vcodec mpeg4" 132do_video_decoding 133fi 134 135if [ -n "$do_mpeg4_adap" ]; then 136do_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" 137do_video_decoding 138fi 139 140if [ -n "$do_mpeg4_qpel" ]; then 141do_video_encoding mpeg4-Q.avi "-qscale 7 -flags +mv4+qpel -mbd 2 -bf 2 -cmp 1 -subcmp 2 -an -vcodec mpeg4" 142do_video_decoding 143fi 144 145if [ -n "$do_mpeg4thread" ] ; then 146do_video_encoding mpeg4-thread.avi "-b 500k -flags +mv4+part+aic -trellis 1 -mbd bits -ps 200 -bf 2 -an -vcodec mpeg4 -threads 2 -slices 2" 147do_video_decoding 148fi 149 150if [ -n "$do_error" ] ; then 151do_video_encoding error-mpeg4-adv.avi "-qscale 7 -flags +mv4+part+aic -mbd rd -ps 250 -error 10 -an -vcodec mpeg4" 152do_video_decoding 153fi 154 155if [ -n "$do_mpeg4nr" ] ; then 156do_video_encoding mpeg4-nr.avi "-qscale 8 -flags +mv4 -mbd rd -nr 200 -an -vcodec mpeg4" 157do_video_decoding 158fi 159 160if [ -n "$do_mpeg1b" ] ; then 161do_video_encoding mpeg1b.mpg "-qscale 8 -bf 3 -ps 200 -an -vcodec mpeg1video -f mpeg1video" 162do_video_decoding 163fi 164 165if [ -n "$do_mjpeg" ] ; then 166do_video_encoding mjpeg.avi "-qscale 9 -an -vcodec mjpeg -pix_fmt yuvj420p" 167do_video_decoding "" "-pix_fmt yuv420p" 168fi 169 170if [ -n "$do_ljpeg" ] ; then 171do_video_encoding ljpeg.avi "-an -vcodec ljpeg -strict -1" 172do_video_decoding 173fi 174 175if [ -n "$do_jpegls" ] ; then 176do_video_encoding jpegls.avi "-an -vcodec jpegls -vtag MJPG -sws_flags neighbor+full_chroma_int+accurate_rnd+bitexact" 177do_video_decoding "" "-pix_fmt yuv420p -sws_flags area+bitexact" 178fi 179 180if [ -n "$do_rv10" ] ; then 181do_video_encoding rv10.rm "-qscale 10 -an" 182do_video_decoding 183fi 184 185if [ -n "$do_rv20" ] ; then 186do_video_encoding rv20.rm "-qscale 10 -vcodec rv20 -an" 187do_video_decoding 188fi 189 190if [ -n "$do_asv1" ] ; then 191do_video_encoding asv1.avi "-qscale 10 -an -vcodec asv1" 192do_video_decoding 193fi 194 195if [ -n "$do_asv2" ] ; then 196do_video_encoding asv2.avi "-qscale 10 -an -vcodec asv2" 197do_video_decoding 198fi 199 200if [ -n "$do_flv" ] ; then 201do_video_encoding flv.flv "-qscale 10 -an -vcodec flv" 202do_video_decoding 203fi 204 205if [ -n "$do_ffv1" ] ; then 206do_video_encoding ffv1.avi "-strict -2 -an -vcodec ffv1" 207do_video_decoding 208fi 209 210if [ -n "$do_snow" ] ; then 211do_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" 212do_video_decoding "" "-s 352x288" 213fi 214 215if [ -n "$do_snowll" ] ; then 216do_video_encoding snow53.avi "-strict -2 -an -vcodec snow -qscale .001 -pred 1 -flags +mv4+qpel" 217do_video_decoding 218fi 219 220if [ -n "$do_dv" ] ; then 221do_video_encoding dv.dv "-dct int -s pal -an" 222do_video_decoding "" "-s cif" 223fi 224 225if [ -n "$do_dv_411" ]; then 226do_video_encoding dv411.dv "-dct int -s pal -an -pix_fmt yuv411p -sws_flags area+accurate_rnd+bitexact" 227do_video_decoding "" "-s cif -sws_flags area+accurate_rnd+bitexact" 228fi 229 230if [ -n "$do_dv50" ] ; then 231do_video_encoding dv50.dv "-dct int -s pal -pix_fmt yuv422p -an -sws_flags neighbor+bitexact" 232do_video_decoding "" "-s cif -pix_fmt yuv420p -sws_flags neighbor+bitexact" 233fi 234 235if [ -n "$do_dnxhd_1080i" ] ; then 236# FIXME: interlaced raw DNxHD decoding is broken 237do_video_encoding dnxhd-1080i.mov "-vcodec dnxhd -flags +ildct -s hd1080 -b 120M -pix_fmt yuv422p -vframes 5 -an" 238do_video_decoding "" "-s cif -pix_fmt yuv420p" 239fi 240 241if [ -n "$do_dnxhd_720p" ] ; then 242do_video_encoding dnxhd-720p.dnxhd "-s hd720 -b 90M -pix_fmt yuv422p -vframes 5 -an" 243do_video_decoding "" "-s cif -pix_fmt yuv420p" 244fi 245 246if [ -n "$do_dnxhd_720p_rd" ] ; then 247do_video_encoding dnxhd-720p-rd.dnxhd "-threads 4 -mbd rd -s hd720 -b 90M -pix_fmt yuv422p -vframes 5 -an" 248do_video_decoding "" "-s cif -pix_fmt yuv420p" 249fi 250 251if [ -n "$do_dnxhd_720p_10bit" ] ; then 252do_video_encoding dnxhd-720p-10bit.dnxhd "-s hd720 -b 90M -pix_fmt yuv422p10 -vframes 5 -an" 253do_video_decoding "" "-s cif -pix_fmt yuv420p" 254fi 255 256if [ -n "$do_svq1" ] ; then 257do_video_encoding svq1.mov "-an -vcodec svq1 -qscale 3 -pix_fmt yuv410p" 258do_video_decoding "" "-pix_fmt yuv420p" 259fi 260 261if [ -n "$do_flashsv" ] ; then 262do_video_encoding flashsv.flv "-an -vcodec flashsv -sws_flags neighbor+full_chroma_int+accurate_rnd+bitexact" 263do_video_decoding "" "-pix_fmt yuv420p -sws_flags area+accurate_rnd+bitexact" 264fi 265 266if [ -n "$do_roq" ] ; then 267do_video_encoding roqav.roq "-vframes 5" 268do_video_decoding "" "-pix_fmt yuv420p" 269fi 270 271if [ -n "$do_qtrle" ] ; then 272do_video_encoding qtrle.mov "-an -vcodec qtrle" 273do_video_decoding "" "-pix_fmt yuv420p" 274fi 275 276if [ -n "$do_rgb" ] ; then 277do_video_encoding rgb.avi "-an -vcodec rawvideo -pix_fmt bgr24" 278do_video_decoding "" "-pix_fmt yuv420p" 279fi 280 281if [ -n "$do_v210" ] ; then 282do_video_encoding v210.avi "-an -c:v v210" 283do_video_decoding "" "-pix_fmt yuv420p" 284fi 285 286if [ -n "$do_yuv" ] ; then 287do_video_encoding yuv.avi "-an -vcodec rawvideo -pix_fmt yuv420p" 288do_video_decoding "" "-pix_fmt yuv420p" 289fi 290 291if [ -n "$do_mp2" ] ; then 292do_audio_encoding mp2.mp2 293do_audio_decoding 294$tiny_psnr $pcm_dst $pcm_ref 2 1924 295fi 296 297if [ -n "$do_ac3_fixed" ] ; then 298do_audio_encoding ac3.rm "-vn -acodec ac3_fixed" 299# binaries configured with --disable-sse decode ac3 differently 300#do_audio_decoding 301#$tiny_psnr $pcm_dst $pcm_ref 2 1024 302fi 303 304if [ -n "$do_g722" ] ; then 305do_audio_encoding g722.wav "-b 64k -ac 1 -ar 16000 -acodec g722" 306do_audio_decoding 307fi 308 309if [ -n "$do_g726" ] ; then 310do_audio_encoding g726.wav "-b 32k -ac 1 -ar 8000 -acodec g726" 311do_audio_decoding 312fi 313 314if [ -n "$do_adpcm_adx" ] ; then 315do_audio_encoding adpcm_adx.adx "-acodec adpcm_adx" 316do_audio_decoding 317fi 318 319if [ -n "$do_adpcm_ima_wav" ] ; then 320do_audio_encoding adpcm_ima.wav "-acodec adpcm_ima_wav" 321do_audio_decoding 322fi 323 324if [ -n "$do_adpcm_ima_qt" ] ; then 325do_audio_encoding adpcm_qt.aiff "-acodec adpcm_ima_qt" 326do_audio_decoding 327fi 328 329if [ -n "$do_adpcm_ms" ] ; then 330do_audio_encoding adpcm_ms.wav "-acodec adpcm_ms" 331do_audio_decoding 332fi 333 334if [ -n "$do_adpcm_yam" ] ; then 335do_audio_encoding adpcm_yam.wav "-acodec adpcm_yamaha" 336do_audio_decoding 337fi 338 339if [ -n "$do_adpcm_swf" ] ; then 340do_audio_encoding adpcm_swf.flv "-acodec adpcm_swf" 341do_audio_decoding 342fi 343 344if [ -n "$do_alac" ] ; then 345do_audio_encoding alac.m4a "-acodec alac -compression_level 1" 346do_audio_decoding 347fi 348 349if [ -n "$do_flac" ] ; then 350do_audio_encoding flac.flac "-acodec flac -compression_level 2" 351do_audio_decoding 352fi 353 354if [ -n "$do_wmav1" ] ; then 355do_audio_encoding wmav1.asf "-acodec wmav1" 356do_avconv_nomd5 $pcm_dst $DEC_OPTS -i $target_path/$file -f wav 357$tiny_psnr $pcm_dst $pcm_ref 2 8192 358fi 359if [ -n "$do_wmav2" ] ; then 360do_audio_encoding wmav2.asf "-acodec wmav2" 361do_avconv_nomd5 $pcm_dst $DEC_OPTS -i $target_path/$file -f wav 362$tiny_psnr $pcm_dst $pcm_ref 2 8192 363fi 364 365#if [ -n "$do_vorbis" ] ; then 366# vorbis 367#disabled because it is broken 368#do_audio_encoding vorbis.asf "-acodec vorbis" 369#do_audio_decoding 370#fi 371 372do_audio_enc_dec() { 373 do_audio_encoding $3.$1 "$4 -sample_fmt $2 -acodec $3" 374 do_audio_decoding 375} 376 377if [ -n "$do_pcm_alaw" ] ; then 378do_audio_enc_dec wav s16 pcm_alaw 379fi 380if [ -n "$do_pcm_mulaw" ] ; then 381do_audio_enc_dec wav s16 pcm_mulaw 382fi 383if [ -n "$do_pcm_s8" ] ; then 384do_audio_enc_dec mov u8 pcm_s8 385fi 386if [ -n "$do_pcm_u8" ] ; then 387do_audio_enc_dec wav u8 pcm_u8 388fi 389if [ -n "$do_pcm_s16be" ] ; then 390do_audio_enc_dec mov s16 pcm_s16be 391fi 392if [ -n "$do_pcm_s16le" ] ; then 393do_audio_enc_dec wav s16 pcm_s16le 394fi 395if [ -n "$do_pcm_s24be" ] ; then 396do_audio_enc_dec mov s32 pcm_s24be 397fi 398if [ -n "$do_pcm_s24le" ] ; then 399do_audio_enc_dec wav s32 pcm_s24le 400fi 401# no compatible muxer or demuxer 402# if [ -n "$do_pcm_u24be" ] ; then 403# do_audio_enc_dec ??? u32 pcm_u24be 404# fi 405# if [ -n "$do_pcm_u24le" ] ; then 406# do_audio_enc_dec ??? u32 pcm_u24le 407# fi 408if [ -n "$do_pcm_s32be" ] ; then 409do_audio_enc_dec mov s32 pcm_s32be 410fi 411if [ -n "$do_pcm_s32le" ] ; then 412do_audio_enc_dec wav s32 pcm_s32le 413fi 414# no compatible muxer or demuxer 415# if [ -n "$do_pcm_u32be" ] ; then 416# do_audio_enc_dec ??? u32 pcm_u32be 417# fi 418# if [ -n "$do_pcm_u32le" ] ; then 419# do_audio_enc_dec ??? u32 pcm_u32le 420# fi 421if [ -n "$do_pcm_f32be" ] ; then 422do_audio_enc_dec au flt pcm_f32be 423fi 424if [ -n "$do_pcm_f32le" ] ; then 425do_audio_enc_dec wav flt pcm_f32le 426fi 427if [ -n "$do_pcm_f64be" ] ; then 428do_audio_enc_dec au dbl pcm_f64be 429fi 430if [ -n "$do_pcm_f64le" ] ; then 431do_audio_enc_dec wav dbl pcm_f64le 432fi 433if [ -n "$do_pcm_s24daud" ] ; then 434do_audio_enc_dec 302 s16 pcm_s24daud "-ac 6 -ar 96000" 435fi 436