39e752b3c671a8623adec4fbcf239bac1a7bc9df
[libav.git] / tests / lavf-regression.sh
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 do_lavf()
15 {
16 file=${outfile}lavf.$1
17 do_ffmpeg $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 $2
18 do_ffmpeg_crc $file $DEC_OPTS -i $target_path/$file $3
19 }
20
21 do_streamed_images()
22 {
23 file=${outfile}${1}pipe.$1
24 do_ffmpeg $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10
25 do_ffmpeg_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file
26 }
27
28 do_image_formats()
29 {
30 outfile="$datadir/images/$1/"
31 mkdir -p "$outfile"
32 file=${outfile}%02d.$1
33 run_ffmpeg $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $2 $ENC_OPTS $3 -t 0.5 -y -qscale 10 $target_path/$file
34 do_md5sum ${outfile}02.$1 >> $logfile
35 do_ffmpeg_crc $file $DEC_OPTS $3 -i $target_path/$file
36 wc -c ${outfile}02.$1 >> $logfile
37 }
38
39 do_audio_only()
40 {
41 file=${outfile}lavf.$1
42 do_ffmpeg $file $DEC_OPTS $2 -ar 44100 -f s16le -i $pcm_src $ENC_OPTS -t 1 -qscale 10 $3
43 do_ffmpeg_crc $file $DEC_OPTS $4 -i $target_path/$file
44 }
45
46 rm -f "$logfile"
47
48 if [ -n "$do_avi" ] ; then
49 do_lavf avi
50 fi
51
52 if [ -n "$do_asf" ] ; then
53 do_lavf asf "-acodec mp2" "-r 25"
54 fi
55
56 if [ -n "$do_rm" ] ; then
57 file=${outfile}lavf.rm
58 do_ffmpeg $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
59 # broken
60 #do_ffmpeg_crc $file -i $target_path/$file
61 fi
62
63 if [ -n "$do_mpg" ] ; then
64 do_lavf mpg
65 fi
66
67 if [ -n "$do_mxf" ] ; then
68 do_lavf mxf "-ar 48000 -bf 2 -timecode_frame_start 264363"
69 do_lavf mxf_d10 "-ar 48000 -ac 2 -r 25 -s 720x576 -vf pad=720:608:0:32 -vcodec mpeg2video -intra -flags +ildct+low_delay -dc 10 -flags2 +ivlc+non_linear_q -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"
70 fi
71
72 if [ -n "$do_ts" ] ; then
73 do_lavf ts
74 fi
75
76 if [ -n "$do_swf" ] ; then
77 do_lavf swf -an
78 fi
79
80 if [ -n "$do_ffm" ] ; then
81 do_lavf ffm
82 fi
83
84 if [ -n "$do_flv_fmt" ] ; then
85 do_lavf flv -an
86 fi
87
88 if [ -n "$do_mov" ] ; then
89 do_lavf mov "-acodec pcm_alaw"
90 fi
91
92 if [ -n "$do_dv_fmt" ] ; then
93 do_lavf dv "-ar 48000 -r 25 -s pal -ac 2"
94 fi
95
96 if [ -n "$do_gxf" ] ; then
97 do_lavf gxf "-ar 48000 -r 25 -s pal -ac 1"
98 fi
99
100 if [ -n "$do_nut" ] ; then
101 do_lavf nut "-acodec mp2"
102 fi
103
104 if [ -n "$do_mkv" ] ; then
105 do_lavf mkv
106 fi
107
108
109 # streamed images
110 # mjpeg
111 #file=${outfile}lavf.mjpeg
112 #do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src
113 #do_ffmpeg_crc $file -i $target_path/$file
114
115 if [ -n "$do_pbmpipe" ] ; then
116 do_streamed_images pbm
117 fi
118
119 if [ -n "$do_pgmpipe" ] ; then
120 do_streamed_images pgm
121 fi
122
123 if [ -n "$do_ppmpipe" ] ; then
124 do_streamed_images ppm
125 fi
126
127 if [ -n "$do_gif" ] ; then
128 file=${outfile}lavf.gif
129 do_ffmpeg $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24
130 do_ffmpeg_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24
131 fi
132
133 if [ -n "$do_yuv4mpeg" ] ; then
134 file=${outfile}lavf.y4m
135 do_ffmpeg $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10
136 #do_ffmpeg_crc $file -i $target_path/$file
137 fi
138
139 # image formats
140
141 if [ -n "$do_pgm" ] ; then
142 do_image_formats pgm
143 fi
144
145 if [ -n "$do_ppm" ] ; then
146 do_image_formats ppm
147 fi
148
149 if [ -n "$do_png" ] ; then
150 do_image_formats png
151 fi
152
153 if [ -n "$do_bmp" ] ; then
154 do_image_formats bmp
155 fi
156
157 if [ -n "$do_tga" ] ; then
158 do_image_formats tga
159 fi
160
161 if [ -n "$do_tiff" ] ; then
162 do_image_formats tiff "-pix_fmt rgb24"
163 fi
164
165 if [ -n "$do_sgi" ] ; then
166 do_image_formats sgi
167 fi
168
169 if [ -n "$do_jpg" ] ; then
170 do_image_formats jpg "-pix_fmt yuvj420p" "-f image2"
171 fi
172
173 if [ -n "$do_pcx" ] ; then
174 do_image_formats pcx
175 fi
176
177 # audio only
178
179 if [ -n "$do_wav" ] ; then
180 do_audio_only wav
181 fi
182
183 if [ -n "$do_alaw" ] ; then
184 do_audio_only al "" "" "-ar 44100"
185 fi
186
187 if [ -n "$do_mulaw" ] ; then
188 do_audio_only ul "" "" "-ar 44100"
189 fi
190
191 if [ -n "$do_au" ] ; then
192 do_audio_only au
193 fi
194
195 if [ -n "$do_mmf" ] ; then
196 do_audio_only mmf
197 fi
198
199 if [ -n "$do_aiff" ] ; then
200 do_audio_only aif
201 fi
202
203 if [ -n "$do_voc" ] ; then
204 do_audio_only voc
205 fi
206
207 if [ -n "$do_voc_s16" ] ; then
208 do_audio_only s16.voc "-ac 2" "-acodec pcm_s16le"
209 fi
210
211 if [ -n "$do_ogg" ] ; then
212 do_audio_only ogg
213 fi
214
215 if [ -n "$do_rso" ] ; then
216 do_audio_only rso
217 fi
218
219 # pix_fmt conversions
220
221 if [ -n "$do_pixfmt" ] ; then
222 outfile="$datadir/pixfmt/"
223 mkdir -p "$outfile"
224 conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \
225 yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \
226 monob yuv440p yuvj440p"
227 for pix_fmt in $conversions ; do
228 file=${outfile}${pix_fmt}.yuv
229 run_ffmpeg $DEC_OPTS -r 1 -t 1 -f image2 -vcodec pgmyuv -i $raw_src \
230 $ENC_OPTS -f rawvideo -s 352x288 -pix_fmt $pix_fmt $target_path/$raw_dst
231 do_ffmpeg $file $DEC_OPTS -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $target_path/$raw_dst \
232 $ENC_OPTS -f rawvideo -s 352x288 -pix_fmt yuv444p
233 done
234 fi