Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 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="${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 -ab 64k" |
||
68 | fi |
||
69 | |||
70 | if [ -n "$do_asf" ] ; then |
||
71 | do_lavf asf "" "-acodec mp2 -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" |
||
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" |
||
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 |
||
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" |
||
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" |
||
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_alaw" ] ; then |
||
278 | do_audio_only al "" "" "-ar 44100" |
||
279 | fi |
||
280 | |||
281 | if [ -n "$do_mulaw" ] ; then |
||
282 | do_audio_only ul "" "" "-ar 44100" |
||
283 | fi |
||
284 | |||
285 | if [ -n "$do_au" ] ; then |
||
286 | do_audio_only au |
||
287 | fi |
||
288 | |||
289 | if [ -n "$do_mmf" ] ; then |
||
290 | do_audio_only mmf |
||
291 | fi |
||
292 | |||
293 | if [ -n "$do_aiff" ] ; then |
||
294 | do_audio_only aif |
||
295 | fi |
||
296 | |||
297 | if [ -n "$do_voc" ] ; then |
||
298 | do_audio_only voc "" "-acodec pcm_u8" |
||
299 | fi |
||
300 | |||
301 | if [ -n "$do_voc_s16" ] ; then |
||
302 | do_audio_only s16.voc "-ac 2" "-acodec pcm_s16le" |
||
303 | fi |
||
304 | |||
305 | if [ -n "$do_ogg" ] ; then |
||
306 | do_audio_only ogg |
||
307 | fi |
||
308 | |||
309 | if [ -n "$do_rso" ] ; then |
||
310 | do_audio_only rso |
||
311 | fi |
||
312 | |||
313 | if [ -n "$do_smjpeg" ] ; then |
||
314 | do_lavf smjpeg "" "-f smjpeg" |
||
315 | fi |
||
316 | |||
317 | if [ -n "$do_sox" ] ; then |
||
318 | do_audio_only sox |
||
319 | fi |
||
320 | |||
321 | if [ -n "$do_caf" ] ; then |
||
322 | do_audio_only caf |
||
323 | fi |
||
324 | |||
325 | if [ -n "$do_ast" ] ; then |
||
326 | do_audio_only ast "-ac 2" "-loopstart 1 -loopend 10" |
||
327 | fi |
||
328 | |||
329 | if [ -n "$do_ircam" ] ; then |
||
330 | do_audio_only ircam |
||
331 | fi |
||
332 | |||
333 | if [ -n "$do_w64" ] ; then |
||
334 | do_audio_only w64 |
||
335 | fi |
||
336 | |||
337 | # pix_fmt conversions |
||
338 | |||
339 | if [ -n "$do_pixfmt" ] ; then |
||
340 | outfile="$datadir/pixfmt/" |
||
341 | mkdir -p "$outfile" |
||
342 | conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \ |
||
343 | yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \ |
||
344 | monob yuv440p yuvj440p" |
||
345 | for pix_fmt in $conversions ; do |
||
346 | file=${outfile}${pix_fmt}.yuv |
||
347 | run_avconv $DEC_OPTS -r 1 -f image2 -vcodec pgmyuv -i $raw_src \ |
||
348 | $ENC_OPTS -f rawvideo -t 1 -s 352x288 -pix_fmt $pix_fmt $target_path/$raw_dst |
||
349 | do_avconv $file $DEC_OPTS -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $target_path/$raw_dst \ |
||
350 | $ENC_OPTS -f rawvideo -s 352x288 -pix_fmt yuv444p |
||
351 | done |
||
352 | fi |