mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: (23 commits) applehttp: Properly clean up if unable to probe a segment applehttp: Avoid reading uninitialized memory fate: Replace misleading "aac" in the name of an ADTS test with "adts". fate: Drop pointless "-an" from pictor test command. fate: split off image codec FATE tests into their own file fate: split off WMA codec FATE tests into their own file fate: split off lossless video and audio FATE tests into their own files fate: split off qtrle codec FATE tests into their own file fate: split off Ut Video codec FATE tests into their own file fate: split off screen codec FATE tests into their own file fate: split off Real Inc. codec FATE tests into their own file fate: split off AC-3 codec FATE tests into their own file mpegvideo: remove abort() in ff_find_unused_picture() rv40: NEON optimised loop filter strength selection rv40: rearrange loop filter functions configure: cosmetics: sort some lists where appropriate swscale_mmx: drop no longer required parameters from VSCALEX macros swscale: Mark yuv2planeX_8_mmx as MMX2; it contains MMX2 instructions. build: conditionally compile x86 H.264 chroma optimizations v410 encoder and decoder ... Conflicts: Changelog configure doc/developer.texi doc/general.texi libavcodec/arm/asm.S libavcodec/avcodec.h libavcodec/v410dec.c libavcodec/v410enc.c libavcodec/version.h libavcodec/x86/Makefile libavcodec/x86/dsputil_mmx.c libswscale/x86/swscale_mmx.c tests/Makefile tests/fate2.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
e462257242
2
Makefile
2
Makefile
@ -77,7 +77,7 @@ define DOSUBDIR
|
|||||||
$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
|
$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
|
||||||
SUBDIR := $(1)/
|
SUBDIR := $(1)/
|
||||||
include $(SRC_PATH)/$(1)/Makefile
|
include $(SRC_PATH)/$(1)/Makefile
|
||||||
include $(SRC_PATH)/subdir.mak
|
include $(SRC_PATH)/library.mak
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
|
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
|
||||||
|
98
configure
vendored
98
configure
vendored
@ -1005,6 +1005,7 @@ CONFIG_LIST="
|
|||||||
golomb
|
golomb
|
||||||
gpl
|
gpl
|
||||||
gray
|
gray
|
||||||
|
h264chroma
|
||||||
h264dsp
|
h264dsp
|
||||||
h264pred
|
h264pred
|
||||||
hardcoded_tables
|
hardcoded_tables
|
||||||
@ -1146,8 +1147,8 @@ HAVE_LIST="
|
|||||||
dev_bktr_ioctl_bt848_h
|
dev_bktr_ioctl_bt848_h
|
||||||
dev_bktr_ioctl_meteor_h
|
dev_bktr_ioctl_meteor_h
|
||||||
dev_ic_bt8xx_h
|
dev_ic_bt8xx_h
|
||||||
dev_video_meteor_ioctl_meteor_h
|
|
||||||
dev_video_bktr_ioctl_bt848_h
|
dev_video_bktr_ioctl_bt848_h
|
||||||
|
dev_video_meteor_ioctl_meteor_h
|
||||||
dlfcn_h
|
dlfcn_h
|
||||||
dlopen
|
dlopen
|
||||||
dos_paths
|
dos_paths
|
||||||
@ -1166,7 +1167,6 @@ HAVE_LIST="
|
|||||||
GetProcessTimes
|
GetProcessTimes
|
||||||
getrusage
|
getrusage
|
||||||
gnu_as
|
gnu_as
|
||||||
struct_rusage_ru_maxrss
|
|
||||||
ibm_asm
|
ibm_asm
|
||||||
inet_aton
|
inet_aton
|
||||||
inline_asm
|
inline_asm
|
||||||
@ -1192,27 +1192,28 @@ HAVE_LIST="
|
|||||||
mkstemp
|
mkstemp
|
||||||
mmap
|
mmap
|
||||||
PeekNamedPipe
|
PeekNamedPipe
|
||||||
|
poll_h
|
||||||
posix_memalign
|
posix_memalign
|
||||||
round
|
round
|
||||||
roundf
|
roundf
|
||||||
sdl
|
sdl
|
||||||
sdl_video_size
|
sdl_video_size
|
||||||
setmode
|
setmode
|
||||||
|
setrlimit
|
||||||
sndio_h
|
sndio_h
|
||||||
socklen_t
|
socklen_t
|
||||||
soundcard_h
|
soundcard_h
|
||||||
poll_h
|
|
||||||
setrlimit
|
|
||||||
strerror_r
|
strerror_r
|
||||||
strptime
|
strptime
|
||||||
struct_addrinfo
|
struct_addrinfo
|
||||||
struct_ipv6_mreq
|
struct_ipv6_mreq
|
||||||
|
struct_rusage_ru_maxrss
|
||||||
struct_sockaddr_in6
|
struct_sockaddr_in6
|
||||||
struct_sockaddr_sa_len
|
struct_sockaddr_sa_len
|
||||||
struct_sockaddr_storage
|
struct_sockaddr_storage
|
||||||
symver
|
symver
|
||||||
symver_gnu_asm
|
|
||||||
symver_asm_label
|
symver_asm_label
|
||||||
|
symver_gnu_asm
|
||||||
sys_mman_h
|
sys_mman_h
|
||||||
sys_resource_h
|
sys_resource_h
|
||||||
sys_select_h
|
sys_select_h
|
||||||
@ -1335,8 +1336,8 @@ fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
|
|||||||
fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
|
fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
|
||||||
fast_unaligned_if_any="armv6 ppc x86"
|
fast_unaligned_if_any="armv6 ppc x86"
|
||||||
|
|
||||||
need_memalign="altivec neon sse"
|
|
||||||
inline_asm_deps="!tms470"
|
inline_asm_deps="!tms470"
|
||||||
|
need_memalign="altivec neon sse"
|
||||||
|
|
||||||
symver_if_any="symver_asm_label symver_gnu_asm"
|
symver_if_any="symver_asm_label symver_gnu_asm"
|
||||||
|
|
||||||
@ -1387,8 +1388,8 @@ h263_encoder_select="aandct"
|
|||||||
h263_vaapi_hwaccel_select="vaapi h263_decoder"
|
h263_vaapi_hwaccel_select="vaapi h263_decoder"
|
||||||
h263i_decoder_select="h263_decoder"
|
h263i_decoder_select="h263_decoder"
|
||||||
h263p_encoder_select="h263_encoder"
|
h263p_encoder_select="h263_encoder"
|
||||||
h264_decoder_select="golomb h264dsp h264pred"
|
|
||||||
h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
|
h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
|
||||||
|
h264_decoder_select="golomb h264chroma h264dsp h264pred"
|
||||||
h264_dxva2_hwaccel_deps="dxva2api_h"
|
h264_dxva2_hwaccel_deps="dxva2api_h"
|
||||||
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
|
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
|
||||||
h264_vaapi_hwaccel_select="vaapi h264_decoder"
|
h264_vaapi_hwaccel_select="vaapi h264_decoder"
|
||||||
@ -1403,32 +1404,32 @@ loco_decoder_select="golomb"
|
|||||||
mjpeg_encoder_select="aandct"
|
mjpeg_encoder_select="aandct"
|
||||||
mlp_decoder_select="mlp_parser"
|
mlp_decoder_select="mlp_parser"
|
||||||
mp1_decoder_select="mpegaudiodsp"
|
mp1_decoder_select="mpegaudiodsp"
|
||||||
mp2_decoder_select="mpegaudiodsp"
|
|
||||||
mp3adu_decoder_select="mpegaudiodsp"
|
|
||||||
mp3_decoder_select="mpegaudiodsp"
|
|
||||||
mp3on4_decoder_select="mpegaudiodsp"
|
|
||||||
mp1float_decoder_select="mpegaudiodsp"
|
mp1float_decoder_select="mpegaudiodsp"
|
||||||
|
mp2_decoder_select="mpegaudiodsp"
|
||||||
mp2float_decoder_select="mpegaudiodsp"
|
mp2float_decoder_select="mpegaudiodsp"
|
||||||
|
mp3_decoder_select="mpegaudiodsp"
|
||||||
|
mp3adu_decoder_select="mpegaudiodsp"
|
||||||
mp3adufloat_decoder_select="mpegaudiodsp"
|
mp3adufloat_decoder_select="mpegaudiodsp"
|
||||||
mp3float_decoder_select="mpegaudiodsp"
|
mp3float_decoder_select="mpegaudiodsp"
|
||||||
|
mp3on4_decoder_select="mpegaudiodsp"
|
||||||
mp3on4float_decoder_select="mpegaudiodsp"
|
mp3on4float_decoder_select="mpegaudiodsp"
|
||||||
mpeg1video_encoder_select="aandct"
|
|
||||||
mpeg2video_encoder_select="aandct"
|
|
||||||
mpeg4_decoder_select="h263_decoder mpeg4video_parser"
|
|
||||||
mpeg4_encoder_select="h263_encoder"
|
|
||||||
mpeg_vdpau_decoder_select="vdpau mpegvideo_decoder"
|
mpeg_vdpau_decoder_select="vdpau mpegvideo_decoder"
|
||||||
|
mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
|
||||||
|
mpeg_xvmc_decoder_select="mpegvideo_decoder"
|
||||||
mpeg1_vdpau_decoder_select="vdpau mpeg1video_decoder"
|
mpeg1_vdpau_decoder_select="vdpau mpeg1video_decoder"
|
||||||
mpeg1_vdpau_hwaccel_select="vdpau mpeg1video_decoder"
|
mpeg1_vdpau_hwaccel_select="vdpau mpeg1video_decoder"
|
||||||
|
mpeg1video_encoder_select="aandct"
|
||||||
mpeg2_crystalhd_decoder_select="crystalhd"
|
mpeg2_crystalhd_decoder_select="crystalhd"
|
||||||
mpeg2_dxva2_hwaccel_deps="dxva2api_h"
|
mpeg2_dxva2_hwaccel_deps="dxva2api_h"
|
||||||
mpeg2_dxva2_hwaccel_select="dxva2 mpeg2video_decoder"
|
mpeg2_dxva2_hwaccel_select="dxva2 mpeg2video_decoder"
|
||||||
mpeg2_vdpau_hwaccel_select="vdpau mpeg2video_decoder"
|
mpeg2_vdpau_hwaccel_select="vdpau mpeg2video_decoder"
|
||||||
mpeg2_vaapi_hwaccel_select="vaapi mpeg2video_decoder"
|
mpeg2_vaapi_hwaccel_select="vaapi mpeg2video_decoder"
|
||||||
|
mpeg2video_encoder_select="aandct"
|
||||||
mpeg4_crystalhd_decoder_select="crystalhd"
|
mpeg4_crystalhd_decoder_select="crystalhd"
|
||||||
|
mpeg4_decoder_select="h263_decoder mpeg4video_parser"
|
||||||
|
mpeg4_encoder_select="h263_encoder"
|
||||||
mpeg4_vaapi_hwaccel_select="vaapi mpeg4_decoder"
|
mpeg4_vaapi_hwaccel_select="vaapi mpeg4_decoder"
|
||||||
mpeg4_vdpau_decoder_select="vdpau mpeg4_decoder"
|
mpeg4_vdpau_decoder_select="vdpau mpeg4_decoder"
|
||||||
mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
|
|
||||||
mpeg_xvmc_decoder_select="mpegvideo_decoder"
|
|
||||||
msmpeg4_crystalhd_decoder_select="crystalhd"
|
msmpeg4_crystalhd_decoder_select="crystalhd"
|
||||||
msmpeg4v1_decoder_select="h263_decoder"
|
msmpeg4v1_decoder_select="h263_decoder"
|
||||||
msmpeg4v1_encoder_select="h263_encoder"
|
msmpeg4v1_encoder_select="h263_encoder"
|
||||||
@ -1447,8 +1448,8 @@ rv10_decoder_select="h263_decoder"
|
|||||||
rv10_encoder_select="h263_encoder"
|
rv10_encoder_select="h263_encoder"
|
||||||
rv20_decoder_select="h263_decoder"
|
rv20_decoder_select="h263_decoder"
|
||||||
rv20_encoder_select="h263_encoder"
|
rv20_encoder_select="h263_encoder"
|
||||||
rv30_decoder_select="golomb h264pred"
|
rv30_decoder_select="golomb h264chroma h264pred"
|
||||||
rv40_decoder_select="golomb h264pred"
|
rv40_decoder_select="golomb h264chroma h264pred"
|
||||||
shorten_decoder_select="golomb"
|
shorten_decoder_select="golomb"
|
||||||
sipr_decoder_select="lsp"
|
sipr_decoder_select="lsp"
|
||||||
snow_decoder_select="dwt"
|
snow_decoder_select="dwt"
|
||||||
@ -1457,7 +1458,7 @@ sonic_decoder_select="golomb"
|
|||||||
sonic_encoder_select="golomb"
|
sonic_encoder_select="golomb"
|
||||||
sonic_ls_encoder_select="golomb"
|
sonic_ls_encoder_select="golomb"
|
||||||
svq1_encoder_select="aandct"
|
svq1_encoder_select="aandct"
|
||||||
svq3_decoder_select="golomb h264dsp h264pred"
|
svq3_decoder_select="golomb h264chroma h264dsp h264pred"
|
||||||
svq3_decoder_suggest="zlib"
|
svq3_decoder_suggest="zlib"
|
||||||
theora_decoder_select="vp3_decoder"
|
theora_decoder_select="vp3_decoder"
|
||||||
tiff_decoder_suggest="zlib"
|
tiff_decoder_suggest="zlib"
|
||||||
@ -1465,8 +1466,8 @@ tiff_encoder_suggest="zlib"
|
|||||||
truehd_decoder_select="mlp_decoder"
|
truehd_decoder_select="mlp_decoder"
|
||||||
tscc_decoder_select="zlib"
|
tscc_decoder_select="zlib"
|
||||||
twinvq_decoder_select="mdct lsp sinewin"
|
twinvq_decoder_select="mdct lsp sinewin"
|
||||||
vc1_decoder_select="h263_decoder"
|
|
||||||
vc1_crystalhd_decoder_select="crystalhd"
|
vc1_crystalhd_decoder_select="crystalhd"
|
||||||
|
vc1_decoder_select="h263_decoder h264chroma"
|
||||||
vc1_dxva2_hwaccel_deps="dxva2api_h"
|
vc1_dxva2_hwaccel_deps="dxva2api_h"
|
||||||
vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
|
vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
|
||||||
vc1_vaapi_hwaccel_select="vaapi vc1_decoder"
|
vc1_vaapi_hwaccel_select="vaapi vc1_decoder"
|
||||||
@ -1505,7 +1506,7 @@ vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
|
|||||||
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
|
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
|
||||||
|
|
||||||
# parsers
|
# parsers
|
||||||
h264_parser_select="golomb h264dsp h264pred"
|
h264_parser_select="golomb h264chroma h264dsp h264pred"
|
||||||
|
|
||||||
# external libraries
|
# external libraries
|
||||||
libaacplus_encoder_deps="libaacplus"
|
libaacplus_encoder_deps="libaacplus"
|
||||||
@ -1640,8 +1641,6 @@ avformat_deps="avcodec"
|
|||||||
postproc_deps="gpl"
|
postproc_deps="gpl"
|
||||||
|
|
||||||
# programs
|
# programs
|
||||||
ffmpeg_deps="avcodec avformat swscale swresample"
|
|
||||||
ffmpeg_select="buffer_filter buffersink_filter"
|
|
||||||
avconv_deps="avcodec avformat swscale"
|
avconv_deps="avcodec avformat swscale"
|
||||||
avconv_select="buffer_filter"
|
avconv_select="buffer_filter"
|
||||||
ffplay_deps="avcodec avformat swscale sdl"
|
ffplay_deps="avcodec avformat swscale sdl"
|
||||||
@ -1649,6 +1648,8 @@ ffplay_select="buffersink_filter rdft"
|
|||||||
ffprobe_deps="avcodec avformat"
|
ffprobe_deps="avcodec avformat"
|
||||||
ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
|
ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
|
||||||
ffserver_extralibs='$ldl'
|
ffserver_extralibs='$ldl'
|
||||||
|
ffmpeg_deps="avcodec avformat swscale swresample"
|
||||||
|
ffmpeg_select="buffer_filter buffersink_filter"
|
||||||
|
|
||||||
doc_deps="texi2html"
|
doc_deps="texi2html"
|
||||||
|
|
||||||
@ -1671,7 +1672,6 @@ mxf_d10_test_deps="avfilter"
|
|||||||
seek_lavf_mxf_d10_test_deps="mxf_d10_test"
|
seek_lavf_mxf_d10_test_deps="mxf_d10_test"
|
||||||
|
|
||||||
test_deps _encoder _decoder \
|
test_deps _encoder _decoder \
|
||||||
adpcm_g726=g726 \
|
|
||||||
adpcm_ima_qt \
|
adpcm_ima_qt \
|
||||||
adpcm_ima_wav \
|
adpcm_ima_wav \
|
||||||
adpcm_ms \
|
adpcm_ms \
|
||||||
@ -1687,6 +1687,7 @@ test_deps _encoder _decoder \
|
|||||||
flac \
|
flac \
|
||||||
flashsv \
|
flashsv \
|
||||||
flv \
|
flv \
|
||||||
|
adpcm_g726=g726 \
|
||||||
gif \
|
gif \
|
||||||
h261 \
|
h261 \
|
||||||
h263="h263 h263p" \
|
h263="h263 h263p" \
|
||||||
@ -1775,9 +1776,9 @@ pkg_config_default=pkg-config
|
|||||||
ranlib="ranlib"
|
ranlib="ranlib"
|
||||||
strip_default="strip"
|
strip_default="strip"
|
||||||
yasmexe="yasm"
|
yasmexe="yasm"
|
||||||
nogas=":"
|
|
||||||
|
|
||||||
nm_opts='-g'
|
nm_opts='-g'
|
||||||
|
nogas=":"
|
||||||
|
|
||||||
# machine
|
# machine
|
||||||
arch_default=$(uname -m)
|
arch_default=$(uname -m)
|
||||||
@ -1793,22 +1794,23 @@ enable avdevice
|
|||||||
enable avfilter
|
enable avfilter
|
||||||
enable avformat
|
enable avformat
|
||||||
enable avutil
|
enable avutil
|
||||||
enable asm
|
enable postproc
|
||||||
enable debug
|
enable stripping
|
||||||
enable doc
|
enable swresample
|
||||||
enable fastdiv
|
enable swscale
|
||||||
|
|
||||||
enable ffmpeg
|
enable ffmpeg
|
||||||
enable ffplay
|
enable ffplay
|
||||||
enable ffprobe
|
enable ffprobe
|
||||||
enable ffserver
|
enable ffserver
|
||||||
|
|
||||||
|
enable asm
|
||||||
|
enable debug
|
||||||
|
enable doc
|
||||||
|
enable fastdiv
|
||||||
enable network
|
enable network
|
||||||
enable optimizations
|
enable optimizations
|
||||||
enable postproc
|
|
||||||
enable protocols
|
|
||||||
enable static
|
enable static
|
||||||
enable stripping
|
|
||||||
enable swresample
|
|
||||||
enable swscale
|
|
||||||
enable swscale_alpha
|
enable swscale_alpha
|
||||||
|
|
||||||
# build settings
|
# build settings
|
||||||
@ -2031,15 +2033,15 @@ tmpfile(){
|
|||||||
|
|
||||||
trap 'rm -f -- $TMPFILES' EXIT
|
trap 'rm -f -- $TMPFILES' EXIT
|
||||||
|
|
||||||
tmpfile TMPC .c
|
|
||||||
tmpfile TMPCPP .cpp
|
|
||||||
tmpfile TMPE $EXESUF
|
|
||||||
tmpfile TMPH .h
|
|
||||||
tmpfile TMPO .o
|
|
||||||
tmpfile TMPS .S
|
|
||||||
tmpfile TMPV .ver
|
|
||||||
tmpfile TMPSH .sh
|
|
||||||
tmpfile TMPASM .asm
|
tmpfile TMPASM .asm
|
||||||
|
tmpfile TMPC .c
|
||||||
|
tmpfile TMPCPP .cpp
|
||||||
|
tmpfile TMPE $EXESUF
|
||||||
|
tmpfile TMPH .h
|
||||||
|
tmpfile TMPO .o
|
||||||
|
tmpfile TMPS .S
|
||||||
|
tmpfile TMPSH .sh
|
||||||
|
tmpfile TMPV .ver
|
||||||
|
|
||||||
unset -f mktemp
|
unset -f mktemp
|
||||||
|
|
||||||
@ -2058,9 +2060,9 @@ EOF
|
|||||||
die "Sanity test failed."
|
die "Sanity test failed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
filter_asflags=echo
|
||||||
filter_cflags=echo
|
filter_cflags=echo
|
||||||
filter_cppflags=echo
|
filter_cppflags=echo
|
||||||
filter_asflags=echo
|
|
||||||
|
|
||||||
if $cc -v 2>&1 | grep -q '^gcc.*LLVM'; then
|
if $cc -v 2>&1 | grep -q '^gcc.*LLVM'; then
|
||||||
cc_type=llvm_gcc
|
cc_type=llvm_gcc
|
||||||
@ -3555,14 +3557,14 @@ get_version(){
|
|||||||
eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
|
eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
|
||||||
}
|
}
|
||||||
|
|
||||||
get_version LIBSWSCALE libswscale/swscale.h
|
|
||||||
get_version LIBSWRESAMPLE libswresample/swresample.h
|
|
||||||
get_version LIBPOSTPROC libpostproc/postprocess.h
|
|
||||||
get_version LIBAVCODEC libavcodec/version.h
|
get_version LIBAVCODEC libavcodec/version.h
|
||||||
get_version LIBAVDEVICE libavdevice/avdevice.h
|
get_version LIBAVDEVICE libavdevice/avdevice.h
|
||||||
|
get_version LIBAVFILTER libavfilter/avfilter.h
|
||||||
get_version LIBAVFORMAT libavformat/version.h
|
get_version LIBAVFORMAT libavformat/version.h
|
||||||
get_version LIBAVUTIL libavutil/avutil.h
|
get_version LIBAVUTIL libavutil/avutil.h
|
||||||
get_version LIBAVFILTER libavfilter/avfilter.h
|
get_version LIBPOSTPROC libpostproc/postprocess.h
|
||||||
|
get_version LIBSWRESAMPLE libswresample/swresample.h
|
||||||
|
get_version LIBSWSCALE libswscale/swscale.h
|
||||||
|
|
||||||
cat > $TMPH <<EOF
|
cat > $TMPH <<EOF
|
||||||
/* Automatically generated by configure - do not modify! */
|
/* Automatically generated by configure - do not modify! */
|
||||||
|
@ -601,8 +601,8 @@ following image formats are supported:
|
|||||||
@item Tiertex Limited SEQ video @tab @tab X
|
@item Tiertex Limited SEQ video @tab @tab X
|
||||||
@tab Codec used in DOS CD-ROM FlashBack game.
|
@tab Codec used in DOS CD-ROM FlashBack game.
|
||||||
@item Ut Video @tab @tab X
|
@item Ut Video @tab @tab X
|
||||||
@item V210 Quicktime Uncompressed 4:2:2 10-bit @tab X @tab X
|
@item v210 QuickTime uncompressed 4:2:2 10-bit @tab X @tab X
|
||||||
@item v410 Quicktime Uncompressed 4:4:4 10-bit @tab X @tab X
|
@item v410 QuickTime uncompressed 4:4:4 10-bit @tab X @tab X
|
||||||
@item VBLE Lossless Codec @tab @tab X
|
@item VBLE Lossless Codec @tab @tab X
|
||||||
@item VMware Screen Codec / VMware Video @tab @tab X
|
@item VMware Screen Codec / VMware Video @tab @tab X
|
||||||
@tab Codec used in videos captured by VMware.
|
@tab Codec used in videos captured by VMware.
|
||||||
|
@ -113,10 +113,10 @@ T add \rn, \rn, \rm
|
|||||||
T ldr \rt, [\rn]
|
T ldr \rt, [\rn]
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro ldr_dpren rt, rn, rm:vararg
|
.macro ldr_dpre rt, rn, rm:vararg
|
||||||
A ldr \rt, [\rn, -\rm]
|
A ldr \rt, [\rn, -\rm]!
|
||||||
T sub \rt, \rn, \rm
|
T sub \rn, \rn, \rm
|
||||||
T ldr \rt, [\rt]
|
T ldr \rt, [\rn]
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro ldr_post rt, rn, rm:vararg
|
.macro ldr_post rt, rn, rm:vararg
|
||||||
|
@ -54,6 +54,13 @@ void ff_avg_rv40_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int);
|
|||||||
void ff_rv40_weight_func_16_neon(uint8_t *, uint8_t *, uint8_t *, int, int, int);
|
void ff_rv40_weight_func_16_neon(uint8_t *, uint8_t *, uint8_t *, int, int, int);
|
||||||
void ff_rv40_weight_func_8_neon(uint8_t *, uint8_t *, uint8_t *, int, int, int);
|
void ff_rv40_weight_func_8_neon(uint8_t *, uint8_t *, uint8_t *, int, int, int);
|
||||||
|
|
||||||
|
int ff_rv40_h_loop_filter_strength_neon(uint8_t *src, int stride,
|
||||||
|
int beta, int beta2, int edge,
|
||||||
|
int *p1, int *q1);
|
||||||
|
int ff_rv40_v_loop_filter_strength_neon(uint8_t *src, int stride,
|
||||||
|
int beta, int beta2, int edge,
|
||||||
|
int *p1, int *q1);
|
||||||
|
|
||||||
void ff_rv40dsp_init_neon(RV34DSPContext *c, DSPContext* dsp)
|
void ff_rv40dsp_init_neon(RV34DSPContext *c, DSPContext* dsp)
|
||||||
{
|
{
|
||||||
c->put_pixels_tab[0][ 1] = ff_put_rv40_qpel16_mc10_neon;
|
c->put_pixels_tab[0][ 1] = ff_put_rv40_qpel16_mc10_neon;
|
||||||
@ -116,4 +123,7 @@ void ff_rv40dsp_init_neon(RV34DSPContext *c, DSPContext* dsp)
|
|||||||
|
|
||||||
c->rv40_weight_pixels_tab[0] = ff_rv40_weight_func_16_neon;
|
c->rv40_weight_pixels_tab[0] = ff_rv40_weight_func_16_neon;
|
||||||
c->rv40_weight_pixels_tab[1] = ff_rv40_weight_func_8_neon;
|
c->rv40_weight_pixels_tab[1] = ff_rv40_weight_func_8_neon;
|
||||||
|
|
||||||
|
c->rv40_loop_filter_strength[0] = ff_rv40_h_loop_filter_strength_neon;
|
||||||
|
c->rv40_loop_filter_strength[1] = ff_rv40_v_loop_filter_strength_neon;
|
||||||
}
|
}
|
||||||
|
@ -722,3 +722,89 @@ function ff_rv40_weight_func_8_neon, export=1
|
|||||||
bne 1b
|
bne 1b
|
||||||
bx lr
|
bx lr
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
function ff_rv40_h_loop_filter_strength_neon, export=1
|
||||||
|
pkhbt r2, r3, r2, lsl #18
|
||||||
|
|
||||||
|
ldr r3, [r0]
|
||||||
|
ldr_dpre r12, r0, r1
|
||||||
|
teq r3, r12
|
||||||
|
beq 1f
|
||||||
|
|
||||||
|
sub r0, r0, r1, lsl #1
|
||||||
|
|
||||||
|
vld1.32 {d4[]}, [r0,:32], r1 @ -3
|
||||||
|
vld1.32 {d0[]}, [r0,:32], r1 @ -2
|
||||||
|
vld1.32 {d4[1]}, [r0,:32], r1 @ -1
|
||||||
|
vld1.32 {d5[]}, [r0,:32], r1 @ 0
|
||||||
|
vld1.32 {d1[]}, [r0,:32], r1 @ 1
|
||||||
|
vld1.32 {d5[0]}, [r0,:32], r1 @ 2
|
||||||
|
|
||||||
|
vpaddl.u8 q8, q0 @ -2, -2, -2, -2, 1, 1, 1, 1
|
||||||
|
vpaddl.u8 q9, q2 @ -3, -3, -1, -1, 2, 2, 0, 0
|
||||||
|
vdup.32 d30, r2 @ beta2, beta << 2
|
||||||
|
vpadd.u16 d16, d16, d17 @ -2, -2, 1, 1
|
||||||
|
vpadd.u16 d18, d18, d19 @ -3, -1, 2, 0
|
||||||
|
vabd.u16 d16, d18, d16
|
||||||
|
vclt.u16 d16, d16, d30
|
||||||
|
|
||||||
|
ldrd r2, r3, [sp, #4]
|
||||||
|
vmovl.u16 q12, d16
|
||||||
|
vtrn.16 d16, d17
|
||||||
|
vshr.u32 q12, q12, #15
|
||||||
|
ldr r0, [sp]
|
||||||
|
vst1.32 {d24[1]}, [r2,:32]
|
||||||
|
vst1.32 {d25[1]}, [r3,:32]
|
||||||
|
|
||||||
|
cmp r0, #0
|
||||||
|
it eq
|
||||||
|
bxeq lr
|
||||||
|
|
||||||
|
vand d18, d16, d17
|
||||||
|
vtrn.32 d18, d19
|
||||||
|
vand d18, d18, d19
|
||||||
|
vmov.u16 r0, d18[0]
|
||||||
|
bx lr
|
||||||
|
1:
|
||||||
|
ldrd r2, r3, [sp, #4]
|
||||||
|
mov r0, #0
|
||||||
|
str r0, [r2]
|
||||||
|
str r0, [r3]
|
||||||
|
bx lr
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
function ff_rv40_v_loop_filter_strength_neon, export=1
|
||||||
|
sub r0, r0, #3
|
||||||
|
pkhbt r2, r3, r2, lsl #18
|
||||||
|
|
||||||
|
vld1.8 {d0}, [r0], r1
|
||||||
|
vld1.8 {d1}, [r0], r1
|
||||||
|
vld1.8 {d2}, [r0], r1
|
||||||
|
vld1.8 {d3}, [r0], r1
|
||||||
|
|
||||||
|
vaddl.u8 q0, d0, d1
|
||||||
|
vaddl.u8 q1, d2, d3
|
||||||
|
vdup.32 q15, r2
|
||||||
|
vadd.u16 q0, q0, q1 @ -3, -2, -1, 0, 1, 2
|
||||||
|
vext.16 q1, q0, q0, #1 @ -2, -1, 0, 1, 2
|
||||||
|
vabd.u16 q0, q1, q0
|
||||||
|
vclt.u16 q0, q0, q15
|
||||||
|
|
||||||
|
ldrd r2, r3, [sp, #4]
|
||||||
|
vmovl.u16 q1, d0
|
||||||
|
vext.16 d1, d0, d1, #3
|
||||||
|
vshr.u32 q1, q1, #15
|
||||||
|
ldr r0, [sp]
|
||||||
|
vst1.32 {d2[1]}, [r2,:32]
|
||||||
|
vst1.32 {d3[1]}, [r3,:32]
|
||||||
|
|
||||||
|
cmp r0, #0
|
||||||
|
it eq
|
||||||
|
bxeq lr
|
||||||
|
|
||||||
|
vand d0, d0, d1
|
||||||
|
vtrn.16 d0, d1
|
||||||
|
vand d0, d0, d1
|
||||||
|
vmov.u16 r0, d0[0]
|
||||||
|
bx lr
|
||||||
|
endfunc
|
||||||
|
@ -4629,16 +4629,8 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
|
|||||||
unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
|
unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* Logs a generic warning message about a missing feature. This function is
|
|
||||||
* intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
|
|
||||||
||||||| merged common ancestors
|
|
||||||
* Logs a generic warning message about a missing feature. This function is
|
|
||||||
* intended to be used internally by Libav (libavcodec, libavformat, etc.)
|
|
||||||
=======
|
|
||||||
* Log a generic warning message about a missing feature. This function is
|
* Log a generic warning message about a missing feature. This function is
|
||||||
* intended to be used internally by Libav (libavcodec, libavformat, etc.)
|
* intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
|
||||||
>>>>>>> qatar/master
|
|
||||||
* only, and would normally not be used by applications.
|
* only, and would normally not be used by applications.
|
||||||
* @param[in] avc a pointer to an arbitrary struct of which the first field is
|
* @param[in] avc a pointer to an arbitrary struct of which the first field is
|
||||||
* a pointer to an AVClass struct
|
* a pointer to an AVClass struct
|
||||||
|
@ -572,6 +572,8 @@ retry:
|
|||||||
//we need to set current_picture_ptr before reading the header, otherwise we cannot store anyting im there
|
//we need to set current_picture_ptr before reading the header, otherwise we cannot store anyting im there
|
||||||
if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
|
if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
|
||||||
int i= ff_find_unused_picture(s, 0);
|
int i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
s->current_picture_ptr= &s->picture[i];
|
s->current_picture_ptr= &s->picture[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,6 +410,8 @@ retry:
|
|||||||
* otherwise we cannot store anyting in there */
|
* otherwise we cannot store anyting in there */
|
||||||
if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
|
if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
|
||||||
int i= ff_find_unused_picture(s, 0);
|
int i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
s->current_picture_ptr= &s->picture[i];
|
s->current_picture_ptr= &s->picture[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1095,21 +1095,7 @@ int ff_find_unused_picture(MpegEncContext *s, int shared)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
av_log(s->avctx, AV_LOG_FATAL,
|
return AVERROR_INVALIDDATA;
|
||||||
"Internal error, picture buffer overflow\n");
|
|
||||||
/* We could return -1, but the codec would crash trying to draw into a
|
|
||||||
* non-existing frame anyway. This is safer than waiting for a random crash.
|
|
||||||
* Also the return of this is never useful, an encoder must only allocate
|
|
||||||
* as much as allowed in the specification. This has no relationship to how
|
|
||||||
* much libavcodec could allocate (and MAX_PICTURE_COUNT is always large
|
|
||||||
* enough for such valid streams).
|
|
||||||
* Plus, a decoder has to check stream validity and remove frames if too
|
|
||||||
* many reference frames are around. Waiting for "OOM" is not correct at
|
|
||||||
* all. Similarly, missing reference frames have to be replaced by
|
|
||||||
* interpolated/MC frames, anything else is a bug in the codec ...
|
|
||||||
*/
|
|
||||||
abort();
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void update_noise_reduction(MpegEncContext *s){
|
static void update_noise_reduction(MpegEncContext *s){
|
||||||
@ -1167,6 +1153,8 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
|
|||||||
pic= s->current_picture_ptr; //we already have a unused image (maybe it was set before reading the header)
|
pic= s->current_picture_ptr; //we already have a unused image (maybe it was set before reading the header)
|
||||||
else{
|
else{
|
||||||
i= ff_find_unused_picture(s, 0);
|
i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
pic= &s->picture[i];
|
pic= &s->picture[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1222,6 +1210,8 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
|
|||||||
|
|
||||||
/* Allocate a dummy frame */
|
/* Allocate a dummy frame */
|
||||||
i= ff_find_unused_picture(s, 0);
|
i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
s->last_picture_ptr= &s->picture[i];
|
s->last_picture_ptr= &s->picture[i];
|
||||||
s->last_picture_ptr->f.key_frame = 0;
|
s->last_picture_ptr->f.key_frame = 0;
|
||||||
if(ff_alloc_picture(s, s->last_picture_ptr, 0) < 0)
|
if(ff_alloc_picture(s, s->last_picture_ptr, 0) < 0)
|
||||||
@ -1238,6 +1228,8 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
|
|||||||
if ((s->next_picture_ptr == NULL || s->next_picture_ptr->f.data[0] == NULL) && s->pict_type == AV_PICTURE_TYPE_B) {
|
if ((s->next_picture_ptr == NULL || s->next_picture_ptr->f.data[0] == NULL) && s->pict_type == AV_PICTURE_TYPE_B) {
|
||||||
/* Allocate a dummy frame */
|
/* Allocate a dummy frame */
|
||||||
i= ff_find_unused_picture(s, 0);
|
i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
s->next_picture_ptr= &s->picture[i];
|
s->next_picture_ptr= &s->picture[i];
|
||||||
s->next_picture_ptr->f.key_frame = 0;
|
s->next_picture_ptr->f.key_frame = 0;
|
||||||
if(ff_alloc_picture(s, s->next_picture_ptr, 0) < 0)
|
if(ff_alloc_picture(s, s->next_picture_ptr, 0) < 0)
|
||||||
|
@ -864,6 +864,8 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
|
|||||||
|
|
||||||
if(direct){
|
if(direct){
|
||||||
i= ff_find_unused_picture(s, 1);
|
i= ff_find_unused_picture(s, 1);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
|
|
||||||
pic= (AVFrame*)&s->picture[i];
|
pic= (AVFrame*)&s->picture[i];
|
||||||
pic->reference= 3;
|
pic->reference= 3;
|
||||||
@ -877,6 +879,8 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
i= ff_find_unused_picture(s, 0);
|
i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
|
|
||||||
pic= (AVFrame*)&s->picture[i];
|
pic= (AVFrame*)&s->picture[i];
|
||||||
pic->reference= 3;
|
pic->reference= 3;
|
||||||
@ -1210,6 +1214,8 @@ no_output_pic:
|
|||||||
// input is a shared pix, so we can't modifiy it -> alloc a new one & ensure that the shared one is reuseable
|
// input is a shared pix, so we can't modifiy it -> alloc a new one & ensure that the shared one is reuseable
|
||||||
|
|
||||||
int i= ff_find_unused_picture(s, 0);
|
int i= ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
return i;
|
||||||
Picture *pic= &s->picture[i];
|
Picture *pic= &s->picture[i];
|
||||||
|
|
||||||
pic->f.reference = s->reordered_input_picture[0]->f.reference;
|
pic->f.reference = s->reordered_input_picture[0]->f.reference;
|
||||||
|
@ -36,10 +36,18 @@ typedef void (*rv40_weight_func)(uint8_t *dst/*align width (8 or 16)*/,
|
|||||||
|
|
||||||
typedef void (*rv34_inv_transform_func)(DCTELEM *block);
|
typedef void (*rv34_inv_transform_func)(DCTELEM *block);
|
||||||
|
|
||||||
typedef void (*rv40_loop_filter_func)(uint8_t *src, int stride, int dmode,
|
typedef void (*rv40_weak_loop_filter_func)(uint8_t *src, int stride,
|
||||||
int lim_q1, int lim_p1, int alpha,
|
int filter_p1, int filter_q1,
|
||||||
int beta, int beta2, int chroma,
|
int alpha, int beta,
|
||||||
int edge);
|
int lims, int lim_q1, int lim_p1);
|
||||||
|
|
||||||
|
typedef void (*rv40_strong_loop_filter_func)(uint8_t *src, int stride,
|
||||||
|
int alpha, int lims,
|
||||||
|
int dmode, int chroma);
|
||||||
|
|
||||||
|
typedef int (*rv40_loop_filter_strength_func)(uint8_t *src, int stride,
|
||||||
|
int beta, int beta2, int edge,
|
||||||
|
int *p1, int *q1);
|
||||||
|
|
||||||
typedef struct RV34DSPContext {
|
typedef struct RV34DSPContext {
|
||||||
qpel_mc_func put_pixels_tab[4][16];
|
qpel_mc_func put_pixels_tab[4][16];
|
||||||
@ -49,8 +57,9 @@ typedef struct RV34DSPContext {
|
|||||||
rv40_weight_func rv40_weight_pixels_tab[2];
|
rv40_weight_func rv40_weight_pixels_tab[2];
|
||||||
rv34_inv_transform_func rv34_inv_transform_tab[2];
|
rv34_inv_transform_func rv34_inv_transform_tab[2];
|
||||||
void (*rv34_dequant4x4)(DCTELEM *block, int Qdc, int Q);
|
void (*rv34_dequant4x4)(DCTELEM *block, int Qdc, int Q);
|
||||||
rv40_loop_filter_func rv40_h_loop_filter;
|
rv40_weak_loop_filter_func rv40_weak_loop_filter[2];
|
||||||
rv40_loop_filter_func rv40_v_loop_filter;
|
rv40_strong_loop_filter_func rv40_strong_loop_filter[2];
|
||||||
|
rv40_loop_filter_strength_func rv40_loop_filter_strength[2];
|
||||||
} RV34DSPContext;
|
} RV34DSPContext;
|
||||||
|
|
||||||
void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp);
|
void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp);
|
||||||
|
@ -297,6 +297,34 @@ enum RV40BlockPos{
|
|||||||
static const int neighbour_offs_x[4] = { 0, 0, -1, 0 };
|
static const int neighbour_offs_x[4] = { 0, 0, -1, 0 };
|
||||||
static const int neighbour_offs_y[4] = { 0, -1, 0, 1 };
|
static const int neighbour_offs_y[4] = { 0, -1, 0, 1 };
|
||||||
|
|
||||||
|
static void rv40_adaptive_loop_filter(RV34DSPContext *rdsp,
|
||||||
|
uint8_t *src, int stride, int dmode,
|
||||||
|
int lim_q1, int lim_p1,
|
||||||
|
int alpha, int beta, int beta2,
|
||||||
|
int chroma, int edge, int dir)
|
||||||
|
{
|
||||||
|
int filter_p1, filter_q1;
|
||||||
|
int strong;
|
||||||
|
int lims;
|
||||||
|
|
||||||
|
strong = rdsp->rv40_loop_filter_strength[dir](src, stride, beta, beta2,
|
||||||
|
edge, &filter_p1, &filter_q1);
|
||||||
|
|
||||||
|
lims = filter_p1 + filter_q1 + ((lim_q1 + lim_p1) >> 1) + 1;
|
||||||
|
|
||||||
|
if (strong) {
|
||||||
|
rdsp->rv40_strong_loop_filter[dir](src, stride, alpha,
|
||||||
|
lims, dmode, chroma);
|
||||||
|
} else if (filter_p1 & filter_q1) {
|
||||||
|
rdsp->rv40_weak_loop_filter[dir](src, stride, 1, 1, alpha, beta,
|
||||||
|
lims, lim_q1, lim_p1);
|
||||||
|
} else if (filter_p1 | filter_q1) {
|
||||||
|
rdsp->rv40_weak_loop_filter[dir](src, stride, filter_p1, filter_q1,
|
||||||
|
alpha, beta, lims >> 1, lim_q1 >> 1,
|
||||||
|
lim_p1 >> 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RV40 loop filtering function
|
* RV40 loop filtering function
|
||||||
*/
|
*/
|
||||||
@ -433,10 +461,11 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
|
|||||||
// if bottom block is coded then we can filter its top edge
|
// if bottom block is coded then we can filter its top edge
|
||||||
// (or bottom edge of this block, which is the same)
|
// (or bottom edge of this block, which is the same)
|
||||||
if(y_h_deblock & (MASK_BOTTOM << ij)){
|
if(y_h_deblock & (MASK_BOTTOM << ij)){
|
||||||
r->rdsp.rv40_h_loop_filter(Y+4*s->linesize, s->linesize, dither,
|
rv40_adaptive_loop_filter(&r->rdsp, Y+4*s->linesize,
|
||||||
y_to_deblock & (MASK_BOTTOM << ij) ? clip[POS_CUR] : 0,
|
s->linesize, dither,
|
||||||
clip_cur,
|
y_to_deblock & (MASK_BOTTOM << ij) ? clip[POS_CUR] : 0,
|
||||||
alpha, beta, betaY, 0, 0);
|
clip_cur, alpha, beta, betaY,
|
||||||
|
0, 0, 0);
|
||||||
}
|
}
|
||||||
// filter left block edge in ordinary mode (with low filtering strength)
|
// filter left block edge in ordinary mode (with low filtering strength)
|
||||||
if(y_v_deblock & (MASK_CUR << ij) && (i || !(mb_strong[POS_CUR] || mb_strong[POS_LEFT]))){
|
if(y_v_deblock & (MASK_CUR << ij) && (i || !(mb_strong[POS_CUR] || mb_strong[POS_LEFT]))){
|
||||||
@ -444,25 +473,25 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
|
|||||||
clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;
|
clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;
|
||||||
else
|
else
|
||||||
clip_left = y_to_deblock & (MASK_CUR << (ij-1)) ? clip[POS_CUR] : 0;
|
clip_left = y_to_deblock & (MASK_CUR << (ij-1)) ? clip[POS_CUR] : 0;
|
||||||
r->rdsp.rv40_v_loop_filter(Y, s->linesize, dither,
|
rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
clip_left,
|
clip_left,
|
||||||
alpha, beta, betaY, 0, 0);
|
alpha, beta, betaY, 0, 0, 1);
|
||||||
}
|
}
|
||||||
// filter top edge of the current macroblock when filtering strength is high
|
// filter top edge of the current macroblock when filtering strength is high
|
||||||
if(!j && y_h_deblock & (MASK_CUR << i) && (mb_strong[POS_CUR] || mb_strong[POS_TOP])){
|
if(!j && y_h_deblock & (MASK_CUR << i) && (mb_strong[POS_CUR] || mb_strong[POS_TOP])){
|
||||||
r->rdsp.rv40_h_loop_filter(Y, s->linesize, dither,
|
rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
mvmasks[POS_TOP] & (MASK_TOP << i) ? clip[POS_TOP] : 0,
|
mvmasks[POS_TOP] & (MASK_TOP << i) ? clip[POS_TOP] : 0,
|
||||||
alpha, beta, betaY, 0, 1);
|
alpha, beta, betaY, 0, 1, 0);
|
||||||
}
|
}
|
||||||
// filter left block edge in edge mode (with high filtering strength)
|
// filter left block edge in edge mode (with high filtering strength)
|
||||||
if(y_v_deblock & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] || mb_strong[POS_LEFT])){
|
if(y_v_deblock & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] || mb_strong[POS_LEFT])){
|
||||||
clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;
|
clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;
|
||||||
r->rdsp.rv40_v_loop_filter(Y, s->linesize, dither,
|
rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
clip_left,
|
clip_left,
|
||||||
alpha, beta, betaY, 0, 1);
|
alpha, beta, betaY, 0, 1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -474,34 +503,34 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
|
|||||||
int clip_cur = c_to_deblock[k] & (MASK_CUR << ij) ? clip[POS_CUR] : 0;
|
int clip_cur = c_to_deblock[k] & (MASK_CUR << ij) ? clip[POS_CUR] : 0;
|
||||||
if(c_h_deblock[k] & (MASK_CUR << (ij+2))){
|
if(c_h_deblock[k] & (MASK_CUR << (ij+2))){
|
||||||
int clip_bot = c_to_deblock[k] & (MASK_CUR << (ij+2)) ? clip[POS_CUR] : 0;
|
int clip_bot = c_to_deblock[k] & (MASK_CUR << (ij+2)) ? clip[POS_CUR] : 0;
|
||||||
r->rdsp.rv40_h_loop_filter(C+4*s->uvlinesize, s->uvlinesize, i*8,
|
rv40_adaptive_loop_filter(&r->rdsp, C+4*s->uvlinesize, s->uvlinesize, i*8,
|
||||||
clip_bot,
|
clip_bot,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
alpha, beta, betaC, 1, 0);
|
alpha, beta, betaC, 1, 0, 0);
|
||||||
}
|
}
|
||||||
if((c_v_deblock[k] & (MASK_CUR << ij)) && (i || !(mb_strong[POS_CUR] || mb_strong[POS_LEFT]))){
|
if((c_v_deblock[k] & (MASK_CUR << ij)) && (i || !(mb_strong[POS_CUR] || mb_strong[POS_LEFT]))){
|
||||||
if(!i)
|
if(!i)
|
||||||
clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;
|
clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;
|
||||||
else
|
else
|
||||||
clip_left = c_to_deblock[k] & (MASK_CUR << (ij-1)) ? clip[POS_CUR] : 0;
|
clip_left = c_to_deblock[k] & (MASK_CUR << (ij-1)) ? clip[POS_CUR] : 0;
|
||||||
r->rdsp.rv40_v_loop_filter(C, s->uvlinesize, j*8,
|
rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
clip_left,
|
clip_left,
|
||||||
alpha, beta, betaC, 1, 0);
|
alpha, beta, betaC, 1, 0, 1);
|
||||||
}
|
}
|
||||||
if(!j && c_h_deblock[k] & (MASK_CUR << ij) && (mb_strong[POS_CUR] || mb_strong[POS_TOP])){
|
if(!j && c_h_deblock[k] & (MASK_CUR << ij) && (mb_strong[POS_CUR] || mb_strong[POS_TOP])){
|
||||||
int clip_top = uvcbp[POS_TOP][k] & (MASK_CUR << (ij+2)) ? clip[POS_TOP] : 0;
|
int clip_top = uvcbp[POS_TOP][k] & (MASK_CUR << (ij+2)) ? clip[POS_TOP] : 0;
|
||||||
r->rdsp.rv40_h_loop_filter(C, s->uvlinesize, i*8,
|
rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, i*8,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
clip_top,
|
clip_top,
|
||||||
alpha, beta, betaC, 1, 1);
|
alpha, beta, betaC, 1, 1, 0);
|
||||||
}
|
}
|
||||||
if(c_v_deblock[k] & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] || mb_strong[POS_LEFT])){
|
if(c_v_deblock[k] & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] || mb_strong[POS_LEFT])){
|
||||||
clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;
|
clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;
|
||||||
r->rdsp.rv40_v_loop_filter(C, s->uvlinesize, j*8,
|
rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8,
|
||||||
clip_cur,
|
clip_cur,
|
||||||
clip_left,
|
clip_left,
|
||||||
alpha, beta, betaC, 1, 1);
|
alpha, beta, betaC, 1, 1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -314,142 +314,194 @@ static const uint8_t rv40_dither_r[16] = {
|
|||||||
/**
|
/**
|
||||||
* weaker deblocking very similar to the one described in 4.4.2 of JVT-A003r1
|
* weaker deblocking very similar to the one described in 4.4.2 of JVT-A003r1
|
||||||
*/
|
*/
|
||||||
static inline void rv40_weak_loop_filter(uint8_t *src, const int step,
|
static av_always_inline void rv40_weak_loop_filter(uint8_t *src,
|
||||||
const int filter_p1, const int filter_q1,
|
const int step,
|
||||||
const int alpha, const int beta,
|
const int stride,
|
||||||
const int lim_p0q0,
|
const int filter_p1,
|
||||||
const int lim_q1, const int lim_p1,
|
const int filter_q1,
|
||||||
const int diff_p1p0, const int diff_q1q0,
|
const int alpha,
|
||||||
const int diff_p1p2, const int diff_q1q2)
|
const int beta,
|
||||||
|
const int lim_p0q0,
|
||||||
|
const int lim_q1,
|
||||||
|
const int lim_p1)
|
||||||
{
|
{
|
||||||
uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
|
uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
|
||||||
int t, u, diff;
|
int i, t, u, diff;
|
||||||
|
|
||||||
t = src[0*step] - src[-1*step];
|
for (i = 0; i < 4; i++, src += stride) {
|
||||||
if(!t)
|
int diff_p1p0 = src[-2*step] - src[-1*step];
|
||||||
return;
|
int diff_q1q0 = src[ 1*step] - src[ 0*step];
|
||||||
u = (alpha * FFABS(t)) >> 7;
|
int diff_p1p2 = src[-2*step] - src[-3*step];
|
||||||
if(u > 3 - (filter_p1 && filter_q1))
|
int diff_q1q2 = src[ 1*step] - src[ 2*step];
|
||||||
return;
|
|
||||||
|
|
||||||
t <<= 2;
|
t = src[0*step] - src[-1*step];
|
||||||
if(filter_p1 && filter_q1)
|
if (!t)
|
||||||
t += src[-2*step] - src[1*step];
|
continue;
|
||||||
diff = CLIP_SYMM((t + 4) >> 3, lim_p0q0);
|
|
||||||
src[-1*step] = cm[src[-1*step] + diff];
|
|
||||||
src[ 0*step] = cm[src[ 0*step] - diff];
|
|
||||||
if(FFABS(diff_p1p2) <= beta && filter_p1){
|
|
||||||
t = (diff_p1p0 + diff_p1p2 - diff) >> 1;
|
|
||||||
src[-2*step] = cm[src[-2*step] - CLIP_SYMM(t, lim_p1)];
|
|
||||||
}
|
|
||||||
if(FFABS(diff_q1q2) <= beta && filter_q1){
|
|
||||||
t = (diff_q1q0 + diff_q1q2 + diff) >> 1;
|
|
||||||
src[ 1*step] = cm[src[ 1*step] - CLIP_SYMM(t, lim_q1)];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static av_always_inline void rv40_adaptive_loop_filter(uint8_t *src, const int step,
|
u = (alpha * FFABS(t)) >> 7;
|
||||||
const int stride, const int dmode,
|
if (u > 3 - (filter_p1 && filter_q1))
|
||||||
const int lim_q1, const int lim_p1,
|
continue;
|
||||||
const int alpha,
|
|
||||||
const int beta, const int beta2,
|
|
||||||
const int chroma, const int edge)
|
|
||||||
{
|
|
||||||
int diff_p1p0[4], diff_q1q0[4], diff_p1p2[4], diff_q1q2[4];
|
|
||||||
int sum_p1p0 = 0, sum_q1q0 = 0, sum_p1p2 = 0, sum_q1q2 = 0;
|
|
||||||
uint8_t *ptr;
|
|
||||||
int flag_strong0 = 1, flag_strong1 = 1;
|
|
||||||
int filter_p1, filter_q1;
|
|
||||||
int i;
|
|
||||||
int lims;
|
|
||||||
|
|
||||||
for(i = 0, ptr = src; i < 4; i++, ptr += stride){
|
t <<= 2;
|
||||||
diff_p1p0[i] = ptr[-2*step] - ptr[-1*step];
|
if (filter_p1 && filter_q1)
|
||||||
diff_q1q0[i] = ptr[ 1*step] - ptr[ 0*step];
|
t += src[-2*step] - src[1*step];
|
||||||
sum_p1p0 += diff_p1p0[i];
|
|
||||||
sum_q1q0 += diff_q1q0[i];
|
|
||||||
}
|
|
||||||
filter_p1 = FFABS(sum_p1p0) < (beta<<2);
|
|
||||||
filter_q1 = FFABS(sum_q1q0) < (beta<<2);
|
|
||||||
if(!filter_p1 && !filter_q1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for(i = 0, ptr = src; i < 4; i++, ptr += stride){
|
diff = CLIP_SYMM((t + 4) >> 3, lim_p0q0);
|
||||||
diff_p1p2[i] = ptr[-2*step] - ptr[-3*step];
|
src[-1*step] = cm[src[-1*step] + diff];
|
||||||
diff_q1q2[i] = ptr[ 1*step] - ptr[ 2*step];
|
src[ 0*step] = cm[src[ 0*step] - diff];
|
||||||
sum_p1p2 += diff_p1p2[i];
|
|
||||||
sum_q1q2 += diff_q1q2[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if(edge){
|
if (filter_p1 && FFABS(diff_p1p2) <= beta) {
|
||||||
flag_strong0 = filter_p1 && (FFABS(sum_p1p2) < beta2);
|
t = (diff_p1p0 + diff_p1p2 - diff) >> 1;
|
||||||
flag_strong1 = filter_q1 && (FFABS(sum_q1q2) < beta2);
|
src[-2*step] = cm[src[-2*step] - CLIP_SYMM(t, lim_p1)];
|
||||||
}else{
|
}
|
||||||
flag_strong0 = flag_strong1 = 0;
|
|
||||||
}
|
if (filter_q1 && FFABS(diff_q1q2) <= beta) {
|
||||||
|
t = (diff_q1q0 + diff_q1q2 + diff) >> 1;
|
||||||
lims = filter_p1 + filter_q1 + ((lim_q1 + lim_p1) >> 1) + 1;
|
src[ 1*step] = cm[src[ 1*step] - CLIP_SYMM(t, lim_q1)];
|
||||||
if(flag_strong0 && flag_strong1){ /* strong filtering */
|
|
||||||
for(i = 0; i < 4; i++, src += stride){
|
|
||||||
int sflag, p0, q0, p1, q1;
|
|
||||||
int t = src[0*step] - src[-1*step];
|
|
||||||
|
|
||||||
if(!t) continue;
|
|
||||||
sflag = (alpha * FFABS(t)) >> 7;
|
|
||||||
if(sflag > 1) continue;
|
|
||||||
|
|
||||||
p0 = (25*src[-3*step] + 26*src[-2*step]
|
|
||||||
+ 26*src[-1*step]
|
|
||||||
+ 26*src[ 0*step] + 25*src[ 1*step] + rv40_dither_l[dmode + i]) >> 7;
|
|
||||||
q0 = (25*src[-2*step] + 26*src[-1*step]
|
|
||||||
+ 26*src[ 0*step]
|
|
||||||
+ 26*src[ 1*step] + 25*src[ 2*step] + rv40_dither_r[dmode + i]) >> 7;
|
|
||||||
if(sflag){
|
|
||||||
p0 = av_clip(p0, src[-1*step] - lims, src[-1*step] + lims);
|
|
||||||
q0 = av_clip(q0, src[ 0*step] - lims, src[ 0*step] + lims);
|
|
||||||
}
|
|
||||||
p1 = (25*src[-4*step] + 26*src[-3*step]
|
|
||||||
+ 26*src[-2*step]
|
|
||||||
+ 26*p0 + 25*src[ 0*step] + rv40_dither_l[dmode + i]) >> 7;
|
|
||||||
q1 = (25*src[-1*step] + 26*q0
|
|
||||||
+ 26*src[ 1*step]
|
|
||||||
+ 26*src[ 2*step] + 25*src[ 3*step] + rv40_dither_r[dmode + i]) >> 7;
|
|
||||||
if(sflag){
|
|
||||||
p1 = av_clip(p1, src[-2*step] - lims, src[-2*step] + lims);
|
|
||||||
q1 = av_clip(q1, src[ 1*step] - lims, src[ 1*step] + lims);
|
|
||||||
}
|
|
||||||
src[-2*step] = p1;
|
|
||||||
src[-1*step] = p0;
|
|
||||||
src[ 0*step] = q0;
|
|
||||||
src[ 1*step] = q1;
|
|
||||||
if(!chroma){
|
|
||||||
src[-3*step] = (25*src[-1*step] + 26*src[-2*step] + 51*src[-3*step] + 26*src[-4*step] + 64) >> 7;
|
|
||||||
src[ 2*step] = (25*src[ 0*step] + 26*src[ 1*step] + 51*src[ 2*step] + 26*src[ 3*step] + 64) >> 7;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}else if(filter_p1 && filter_q1){
|
|
||||||
for(i = 0; i < 4; i++, src += stride)
|
|
||||||
rv40_weak_loop_filter(src, step, 1, 1, alpha, beta, lims, lim_q1, lim_p1,
|
|
||||||
diff_p1p0[i], diff_q1q0[i], diff_p1p2[i], diff_q1q2[i]);
|
|
||||||
}else{
|
|
||||||
for(i = 0; i < 4; i++, src += stride)
|
|
||||||
rv40_weak_loop_filter(src, step, filter_p1, filter_q1,
|
|
||||||
alpha, beta, lims>>1, lim_q1>>1, lim_p1>>1,
|
|
||||||
diff_p1p0[i], diff_q1q0[i], diff_p1p2[i], diff_q1q2[i]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rv40_v_loop_filter(uint8_t *src, int stride, int dmode,
|
static void rv40_h_weak_loop_filter(uint8_t *src, const int stride,
|
||||||
int lim_q1, int lim_p1,
|
const int filter_p1, const int filter_q1,
|
||||||
int alpha, int beta, int beta2, int chroma, int edge){
|
const int alpha, const int beta,
|
||||||
rv40_adaptive_loop_filter(src, 1, stride, dmode, lim_q1, lim_p1,
|
const int lim_p0q0, const int lim_q1,
|
||||||
alpha, beta, beta2, chroma, edge);
|
const int lim_p1)
|
||||||
|
{
|
||||||
|
rv40_weak_loop_filter(src, stride, 1, filter_p1, filter_q1,
|
||||||
|
alpha, beta, lim_p0q0, lim_q1, lim_p1);
|
||||||
}
|
}
|
||||||
static void rv40_h_loop_filter(uint8_t *src, int stride, int dmode,
|
|
||||||
int lim_q1, int lim_p1,
|
static void rv40_v_weak_loop_filter(uint8_t *src, const int stride,
|
||||||
int alpha, int beta, int beta2, int chroma, int edge){
|
const int filter_p1, const int filter_q1,
|
||||||
rv40_adaptive_loop_filter(src, stride, 1, dmode, lim_q1, lim_p1,
|
const int alpha, const int beta,
|
||||||
alpha, beta, beta2, chroma, edge);
|
const int lim_p0q0, const int lim_q1,
|
||||||
|
const int lim_p1)
|
||||||
|
{
|
||||||
|
rv40_weak_loop_filter(src, 1, stride, filter_p1, filter_q1,
|
||||||
|
alpha, beta, lim_p0q0, lim_q1, lim_p1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static av_always_inline void rv40_strong_loop_filter(uint8_t *src,
|
||||||
|
const int step,
|
||||||
|
const int stride,
|
||||||
|
const int alpha,
|
||||||
|
const int lims,
|
||||||
|
const int dmode,
|
||||||
|
const int chroma)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for(i = 0; i < 4; i++, src += stride){
|
||||||
|
int sflag, p0, q0, p1, q1;
|
||||||
|
int t = src[0*step] - src[-1*step];
|
||||||
|
|
||||||
|
if (!t)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
sflag = (alpha * FFABS(t)) >> 7;
|
||||||
|
if (sflag > 1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
p0 = (25*src[-3*step] + 26*src[-2*step] + 26*src[-1*step] +
|
||||||
|
26*src[ 0*step] + 25*src[ 1*step] +
|
||||||
|
rv40_dither_l[dmode + i]) >> 7;
|
||||||
|
|
||||||
|
q0 = (25*src[-2*step] + 26*src[-1*step] + 26*src[ 0*step] +
|
||||||
|
26*src[ 1*step] + 25*src[ 2*step] +
|
||||||
|
rv40_dither_r[dmode + i]) >> 7;
|
||||||
|
|
||||||
|
if (sflag) {
|
||||||
|
p0 = av_clip(p0, src[-1*step] - lims, src[-1*step] + lims);
|
||||||
|
q0 = av_clip(q0, src[ 0*step] - lims, src[ 0*step] + lims);
|
||||||
|
}
|
||||||
|
|
||||||
|
p1 = (25*src[-4*step] + 26*src[-3*step] + 26*src[-2*step] + 26*p0 +
|
||||||
|
25*src[ 0*step] + rv40_dither_l[dmode + i]) >> 7;
|
||||||
|
q1 = (25*src[-1*step] + 26*q0 + 26*src[ 1*step] + 26*src[ 2*step] +
|
||||||
|
25*src[ 3*step] + rv40_dither_r[dmode + i]) >> 7;
|
||||||
|
|
||||||
|
if (sflag) {
|
||||||
|
p1 = av_clip(p1, src[-2*step] - lims, src[-2*step] + lims);
|
||||||
|
q1 = av_clip(q1, src[ 1*step] - lims, src[ 1*step] + lims);
|
||||||
|
}
|
||||||
|
|
||||||
|
src[-2*step] = p1;
|
||||||
|
src[-1*step] = p0;
|
||||||
|
src[ 0*step] = q0;
|
||||||
|
src[ 1*step] = q1;
|
||||||
|
|
||||||
|
if(!chroma){
|
||||||
|
src[-3*step] = (25*src[-1*step] + 26*src[-2*step] +
|
||||||
|
51*src[-3*step] + 26*src[-4*step] + 64) >> 7;
|
||||||
|
src[ 2*step] = (25*src[ 0*step] + 26*src[ 1*step] +
|
||||||
|
51*src[ 2*step] + 26*src[ 3*step] + 64) >> 7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rv40_h_strong_loop_filter(uint8_t *src, const int stride,
|
||||||
|
const int alpha, const int lims,
|
||||||
|
const int dmode, const int chroma)
|
||||||
|
{
|
||||||
|
rv40_strong_loop_filter(src, stride, 1, alpha, lims, dmode, chroma);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rv40_v_strong_loop_filter(uint8_t *src, const int stride,
|
||||||
|
const int alpha, const int lims,
|
||||||
|
const int dmode, const int chroma)
|
||||||
|
{
|
||||||
|
rv40_strong_loop_filter(src, 1, stride, alpha, lims, dmode, chroma);
|
||||||
|
}
|
||||||
|
|
||||||
|
static av_always_inline int rv40_loop_filter_strength(uint8_t *src,
|
||||||
|
int step, int stride,
|
||||||
|
int beta, int beta2,
|
||||||
|
int edge,
|
||||||
|
int *p1, int *q1)
|
||||||
|
{
|
||||||
|
int sum_p1p0 = 0, sum_q1q0 = 0, sum_p1p2 = 0, sum_q1q2 = 0;
|
||||||
|
int strong0 = 0, strong1 = 0;
|
||||||
|
uint8_t *ptr;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0, ptr = src; i < 4; i++, ptr += stride) {
|
||||||
|
sum_p1p0 += ptr[-2*step] - ptr[-1*step];
|
||||||
|
sum_q1q0 += ptr[ 1*step] - ptr[ 0*step];
|
||||||
|
}
|
||||||
|
|
||||||
|
*p1 = FFABS(sum_p1p0) < (beta << 2);
|
||||||
|
*q1 = FFABS(sum_q1q0) < (beta << 2);
|
||||||
|
|
||||||
|
if(!*p1 && !*q1)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (!edge)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
for (i = 0, ptr = src; i < 4; i++, ptr += stride) {
|
||||||
|
sum_p1p2 += ptr[-2*step] - ptr[-3*step];
|
||||||
|
sum_q1q2 += ptr[ 1*step] - ptr[ 2*step];
|
||||||
|
}
|
||||||
|
|
||||||
|
strong0 = *p1 && (FFABS(sum_p1p2) < beta2);
|
||||||
|
strong1 = *q1 && (FFABS(sum_q1q2) < beta2);
|
||||||
|
|
||||||
|
return strong0 && strong1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int rv40_h_loop_filter_strength(uint8_t *src, int stride,
|
||||||
|
int beta, int beta2, int edge,
|
||||||
|
int *p1, int *q1)
|
||||||
|
{
|
||||||
|
return rv40_loop_filter_strength(src, stride, 1, beta, beta2, edge, p1, q1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int rv40_v_loop_filter_strength(uint8_t *src, int stride,
|
||||||
|
int beta, int beta2, int edge,
|
||||||
|
int *p1, int *q1)
|
||||||
|
{
|
||||||
|
return rv40_loop_filter_strength(src, 1, stride, beta, beta2, edge, p1, q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) {
|
av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) {
|
||||||
@ -529,8 +581,12 @@ av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) {
|
|||||||
c->rv40_weight_pixels_tab[0] = rv40_weight_func_16;
|
c->rv40_weight_pixels_tab[0] = rv40_weight_func_16;
|
||||||
c->rv40_weight_pixels_tab[1] = rv40_weight_func_8;
|
c->rv40_weight_pixels_tab[1] = rv40_weight_func_8;
|
||||||
|
|
||||||
c->rv40_h_loop_filter = rv40_h_loop_filter;
|
c->rv40_weak_loop_filter[0] = rv40_h_weak_loop_filter;
|
||||||
c->rv40_v_loop_filter = rv40_v_loop_filter;
|
c->rv40_weak_loop_filter[1] = rv40_v_weak_loop_filter;
|
||||||
|
c->rv40_strong_loop_filter[0] = rv40_h_strong_loop_filter;
|
||||||
|
c->rv40_strong_loop_filter[1] = rv40_v_strong_loop_filter;
|
||||||
|
c->rv40_loop_filter_strength[0] = rv40_h_loop_filter_strength;
|
||||||
|
c->rv40_loop_filter_strength[1] = rv40_v_loop_filter_strength;
|
||||||
|
|
||||||
if (HAVE_MMX)
|
if (HAVE_MMX)
|
||||||
ff_rv40dsp_init_x86(c, dsp);
|
ff_rv40dsp_init_x86(c, dsp);
|
||||||
|
@ -5582,6 +5582,8 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
* otherwise we cannot store anything in there. */
|
* otherwise we cannot store anything in there. */
|
||||||
if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
|
if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
|
||||||
int i = ff_find_unused_picture(s, 0);
|
int i = ff_find_unused_picture(s, 0);
|
||||||
|
if (i < 0)
|
||||||
|
goto err;
|
||||||
s->current_picture_ptr = &s->picture[i];
|
s->current_picture_ptr = &s->picture[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#define AVCODEC_VERSION_H
|
#define AVCODEC_VERSION_H
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 53
|
#define LIBAVCODEC_VERSION_MAJOR 53
|
||||||
#define LIBAVCODEC_VERSION_MINOR 44
|
#define LIBAVCODEC_VERSION_MINOR 45
|
||||||
#define LIBAVCODEC_VERSION_MICRO 0
|
#define LIBAVCODEC_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
|
@ -11,6 +11,9 @@ YASM-OBJS-$(CONFIG_FFT) += x86/fft_mmx.o \
|
|||||||
|
|
||||||
YASM-OBJS-$(CONFIG_DWT) += x86/dwt_yasm.o
|
YASM-OBJS-$(CONFIG_DWT) += x86/dwt_yasm.o
|
||||||
|
|
||||||
|
YASM-OBJS-$(CONFIG_H264CHROMA) += x86/h264_chromamc.o \
|
||||||
|
x86/h264_chromamc_10bit.o
|
||||||
|
|
||||||
MMX-OBJS-$(CONFIG_H264DSP) += x86/h264dsp_mmx.o
|
MMX-OBJS-$(CONFIG_H264DSP) += x86/h264dsp_mmx.o
|
||||||
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock.o \
|
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock.o \
|
||||||
x86/h264_deblock_10bit.o \
|
x86/h264_deblock_10bit.o \
|
||||||
@ -59,8 +62,6 @@ MMX-OBJS-$(CONFIG_VP8_DECODER) += x86/vp8dsp-init.o
|
|||||||
MMX-OBJS-$(HAVE_YASM) += x86/dsputil_yasm.o \
|
MMX-OBJS-$(HAVE_YASM) += x86/dsputil_yasm.o \
|
||||||
x86/deinterlace.o \
|
x86/deinterlace.o \
|
||||||
x86/fmtconvert.o \
|
x86/fmtconvert.o \
|
||||||
x86/h264_chromamc.o \
|
|
||||||
x86/h264_chromamc_10bit.o \
|
|
||||||
x86/h264_qpel_10bit.o \
|
x86/h264_qpel_10bit.o \
|
||||||
$(YASM-OBJS-yes)
|
$(YASM-OBJS-yes)
|
||||||
|
|
||||||
|
@ -2548,7 +2548,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_YASM
|
#if HAVE_YASM
|
||||||
if (!high_bit_depth) {
|
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_mmx_rnd;
|
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_mmx_rnd;
|
||||||
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_mmx;
|
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_mmx;
|
||||||
}
|
}
|
||||||
@ -2652,13 +2652,13 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, mmx2, );
|
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, mmx2, );
|
||||||
|
|
||||||
#if HAVE_YASM
|
#if HAVE_YASM
|
||||||
if (!high_bit_depth) {
|
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_mmx2_rnd;
|
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_mmx2_rnd;
|
||||||
c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_mmx2;
|
c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_mmx2;
|
||||||
c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_mmx2;
|
c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_mmx2;
|
||||||
c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_mmx2;
|
c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_mmx2;
|
||||||
}
|
}
|
||||||
if (bit_depth == 10) {
|
if (bit_depth == 10 && CONFIG_H264CHROMA) {
|
||||||
c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_10_mmxext;
|
c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_10_mmxext;
|
||||||
c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_10_mmxext;
|
c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_10_mmxext;
|
||||||
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_10_mmxext;
|
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_10_mmxext;
|
||||||
@ -2728,7 +2728,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, 3dnow, );
|
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, 3dnow, );
|
||||||
|
|
||||||
#if HAVE_YASM
|
#if HAVE_YASM
|
||||||
if (!high_bit_depth) {
|
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_3dnow_rnd;
|
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_3dnow_rnd;
|
||||||
c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_3dnow;
|
c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_3dnow;
|
||||||
}
|
}
|
||||||
@ -2781,8 +2781,10 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
H264_QPEL_FUNCS_10(2, 0, sse2_cache64)
|
H264_QPEL_FUNCS_10(2, 0, sse2_cache64)
|
||||||
H264_QPEL_FUNCS_10(3, 0, sse2_cache64)
|
H264_QPEL_FUNCS_10(3, 0, sse2_cache64)
|
||||||
|
|
||||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_10_sse2;
|
if (CONFIG_H264CHROMA) {
|
||||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_10_sse2;
|
c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_10_sse2;
|
||||||
|
c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_10_sse2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -2808,7 +2810,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
H264_QPEL_FUNCS_10(2, 0, ssse3_cache64)
|
H264_QPEL_FUNCS_10(2, 0, ssse3_cache64)
|
||||||
H264_QPEL_FUNCS_10(3, 0, ssse3_cache64)
|
H264_QPEL_FUNCS_10(3, 0, ssse3_cache64)
|
||||||
}
|
}
|
||||||
if (!high_bit_depth) {
|
if (!high_bit_depth && CONFIG_H264CHROMA) {
|
||||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_ssse3_rnd;
|
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_ssse3_rnd;
|
||||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_ssse3_rnd;
|
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_ssse3_rnd;
|
||||||
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_ssse3;
|
c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_ssse3;
|
||||||
@ -2909,8 +2911,10 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
H264_QPEL_FUNCS_10(2, 0, sse2)
|
H264_QPEL_FUNCS_10(2, 0, sse2)
|
||||||
H264_QPEL_FUNCS_10(3, 0, sse2)
|
H264_QPEL_FUNCS_10(3, 0, sse2)
|
||||||
|
|
||||||
c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_10_avx;
|
if (CONFIG_H264CHROMA) {
|
||||||
c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_10_avx;
|
c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_10_avx;
|
||||||
|
c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_10_avx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
c->butterflies_float_interleave = ff_butterflies_float_interleave_avx;
|
c->butterflies_float_interleave = ff_butterflies_float_interleave_avx;
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ static int parse_playlist(AppleHTTPContext *c, const char *url,
|
|||||||
enum KeyType key_type = KEY_NONE;
|
enum KeyType key_type = KEY_NONE;
|
||||||
uint8_t iv[16] = "";
|
uint8_t iv[16] = "";
|
||||||
int has_iv = 0;
|
int has_iv = 0;
|
||||||
char key[MAX_URL_SIZE];
|
char key[MAX_URL_SIZE] = "";
|
||||||
char line[1024];
|
char line[1024];
|
||||||
const char *ptr;
|
const char *ptr;
|
||||||
int close_in = 0;
|
int close_in = 0;
|
||||||
@ -503,8 +503,15 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
v->pb.seekable = 0;
|
v->pb.seekable = 0;
|
||||||
ret = av_probe_input_buffer(&v->pb, &in_fmt, v->segments[0]->url,
|
ret = av_probe_input_buffer(&v->pb, &in_fmt, v->segments[0]->url,
|
||||||
NULL, 0, 0);
|
NULL, 0, 0);
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
|
/* Free the ctx - it isn't initialized properly at this point,
|
||||||
|
* so avformat_close_input shouldn't be called. If
|
||||||
|
* avformat_open_input fails below, it frees and zeros the
|
||||||
|
* context, so it doesn't need any special treatment like this. */
|
||||||
|
avformat_free_context(v->ctx);
|
||||||
|
v->ctx = NULL;
|
||||||
goto fail;
|
goto fail;
|
||||||
|
}
|
||||||
v->ctx->pb = &v->pb;
|
v->ctx->pb = &v->pb;
|
||||||
ret = avformat_open_input(&v->ctx, v->segments[0]->url, in_fmt, NULL);
|
ret = avformat_open_input(&v->ctx, v->segments[0]->url, in_fmt, NULL);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -651,7 +651,7 @@ cglobal yuv2planeX_%2_%1, %4, 7, %3
|
|||||||
%define PALIGNR PALIGNR_MMX
|
%define PALIGNR PALIGNR_MMX
|
||||||
%ifdef ARCH_X86_32
|
%ifdef ARCH_X86_32
|
||||||
INIT_MMX
|
INIT_MMX
|
||||||
yuv2planeX_fn mmx, 8, 0, 7
|
yuv2planeX_fn mmx2, 8, 0, 7
|
||||||
yuv2planeX_fn mmx2, 9, 0, 5
|
yuv2planeX_fn mmx2, 9, 0, 5
|
||||||
yuv2planeX_fn mmx2, 10, 0, 5
|
yuv2planeX_fn mmx2, 10, 0, 5
|
||||||
%endif
|
%endif
|
||||||
|
@ -278,18 +278,18 @@ SCALE_FUNCS_SSE(sse4);
|
|||||||
extern void ff_yuv2planeX_ ## size ## _ ## opt(const int16_t *filter, int filterSize, \
|
extern void ff_yuv2planeX_ ## size ## _ ## opt(const int16_t *filter, int filterSize, \
|
||||||
const int16_t **src, uint8_t *dest, int dstW, \
|
const int16_t **src, uint8_t *dest, int dstW, \
|
||||||
const uint8_t *dither, int offset)
|
const uint8_t *dither, int offset)
|
||||||
#define VSCALEX_FUNCS(opt1, opt2) \
|
#define VSCALEX_FUNCS(opt) \
|
||||||
VSCALEX_FUNC(8, opt1); \
|
VSCALEX_FUNC(8, opt); \
|
||||||
VSCALEX_FUNC(9, opt2); \
|
VSCALEX_FUNC(9, opt); \
|
||||||
VSCALEX_FUNC(10, opt2)
|
VSCALEX_FUNC(10, opt)
|
||||||
|
|
||||||
#if ARCH_X86_32
|
#if ARCH_X86_32
|
||||||
VSCALEX_FUNCS(mmx, mmx2);
|
VSCALEX_FUNCS(mmx2);
|
||||||
#endif
|
#endif
|
||||||
VSCALEX_FUNCS(sse2, sse2);
|
VSCALEX_FUNCS(sse2);
|
||||||
VSCALEX_FUNCS(sse4, sse4);
|
VSCALEX_FUNCS(sse4);
|
||||||
VSCALEX_FUNC(16, sse4);
|
VSCALEX_FUNC(16, sse4);
|
||||||
VSCALEX_FUNCS(avx, avx);
|
VSCALEX_FUNCS(avx);
|
||||||
|
|
||||||
#define VSCALE_FUNC(size, opt) \
|
#define VSCALE_FUNC(size, opt) \
|
||||||
extern void ff_yuv2plane1_ ## size ## _ ## opt(const int16_t *src, uint8_t *dst, int dstW, \
|
extern void ff_yuv2plane1_ ## size ## _ ## opt(const int16_t *src, uint8_t *dst, int dstW, \
|
||||||
@ -347,12 +347,12 @@ void ff_sws_init_swScale_mmx(SwsContext *c)
|
|||||||
case 8: ASSIGN_SCALE_FUNC2(hscalefn, 8, opt1, opt2); break; \
|
case 8: ASSIGN_SCALE_FUNC2(hscalefn, 8, opt1, opt2); break; \
|
||||||
default: ASSIGN_SCALE_FUNC2(hscalefn, X, opt1, opt2); break; \
|
default: ASSIGN_SCALE_FUNC2(hscalefn, X, opt1, opt2); break; \
|
||||||
}
|
}
|
||||||
#define ASSIGN_VSCALEX_FUNC(vscalefn, opt1, opt2, opt2chk, do_16_case) \
|
#define ASSIGN_VSCALEX_FUNC(vscalefn, opt, do_16_case) \
|
||||||
switch(c->dstBpc){ \
|
switch(c->dstBpc){ \
|
||||||
case 16: /*do_16_case;*/ break; \
|
case 16: /*do_16_case;*/ break; \
|
||||||
case 10: if (!isBE(c->dstFormat) && opt2chk) /*vscalefn = ff_yuv2planeX_10_ ## opt2;*/ break; \
|
case 10: if (!isBE(c->dstFormat)) /*vscalefn = ff_yuv2planeX_10_ ## opt;*/ break; \
|
||||||
case 9: if (!isBE(c->dstFormat) && opt2chk) /*vscalefn = ff_yuv2planeX_9_ ## opt2;*/ break; \
|
case 9: if (!isBE(c->dstFormat)) /*vscalefn = ff_yuv2planeX_9_ ## opt;*/ break; \
|
||||||
default: /*vscalefn = ff_yuv2planeX_8_ ## opt1;*/ break; \
|
default: /*vscalefn = ff_yuv2planeX_8_ ## opt;*/ break; \
|
||||||
}
|
}
|
||||||
#define ASSIGN_VSCALE_FUNC(vscalefn, opt1, opt2, opt2chk) \
|
#define ASSIGN_VSCALE_FUNC(vscalefn, opt1, opt2, opt2chk) \
|
||||||
switch(c->dstBpc){ \
|
switch(c->dstBpc){ \
|
||||||
@ -365,9 +365,11 @@ switch(c->dstBpc){ \
|
|||||||
if (cpu_flags & AV_CPU_FLAG_MMX) {
|
if (cpu_flags & AV_CPU_FLAG_MMX) {
|
||||||
ASSIGN_MMX_SCALE_FUNC(c->hyScale, c->hLumFilterSize, mmx, mmx);
|
ASSIGN_MMX_SCALE_FUNC(c->hyScale, c->hLumFilterSize, mmx, mmx);
|
||||||
ASSIGN_MMX_SCALE_FUNC(c->hcScale, c->hChrFilterSize, mmx, mmx);
|
ASSIGN_MMX_SCALE_FUNC(c->hcScale, c->hChrFilterSize, mmx, mmx);
|
||||||
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, mmx, mmx2, cpu_flags & AV_CPU_FLAG_MMX2,);
|
|
||||||
ASSIGN_VSCALE_FUNC(c->yuv2plane1, mmx, mmx2, cpu_flags & AV_CPU_FLAG_MMX2);
|
ASSIGN_VSCALE_FUNC(c->yuv2plane1, mmx, mmx2, cpu_flags & AV_CPU_FLAG_MMX2);
|
||||||
}
|
}
|
||||||
|
if (cpu_flags & AV_CPU_FLAG_MMX2) {
|
||||||
|
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, mmx2,);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#define ASSIGN_SSE_SCALE_FUNC(hscalefn, filtersize, opt1, opt2) \
|
#define ASSIGN_SSE_SCALE_FUNC(hscalefn, filtersize, opt1, opt2) \
|
||||||
switch (filtersize) { \
|
switch (filtersize) { \
|
||||||
@ -380,7 +382,7 @@ switch(c->dstBpc){ \
|
|||||||
if (cpu_flags & AV_CPU_FLAG_SSE2) {
|
if (cpu_flags & AV_CPU_FLAG_SSE2) {
|
||||||
ASSIGN_SSE_SCALE_FUNC(c->hyScale, c->hLumFilterSize, sse2, sse2);
|
ASSIGN_SSE_SCALE_FUNC(c->hyScale, c->hLumFilterSize, sse2, sse2);
|
||||||
ASSIGN_SSE_SCALE_FUNC(c->hcScale, c->hChrFilterSize, sse2, sse2);
|
ASSIGN_SSE_SCALE_FUNC(c->hcScale, c->hChrFilterSize, sse2, sse2);
|
||||||
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, sse2, sse2, 1,);
|
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, sse2,);
|
||||||
ASSIGN_VSCALE_FUNC(c->yuv2plane1, sse2, sse2, 1);
|
ASSIGN_VSCALE_FUNC(c->yuv2plane1, sse2, sse2, 1);
|
||||||
}
|
}
|
||||||
if (cpu_flags & AV_CPU_FLAG_SSSE3) {
|
if (cpu_flags & AV_CPU_FLAG_SSSE3) {
|
||||||
@ -391,14 +393,14 @@ switch(c->dstBpc){ \
|
|||||||
/* Xto15 don't need special sse4 functions */
|
/* Xto15 don't need special sse4 functions */
|
||||||
ASSIGN_SSE_SCALE_FUNC(c->hyScale, c->hLumFilterSize, sse4, ssse3);
|
ASSIGN_SSE_SCALE_FUNC(c->hyScale, c->hLumFilterSize, sse4, ssse3);
|
||||||
ASSIGN_SSE_SCALE_FUNC(c->hcScale, c->hChrFilterSize, sse4, ssse3);
|
ASSIGN_SSE_SCALE_FUNC(c->hcScale, c->hChrFilterSize, sse4, ssse3);
|
||||||
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, sse4, sse4, 1,
|
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, sse4,
|
||||||
if (!isBE(c->dstFormat)) c->yuv2planeX = ff_yuv2planeX_16_sse4);
|
if (!isBE(c->dstFormat)) c->yuv2planeX = ff_yuv2planeX_16_sse4);
|
||||||
if (c->dstBpc == 16 && !isBE(c->dstFormat))
|
if (c->dstBpc == 16 && !isBE(c->dstFormat))
|
||||||
c->yuv2plane1 = ff_yuv2plane1_16_sse4;
|
c->yuv2plane1 = ff_yuv2plane1_16_sse4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpu_flags & AV_CPU_FLAG_AVX) {
|
if (cpu_flags & AV_CPU_FLAG_AVX) {
|
||||||
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, avx, avx, 1,);
|
ASSIGN_VSCALEX_FUNC(c->yuv2planeX, avx,);
|
||||||
ASSIGN_VSCALE_FUNC(c->yuv2plane1, avx, avx, 1);
|
ASSIGN_VSCALE_FUNC(c->yuv2plane1, avx, avx, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -44,18 +44,27 @@ include $(SRC_PATH)/tests/fate.mak
|
|||||||
include $(SRC_PATH)/tests/fate2.mak
|
include $(SRC_PATH)/tests/fate2.mak
|
||||||
|
|
||||||
include $(SRC_PATH)/tests/fate/aac.mak
|
include $(SRC_PATH)/tests/fate/aac.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/ac3.mak
|
||||||
include $(SRC_PATH)/tests/fate/als.mak
|
include $(SRC_PATH)/tests/fate/als.mak
|
||||||
include $(SRC_PATH)/tests/fate/amrnb.mak
|
include $(SRC_PATH)/tests/fate/amrnb.mak
|
||||||
include $(SRC_PATH)/tests/fate/amrwb.mak
|
include $(SRC_PATH)/tests/fate/amrwb.mak
|
||||||
include $(SRC_PATH)/tests/fate/dct.mak
|
include $(SRC_PATH)/tests/fate/dct.mak
|
||||||
include $(SRC_PATH)/tests/fate/fft.mak
|
include $(SRC_PATH)/tests/fate/fft.mak
|
||||||
include $(SRC_PATH)/tests/fate/h264.mak
|
include $(SRC_PATH)/tests/fate/h264.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/image.mak
|
||||||
include $(SRC_PATH)/tests/fate/libavutil.mak
|
include $(SRC_PATH)/tests/fate/libavutil.mak
|
||||||
include $(SRC_PATH)/tests/fate/mapchan.mak
|
include $(SRC_PATH)/tests/fate/mapchan.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/lossless-audio.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/lossless-video.mak
|
||||||
include $(SRC_PATH)/tests/fate/mp3.mak
|
include $(SRC_PATH)/tests/fate/mp3.mak
|
||||||
include $(SRC_PATH)/tests/fate/prores.mak
|
include $(SRC_PATH)/tests/fate/prores.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/qtrle.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/real.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/screen.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/utvideo.mak
|
||||||
include $(SRC_PATH)/tests/fate/vorbis.mak
|
include $(SRC_PATH)/tests/fate/vorbis.mak
|
||||||
include $(SRC_PATH)/tests/fate/vp8.mak
|
include $(SRC_PATH)/tests/fate/vp8.mak
|
||||||
|
include $(SRC_PATH)/tests/fate/wma.mak
|
||||||
|
|
||||||
FATE_ACODEC = $(ACODEC_TESTS:%=fate-acodec-%)
|
FATE_ACODEC = $(ACODEC_TESTS:%=fate-acodec-%)
|
||||||
FATE_VSYNTH1 = $(VCODEC_TESTS:%=fate-vsynth1-%)
|
FATE_VSYNTH1 = $(VCODEC_TESTS:%=fate-vsynth1-%)
|
||||||
|
@ -4,14 +4,14 @@ FATE_TESTS += fate-4xm-2
|
|||||||
fate-4xm-2: CMD = framecrc -i $(SAMPLES)/4xm/version2.4xm -pix_fmt rgb24 -an
|
fate-4xm-2: CMD = framecrc -i $(SAMPLES)/4xm/version2.4xm -pix_fmt rgb24 -an
|
||||||
FATE_TESTS += fate-8bps
|
FATE_TESTS += fate-8bps
|
||||||
fate-8bps: CMD = framecrc -i $(SAMPLES)/8bps/full9iron-partial.mov -pix_fmt rgb24
|
fate-8bps: CMD = framecrc -i $(SAMPLES)/8bps/full9iron-partial.mov -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-aac-demux
|
|
||||||
fate-aac-demux: CMD = crc -i $(SAMPLES)/aac/ct_faac-adts.aac -acodec copy
|
|
||||||
FATE_TESTS += fate-aasc
|
FATE_TESTS += fate-aasc
|
||||||
fate-aasc: CMD = framecrc -i $(SAMPLES)/aasc/AASC-1.5MB.AVI -pix_fmt rgb24
|
fate-aasc: CMD = framecrc -i $(SAMPLES)/aasc/AASC-1.5MB.AVI -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-adpcm-ea-r2
|
FATE_TESTS += fate-adpcm-ea-r2
|
||||||
fate-adpcm-ea-r2: CMD = crc -i $(SAMPLES)/ea-mpc/THX_logo.mpc -vn
|
fate-adpcm-ea-r2: CMD = crc -i $(SAMPLES)/ea-mpc/THX_logo.mpc -vn
|
||||||
FATE_TESTS += fate-adpcm-ea-r3
|
FATE_TESTS += fate-adpcm-ea-r3
|
||||||
fate-adpcm-ea-r3: CMD = crc -i $(SAMPLES)/ea-vp6/THX_logo.vp6 -vn
|
fate-adpcm-ea-r3: CMD = crc -i $(SAMPLES)/ea-vp6/THX_logo.vp6 -vn
|
||||||
|
FATE_TESTS += fate-adts-demux
|
||||||
|
fate-adts-demux: CMD = crc -i $(SAMPLES)/aac/ct_faac-adts.aac -acodec copy
|
||||||
FATE_TESTS += fate-aea-demux
|
FATE_TESTS += fate-aea-demux
|
||||||
fate-aea-demux: CMD = crc -i $(SAMPLES)/aea/chirp.aea -acodec copy
|
fate-aea-demux: CMD = crc -i $(SAMPLES)/aea/chirp.aea -acodec copy
|
||||||
FATE_TESTS += fate-alg-mm
|
FATE_TESTS += fate-alg-mm
|
||||||
@ -52,8 +52,6 @@ FATE_TESTS += fate-creatureshock-avs
|
|||||||
fate-creatureshock-avs: CMD = framecrc -i $(SAMPLES)/creatureshock-avs/OUTATIME.AVS -pix_fmt rgb24
|
fate-creatureshock-avs: CMD = framecrc -i $(SAMPLES)/creatureshock-avs/OUTATIME.AVS -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-cryo-apc
|
FATE_TESTS += fate-cryo-apc
|
||||||
fate-cryo-apc: CMD = md5 -i $(SAMPLES)/cryo-apc/cine007.APC -f s16le
|
fate-cryo-apc: CMD = md5 -i $(SAMPLES)/cryo-apc/cine007.APC -f s16le
|
||||||
FATE_TESTS += fate-cscd
|
|
||||||
fate-cscd: CMD = framecrc -i $(SAMPLES)/CSCD/sample_video.avi -an -vsync 0 -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-cvid
|
FATE_TESTS += fate-cvid
|
||||||
fate-cvid: CMD = framecrc -i $(SAMPLES)/cvid/laracroft-cinepak-partial.avi -an
|
fate-cvid: CMD = framecrc -i $(SAMPLES)/cvid/laracroft-cinepak-partial.avi -an
|
||||||
FATE_TESTS += fate-cvid-palette
|
FATE_TESTS += fate-cvid-palette
|
||||||
@ -68,8 +66,6 @@ FATE_TESTS += fate-delphine-cin
|
|||||||
fate-delphine-cin: CMD = framecrc -i $(SAMPLES)/delphine-cin/LOGO-partial.CIN -pix_fmt rgb24 -vsync 0
|
fate-delphine-cin: CMD = framecrc -i $(SAMPLES)/delphine-cin/LOGO-partial.CIN -pix_fmt rgb24 -vsync 0
|
||||||
FATE_TESTS += fate-deluxepaint-anm
|
FATE_TESTS += fate-deluxepaint-anm
|
||||||
fate-deluxepaint-anm: CMD = framecrc -i $(SAMPLES)/deluxepaint-anm/INTRO1.ANM -pix_fmt rgb24
|
fate-deluxepaint-anm: CMD = framecrc -i $(SAMPLES)/deluxepaint-anm/INTRO1.ANM -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-dpx
|
|
||||||
fate-dpx: CMD = framecrc -i $(SAMPLES)/dpx/lighthouse_rgb48.dpx
|
|
||||||
FATE_TESTS += fate-duck-dk3
|
FATE_TESTS += fate-duck-dk3
|
||||||
fate-duck-dk3: CMD = md5 -i $(SAMPLES)/duck/sop-audio-only.avi -f s16le
|
fate-duck-dk3: CMD = md5 -i $(SAMPLES)/duck/sop-audio-only.avi -f s16le
|
||||||
FATE_TESTS += fate-duck-dk4
|
FATE_TESTS += fate-duck-dk4
|
||||||
@ -108,18 +104,6 @@ FATE_TESTS += fate-flic-af12
|
|||||||
fate-flic-af12: CMD = framecrc -i $(SAMPLES)/fli/jj00c2.fli -pix_fmt rgb24
|
fate-flic-af12: CMD = framecrc -i $(SAMPLES)/fli/jj00c2.fli -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-flic-magiccarpet
|
FATE_TESTS += fate-flic-magiccarpet
|
||||||
fate-flic-magiccarpet: CMD = framecrc -i $(SAMPLES)/fli/intel.dat -pix_fmt rgb24
|
fate-flic-magiccarpet: CMD = framecrc -i $(SAMPLES)/fli/intel.dat -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-fraps-v0
|
|
||||||
fate-fraps-v0: CMD = framecrc -i $(SAMPLES)/fraps/Griffin_Ragdoll01-partial.avi
|
|
||||||
FATE_TESTS += fate-fraps-v1
|
|
||||||
fate-fraps-v1: CMD = framecrc -i $(SAMPLES)/fraps/sample-v1.avi -an
|
|
||||||
FATE_TESTS += fate-fraps-v2
|
|
||||||
fate-fraps-v2: CMD = framecrc -i $(SAMPLES)/fraps/test3-nosound-partial.avi
|
|
||||||
FATE_TESTS += fate-fraps-v3
|
|
||||||
fate-fraps-v3: CMD = framecrc -i $(SAMPLES)/fraps/psclient-partial.avi -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-fraps-v4
|
|
||||||
fate-fraps-v4: CMD = framecrc -i $(SAMPLES)/fraps/WoW_2006-11-03_14-58-17-19-nosound-partial.avi
|
|
||||||
FATE_TESTS += fate-fraps-v5
|
|
||||||
fate-fraps-v5: CMD = framecrc -i $(SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi
|
|
||||||
FATE_TESTS += fate-frwu
|
FATE_TESTS += fate-frwu
|
||||||
fate-frwu: CMD = framecrc -i $(SAMPLES)/frwu/frwu.avi
|
fate-frwu: CMD = framecrc -i $(SAMPLES)/frwu/frwu.avi
|
||||||
FATE_TESTS += fate-funcom-iss
|
FATE_TESTS += fate-funcom-iss
|
||||||
@ -158,22 +142,6 @@ FATE_TESTS += fate-kmvc
|
|||||||
fate-kmvc: CMD = framecrc -i $(SAMPLES)/KMVC/LOGO1.AVI -an -t 3 -pix_fmt rgb24
|
fate-kmvc: CMD = framecrc -i $(SAMPLES)/KMVC/LOGO1.AVI -an -t 3 -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-lmlm4-demux
|
FATE_TESTS += fate-lmlm4-demux
|
||||||
fate-lmlm4-demux: CMD = framecrc -i $(SAMPLES)/lmlm4/LMLM4_CIFat30fps.divx -t 3 -acodec copy -vcodec copy
|
fate-lmlm4-demux: CMD = framecrc -i $(SAMPLES)/lmlm4/LMLM4_CIFat30fps.divx -t 3 -acodec copy -vcodec copy
|
||||||
FATE_TESTS += fate-loco-rgb
|
|
||||||
fate-loco-rgb: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-rgb.avi
|
|
||||||
FATE_TESTS += fate-loco-yuy2
|
|
||||||
fate-loco-yuy2: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-0.avi
|
|
||||||
FATE_TESTS += fate-lossless-appleaudio
|
|
||||||
fate-lossless-appleaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/inside.m4a -f s16le
|
|
||||||
FATE_TESTS += fate-lossless-meridianaudio
|
|
||||||
fate-lossless-meridianaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.mlp -f s16le
|
|
||||||
FATE_TESTS += fate-lossless-monkeysaudio
|
|
||||||
fate-lossless-monkeysaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.ape -f s16le
|
|
||||||
FATE_TESTS += fate-lossless-shortenaudio
|
|
||||||
fate-lossless-shortenaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.shn -f s16le
|
|
||||||
FATE_TESTS += fate-lossless-tta
|
|
||||||
fate-lossless-tta: CMD = crc -i $(SAMPLES)/lossless-audio/inside.tta
|
|
||||||
FATE_TESTS += fate-lossless-wavpackaudio
|
|
||||||
fate-lossless-wavpackaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.wv -f s16le
|
|
||||||
FATE_TESTS += fate-maxis-xa
|
FATE_TESTS += fate-maxis-xa
|
||||||
fate-maxis-xa: CMD = md5 -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -f s16le
|
fate-maxis-xa: CMD = md5 -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -f s16le
|
||||||
FATE_TESTS += fate-mimic
|
FATE_TESTS += fate-mimic
|
||||||
@ -184,14 +152,10 @@ FATE_TESTS += fate-mpc7-demux
|
|||||||
fate-mpc7-demux: CMD = crc -i $(SAMPLES)/musepack/inside-mp7.mpc -acodec copy
|
fate-mpc7-demux: CMD = crc -i $(SAMPLES)/musepack/inside-mp7.mpc -acodec copy
|
||||||
FATE_TESTS += fate-mpc8-demux
|
FATE_TESTS += fate-mpc8-demux
|
||||||
fate-mpc8-demux: CMD = crc -i $(SAMPLES)/musepack/inside-mp8.mpc -acodec copy
|
fate-mpc8-demux: CMD = crc -i $(SAMPLES)/musepack/inside-mp8.mpc -acodec copy
|
||||||
FATE_TESTS += fate-msrle-8bit
|
|
||||||
fate-msrle-8bit: CMD = framecrc -i $(SAMPLES)/msrle/Search-RLE.avi -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-msvideo1-16bit
|
FATE_TESTS += fate-msvideo1-16bit
|
||||||
fate-msvideo1-16bit: CMD = framecrc -i $(SAMPLES)/cram/clock-cram16.avi -pix_fmt rgb24
|
fate-msvideo1-16bit: CMD = framecrc -i $(SAMPLES)/cram/clock-cram16.avi -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-msvideo1-8bit
|
FATE_TESTS += fate-msvideo1-8bit
|
||||||
fate-msvideo1-8bit: CMD = framecrc -i $(SAMPLES)/cram/skating.avi -t 1 -pix_fmt rgb24
|
fate-msvideo1-8bit: CMD = framecrc -i $(SAMPLES)/cram/skating.avi -t 1 -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-mszh
|
|
||||||
fate-mszh: CMD = framecrc -i $(SAMPLES)/lcl/mszh-1frame.avi
|
|
||||||
FATE_TESTS += fate-mtv
|
FATE_TESTS += fate-mtv
|
||||||
fate-mtv: CMD = framecrc -i $(SAMPLES)/mtv/comedian_auto-partial.mtv -acodec copy -pix_fmt rgb24
|
fate-mtv: CMD = framecrc -i $(SAMPLES)/mtv/comedian_auto-partial.mtv -acodec copy -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-mxf-demux
|
FATE_TESTS += fate-mxf-demux
|
||||||
@ -212,8 +176,6 @@ FATE_TESTS += fate-psx-str-v3-mdec
|
|||||||
fate-psx-str-v3-mdec: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -an
|
fate-psx-str-v3-mdec: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -an
|
||||||
FATE_TESTS += fate-psx-str-v3-adpcm_xa
|
FATE_TESTS += fate-psx-str-v3-adpcm_xa
|
||||||
fate-psx-str-v3-adpcm_xa: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -vn
|
fate-psx-str-v3-adpcm_xa: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -vn
|
||||||
FATE_TESTS += fate-ptx
|
|
||||||
fate-ptx: CMD = framecrc -i $(SAMPLES)/ptx/_113kw_pic.ptx -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-pva-demux
|
FATE_TESTS += fate-pva-demux
|
||||||
fate-pva-demux: CMD = framecrc -idct simple -i $(SAMPLES)/pva/PVA_test-partial.pva -t 0.6 -acodec copy
|
fate-pva-demux: CMD = framecrc -idct simple -i $(SAMPLES)/pva/PVA_test-partial.pva -t 0.6 -acodec copy
|
||||||
FATE_TESTS += fate-qcp-demux
|
FATE_TESTS += fate-qcp-demux
|
||||||
@ -252,26 +214,8 @@ FATE_TESTS += fate-qt-ulaw-mono
|
|||||||
fate-qt-ulaw-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-16-B-ulaw.mov -f s16le
|
fate-qt-ulaw-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-16-B-ulaw.mov -f s16le
|
||||||
FATE_TESTS += fate-qt-ulaw-stereo
|
FATE_TESTS += fate-qt-ulaw-stereo
|
||||||
fate-qt-ulaw-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-ulaw.mov -f s16le
|
fate-qt-ulaw-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-ulaw.mov -f s16le
|
||||||
FATE_TESTS += fate-qtrle-16bit
|
|
||||||
fate-qtrle-16bit: CMD = framecrc -i $(SAMPLES)/qtrle/mr-cork-rle.mov -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-qtrle-1bit
|
|
||||||
fate-qtrle-1bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-Monochrome.mov
|
|
||||||
FATE_TESTS += fate-qtrle-24bit
|
|
||||||
fate-qtrle-24bit: CMD = framecrc -i $(SAMPLES)/qtrle/aletrek-rle.mov -vsync 0
|
|
||||||
FATE_TESTS += fate-qtrle-2bit
|
|
||||||
fate-qtrle-2bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-4Greys.mov -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-qtrle-32bit
|
|
||||||
fate-qtrle-32bit: CMD = framecrc -i $(SAMPLES)/qtrle/ultra_demo_720_480_32bpp_rle.mov -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-qtrle-4bit
|
|
||||||
fate-qtrle-4bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-16Greys.mov -pix_fmt rgb24 -an
|
|
||||||
FATE_TESTS += fate-qtrle-8bit
|
|
||||||
fate-qtrle-8bit: CMD = framecrc -i $(SAMPLES)/qtrle/criticalpath-credits.mov -vsync 0 -pix_fmt rgb24 -an
|
|
||||||
FATE_TESTS += fate-quickdraw
|
FATE_TESTS += fate-quickdraw
|
||||||
fate-quickdraw: CMD = framecrc -i $(SAMPLES)/quickdraw/Airplane.mov -pix_fmt rgb24
|
fate-quickdraw: CMD = framecrc -i $(SAMPLES)/quickdraw/Airplane.mov -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-real-14_4
|
|
||||||
fate-real-14_4: CMD = md5 -i $(SAMPLES)/real/ra3_in_rm_file.rm -f s16le
|
|
||||||
FATE_TESTS += fate-real-rv40
|
|
||||||
fate-real-rv40: CMD = framecrc -i $(SAMPLES)/real/spygames-2MB.rmvb -t 10 -an -vsync 0
|
|
||||||
FATE_TESTS += fate-redcode-demux
|
FATE_TESTS += fate-redcode-demux
|
||||||
fate-redcode-demux: CMD = framecrc -i $(SAMPLES)/r3d/4MB-sample.r3d -vcodec copy -acodec copy
|
fate-redcode-demux: CMD = framecrc -i $(SAMPLES)/r3d/4MB-sample.r3d -vcodec copy -acodec copy
|
||||||
FATE_TESTS += fate-rl2
|
FATE_TESTS += fate-rl2
|
||||||
@ -292,18 +236,6 @@ FATE_TESTS += fate-sp5x
|
|||||||
fate-sp5x: CMD = framecrc -idct simple -i $(SAMPLES)/sp5x/sp5x_problem.avi
|
fate-sp5x: CMD = framecrc -idct simple -i $(SAMPLES)/sp5x/sp5x_problem.avi
|
||||||
FATE_TESTS += fate-sub-srt
|
FATE_TESTS += fate-sub-srt
|
||||||
fate-sub-srt: CMD = md5 -i $(SAMPLES)/sub/SubRip_capability_tester.srt -f ass
|
fate-sub-srt: CMD = md5 -i $(SAMPLES)/sub/SubRip_capability_tester.srt -f ass
|
||||||
FATE_TESTS += fate-sunraster-1bit-raw
|
|
||||||
fate-sunraster-1bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-1bit-raw.sun
|
|
||||||
FATE_TESTS += fate-sunraster-1bit-rle
|
|
||||||
fate-sunraster-1bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-1bit-rle.sun
|
|
||||||
FATE_TESTS += fate-sunraster-24bit-raw
|
|
||||||
fate-sunraster-24bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-24bit-raw.sun
|
|
||||||
FATE_TESTS += fate-sunraster-24bit-rle
|
|
||||||
fate-sunraster-24bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-24bit-rle.sun
|
|
||||||
FATE_TESTS += fate-sunraster-8bit-raw
|
|
||||||
fate-sunraster-8bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-8bit-raw.sun -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-sunraster-8bit-rle
|
|
||||||
fate-sunraster-8bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-8bit-rle.sun -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-svq1
|
FATE_TESTS += fate-svq1
|
||||||
fate-svq1: CMD = framecrc -i $(SAMPLES)/svq1/marymary-shackles.mov -an -t 10
|
fate-svq1: CMD = framecrc -i $(SAMPLES)/svq1/marymary-shackles.mov -an -t 10
|
||||||
FATE_TESTS += fate-svq3
|
FATE_TESTS += fate-svq3
|
||||||
@ -318,10 +250,6 @@ FATE_TESTS += fate-truemotion1-15
|
|||||||
fate-truemotion1-15: CMD = framecrc -i $(SAMPLES)/duck/phant2-940.duk -pix_fmt rgb24
|
fate-truemotion1-15: CMD = framecrc -i $(SAMPLES)/duck/phant2-940.duk -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-truemotion1-24
|
FATE_TESTS += fate-truemotion1-24
|
||||||
fate-truemotion1-24: CMD = framecrc -i $(SAMPLES)/duck/sonic3dblast_intro-partial.avi -pix_fmt rgb24
|
fate-truemotion1-24: CMD = framecrc -i $(SAMPLES)/duck/sonic3dblast_intro-partial.avi -pix_fmt rgb24
|
||||||
FATE_TESTS += fate-tscc-15bit
|
|
||||||
fate-tscc-15bit: CMD = framecrc -i $(SAMPLES)/tscc/oneminute.avi -t 15 -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-tscc-32bit
|
|
||||||
fate-tscc-32bit: CMD = framecrc -i $(SAMPLES)/tscc/2004-12-17-uebung9-partial.avi -pix_fmt rgb24 -an
|
|
||||||
FATE_TESTS += fate-ulti
|
FATE_TESTS += fate-ulti
|
||||||
fate-ulti: CMD = framecrc -i $(SAMPLES)/ulti/hit12w.avi -an
|
fate-ulti: CMD = framecrc -i $(SAMPLES)/ulti/hit12w.avi -an
|
||||||
FATE_TESTS += fate-v210
|
FATE_TESTS += fate-v210
|
||||||
@ -332,10 +260,6 @@ FATE_TESTS += fate-vcr1
|
|||||||
fate-vcr1: CMD = framecrc -i $(SAMPLES)/vcr1/VCR1test.avi -an
|
fate-vcr1: CMD = framecrc -i $(SAMPLES)/vcr1/VCR1test.avi -an
|
||||||
FATE_TESTS += fate-video-xl
|
FATE_TESTS += fate-video-xl
|
||||||
fate-video-xl: CMD = framecrc -i $(SAMPLES)/vixl/pig-vixl.avi
|
fate-video-xl: CMD = framecrc -i $(SAMPLES)/vixl/pig-vixl.avi
|
||||||
FATE_TESTS += fate-vmnc-16bit
|
|
||||||
fate-vmnc-16bit: CMD = framecrc -i $(SAMPLES)/VMnc/test.avi -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-vmnc-32bit
|
|
||||||
fate-vmnc-32bit: CMD = framecrc -i $(SAMPLES)/VMnc/VS2k5DebugDemo-01-partial.avi -pix_fmt rgb24
|
|
||||||
FATE_TESTS += fate-vp5
|
FATE_TESTS += fate-vp5
|
||||||
fate-vp5: CMD = framecrc -i $(SAMPLES)/vp5/potter512-400-partial.avi -an
|
fate-vp5: CMD = framecrc -i $(SAMPLES)/vp5/potter512-400-partial.avi -an
|
||||||
FATE_TESTS += fate-vp6a
|
FATE_TESTS += fate-vp6a
|
||||||
@ -356,13 +280,3 @@ FATE_TESTS += fate-wnv1
|
|||||||
fate-wnv1: CMD = framecrc -i $(SAMPLES)/wnv1/wnv1-codec.avi -an
|
fate-wnv1: CMD = framecrc -i $(SAMPLES)/wnv1/wnv1-codec.avi -an
|
||||||
FATE_TESTS += fate-xan-dpcm
|
FATE_TESTS += fate-xan-dpcm
|
||||||
fate-xan-dpcm: CMD = md5 -i $(SAMPLES)/wc4-xan/wc4_2.avi -vn -f s16le
|
fate-xan-dpcm: CMD = md5 -i $(SAMPLES)/wc4-xan/wc4_2.avi -vn -f s16le
|
||||||
FATE_TESTS += fate-zlib
|
|
||||||
fate-zlib: CMD = framecrc -i $(SAMPLES)/lcl/zlib-1frame.avi
|
|
||||||
FATE_TESTS += fate-zmbv-15bit
|
|
||||||
fate-zmbv-15bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_15bit.avi -pix_fmt rgb24 -t 25
|
|
||||||
FATE_TESTS += fate-zmbv-16bit
|
|
||||||
fate-zmbv-16bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_16bit.avi -pix_fmt rgb24 -t 25
|
|
||||||
FATE_TESTS += fate-zmbv-32bit
|
|
||||||
fate-zmbv-32bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_32bit.avi -pix_fmt rgb24 -t 25
|
|
||||||
FATE_TESTS += fate-zmbv-8bit
|
|
||||||
fate-zmbv-8bit: CMD = framecrc -i $(SAMPLES)/zmbv/wc2_001-partial.avi -an -pix_fmt rgb24
|
|
||||||
|
29
tests/fate/ac3.mak
Normal file
29
tests/fate/ac3.mak
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
FATE_TESTS += fate-ac3-2.0
|
||||||
|
fate-ac3-2.0: CMD = pcm -i $(SAMPLES)/ac3/monsters_inc_2.0_192_small.ac3
|
||||||
|
fate-ac3-2.0: CMP = oneoff
|
||||||
|
fate-ac3-2.0: REF = $(SAMPLES)/ac3/monsters_inc_2.0_192_small.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-ac3-5.1
|
||||||
|
fate-ac3-5.1: CMD = pcm -i $(SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3
|
||||||
|
fate-ac3-5.1: CMP = oneoff
|
||||||
|
fate-ac3-5.1: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-eac3-1
|
||||||
|
fate-eac3-1: CMD = pcm -i $(SAMPLES)/eac3/csi_miami_5.1_256_spx_small.eac3
|
||||||
|
fate-eac3-1: CMP = oneoff
|
||||||
|
fate-eac3-1: REF = $(SAMPLES)/eac3/csi_miami_5.1_256_spx_small.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-eac3-2
|
||||||
|
fate-eac3-2: CMD = pcm -i $(SAMPLES)/eac3/csi_miami_stereo_128_spx_small.eac3
|
||||||
|
fate-eac3-2: CMP = oneoff
|
||||||
|
fate-eac3-2: REF = $(SAMPLES)/eac3/csi_miami_stereo_128_spx_small.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-eac3-3
|
||||||
|
fate-eac3-3: CMD = pcm -i $(SAMPLES)/eac3/matrix2_commentary1_stereo_192_small.eac3
|
||||||
|
fate-eac3-3: CMP = oneoff
|
||||||
|
fate-eac3-3: REF = $(SAMPLES)/eac3/matrix2_commentary1_stereo_192_small.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-eac3-4
|
||||||
|
fate-eac3-4: CMD = pcm -i $(SAMPLES)/eac3/serenity_english_5.1_1536_small.eac3
|
||||||
|
fate-eac3-4: CMP = oneoff
|
||||||
|
fate-eac3-4: REF = $(SAMPLES)/eac3/serenity_english_5.1_1536_small.pcm
|
32
tests/fate/image.mak
Normal file
32
tests/fate/image.mak
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
FATE_TESTS += fate-dpx
|
||||||
|
fate-dpx: CMD = framecrc -i $(SAMPLES)/dpx/lighthouse_rgb48.dpx
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fax-g3
|
||||||
|
fate-fax-g3: CMD = framecrc -i $(SAMPLES)/CCITT_fax/G31D.TIF
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fax-g3s
|
||||||
|
fate-fax-g3s: CMD = framecrc -i $(SAMPLES)/CCITT_fax/G31DS.TIF
|
||||||
|
|
||||||
|
FATE_TESTS += fate-pictor
|
||||||
|
fate-pictor: CMD = framecrc -i $(SAMPLES)/pictor/MFISH.PIC -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-ptx
|
||||||
|
fate-ptx: CMD = framecrc -i $(SAMPLES)/ptx/_113kw_pic.ptx -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sunraster-1bit-raw
|
||||||
|
fate-sunraster-1bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-1bit-raw.sun
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sunraster-1bit-rle
|
||||||
|
fate-sunraster-1bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-1bit-rle.sun
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sunraster-8bit-raw
|
||||||
|
fate-sunraster-8bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-8bit-raw.sun -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sunraster-8bit-rle
|
||||||
|
fate-sunraster-8bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-8bit-rle.sun -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sunraster-24bit-raw
|
||||||
|
fate-sunraster-24bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-24bit-raw.sun
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sunraster-24bit-rle
|
||||||
|
fate-sunraster-24bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-24bit-rle.sun
|
17
tests/fate/lossless-audio.mak
Normal file
17
tests/fate/lossless-audio.mak
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FATE_TESTS += fate-lossless-appleaudio
|
||||||
|
fate-lossless-appleaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/inside.m4a -f s16le
|
||||||
|
|
||||||
|
FATE_TESTS += fate-lossless-meridianaudio
|
||||||
|
fate-lossless-meridianaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.mlp -f s16le
|
||||||
|
|
||||||
|
FATE_TESTS += fate-lossless-monkeysaudio
|
||||||
|
fate-lossless-monkeysaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.ape -f s16le
|
||||||
|
|
||||||
|
FATE_TESTS += fate-lossless-shortenaudio
|
||||||
|
fate-lossless-shortenaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.shn -f s16le
|
||||||
|
|
||||||
|
FATE_TESTS += fate-lossless-tta
|
||||||
|
fate-lossless-tta: CMD = crc -i $(SAMPLES)/lossless-audio/inside.tta
|
||||||
|
|
||||||
|
FATE_TESTS += fate-lossless-wavpackaudio
|
||||||
|
fate-lossless-wavpackaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.wv -f s16le
|
17
tests/fate/lossless-video.mak
Normal file
17
tests/fate/lossless-video.mak
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FATE_TESTS += fate-loco-rgb
|
||||||
|
fate-loco-rgb: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-rgb.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-loco-yuy2
|
||||||
|
fate-loco-yuy2: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-0.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-msrle-8bit
|
||||||
|
fate-msrle-8bit: CMD = framecrc -i $(SAMPLES)/msrle/Search-RLE.avi -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-mszh
|
||||||
|
fate-mszh: CMD = framecrc -i $(SAMPLES)/lcl/mszh-1frame.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-vble
|
||||||
|
fate-vble: CMD = framecrc -i $(SAMPLES)/vble/flowers-partial-2MB.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-zlib
|
||||||
|
fate-zlib: CMD = framecrc -i $(SAMPLES)/lcl/zlib-1frame.avi
|
20
tests/fate/qtrle.mak
Normal file
20
tests/fate/qtrle.mak
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FATE_TESTS += fate-qtrle-1bit
|
||||||
|
fate-qtrle-1bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-Monochrome.mov
|
||||||
|
|
||||||
|
FATE_TESTS += fate-qtrle-2bit
|
||||||
|
fate-qtrle-2bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-4Greys.mov -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-qtrle-4bit
|
||||||
|
fate-qtrle-4bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-16Greys.mov -pix_fmt rgb24 -an
|
||||||
|
|
||||||
|
FATE_TESTS += fate-qtrle-8bit
|
||||||
|
fate-qtrle-8bit: CMD = framecrc -i $(SAMPLES)/qtrle/criticalpath-credits.mov -vsync 0 -pix_fmt rgb24 -an
|
||||||
|
|
||||||
|
FATE_TESTS += fate-qtrle-16bit
|
||||||
|
fate-qtrle-16bit: CMD = framecrc -i $(SAMPLES)/qtrle/mr-cork-rle.mov -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-qtrle-24bit
|
||||||
|
fate-qtrle-24bit: CMD = framecrc -i $(SAMPLES)/qtrle/aletrek-rle.mov -vsync 0
|
||||||
|
|
||||||
|
FATE_TESTS += fate-qtrle-32bit
|
||||||
|
fate-qtrle-32bit: CMD = framecrc -i $(SAMPLES)/qtrle/ultra_demo_720_480_32bpp_rle.mov -pix_fmt rgb24
|
39
tests/fate/real.mak
Normal file
39
tests/fate/real.mak
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
FATE_TESTS += fate-real-14_4
|
||||||
|
fate-real-14_4: CMD = md5 -i $(SAMPLES)/real/ra3_in_rm_file.rm -f s16le
|
||||||
|
|
||||||
|
FATE_TESTS += fate-ra-288
|
||||||
|
fate-ra-288: CMD = pcm -i $(SAMPLES)/real/ra_288.rm
|
||||||
|
fate-ra-288: CMP = oneoff
|
||||||
|
fate-ra-288: REF = $(SAMPLES)/real/ra_288.pcm
|
||||||
|
fate-ra-288: FUZZ = 2
|
||||||
|
|
||||||
|
FATE_TESTS += fate-ra-cook
|
||||||
|
fate-ra-cook: CMD = pcm -i $(SAMPLES)/real/ra_cook.rm
|
||||||
|
fate-ra-cook: CMP = oneoff
|
||||||
|
fate-ra-cook: REF = $(SAMPLES)/real/ra_cook.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-rv30
|
||||||
|
fate-rv30: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/real/rv30.rm -an
|
||||||
|
|
||||||
|
FATE_TESTS += fate-real-rv40
|
||||||
|
fate-real-rv40: CMD = framecrc -i $(SAMPLES)/real/spygames-2MB.rmvb -t 10 -an -vsync 0
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sipr-5k0
|
||||||
|
fate-sipr-5k0: CMD = pcm -i $(SAMPLES)/sipr/sipr_5k0.rm
|
||||||
|
fate-sipr-5k0: CMP = oneoff
|
||||||
|
fate-sipr-5k0: REF = $(SAMPLES)/sipr/sipr_5k0.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sipr-6k5
|
||||||
|
fate-sipr-6k5: CMD = pcm -i $(SAMPLES)/sipr/sipr_6k5.rm
|
||||||
|
fate-sipr-6k5: CMP = oneoff
|
||||||
|
fate-sipr-6k5: REF = $(SAMPLES)/sipr/sipr_6k5.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sipr-8k5
|
||||||
|
fate-sipr-8k5: CMD = pcm -i $(SAMPLES)/sipr/sipr_8k5.rm
|
||||||
|
fate-sipr-8k5: CMP = oneoff
|
||||||
|
fate-sipr-8k5: REF = $(SAMPLES)/sipr/sipr_8k5.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-sipr-16k
|
||||||
|
fate-sipr-16k: CMD = pcm -i $(SAMPLES)/sipr/sipr_16k.rm
|
||||||
|
fate-sipr-16k: CMP = oneoff
|
||||||
|
fate-sipr-16k: REF = $(SAMPLES)/sipr/sipr_16k.pcm
|
44
tests/fate/screen.mak
Normal file
44
tests/fate/screen.mak
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
FATE_TESTS += fate-cscd
|
||||||
|
fate-cscd: CMD = framecrc -i $(SAMPLES)/CSCD/sample_video.avi -an -vsync 0 -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fraps-v0
|
||||||
|
fate-fraps-v0: CMD = framecrc -i $(SAMPLES)/fraps/Griffin_Ragdoll01-partial.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fraps-v1
|
||||||
|
fate-fraps-v1: CMD = framecrc -i $(SAMPLES)/fraps/sample-v1.avi -an
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fraps-v2
|
||||||
|
fate-fraps-v2: CMD = framecrc -i $(SAMPLES)/fraps/test3-nosound-partial.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fraps-v3
|
||||||
|
fate-fraps-v3: CMD = framecrc -i $(SAMPLES)/fraps/psclient-partial.avi -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fraps-v4
|
||||||
|
fate-fraps-v4: CMD = framecrc -i $(SAMPLES)/fraps/WoW_2006-11-03_14-58-17-19-nosound-partial.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-fraps-v5
|
||||||
|
fate-fraps-v5: CMD = framecrc -i $(SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-tscc-15bit
|
||||||
|
fate-tscc-15bit: CMD = framecrc -i $(SAMPLES)/tscc/oneminute.avi -t 15 -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-tscc-32bit
|
||||||
|
fate-tscc-32bit: CMD = framecrc -i $(SAMPLES)/tscc/2004-12-17-uebung9-partial.avi -pix_fmt rgb24 -an
|
||||||
|
|
||||||
|
FATE_TESTS += fate-vmnc-16bit
|
||||||
|
fate-vmnc-16bit: CMD = framecrc -i $(SAMPLES)/VMnc/test.avi -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-vmnc-32bit
|
||||||
|
fate-vmnc-32bit: CMD = framecrc -i $(SAMPLES)/VMnc/VS2k5DebugDemo-01-partial.avi -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-zmbv-8bit
|
||||||
|
fate-zmbv-8bit: CMD = framecrc -i $(SAMPLES)/zmbv/wc2_001-partial.avi -an -pix_fmt rgb24
|
||||||
|
|
||||||
|
FATE_TESTS += fate-zmbv-15bit
|
||||||
|
fate-zmbv-15bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_15bit.avi -pix_fmt rgb24 -t 25
|
||||||
|
|
||||||
|
FATE_TESTS += fate-zmbv-16bit
|
||||||
|
fate-zmbv-16bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_16bit.avi -pix_fmt rgb24 -t 25
|
||||||
|
|
||||||
|
FATE_TESTS += fate-zmbv-32bit
|
||||||
|
fate-zmbv-32bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_32bit.avi -pix_fmt rgb24 -t 25
|
23
tests/fate/utvideo.mak
Normal file
23
tests/fate/utvideo.mak
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FATE_TESTS += fate-utvideo_rgba_left
|
||||||
|
fate-utvideo_rgba_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_left.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_rgba_median
|
||||||
|
fate-utvideo_rgba_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_median.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_rgb_left
|
||||||
|
fate-utvideo_rgb_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_left.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_rgb_median
|
||||||
|
fate-utvideo_rgb_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_median.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_yuv420_left
|
||||||
|
fate-utvideo_yuv420_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv420_left.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_yuv420_median
|
||||||
|
fate-utvideo_yuv420_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv420_median.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_yuv422_left
|
||||||
|
fate-utvideo_yuv422_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv422_left.avi
|
||||||
|
|
||||||
|
FATE_TESTS += fate-utvideo_yuv422_median
|
||||||
|
fate-utvideo_yuv422_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv422_median.avi
|
27
tests/fate/wma.mak
Normal file
27
tests/fate/wma.mak
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
FATE_TESTS += fate-wmapro-2ch
|
||||||
|
fate-wmapro-2ch: CMD = pcm -i $(SAMPLES)/wmapro/Beethovens_9th-1_small.wma
|
||||||
|
fate-wmapro-2ch: CMP = oneoff
|
||||||
|
fate-wmapro-2ch: REF = $(SAMPLES)/wmapro/Beethovens_9th-1_small.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-wmapro-5.1
|
||||||
|
fate-wmapro-5.1: CMD = pcm -i $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.wma
|
||||||
|
fate-wmapro-5.1: CMP = oneoff
|
||||||
|
fate-wmapro-5.1: REF = $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.pcm
|
||||||
|
|
||||||
|
FATE_TESTS += fate-wmavoice-7k
|
||||||
|
fate-wmavoice-7k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-7K.wma
|
||||||
|
fate-wmavoice-7k: CMP = stddev
|
||||||
|
fate-wmavoice-7k: REF = $(SAMPLES)/wmavoice/streaming_CBR-7K.pcm
|
||||||
|
fate-wmavoice-7k: FUZZ = 3
|
||||||
|
|
||||||
|
FATE_TESTS += fate-wmavoice-11k
|
||||||
|
fate-wmavoice-11k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-11K.wma
|
||||||
|
fate-wmavoice-11k: CMP = stddev
|
||||||
|
fate-wmavoice-11k: REF = $(SAMPLES)/wmavoice/streaming_CBR-11K.pcm
|
||||||
|
fate-wmavoice-11k: FUZZ = 3
|
||||||
|
|
||||||
|
FATE_TESTS += fate-wmavoice-19k
|
||||||
|
fate-wmavoice-19k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-19K.wma
|
||||||
|
fate-wmavoice-19k: CMP = stddev
|
||||||
|
fate-wmavoice-19k: REF = $(SAMPLES)/wmavoice/streaming_CBR-19K.pcm
|
||||||
|
fate-wmavoice-19k: FUZZ = 3
|
128
tests/fate2.mak
128
tests/fate2.mak
@ -3,37 +3,6 @@ fate-twinvq: CMD = pcm -i $(SAMPLES)/vqf/achterba.vqf
|
|||||||
fate-twinvq: CMP = oneoff
|
fate-twinvq: CMP = oneoff
|
||||||
fate-twinvq: REF = $(SAMPLES)/vqf/achterba.pcm
|
fate-twinvq: REF = $(SAMPLES)/vqf/achterba.pcm
|
||||||
|
|
||||||
FATE_TESTS += fate-sipr-16k
|
|
||||||
fate-sipr-16k: CMD = pcm -i $(SAMPLES)/sipr/sipr_16k.rm
|
|
||||||
fate-sipr-16k: CMP = oneoff
|
|
||||||
fate-sipr-16k: REF = $(SAMPLES)/sipr/sipr_16k.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-sipr-8k5
|
|
||||||
fate-sipr-8k5: CMD = pcm -i $(SAMPLES)/sipr/sipr_8k5.rm
|
|
||||||
fate-sipr-8k5: CMP = oneoff
|
|
||||||
fate-sipr-8k5: REF = $(SAMPLES)/sipr/sipr_8k5.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-sipr-6k5
|
|
||||||
fate-sipr-6k5: CMD = pcm -i $(SAMPLES)/sipr/sipr_6k5.rm
|
|
||||||
fate-sipr-6k5: CMP = oneoff
|
|
||||||
fate-sipr-6k5: REF = $(SAMPLES)/sipr/sipr_6k5.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-sipr-5k0
|
|
||||||
fate-sipr-5k0: CMD = pcm -i $(SAMPLES)/sipr/sipr_5k0.rm
|
|
||||||
fate-sipr-5k0: CMP = oneoff
|
|
||||||
fate-sipr-5k0: REF = $(SAMPLES)/sipr/sipr_5k0.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-ra-288
|
|
||||||
fate-ra-288: CMD = pcm -i $(SAMPLES)/real/ra_288.rm
|
|
||||||
fate-ra-288: CMP = oneoff
|
|
||||||
fate-ra-288: REF = $(SAMPLES)/real/ra_288.pcm
|
|
||||||
fate-ra-288: FUZZ = 2
|
|
||||||
|
|
||||||
FATE_TESTS += fate-ra-cook
|
|
||||||
fate-ra-cook: CMD = pcm -i $(SAMPLES)/real/ra_cook.rm
|
|
||||||
fate-ra-cook: CMP = oneoff
|
|
||||||
fate-ra-cook: REF = $(SAMPLES)/real/ra_cook.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-mpeg2-field-enc
|
FATE_TESTS += fate-mpeg2-field-enc
|
||||||
fate-mpeg2-field-enc: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/mpeg2/mpeg2_field_encoding.ts -an
|
fate-mpeg2-field-enc: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/mpeg2/mpeg2_field_encoding.ts -an
|
||||||
|
|
||||||
@ -56,9 +25,6 @@ fate-imc: REF = $(SAMPLES)/imc/imc.pcm
|
|||||||
FATE_TESTS += fate-yop
|
FATE_TESTS += fate-yop
|
||||||
fate-yop: CMD = framecrc -i $(SAMPLES)/yop/test1.yop -pix_fmt rgb24 -an
|
fate-yop: CMD = framecrc -i $(SAMPLES)/yop/test1.yop -pix_fmt rgb24 -an
|
||||||
|
|
||||||
FATE_TESTS += fate-pictor
|
|
||||||
fate-pictor: CMD = framecrc -i $(SAMPLES)/pictor/MFISH.PIC -pix_fmt rgb24 -an
|
|
||||||
|
|
||||||
FATE_TESTS += fate-dts
|
FATE_TESTS += fate-dts
|
||||||
fate-dts: CMD = pcm -i $(SAMPLES)/dts/dts.ts
|
fate-dts: CMD = pcm -i $(SAMPLES)/dts/dts.ts
|
||||||
fate-dts: CMP = oneoff
|
fate-dts: CMP = oneoff
|
||||||
@ -74,36 +40,6 @@ fate-truespeech: CMD = pcm -i $(SAMPLES)/truespeech/a6.wav
|
|||||||
fate-truespeech: CMP = oneoff
|
fate-truespeech: CMP = oneoff
|
||||||
fate-truespeech: REF = $(SAMPLES)/truespeech/a6.pcm
|
fate-truespeech: REF = $(SAMPLES)/truespeech/a6.pcm
|
||||||
|
|
||||||
FATE_TESTS += fate-ac3-2.0
|
|
||||||
fate-ac3-2.0: CMD = pcm -i $(SAMPLES)/ac3/monsters_inc_2.0_192_small.ac3
|
|
||||||
fate-ac3-2.0: CMP = oneoff
|
|
||||||
fate-ac3-2.0: REF = $(SAMPLES)/ac3/monsters_inc_2.0_192_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-ac3-5.1
|
|
||||||
fate-ac3-5.1: CMD = pcm -i $(SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3
|
|
||||||
fate-ac3-5.1: CMP = oneoff
|
|
||||||
fate-ac3-5.1: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-eac3-1
|
|
||||||
fate-eac3-1: CMD = pcm -i $(SAMPLES)/eac3/csi_miami_5.1_256_spx_small.eac3
|
|
||||||
fate-eac3-1: CMP = oneoff
|
|
||||||
fate-eac3-1: REF = $(SAMPLES)/eac3/csi_miami_5.1_256_spx_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-eac3-2
|
|
||||||
fate-eac3-2: CMD = pcm -i $(SAMPLES)/eac3/csi_miami_stereo_128_spx_small.eac3
|
|
||||||
fate-eac3-2: CMP = oneoff
|
|
||||||
fate-eac3-2: REF = $(SAMPLES)/eac3/csi_miami_stereo_128_spx_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-eac3-3
|
|
||||||
fate-eac3-3: CMD = pcm -i $(SAMPLES)/eac3/matrix2_commentary1_stereo_192_small.eac3
|
|
||||||
fate-eac3-3: CMP = oneoff
|
|
||||||
fate-eac3-3: REF = $(SAMPLES)/eac3/matrix2_commentary1_stereo_192_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-eac3-4
|
|
||||||
fate-eac3-4: CMD = pcm -i $(SAMPLES)/eac3/serenity_english_5.1_1536_small.eac3
|
|
||||||
fate-eac3-4: CMP = oneoff
|
|
||||||
fate-eac3-4: REF = $(SAMPLES)/eac3/serenity_english_5.1_1536_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-atrac1
|
FATE_TESTS += fate-atrac1
|
||||||
fate-atrac1: CMD = pcm -i $(SAMPLES)/atrac1/test_tones_small.aea
|
fate-atrac1: CMD = pcm -i $(SAMPLES)/atrac1/test_tones_small.aea
|
||||||
fate-atrac1: CMP = oneoff
|
fate-atrac1: CMP = oneoff
|
||||||
@ -140,34 +76,6 @@ fate-g722enc: CMD = md5 -ar 16000 -ac 1 -f s16le -i $(TARGET_PATH)/tests/data/as
|
|||||||
FATE_TESTS += fate-msmpeg4v1
|
FATE_TESTS += fate-msmpeg4v1
|
||||||
fate-msmpeg4v1: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/msmpeg4v1/mpg4.avi -an
|
fate-msmpeg4v1: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/msmpeg4v1/mpg4.avi -an
|
||||||
|
|
||||||
FATE_TESTS += fate-wmavoice-7k
|
|
||||||
fate-wmavoice-7k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-7K.wma
|
|
||||||
fate-wmavoice-7k: CMP = stddev
|
|
||||||
fate-wmavoice-7k: REF = $(SAMPLES)/wmavoice/streaming_CBR-7K.pcm
|
|
||||||
fate-wmavoice-7k: FUZZ = 3
|
|
||||||
|
|
||||||
FATE_TESTS += fate-wmavoice-11k
|
|
||||||
fate-wmavoice-11k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-11K.wma
|
|
||||||
fate-wmavoice-11k: CMP = stddev
|
|
||||||
fate-wmavoice-11k: REF = $(SAMPLES)/wmavoice/streaming_CBR-11K.pcm
|
|
||||||
fate-wmavoice-11k: FUZZ = 3
|
|
||||||
|
|
||||||
FATE_TESTS += fate-wmavoice-19k
|
|
||||||
fate-wmavoice-19k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-19K.wma
|
|
||||||
fate-wmavoice-19k: CMP = stddev
|
|
||||||
fate-wmavoice-19k: REF = $(SAMPLES)/wmavoice/streaming_CBR-19K.pcm
|
|
||||||
fate-wmavoice-19k: FUZZ = 3
|
|
||||||
|
|
||||||
FATE_TESTS += fate-wmapro-5.1
|
|
||||||
fate-wmapro-5.1: CMD = pcm -i $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.wma
|
|
||||||
fate-wmapro-5.1: CMP = oneoff
|
|
||||||
fate-wmapro-5.1: REF = $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-wmapro-2ch
|
|
||||||
fate-wmapro-2ch: CMD = pcm -i $(SAMPLES)/wmapro/Beethovens_9th-1_small.wma
|
|
||||||
fate-wmapro-2ch: CMP = oneoff
|
|
||||||
fate-wmapro-2ch: REF = $(SAMPLES)/wmapro/Beethovens_9th-1_small.pcm
|
|
||||||
|
|
||||||
FATE_TESTS += fate-ansi
|
FATE_TESTS += fate-ansi
|
||||||
fate-ansi: CMD = framecrc -chars_per_frame 44100 -i $(SAMPLES)/ansi/TRE-IOM5.ANS -pix_fmt rgb24
|
fate-ansi: CMD = framecrc -chars_per_frame 44100 -i $(SAMPLES)/ansi/TRE-IOM5.ANS -pix_fmt rgb24
|
||||||
|
|
||||||
@ -199,12 +107,6 @@ fate-txd-16bpp: CMD = framecrc -i $(SAMPLES)/txd/misc.txd -pix_fmt bgra -an
|
|||||||
FATE_TESTS += fate-vp3
|
FATE_TESTS += fate-vp3
|
||||||
fate-vp3: CMD = framecrc -i $(SAMPLES)/vp3/vp31.avi
|
fate-vp3: CMD = framecrc -i $(SAMPLES)/vp3/vp31.avi
|
||||||
|
|
||||||
FATE_TESTS += fate-fax-g3
|
|
||||||
fate-fax-g3: CMD = framecrc -i $(SAMPLES)/CCITT_fax/G31D.TIF
|
|
||||||
|
|
||||||
FATE_TESTS += fate-fax-g3s
|
|
||||||
fate-fax-g3s: CMD = framecrc -i $(SAMPLES)/CCITT_fax/G31DS.TIF
|
|
||||||
|
|
||||||
FATE_TESTS += fate-ws_snd
|
FATE_TESTS += fate-ws_snd
|
||||||
fate-ws_snd: CMD = md5 -i $(SAMPLES)/vqa/ws_snd.vqa -f s16le
|
fate-ws_snd: CMD = md5 -i $(SAMPLES)/vqa/ws_snd.vqa -f s16le
|
||||||
|
|
||||||
@ -214,9 +116,6 @@ fate-dxa-scummvm: CMD = framecrc -i $(SAMPLES)/dxa/scummvm.dxa -pix_fmt rgb24
|
|||||||
FATE_TESTS += fate-mjpegb
|
FATE_TESTS += fate-mjpegb
|
||||||
fate-mjpegb: CMD = framecrc -idct simple -flags +bitexact -i $(SAMPLES)/mjpegb/mjpegb_part.mov -an
|
fate-mjpegb: CMD = framecrc -idct simple -flags +bitexact -i $(SAMPLES)/mjpegb/mjpegb_part.mov -an
|
||||||
|
|
||||||
FATE_TESTS += fate-rv30
|
|
||||||
fate-rv30: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/real/rv30.rm -an
|
|
||||||
|
|
||||||
FATE_TESTS += fate-musepack7
|
FATE_TESTS += fate-musepack7
|
||||||
fate-musepack7: CMD = pcm -i $(SAMPLES)/musepack/inside-mp7.mpc
|
fate-musepack7: CMD = pcm -i $(SAMPLES)/musepack/inside-mp7.mpc
|
||||||
fate-musepack7: CMP = oneoff
|
fate-musepack7: CMP = oneoff
|
||||||
@ -227,33 +126,6 @@ FATE_TESTS += fate-iirfilter
|
|||||||
fate-iirfilter: libavcodec/iirfilter-test$(EXESUF)
|
fate-iirfilter: libavcodec/iirfilter-test$(EXESUF)
|
||||||
fate-iirfilter: CMD = run libavcodec/iirfilter-test
|
fate-iirfilter: CMD = run libavcodec/iirfilter-test
|
||||||
|
|
||||||
FATE_TESTS += fate-vble
|
|
||||||
fate-vble: CMD = framecrc -i $(SAMPLES)/vble/flowers-partial-2MB.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_rgba_left
|
|
||||||
fate-utvideo_rgba_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_left.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_rgba_median
|
|
||||||
fate-utvideo_rgba_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_median.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_rgb_left
|
|
||||||
fate-utvideo_rgb_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_left.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_rgb_median
|
|
||||||
fate-utvideo_rgb_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_median.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_yuv420_left
|
|
||||||
fate-utvideo_yuv420_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv420_left.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_yuv420_median
|
|
||||||
fate-utvideo_yuv420_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv420_median.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_yuv422_left
|
|
||||||
fate-utvideo_yuv422_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv422_left.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-utvideo_yuv422_median
|
|
||||||
fate-utvideo_yuv422_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv422_median.avi
|
|
||||||
|
|
||||||
FATE_TESTS += fate-v410dec
|
FATE_TESTS += fate-v410dec
|
||||||
fate-v410dec: CMD = framecrc -i $(SAMPLES)/v410/lenav410.mov -pix_fmt yuv444p10le
|
fate-v410dec: CMD = framecrc -i $(SAMPLES)/v410/lenav410.mov -pix_fmt yuv444p10le
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user