| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | #!/bin/sh
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # automatic regression test for ffmpeg | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #set -x | 
					
						
							| 
									
										
										
										
											2003-04-15 22:29:37 +00:00
										 |  |  | # Even in the 21st century some diffs are not supporting -u. | 
					
						
							|  |  |  | diff -u $0 $0 > /dev/null 2>&1 | 
					
						
							|  |  |  | if [ $? -eq 0 ]; then | 
					
						
							|  |  |  |   diff_cmd="diff -u" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   diff_cmd="diff" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | set -e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-06-05 18:14:21 +00:00
										 |  |  | datadir="./data" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | logfile="$datadir/ffmpeg.regression" | 
					
						
							| 
									
										
										
										
											2003-07-16 19:13:33 +00:00
										 |  |  | outfile="$datadir/a-" | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | # tests to do | 
					
						
							|  |  |  | if [ "$1" = "mpeg4" ] ; then | 
					
						
							|  |  |  |     do_mpeg4=y | 
					
						
							|  |  |  | elif [ "$1" = "mpeg" ] ; then | 
					
						
							|  |  |  |     do_mpeg=y | 
					
						
							| 
									
										
										
										
											2003-01-11 05:32:29 +00:00
										 |  |  | elif [ "$1" = "ac3" ] ; then | 
					
						
							|  |  |  |     do_ac3=y | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | elif [ "$1" = "libavtest" ] ; then | 
					
						
							|  |  |  |     do_libav=y | 
					
						
							| 
									
										
										
										
											2002-06-05 18:14:21 +00:00
										 |  |  |     logfile="$datadir/libav.regression" | 
					
						
							| 
									
										
										
										
											2003-07-16 19:13:33 +00:00
										 |  |  |     outfile="$datadir/b-" | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | else | 
					
						
							|  |  |  |     do_mpeg=y | 
					
						
							| 
									
										
										
										
											2003-08-26 07:42:25 +00:00
										 |  |  |     do_mpeg2=y | 
					
						
							| 
									
										
										
										
											2002-09-06 22:59:44 +00:00
										 |  |  |     do_msmpeg4v2=y | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  |     do_msmpeg4=y | 
					
						
							| 
									
										
										
										
											2002-09-06 22:59:44 +00:00
										 |  |  |     do_wmv1=y | 
					
						
							| 
									
										
										
										
											2003-03-08 11:50:26 +00:00
										 |  |  |     do_wmv2=y | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  |     do_h263=y | 
					
						
							| 
									
										
										
										
											2002-10-25 10:50:02 +00:00
										 |  |  |     do_h263p=y | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  |     do_mpeg4=y | 
					
						
							| 
									
										
										
										
											2003-03-08 11:50:26 +00:00
										 |  |  |     do_huffyuv=y | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  |     do_mjpeg=y | 
					
						
							| 
									
										
										
										
											2003-07-12 16:26:08 +00:00
										 |  |  |     do_ljpeg=y | 
					
						
							| 
									
										
										
										
											2002-09-03 20:41:12 +00:00
										 |  |  |     do_rv10=y | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  |     do_mp2=y | 
					
						
							|  |  |  |     do_ac3=y | 
					
						
							| 
									
										
										
										
											2002-09-20 15:22:24 +00:00
										 |  |  |     do_rc=y | 
					
						
							|  |  |  |     do_mpeg4adv=y | 
					
						
							| 
									
										
										
										
											2003-02-08 12:13:32 +00:00
										 |  |  |     do_mpeg1b=y | 
					
						
							| 
									
										
										
										
											2003-05-27 22:43:34 +00:00
										 |  |  |     do_asv1=y | 
					
						
							| 
									
										
										
										
											2003-09-01 13:05:21 +00:00
										 |  |  |     do_asv2=y | 
					
						
							| 
									
										
										
										
											2003-07-09 23:52:06 +00:00
										 |  |  |     do_flv=y | 
					
						
							| 
									
										
										
										
											2003-11-03 21:59:21 +00:00
										 |  |  |     do_ffv1=y | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # various files | 
					
						
							| 
									
										
										
										
											2002-11-22 07:27:13 +00:00
										 |  |  | ffmpeg="../ffmpeg_g" | 
					
						
							| 
									
										
										
										
											2003-04-10 21:29:31 +00:00
										 |  |  | tiny_psnr="./tiny_psnr" | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | reffile="$2" | 
					
						
							| 
									
										
										
										
											2002-06-05 18:14:21 +00:00
										 |  |  | benchfile="$datadir/ffmpeg.bench" | 
					
						
							| 
									
										
										
										
											2003-04-11 13:43:17 +00:00
										 |  |  | raw_src="$3/%d.pgm" | 
					
						
							| 
									
										
										
										
											2002-06-05 18:14:21 +00:00
										 |  |  | raw_dst="$datadir/out.yuv" | 
					
						
							| 
									
										
										
										
											2003-04-10 21:29:31 +00:00
										 |  |  | raw_ref="$datadir/ref.yuv" | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | pcm_src="asynth1.sw" | 
					
						
							| 
									
										
										
										
											2002-06-05 18:14:21 +00:00
										 |  |  | pcm_dst="$datadir/out.wav" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # create the data directory if it does not exists | 
					
						
							|  |  |  | mkdir -p $datadir | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-08-30 19:34:55 +00:00
										 |  |  | do_ffmpeg() | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     f="$1" | 
					
						
							|  |  |  |     shift | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  |     echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* | 
					
						
							|  |  |  |     $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 -benchmark $* > $datadir/bench.tmp 2> /tmp/ffmpeg$$ | 
					
						
							| 
									
										
										
										
											2003-08-24 18:16:16 +00:00
										 |  |  |     egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration)" /tmp/ffmpeg$$ || true | 
					
						
							| 
									
										
										
										
											2003-04-15 01:58:46 +00:00
										 |  |  |     rm -f /tmp/ffmpeg$$ | 
					
						
							| 
									
										
										
										
											2002-08-30 19:34:55 +00:00
										 |  |  |     md5sum -b $f >> $logfile | 
					
						
							| 
									
										
										
										
											2003-04-10 21:29:31 +00:00
										 |  |  |     if [ $f = $raw_dst ] ; then | 
					
						
							|  |  |  |         $tiny_psnr $f $raw_ref >> $logfile | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2002-08-21 19:18:02 +00:00
										 |  |  |     expr "`cat $datadir/bench.tmp`" : '.*utime=\(.*s\)' > $datadir/bench2.tmp | 
					
						
							| 
									
										
										
										
											2002-06-05 18:14:21 +00:00
										 |  |  |     echo `cat $datadir/bench2.tmp` $f >> $benchfile | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-08-30 19:34:55 +00:00
										 |  |  | do_ffmpeg_crc() | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     f="$1" | 
					
						
							|  |  |  |     shift | 
					
						
							| 
									
										
										
										
											2002-09-29 22:44:22 +00:00
										 |  |  |     echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* -f crc $datadir/ffmpeg.crc | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  |     $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* -f crc $datadir/ffmpeg.crc > /tmp/ffmpeg$$ 2>&1 | 
					
						
							| 
									
										
										
										
											2003-08-24 18:16:16 +00:00
										 |  |  |     egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration)" /tmp/ffmpeg$$ || true | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  |     rm -f /tmp/ffmpeg$$  | 
					
						
							|  |  |  |     echo "$f `cat $datadir/ffmpeg.crc`" >> $logfile | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-04-10 21:29:31 +00:00
										 |  |  | do_ffmpeg_nocheck() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     f="$1" | 
					
						
							|  |  |  |     shift | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  |     echo $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 $* | 
					
						
							|  |  |  |     $ffmpeg -y -bitexact -dct_algo 1 -idct_algo 2 -benchmark $* > $datadir/bench.tmp 2> /tmp/ffmpeg$$ | 
					
						
							| 
									
										
										
										
											2003-08-24 18:16:16 +00:00
										 |  |  |     egrep -v "^(Stream|Press|Input|Output|frame|  Stream|  Duration)" /tmp/ffmpeg$$ || true | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  |     rm -f /tmp/ffmpeg$$ | 
					
						
							| 
									
										
										
										
											2003-04-10 21:29:31 +00:00
										 |  |  |     expr "`cat $datadir/bench.tmp`" : '.*utime=\(.*s\)' > $datadir/bench2.tmp | 
					
						
							|  |  |  |     echo `cat $datadir/bench2.tmp` $f >> $benchfile | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | echo "ffmpeg regression test" > $logfile | 
					
						
							|  |  |  | echo "ffmpeg benchmarks" > $benchfile | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-04-10 21:29:31 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | # generate reference for quality check | 
					
						
							|  |  |  | do_ffmpeg_nocheck $raw_ref -y -f pgmyuv -i $raw_src -an -f rawvideo $raw_ref | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mpeg" ] ; then | 
					
						
							|  |  |  | # mpeg1 encoding | 
					
						
							|  |  |  | file=${outfile}mpeg1.mpg | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -f mpeg1video $file  | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # mpeg1 decoding | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | 
					
						
							| 
									
										
										
										
											2003-08-26 07:42:25 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mpeg2" ] ; then | 
					
						
							|  |  |  | # mpeg2 encoding | 
					
						
							|  |  |  | file=${outfile}mpeg2.vob | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -vcodec mpeg2video $file  | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # mpeg2 decoding | 
					
						
							| 
									
										
										
										
											2003-08-26 07:42:25 +00:00
										 |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-09-06 22:59:44 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_msmpeg4v2" ] ; then | 
					
						
							|  |  |  | # msmpeg4 encoding | 
					
						
							|  |  |  | file=${outfile}msmpeg4v2.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4v2 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # msmpeg4v2 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_msmpeg4" ] ; then | 
					
						
							|  |  |  | # msmpeg4 encoding | 
					
						
							|  |  |  | file=${outfile}msmpeg4.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec msmpeg4 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # msmpeg4 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-09-06 22:59:44 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_wmv1" ] ; then | 
					
						
							|  |  |  | # wmv1 encoding | 
					
						
							|  |  |  | file=${outfile}wmv1.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec wmv1 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # wmv1 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-03-08 11:50:26 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_wmv2" ] ; then | 
					
						
							|  |  |  | # wmv2 encoding | 
					
						
							|  |  |  | file=${outfile}wmv2.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec wmv2 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # wmv2 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_h263" ] ; then | 
					
						
							|  |  |  | # h263 encoding | 
					
						
							|  |  |  | file=${outfile}h263.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263 $file | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-10-25 10:50:02 +00:00
										 |  |  | # h263 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_h263p" ] ; then | 
					
						
							|  |  |  | # h263p encoding | 
					
						
							|  |  |  | file=${outfile}h263p.avi | 
					
						
							| 
									
										
										
										
											2003-12-08 17:45:59 +00:00
										 |  |  | do_ffmpeg $file -y -qscale 2 -umv -aiv -aic -f pgmyuv -i $raw_src -s 352x288 -an -vcodec h263p -ps 300 $file | 
					
						
							| 
									
										
										
										
											2002-10-25 10:50:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | # h263p decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mpeg4" ] ; then | 
					
						
							|  |  |  | # mpeg4 | 
					
						
							| 
									
										
										
										
											2003-11-04 12:57:19 +00:00
										 |  |  | file=${outfile}odivx.mp4 | 
					
						
							| 
									
										
										
										
											2003-11-28 22:09:09 +00:00
										 |  |  | do_ffmpeg $file -y -4mv -hq -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # mpeg4 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-11 20:51:03 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_huffyuv" ] ; then | 
					
						
							|  |  |  | # huffyuv | 
					
						
							|  |  |  | file=${outfile}huffyuv.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec huffyuv -strict -1 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # huffyuv decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo -strict -1 $raw_dst | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-09-20 15:22:24 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_rc" ] ; then | 
					
						
							|  |  |  | # mpeg4 rate control | 
					
						
							|  |  |  | file=${outfile}mpeg4-rc.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -b 400 -bf 2 -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # mpeg4 rate control decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mpeg4adv" ] ; then | 
					
						
							|  |  |  | # mpeg4 | 
					
						
							|  |  |  | file=${outfile}mpeg4-adv.avi | 
					
						
							| 
									
										
										
										
											2003-10-01 16:45:59 +00:00
										 |  |  | do_ffmpeg $file -y -qscale 9 -4mv -hq -part -ps 200 -aic -f pgmyuv -i $raw_src -an -vcodec mpeg4 $file | 
					
						
							| 
									
										
										
										
											2002-09-20 15:22:24 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # mpeg4 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-08 12:13:32 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mpeg1b" ] ; then | 
					
						
							|  |  |  | # mpeg1 | 
					
						
							|  |  |  | file=${outfile}mpeg1b.mpg | 
					
						
							| 
									
										
										
										
											2003-04-10 14:16:19 +00:00
										 |  |  | do_ffmpeg $file -y -qscale 8 -bf 3 -ps 200 -f pgmyuv -i $raw_src -an -vcodec mpeg1video $file | 
					
						
							| 
									
										
										
										
											2003-02-08 12:13:32 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # mpeg1 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mjpeg" ] ; then | 
					
						
							|  |  |  | # mjpeg | 
					
						
							|  |  |  | file=${outfile}mjpeg.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec mjpeg $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # mjpeg decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							| 
									
										
										
										
											2003-07-12 16:26:08 +00:00
										 |  |  | if [ -n "$do_ljpeg" ] ; then | 
					
						
							|  |  |  | # ljpeg | 
					
						
							|  |  |  | file=${outfile}ljpeg.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -f pgmyuv -i $raw_src -an -vcodec ljpeg $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ljpeg decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | if [ -n "$do_rv10" ] ; then | 
					
						
							|  |  |  | # rv10 encoding | 
					
						
							|  |  |  | file=${outfile}rv10.rm | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an $file  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # rv10 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-05-27 22:43:34 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_asv1" ] ; then | 
					
						
							|  |  |  | # asv1 encoding | 
					
						
							|  |  |  | file=${outfile}asv1.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec asv1 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # asv1 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-09-01 13:05:21 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_asv2" ] ; then | 
					
						
							|  |  |  | # asv2 encoding | 
					
						
							|  |  |  | file=${outfile}asv2.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec asv2 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # asv2 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-07-09 23:52:06 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_flv" ] ; then | 
					
						
							|  |  |  | # flv encoding | 
					
						
							|  |  |  | file=${outfile}flv.flv | 
					
						
							|  |  |  | do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -an -vcodec flv $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # flv decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-11-03 21:59:21 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_ffv1" ] ; then | 
					
						
							|  |  |  | # ffv1 encoding | 
					
						
							|  |  |  | file=${outfile}ffv1.avi | 
					
						
							|  |  |  | do_ffmpeg $file -y -strict -1 -f pgmyuv -i $raw_src -an -vcodec ffv1 $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ffv1 decoding | 
					
						
							|  |  |  | do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_mp2" ] ; then | 
					
						
							|  |  |  | # mp2 encoding | 
					
						
							|  |  |  | file=${outfile}mp2.mp2 | 
					
						
							|  |  |  | do_ffmpeg $file -y -ab 128 -ac 2 -ar 44100 -f s16le -i $pcm_src $file  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # mp2 decoding | 
					
						
							|  |  |  | do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst  | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ################################### | 
					
						
							|  |  |  | if [ -n "$do_ac3" ] ; then | 
					
						
							|  |  |  | # ac3 encoding | 
					
						
							|  |  |  | file=${outfile}ac3.rm | 
					
						
							|  |  |  | do_ffmpeg $file -y -ab 128 -ac 2 -f s16le  -i $pcm_src -vn $file  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ac3 decoding | 
					
						
							| 
									
										
										
										
											2003-03-30 12:24:46 +00:00
										 |  |  | #do_ffmpeg $pcm_dst -y -i $file -f wav $pcm_dst  | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | ################################### | 
					
						
							|  |  |  | # libav testing | 
					
						
							|  |  |  | ################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ -n "$do_libav" ] ; then | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # avi | 
					
						
							|  |  |  | file=${outfile}libav.avi | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # asf | 
					
						
							|  |  |  | file=${outfile}libav.asf | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # rm | 
					
						
							|  |  |  | file=${outfile}libav.rm | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | # broken | 
					
						
							|  |  |  | #do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # mpegps | 
					
						
							|  |  |  | file=${outfile}libav.mpg | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # swf (decode audio only) | 
					
						
							|  |  |  | file=${outfile}libav.swf | 
					
						
							| 
									
										
										
										
											2002-05-25 22:47:17 +00:00
										 |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # ffm | 
					
						
							|  |  |  | file=${outfile}libav.ffm | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							| 
									
										
										
										
											2002-05-25 22:47:17 +00:00
										 |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-07-09 23:52:06 +00:00
										 |  |  | # flv | 
					
						
							|  |  |  | file=${outfile}libav.flv | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-10-01 16:45:59 +00:00
										 |  |  | # mov | 
					
						
							|  |  |  | #file=${outfile}libav.mov | 
					
						
							|  |  |  | #do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | #do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # nut | 
					
						
							|  |  |  | file=${outfile}libav.nut | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # XXX: need mpegts tests (add bitstreams or add output capability in ffmpeg) | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #################### | 
					
						
							|  |  |  | # streamed images | 
					
						
							|  |  |  | # mjpeg | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  | #file=${outfile}libav.mjpeg | 
					
						
							|  |  |  | #do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file | 
					
						
							|  |  |  | #do_ffmpeg_crc $file -i $file | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-11 05:32:29 +00:00
										 |  |  | # pbmpipe | 
					
						
							|  |  |  | file=${outfile}libav.pbm | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -f imagepipe -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | # pgmpipe | 
					
						
							| 
									
										
										
										
											2003-01-11 05:32:29 +00:00
										 |  |  | file=${outfile}libav.pgm | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -f imagepipe -i $file | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # ppmpipe | 
					
						
							| 
									
										
										
										
											2003-01-11 05:32:29 +00:00
										 |  |  | file=${outfile}libav.ppm | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src -f imagepipe $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -f imagepipe -i $file | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # gif | 
					
						
							|  |  |  | file=${outfile}libav.gif | 
					
						
							| 
									
										
										
										
											2003-01-11 05:32:29 +00:00
										 |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file | 
					
						
							|  |  |  | #do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # yuv4mpeg | 
					
						
							|  |  |  | file=${outfile}libav.yuv4mpeg | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f pgmyuv -i $raw_src $file | 
					
						
							|  |  |  | #do_ffmpeg_crc $file -i $file | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #################### | 
					
						
							|  |  |  | # image formats | 
					
						
							|  |  |  | # pgm (we do not do md5 on image files yet) | 
					
						
							|  |  |  | file=${outfile}libav%d.pgm | 
					
						
							|  |  |  | $ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ppm (we do not do md5 on image files yet) | 
					
						
							|  |  |  | file=${outfile}libav%d.ppm | 
					
						
							|  |  |  | $ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-25 22:47:17 +00:00
										 |  |  | # jpeg (we do not do md5 on image files yet) | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  | #file=${outfile}libav%d.jpg | 
					
						
							|  |  |  | #$ffmpeg -t 0.5 -y -qscale 10 -f pgmyuv -i $raw_src $file | 
					
						
							|  |  |  | #do_ffmpeg_crc $file -i $file | 
					
						
							| 
									
										
										
										
											2002-05-25 22:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | #################### | 
					
						
							|  |  |  | # audio only | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # wav | 
					
						
							|  |  |  | file=${outfile}libav.wav | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # alaw | 
					
						
							|  |  |  | file=${outfile}libav.al | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # mulaw | 
					
						
							|  |  |  | file=${outfile}libav.ul | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # au | 
					
						
							|  |  |  | file=${outfile}libav.au | 
					
						
							|  |  |  | do_ffmpeg $file -t 1 -y -qscale 10 -f s16le -i $pcm_src $file | 
					
						
							|  |  |  | do_ffmpeg_crc $file -i $file | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-05-12 02:53:43 +00:00
										 |  |  | #################### | 
					
						
							|  |  |  | # pix_fmt conversions | 
					
						
							|  |  |  | conversions="yuv420p yuv422p yuv444p yuv422 yuv410p yuv411p yuvj420p \
 | 
					
						
							|  |  |  |              yuvj422p yuvj444p rgb24 bgr24 rgba32 rgb565 rgb555 gray monow \
 | 
					
						
							|  |  |  | 	     monob pal8"
 | 
					
						
							|  |  |  | for pix_fmt in $conversions ; do | 
					
						
							|  |  |  |     file=${outfile}libav-${pix_fmt}.yuv | 
					
						
							|  |  |  |     do_ffmpeg_nocheck $file -r 1 -t 1 -y -f pgmyuv -i $raw_src \
 | 
					
						
							|  |  |  |                             -f rawvideo -s 352x288 -pix_fmt $pix_fmt $raw_dst | 
					
						
							|  |  |  |     do_ffmpeg $file -f rawvideo -s 352x288 -pix_fmt $pix_fmt -i $raw_dst \
 | 
					
						
							|  |  |  |                     -f rawvideo -s 352x288 -pix_fmt yuv444p $file | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:20:05 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-04-15 22:29:37 +00:00
										 |  |  | if $diff_cmd $logfile $reffile ; then | 
					
						
							| 
									
										
										
										
											2002-05-18 23:18:22 +00:00
										 |  |  |     echo  | 
					
						
							|  |  |  |     echo Regression test succeeded. | 
					
						
							|  |  |  |     exit 0 | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     echo  | 
					
						
							|  |  |  |     echo Regression test: Error. | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  | fi |