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