Subversion Repositories Kolibri OS

Rev

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