Place regtest-pixfmt output files in separate dir
[ffmpeg.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 -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -f s16le -i $pcm_src $2
18     do_ffmpeg_crc $file -i $target_path/$file $3
19 }
20
21 do_streamed_images()
22 {
23     file=${outfile}${1}pipe.$1
24     do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe
25     do_ffmpeg_crc $file -f image2pipe -i $target_path/$file
26 }
27
28 do_image_formats()
29 {
30     file=${outfile}lavf%02d.$1
31     $echov $ffmpeg -t 0.5 -y -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src $2 $3 -flags +bitexact -sws_flags +accurate_rnd+bitexact $target_path/$file
32     $ffmpeg -t 0.5 -y -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src $2 $3 -flags +bitexact -sws_flags +accurate_rnd+bitexact $target_path/$file
33     do_md5sum ${outfile}lavf02.$1 >> $logfile
34     do_ffmpeg_crc $file $3 -i $target_path/$file
35     wc -c ${outfile}lavf02.$1 >> $logfile
36 }
37
38 do_audio_only()
39 {
40     file=${outfile}lavf.$1
41     do_ffmpeg $file -t 1 -qscale 10 -f s16le -i $pcm_src
42     do_ffmpeg_crc $file -i $target_path/$file
43 }
44
45 rm -f "$logfile"
46 rm -f "$benchfile"
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 -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -f s16le -i $pcm_src
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 -padtop 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 -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src -pix_fmt rgb24
130 #do_ffmpeg_crc $file -i $target_path/$file
131 fi
132
133 if [ -n "$do_yuv4mpeg" ] ; then
134 file=${outfile}lavf.y4m
135 do_ffmpeg $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src
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_bmp" ] ; then
150 do_image_formats bmp
151 fi
152
153 if [ -n "$do_tga" ] ; then
154 do_image_formats tga
155 fi
156
157 if [ -n "$do_tiff" ] ; then
158 do_image_formats tiff "-pix_fmt rgb24"
159 fi
160
161 if [ -n "$do_sgi" ] ; then
162 do_image_formats sgi
163 fi
164
165 if [ -n "$do_jpg" ] ; then
166 do_image_formats jpg "-flags +bitexact -dct fastint -idct simple -pix_fmt yuvj420p" "-f image2"
167 fi
168
169 if [ -n "$do_pcx" ] ; then
170 do_image_formats pcx
171 fi
172
173 # audio only
174
175 if [ -n "$do_wav" ] ; then
176 do_audio_only wav
177 fi
178
179 if [ -n "$do_alaw" ] ; then
180 do_audio_only al
181 fi
182
183 if [ -n "$do_mulaw" ] ; then
184 do_audio_only ul
185 fi
186
187 if [ -n "$do_au" ] ; then
188 do_audio_only au
189 fi
190
191 if [ -n "$do_mmf" ] ; then
192 do_audio_only mmf
193 fi
194
195 if [ -n "$do_aiff" ] ; then
196 do_audio_only aif
197 fi
198
199 if [ -n "$do_voc" ] ; then
200 do_audio_only voc
201 fi
202
203 if [ -n "$do_ogg" ] ; then
204 do_audio_only ogg
205 fi
206
207 # pix_fmt conversions
208
209 if [ -n "$do_pixfmt" ] ; then
210 outfile="$datadir/pixfmt/"
211 mkdir -p "$outfile"
212 conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \
213              yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \
214              monob yuv440p yuvj440p"
215 for pix_fmt in $conversions ; do
216     file=${outfile}${pix_fmt}.yuv
217     do_ffmpeg_nocheck $file -r 1 -t 1 -f image2 -vcodec pgmyuv -i $raw_src \
218                             -f rawvideo -s 352x288 -pix_fmt $pix_fmt $target_path/$raw_dst
219     do_ffmpeg $file -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $target_path/$raw_dst \
220                     -f rawvideo -s 352x288 -pix_fmt yuv444p
221 done
222 fi
223
224 rm -f "$bench" "$bench2"