]> git.sesse.net Git - ffmpeg/blobdiff - tests/codec-regression.sh
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / tests / codec-regression.sh
index 6a1dee6e2dd3c459deef2d0dcfcc0839679403ca..a8671699a53a5134015934409a1fc90452c5b5db 100755 (executable)
@@ -17,6 +17,7 @@ do_avconv $raw_ref -f image2 -vcodec pgmyuv -i $raw_src -an -f rawvideo
 fi
 if [ -n "$do_aref" ]; then
 do_avconv $pcm_ref -b 128k -ac 2 -ar 44100 -f s16le -i $pcm_src -f wav
+do_avconv $pcm_ref_1ch -b 128k -ac 1 -ar 16000 -f s16le -i $pcm_src_1ch -f wav
 fi
 
 if [ -n "$do_cljr" ] ; then
@@ -70,6 +71,11 @@ if [ -n "$do_mpeg2thread_ilace" ]; then
 # mpeg2 encoding interlaced using intra vlc
 do_video_encoding mpeg2threadivlc.mpg "-qscale 10 -vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -intra_vlc 1 -threads 2 -slices 2"
 do_video_decoding
+
+# mpeg2 encoding interlaced
+file=${outfile}mpeg2reuse.mpg
+do_avconv $file $DEC_OPTS -me_threshold 256 -i ${target_path}/${outfile}mpeg2thread.mpg $ENC_OPTS -same_quant -me_threshold 256 -mb_threshold 1024 -vcodec mpeg2video -f mpeg1video -bf 2 -flags +ildct+ilme -threads 4
+do_video_decoding
 fi
 
 if [ -n "$do_msmpeg4v2" ] ; then
@@ -82,6 +88,11 @@ do_video_encoding msmpeg4.avi "-qscale 10 -an -vcodec msmpeg4"
 do_video_decoding
 fi
 
+if [ -n "$do_msvideo1" ] ; then
+do_video_encoding msvideo1.avi "-an -vcodec msvideo1"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
 if [ -n "$do_wmv1" ] ; then
 do_video_encoding wmv1.avi "-qscale 10 -an -vcodec wmv1"
 do_video_decoding
@@ -117,6 +128,11 @@ do_video_encoding huffyuv.avi "-an -vcodec huffyuv -pix_fmt yuv422p -sws_flags n
 do_video_decoding "" "-strict -2 -pix_fmt yuv420p -sws_flags neighbor+bitexact"
 fi
 
+if [ -n "$do_amv" ] ; then
+do_video_encoding amv.avi "-an -vcodec amv"
+do_video_decoding
+fi
+
 if [ -n "$do_rc" ] ; then
 do_video_encoding mpeg4-rc.avi "-b 400k -bf 2 -an -vcodec mpeg4"
 do_video_decoding
@@ -167,6 +183,11 @@ do_video_encoding mjpeg.avi "-qscale 9 -an -vcodec mjpeg -pix_fmt yuvj420p"
 do_video_decoding "" "-pix_fmt yuv420p"
 fi
 
+if [ -n "$do_jpeg2000" ] ; then
+do_video_encoding jpeg2000.avi "-qscale 7 -an -vcodec j2k -strict experimental -pix_fmt rgb24"
+do_video_decoding "-vcodec j2k -strict experimental" "-pix_fmt yuv420p"
+fi
+
 if [ -n "$do_ljpeg" ] ; then
 do_video_encoding ljpeg.avi "-an -vcodec ljpeg -strict -1"
 do_video_decoding
@@ -207,6 +228,11 @@ do_video_encoding ffv1.avi "-strict -2 -an -vcodec ffv1"
 do_video_decoding
 fi
 
+if [ -n "$do_ffvhuff" ] ; then
+do_video_encoding ffvhuff.avi "-an -vcodec ffvhuff"
+do_video_decoding ""
+fi
+
 if [ -n "$do_snow" ] ; then
 do_video_encoding snow.avi "-strict -2 -an -vcodec snow -qscale 2 -flags +qpel -me_method iter -dia_size 2 -cmp 12 -subcmp 12 -s 128x64"
 do_video_decoding "" "-s 352x288"
@@ -253,8 +279,18 @@ do_video_encoding dnxhd-720p-10bit.dnxhd "-s hd720 -b 90M -pix_fmt yuv422p10 -vf
 do_video_decoding "" "-s cif -pix_fmt yuv420p"
 fi
 
+if [ -n "$do_mpng" ] ; then
+do_video_encoding mpng.avi "-an -vcodec png"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
 if [ -n "$do_prores" ] ; then
-do_video_encoding prores.mov "-vcodec prores -profile hq"
+do_video_encoding prores.mov "-vcodec prores"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
+if [ -n "$do_prores_kostya" ] ; then
+do_video_encoding prores_kostya.mov "-vcodec prores_kostya -profile hq"
 do_video_decoding "" "-pix_fmt yuv420p"
 fi
 
@@ -268,6 +304,12 @@ do_video_encoding flashsv.flv "-an -vcodec flashsv -sws_flags neighbor+full_chro
 do_video_decoding "" "-pix_fmt yuv420p -sws_flags area+accurate_rnd+bitexact"
 fi
 
