annotate ffmpeg/tests/lavf-regression.sh @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents f445c3017523
children
rev   line source
yading@11 1 #!/bin/sh
yading@11 2 #
yading@11 3 # automatic regression test for libavformat
yading@11 4 #
yading@11 5 #
yading@11 6 #set -x
yading@11 7
yading@11 8 set -e
yading@11 9
yading@11 10 . $(dirname $0)/regression-funcs.sh
yading@11 11
yading@11 12 eval do_$test=y
yading@11 13
yading@11 14 ENC_OPTS="$ENC_OPTS -metadata title=lavftest"
yading@11 15
yading@11 16 do_lavf_fate()
yading@11 17 {
yading@11 18 file=${outfile}lavf.$1
yading@11 19 input="${samples}/$2"
yading@11 20 do_avconv $file $DEC_OPTS -i "$input" $ENC_OPTS -vcodec copy -acodec copy
yading@11 21 do_avconv_crc $file $DEC_OPTS -i $target_path/$file $3
yading@11 22 }
yading@11 23
yading@11 24 do_lavf()
yading@11 25 {
yading@11 26 file=${outfile}lavf.$1
yading@11 27 do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $DEC_OPTS -ar 44100 -f s16le $2 -i $pcm_src $ENC_OPTS -b:a 64k -t 1 -qscale:v 10 $3
yading@11 28 do_avconv_crc $file $DEC_OPTS -i $target_path/$file $4
yading@11 29 }
yading@11 30
yading@11 31 do_lavf_timecode_nodrop() { do_lavf $1 "" "$2 -timecode 02:56:14:13"; }
yading@11 32 do_lavf_timecode_drop() { do_lavf $1 "" "$2 -timecode 02:56:14.13 -r 30000/1001"; }
yading@11 33
yading@11 34 do_lavf_timecode()
yading@11 35 {
yading@11 36 do_lavf_timecode_nodrop "$@"
yading@11 37 do_lavf_timecode_drop "$@"
yading@11 38 do_lavf $1 "" "$2"
yading@11 39 }
yading@11 40
yading@11 41 do_streamed_images()
yading@11 42 {
yading@11 43 file=${outfile}${1}pipe.$1
yading@11 44 do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10
yading@11 45 do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file
yading@11 46 }
yading@11 47
yading@11 48 do_image_formats()
yading@11 49 {
yading@11 50 outfile="$datadir/images/$1/"
yading@11 51 mkdir -p "$outfile"
yading@11 52 file=${outfile}%02d.$1
yading@11 53 run_avconv $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $2 $ENC_OPTS -t 0.5 -y -qscale 10 $target_path/$file
yading@11 54 do_md5sum ${outfile}02.$1
yading@11 55 do_avconv_crc $file $DEC_OPTS -i $target_path/$file $3
yading@11 56 echo $(wc -c ${outfile}02.$1)
yading@11 57 }
yading@11 58
yading@11 59 do_audio_only()
yading@11 60 {
yading@11 61 file=${outfile}lavf.$1
yading@11 62 do_avconv $file $DEC_OPTS $2 -ar 44100 -f s16le -i $pcm_src $ENC_OPTS -t 1 -qscale 10 $3
yading@11 63 do_avconv_crc $file $DEC_OPTS $4 -i $target_path/$file
yading@11 64 }
yading@11 65
yading@11 66 if [ -n "$do_avi" ] ; then
yading@11 67 do_lavf avi "" "-acodec mp2 -ab 64k"
yading@11 68 fi
yading@11 69
yading@11 70 if [ -n "$do_asf" ] ; then
yading@11 71 do_lavf asf "" "-acodec mp2 -ab 64k" "-r 25"
yading@11 72 fi
yading@11 73
yading@11 74 if [ -n "$do_rm" ] ; then
yading@11 75 file=${outfile}lavf.rm
yading@11 76 do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $DEC_OPTS -ar 44100 -f s16le -i $pcm_src $ENC_OPTS -t 1 -qscale 10 -acodec ac3_fixed -ab 64k
yading@11 77 # broken
yading@11 78 #do_avconv_crc $file -i $target_path/$file
yading@11 79 fi
yading@11 80
yading@11 81 if [ -n "$do_mpg" ] ; then
yading@11 82 do_lavf_timecode mpg "-ab 64k"
yading@11 83 fi
yading@11 84
yading@11 85 if [ -n "$do_mxf" ] ; then
yading@11 86 do_lavf_timecode mxf "-ar 48000 -bf 2"
yading@11 87 fi
yading@11 88
yading@11 89 if [ -n "$do_mxf_d10" ]; then
yading@11 90 do_lavf mxf_d10 "-ar 48000 -ac 2" "-r 25 -vf scale=720:576,pad=720:608:0:32 -vcodec mpeg2video -g 0 -flags +ildct+low_delay -dc 10 -non_linear_quant 1 -intra_vlc 1 -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"
yading@11 91 fi
yading@11 92
yading@11 93 if [ -n "$do_ts" ] ; then
yading@11 94 do_lavf ts "" "-ab 64k -mpegts_transport_stream_id 42"
yading@11 95 fi
yading@11 96
yading@11 97 if [ -n "$do_swf" ] ; then
yading@11 98 do_lavf swf "" "-an"
yading@11 99 fi
yading@11 100
yading@11 101 if [ -n "$do_ffm" ] ; then
yading@11 102 do_lavf ffm
yading@11 103 fi
yading@11 104
yading@11 105 if [ -n "$do_flm" ] ; then
yading@11 106 do_lavf flm "" "-pix_fmt rgba"
yading@11 107 fi
yading@11 108
yading@11 109 if [ -n "$do_flv_fmt" ] ; then
yading@11 110 do_lavf flv "" "-an"
yading@11 111 fi
yading@11 112
yading@11 113 if [ -n "$do_mov" ] ; then
yading@11 114 mov_common_opt="-acodec pcm_alaw -vcodec mpeg4"
yading@11 115 do_lavf mov "" "-movflags +rtphint $mov_common_opt"
yading@11 116 do_lavf_timecode mov "-movflags +faststart $mov_common_opt"
yading@11 117 fi
yading@11 118
yading@11 119 if [ -n "$do_ismv" ] ; then
yading@11 120 do_lavf_timecode ismv "-an -vcodec mpeg4"
yading@11 121 fi
yading@11 122
yading@11 123 if [ -n "$do_dv_fmt" ] ; then
yading@11 124 do_lavf_timecode_nodrop dv "-ar 48000 -r 25 -s pal -ac 2"
yading@11 125 do_lavf_timecode_drop dv "-ar 48000 -pix_fmt yuv411p -s ntsc -ac 2"
yading@11 126 do_lavf dv "-ar 48000 -channel_layout stereo" "-r 25 -s pal"
yading@11 127 fi
yading@11 128
yading@11 129 if [ -n "$do_gxf" ] ; then
yading@11 130 do_lavf_timecode_nodrop gxf "-ar 48000 -r 25 -s pal -ac 1"
yading@11 131 do_lavf_timecode_drop gxf "-ar 48000 -s ntsc -ac 1"
yading@11 132 do_lavf gxf "-ar 48000" "-r 25 -s pal -ac 1"
yading@11 133 fi
yading@11 134
yading@11 135 if [ -n "$do_nut" ] ; then
yading@11 136 do_lavf nut "" "-acodec mp2 -ab 64k"
yading@11 137 fi
yading@11 138
yading@11 139 if [ -n "$do_mkv" ] ; then
yading@11 140 do_lavf mkv "" "-acodec mp2 -ab 64k -vcodec mpeg4 \
yading@11 141 -attach ${raw_src%/*}/00.pgm -metadata:s:t mimetype=image/x-portable-greymap"
yading@11 142 do_lavf mkv "" "-acodec mp2 -ab 64k -vcodec mpeg4"
yading@11 143 fi
yading@11 144
yading@11 145 if [ -n "$do_mp3" ] ; then
yading@11 146 do_lavf_fate mp3 "mp3-conformance/he_32khz.bit" "-acodec copy"
yading@11 147 fi
yading@11 148
yading@11 149 if [ -n "$do_latm" ] ; then
yading@11 150 do_lavf_fate latm "aac/al04_44.mp4" "-acodec copy"
yading@11 151 fi
yading@11 152
yading@11 153 if [ -n "$do_ogg_vp3" ] ; then
yading@11 154 # -idct simple causes different results on different systems
yading@11 155 DEC_OPTS="$DEC_OPTS -idct auto"
yading@11 156 do_lavf_fate ogg "vp3/coeff_level64.mkv"
yading@11 157 fi
yading@11 158
yading@11 159 if [ -n "$do_wtv" ] ; then
yading@11 160 do_lavf wtv "" "-acodec mp2"
yading@11 161 fi
yading@11 162
yading@11 163
yading@11 164 # streamed images
yading@11 165 # mjpeg
yading@11 166 #file=${outfile}lavf.mjpeg
yading@11 167 #do_avconv $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src
yading@11 168 #do_avconv_crc $file -i $target_path/$file
yading@11 169
yading@11 170 if [ -n "$do_pbmpipe" ] ; then
yading@11 171 do_streamed_images pbm
yading@11 172 fi
yading@11 173
yading@11 174 if [ -n "$do_pgmpipe" ] ; then
yading@11 175 do_streamed_images pgm
yading@11 176 fi
yading@11 177
yading@11 178 if [ -n "$do_ppmpipe" ] ; then
yading@11 179 do_streamed_images ppm
yading@11 180 fi
yading@11 181
yading@11 182 if [ -n "$do_gif" ] ; then
yading@11 183 file=${outfile}lavf.gif
yading@11 184 do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24
yading@11 185 do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24
yading@11 186 fi
yading@11 187
yading@11 188 if [ -n "$do_yuv4mpeg" ] ; then
yading@11 189 file=${outfile}lavf.y4m
yading@11 190 do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10
yading@11 191 #do_avconv_crc $file -i $target_path/$file
yading@11 192 fi
yading@11 193
yading@11 194 # image formats
yading@11 195
yading@11 196 if [ -n "$do_pgm" ] ; then
yading@11 197 do_image_formats pgm
yading@11 198 fi
yading@11 199
yading@11 200 if [ -n "$do_ppm" ] ; then
yading@11 201 do_image_formats ppm
yading@11 202 fi
yading@11 203
yading@11 204 if [ -n "$do_png" ] ; then
yading@11 205 do_image_formats png
yading@11 206 do_image_formats png "-pix_fmt gray16be"
yading@11 207 do_image_formats png "-pix_fmt rgb48be"
yading@11 208 fi
yading@11 209
yading@11 210 if [ -n "$do_xbm" ] ; then
yading@11 211 do_image_formats xbm
yading@11 212 fi
yading@11 213
yading@11 214 if [ -n "$do_bmp" ] ; then
yading@11 215 do_image_formats bmp
yading@11 216 fi
yading@11 217
yading@11 218 if [ -n "$do_tga" ] ; then
yading@11 219 do_image_formats tga
yading@11 220 fi
yading@11 221
yading@11 222 if [ -n "$do_tiff" ] ; then
yading@11 223 do_image_formats tiff "-pix_fmt rgb24"
yading@11 224 fi
yading@11 225
yading@11 226 if [ -n "$do_sgi" ] ; then
yading@11 227 do_image_formats sgi
yading@11 228 fi
yading@11 229
yading@11 230 if [ -n "$do_jpg" ] ; then
yading@11 231 do_image_formats jpg "-pix_fmt yuvj420p"
yading@11 232 fi
yading@11 233
yading@11 234 if [ -n "$do_pam" ] ; then
yading@11 235 do_image_formats pam
yading@11 236 do_image_formats pam "-pix_fmt rgba"
yading@11 237 do_image_formats pam "-pix_fmt gray"
yading@11 238 do_image_formats pam "-pix_fmt gray16be"
yading@11 239 do_image_formats pam "-pix_fmt rgb48be"
yading@11 240 do_image_formats pam "-pix_fmt monob"
yading@11 241 fi
yading@11 242
yading@11 243 if [ -n "$do_pcx" ] ; then
yading@11 244 do_image_formats pcx
yading@11 245 fi
yading@11 246
yading@11 247 if [ -n "$do_dpx" ] ; then
yading@11 248 do_image_formats dpx
yading@11 249 do_image_formats dpx "-pix_fmt rgb48le"
yading@11 250 do_image_formats dpx "-pix_fmt rgb48le -bits_per_raw_sample 10" "-pix_fmt rgb48le"
yading@11 251 fi
yading@11 252
yading@11 253 if [ -n "$do_xwd" ] ; then
yading@11 254 do_image_formats xwd
yading@11 255 do_image_formats xwd "-pix_fmt rgba"
yading@11 256 do_image_formats xwd "-pix_fmt rgb565be"
yading@11 257 do_image_formats xwd "-pix_fmt rgb555be"
yading@11 258 do_image_formats xwd "-pix_fmt rgb8"
yading@11 259 do_image_formats xwd "-pix_fmt rgb4_byte"
yading@11 260 do_image_formats xwd "-pix_fmt gray"
yading@11 261 do_image_formats xwd "-pix_fmt monow"
yading@11 262 fi
yading@11 263
yading@11 264 if [ -n "$do_sunrast" ] ; then
yading@11 265 do_image_formats sun
yading@11 266 fi
yading@11 267
yading@11 268 # audio only
yading@11 269
yading@11 270 if [ -n "$do_wav" ] ; then
yading@11 271 do_audio_only wav
yading@11 272 fi
yading@11 273
yading@11 274 if [ -n "$do_alaw" ] ; then
yading@11 275 do_audio_only al "" "" "-ar 44100"
yading@11 276 fi
yading@11 277
yading@11 278 if [ -n "$do_mulaw" ] ; then
yading@11 279 do_audio_only ul "" "" "-ar 44100"
yading@11 280 fi
yading@11 281
yading@11 282 if [ -n "$do_au" ] ; then
yading@11 283 do_audio_only au
yading@11 284 fi
yading@11 285
yading@11 286 if [ -n "$do_mmf" ] ; then
yading@11 287 do_audio_only mmf
yading@11 288 fi
yading@11 289
yading@11 290 if [ -n "$do_aiff" ] ; then
yading@11 291 do_audio_only aif
yading@11 292 fi
yading@11 293
yading@11 294 if [ -n "$do_voc" ] ; then
yading@11 295 do_audio_only voc "" "-acodec pcm_u8"
yading@11 296 fi
yading@11 297
yading@11 298 if [ -n "$do_voc_s16" ] ; then
yading@11 299 do_audio_only s16.voc "-ac 2" "-acodec pcm_s16le"
yading@11 300 fi
yading@11 301
yading@11 302 if [ -n "$do_ogg" ] ; then
yading@11 303 do_audio_only ogg
yading@11 304 fi
yading@11 305
yading@11 306 if [ -n "$do_rso" ] ; then
yading@11 307 do_audio_only rso
yading@11 308 fi
yading@11 309
yading@11 310 if [ -n "$do_smjpeg" ] ; then
yading@11 311 do_lavf smjpeg "" "-f smjpeg"
yading@11 312 fi
yading@11 313
yading@11 314 if [ -n "$do_sox" ] ; then
yading@11 315 do_audio_only sox
yading@11 316 fi
yading@11 317
yading@11 318 if [ -n "$do_caf" ] ; then
yading@11 319 do_audio_only caf
yading@11 320 fi
yading@11 321
yading@11 322 if [ -n "$do_ast" ] ; then
yading@11 323 do_audio_only ast "-ac 2" "-loopstart 1 -loopend 10"
yading@11 324 fi
yading@11 325
yading@11 326 if [ -n "$do_ircam" ] ; then
yading@11 327 do_audio_only ircam
yading@11 328 fi
yading@11 329
yading@11 330 if [ -n "$do_w64" ] ; then
yading@11 331 do_audio_only w64
yading@11 332 fi
yading@11 333
yading@11 334 # pix_fmt conversions
yading@11 335
yading@11 336 if [ -n "$do_pixfmt" ] ; then
yading@11 337 outfile="$datadir/pixfmt/"
yading@11 338 mkdir -p "$outfile"
yading@11 339 conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \
yading@11 340 yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \
yading@11 341 monob yuv440p yuvj440p"
yading@11 342 for pix_fmt in $conversions ; do
yading@11 343 file=${outfile}${pix_fmt}.yuv
yading@11 344 run_avconv $DEC_OPTS -r 1 -f image2 -vcodec pgmyuv -i $raw_src \
yading@11 345 $ENC_OPTS -f rawvideo -t 1 -s 352x288 -pix_fmt $pix_fmt $target_path/$raw_dst
yading@11 346 do_avconv $file $DEC_OPTS -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $target_path/$raw_dst \
yading@11 347 $ENC_OPTS -f rawvideo -s 352x288 -pix_fmt yuv444p
yading@11 348 done
yading@11 349 fi