tests/tiny_psnr $srcfile $decfile $cmp_unit $cmp_shift
}
-avconv2="$target_exec ${target_path}/avconv"
+transcode(){
+ src_fmt=$1
+ srcfile=$2
+ enc_fmt=$3
+ enc_opt=$4
+ final_decode=$5
+ encfile="${outdir}/${test}.${enc_fmt}"
+ test "$7" = -keep || cleanfiles="$cleanfiles $encfile"
+ tsrcfile=$(target_path $srcfile)
+ tencfile=$(target_path $encfile)
+ ffmpeg -f $src_fmt $DEC_OPTS -i $tsrcfile $ENC_OPTS $enc_opt $FLAGS \
+ -f $enc_fmt -y $tencfile || return
+ do_md5sum $encfile
+ echo $(wc -c $encfile)
+ ffmpeg $DEC_OPTS -i $encfile $ENC_OPTS $FLAGS $final_decode \
+ -f framecrc - || return
+}
+
+stream_remux(){
+ src_fmt=$1
+ srcfile=$2
+ enc_fmt=$3
+ stream_maps=$4
+ final_decode=$5
+ encfile="${outdir}/${test}.${enc_fmt}"
+ test "$7" = -keep || cleanfiles="$cleanfiles $encfile"
+ tsrcfile=$(target_path $srcfile)
+ tencfile=$(target_path $encfile)
+ ffmpeg -f $src_fmt -i $tsrcfile $stream_maps -codec copy $FLAGS \
+ -f $enc_fmt -y $tencfile || return
+ ffmpeg $DEC_OPTS -i $encfile $ENC_OPTS $FLAGS $final_decode \
+ -f framecrc - || return
+}
+
+ # FIXME: There is a certain duplication between the avconv-related helper
+ # functions above and below that should be refactored.
-AVCONV_OPTS="-nostats -y -cpuflags $cpuflags -threads $threads"
++ffmpeg2="$target_exec ${target_path}/ffmpeg"
+ raw_src="${target_path}/tests/vsynth1/%02d.pgm"
+ crcfile="tests/data/$test.lavf.crc"
+ target_crcfile="${target_path}/$crcfile"
+
++[ "${V-0}" -gt 0 ] && echov=echov || echov=:
++
+ echov(){
+ echo "$@" >&3
+ }
+
-ENC_OPTS="$DEC_OPTS -threads 1 -dct fastint"
++AVCONV_OPTS="-nostdin -nostats -y -cpuflags $cpuflags -threads $threads"
+ DEC_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact -fflags +bitexact"
- $echov $avconv2 $AVCONV_OPTS $*
- $avconv2 $AVCONV_OPTS $*
++ENC_OPTS="$DEC_OPTS -threads $threads -dct fastint"
+
+ run_avconv(){
- do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10
++ $echov $ffmpeg2 $AVCONV_OPTS $*
++ $ffmpeg2 $AVCONV_OPTS $*
+ }
+
+ do_avconv(){
+ f="$1"
+ shift
+ set -- $* ${target_path}/$f
+ run_avconv $*
+ do_md5sum $f
+ echo $(wc -c $f)
+ }
+
+ do_avconv_crc(){
+ f="$1"
+ shift
+ run_avconv $* -f crc "$target_crcfile"
+ echo "$f $(cat $crcfile)"
+ }
+
+ lavf_image2pipe(){
+ t="${test#lavf-}"
+ t="${t%pipe}"
+ outdir="tests/data/lavf"
+ file=${outdir}/${t}pipe.$t
++ do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src -f image2pipe "$ENC_OPTS -metadata title=lavftest" -t 1 -qscale 10
+ do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file
+ }
+
+lavffatetest(){
+ t="${test#lavf-fate-}"
+ ref=${base}/ref/lavf-fate/$t
+ ${base}/lavf-regression.sh $t lavf-fate tests/vsynth1 "$target_exec" "$target_path" "$threads" "$thread_type" "$cpuflags" "$target_samples"
+}
+
lavftest(){
t="${test#lavf-}"
ref=${base}/ref/lavf/$t
do_avconv_crc $file $DEC_OPTS -i $target_path/$file $4
}
- do_streamed_images()
- {
- file=${outfile}${1}pipe.$1
- do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src -f image2pipe $ENC_OPTS -t 1 -qscale 10
- do_avconv_crc $file $DEC_OPTS -f image2pipe -i $target_path/$file
- }
-
+do_lavf_timecode_nodrop() { do_lavf $1 "" "$2 -timecode 02:56:14:13"; }
+do_lavf_timecode_drop() { do_lavf $1 "" "$2 -timecode 02:56:14.13 -r 30000/1001"; }
+
+do_lavf_timecode()
+{
+ do_lavf_timecode_nodrop "$@"
+ do_lavf_timecode_drop "$@"
+ do_lavf $1 "" "$2"
+}
+
do_image_formats()
{
outfile="$datadir/images/$1/"
# streamed images
# mjpeg
#file=${outfile}lavf.mjpeg
-#do_avconv $file -t 1 -qscale 10 -f image2 -c:v pgmyuv -i $raw_src
+#do_avconv $file -t 1 -qscale 10 -f image2 -vcodec pgmyuv -i $raw_src
#do_avconv_crc $file -i $target_path/$file
- if [ -n "$do_pbmpipe" ] ; then
- do_streamed_images pbm
- fi
-
- if [ -n "$do_pgmpipe" ] ; then
- do_streamed_images pgm
- fi
-
- if [ -n "$do_ppmpipe" ] ; then
- do_streamed_images ppm
- fi
-
if [ -n "$do_gif" ] ; then
file=${outfile}lavf.gif
-do_avconv $file $DEC_OPTS -f image2 -c:v pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24
+do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -qscale 10 -pix_fmt rgb24
+do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24
+fi
+
+if [ -n "$do_apng" ] ; then
+file=${outfile}lavf.apng
+do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -t 1 -pix_fmt rgb24
+do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24
+file_copy=${outfile}lavf.copy.apng
+do_avconv $file_copy $DEC_OPTS -i $file $ENC_OPTS -c copy
+do_avconv_crc $file_copy $DEC_OPTS -i $target_path/$file_copy
+file=${outfile}lavf.png
+do_avconv $file $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $ENC_OPTS -pix_fmt rgb24 -frames:v 1 -f apng
do_avconv_crc $file $DEC_OPTS -i $target_path/$file -pix_fmt rgb24
fi