+if [ -n "$do_flashsv2" ] ; then
+do_video_encoding flashsv2.flv "-an -vcodec flashsv2 -sws_flags neighbor+full_chroma_int+accurate_rnd+bitexact -strict experimental -compression_level 0"
+do_video_encoding flashsv2I.flv "-an -vcodec flashsv2 -sws_flags neighbor+full_chroma_int+accurate_rnd+bitexact -strict experimental -g 1"
+do_video_decoding "" "-pix_fmt yuv420p -sws_flags area+accurate_rnd+bitexact"
+fi
+
 if [ -n "$do_roq" ] ; then
 do_video_encoding roqav.roq "-vframes 5"
 do_video_decoding "" "-pix_fmt yuv420p"
@@ -278,21 +320,63 @@ do_video_encoding qtrle.mov "-an -vcodec qtrle"
 do_video_decoding "" "-pix_fmt yuv420p"
 fi
 
+if [ -n "$do_qtrlegray" ] ; then
+do_video_encoding qtrlegray.mov "-an -vcodec qtrle -pix_fmt gray"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
 if [ -n "$do_rgb" ] ; then
 do_video_encoding rgb.avi "-an -vcodec rawvideo -pix_fmt bgr24"
 do_video_decoding "" "-pix_fmt yuv420p"
 fi
 
+if [ -n "$do_r210" ] ; then
+do_video_encoding r210.avi "-an -c:v r210"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
 if [ -n "$do_v210" ] ; then
 do_video_encoding v210.avi "-an -c:v v210"
 do_video_decoding "" "-pix_fmt yuv420p"
 fi
 
+if [ -n "$do_v308" ] ; then
+do_video_encoding v308.avi "-an -c:v v308"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
+if [ -n "$do_v408" ] ; then
+do_video_encoding v408.avi "-an -c:v v408 -sws_flags neighbor+bitexact"
+do_video_decoding "" "-sws_flags neighbor+bitexact -pix_fmt yuv420p"
+fi
+
 if [ -n "$do_yuv" ] ; then
 do_video_encoding yuv.avi "-an -vcodec rawvideo -pix_fmt yuv420p"
 do_video_decoding "" "-pix_fmt yuv420p"
 fi
 
+if [ -n "$do_yuv4" ] ; then
+do_video_encoding yuv4.avi "-an -c:v yuv4"
+do_video_decoding
+fi
+
+if [ -n "$do_y41p" ] ; then
+do_video_encoding y41p.avi "-an -c:v y41p"
+do_video_decoding
+fi
+
+if [ -n "$do_zlib" ] ; then
+do_video_encoding zlib.avi "-an -vcodec zlib"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
+if [ -n "$do_zmbv" ] ; then
+# default level of 9 leads to different results with
+# different zlib versions, and even with 0 md5 differs
+do_video_encoding_nomd5 zmbv.avi "-an -vcodec zmbv -compression_level 0"
+do_video_decoding "" "-pix_fmt yuv420p"
+fi
+
 if [ -n "$do_mp2" ] ; then
 do_audio_encoding mp2.mp2
 do_audio_decoding
@@ -306,13 +390,18 @@ do_audio_encoding ac3.ac3 "-vn -acodec ac3_fixed"
 #$tiny_psnr $pcm_dst $pcm_ref 2 1024
 fi
 
+if [ -n "$do_g723_1" ] ; then
+do_audio_encoding g723_1.tco "-b:a 6.3k -ac 1 -ar 8000 -acodec g723_1"
+do_audio_decoding
+fi
+
 if [ -n "$do_g722" ] ; then
 do_audio_encoding g722.wav "-b 64k -ac 1 -ar 16000 -acodec g722"
 do_audio_decoding
 fi
 
 if [ -n "$do_g726" ] ; then
-do_audio_encoding g726.wav "-b 32k -ac 1 -ar 8000 -acodec g726"
+do_audio_encoding g726.wav "-b:a 32k -ac 1 -ar 8000 -acodec g726"
 do_audio_decoding
 fi
 
@@ -356,17 +445,27 @@ do_audio_encoding flac.flac "-acodec flac -compression_level 2"
 do_audio_decoding
 fi
 
-if [ -n "$do_wmav1" ] ; then
-do_audio_encoding wmav1.asf "-acodec wmav1"
-do_avconv_nomd5 $pcm_dst $DEC_OPTS -i $target_path/$file -f wav
-$tiny_psnr $pcm_dst $pcm_ref 2 8192
+if [ -n "$do_dca" ] ; then
+do_audio_encoding dca.dts "-strict -2 -acodec dca"
+# decoding is not bit-exact, so skip md5 of decoded file
+do_audio_decoding_nomd5
+$tiny_psnr $pcm_dst $pcm_ref 2 1920
+fi
+
+if [ -n "$do_ra144" ] ; then
+do_audio_encoding ra144.ra "-ac 1 -acodec real_144"
+do_audio_decoding "-ac 2"
+$tiny_psnr $pcm_dst $pcm_ref 2 640
 fi
-if [ -n "$do_wmav2" ] ; then
-do_audio_encoding wmav2.asf "-acodec wmav2"
-do_avconv_nomd5 $pcm_dst $DEC_OPTS -i $target_path/$file -f wav
-$tiny_psnr $pcm_dst $pcm_ref 2 8192
+
+if [ -n "$do_roqaudio" ] ; then
+do_audio_encoding roqaudio.roq "-ar 22050 -acodec roq_dpcm"
+do_audio_decoding "-ar 44100"
 fi
 
+# AAC and nellymoser are not bit-exact across platforms,
+# they were moved to enc_dec_pcm tests instead.
+
 #if [ -n "$do_vorbis" ] ; then
 # vorbis
 #disabled because it is broken