1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-24 13:56:33 +02:00

Merge commit '3c370f5abc55739a261534b9f9bdc739cedbbbb9'

* commit '3c370f5abc55739a261534b9f9bdc739cedbbbb9':
  riff: only warn on a bad INFO chunk code size instead of failing
  configure: Add separate list for libraries and use where appropriate
  x86: float_dsp: add SSE version of vector_fmul_scalar()

Conflicts:
	configure
	libavformat/riff.c
	libavutil/x86/float_dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2012-11-27 14:03:57 +01:00
commit b4d4e51027
4 changed files with 57 additions and 28 deletions

49
configure vendored
View File

@ -120,6 +120,7 @@ Component options:
--disable-avdevice disable libavdevice build --disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build --disable-avcodec disable libavcodec build
--disable-avformat disable libavformat build --disable-avformat disable libavformat build
--disable-avutil disable libavutil build
--disable-swresample disable libswresample build --disable-swresample disable libswresample build
--disable-swscale disable libswscale build --disable-swscale disable libswscale build
--disable-postproc disable libpostproc build --disable-postproc disable libpostproc build
@ -1091,6 +1092,17 @@ DOCUMENT_LIST="
txtpages txtpages
" "
LIBRARY_LIST="
avcodec
avdevice
avfilter
avformat
avresample
avutil
swresample
swscale
"
PROGRAM_LIST=" PROGRAM_LIST="
ffplay ffplay
ffprobe ffprobe
@ -1101,12 +1113,8 @@ PROGRAM_LIST="
CONFIG_LIST=" CONFIG_LIST="
$COMPONENT_LIST $COMPONENT_LIST
$DOCUMENT_LIST $DOCUMENT_LIST
$LIBRARY_LIST
$PROGRAM_LIST $PROGRAM_LIST
avcodec
avdevice
avfilter
avformat
avresample
avisynth avisynth
bzlib bzlib
crystalhd crystalhd
@ -1179,8 +1187,6 @@ CONFIG_LIST="
small small
sram sram
static static
swresample
swscale
swscale_alpha swscale_alpha
thumb thumb
vaapi vaapi
@ -1432,7 +1438,6 @@ HAVE_LIST="
CONFIG_EXTRA=" CONFIG_EXTRA="
aandcttables aandcttables
ac3dsp ac3dsp
avutil
error_resilience error_resilience
gcrypt gcrypt
golomb golomb
@ -1966,9 +1971,13 @@ tinterlace_merge_test_deps="tinterlace_filter"
tinterlace_pad_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter"
# libraries # libraries
avdevice_deps="avcodec avformat" avcodec_deps="avutil"
avformat_deps="avcodec" avdevice_deps="avutil avcodec avformat"
avfilter_deps="avutil"
avformat_deps="avutil avcodec"
avresample_deps="avutil"
postproc_deps="gpl" postproc_deps="gpl"
swscale_deps="avutil"
# programs # programs
ffmpeg_deps="avcodec avfilter avformat swscale swresample" ffmpeg_deps="avcodec avfilter avformat swscale swresample"
@ -2035,16 +2044,9 @@ ALT_PP_VER=$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO
# configurable options # configurable options
enable $PROGRAM_LIST enable $PROGRAM_LIST
enable $DOCUMENT_LIST enable $DOCUMENT_LIST
enable $(filter_out avresample $LIBRARY_LIST)
enable avcodec
enable avdevice
enable avfilter
enable avformat
enable avutil
enable postproc enable postproc
enable stripping enable stripping
enable swresample
enable swscale
enable asm enable asm
enable debug enable debug
@ -4338,7 +4340,7 @@ NOREDZONE_FLAGS=$noredzone_flags
EOF EOF
get_version(){ get_version(){
lcname=$1 lcname=lib${1}
name=$(toupper $lcname) name=$(toupper $lcname)
file=$source_path/$lcname/version.h file=$source_path/$lcname/version.h
eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file") eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
@ -4362,14 +4364,7 @@ fi
get_version_old LIBPOSTPROC libpostproc/version.h get_version_old LIBPOSTPROC libpostproc/version.h
get_version libavcodec map 'get_version $v' $LIBRARY_LIST
get_version libavdevice
get_version libavfilter
get_version libavformat
get_version libavresample
get_version libavutil
get_version libswresample
get_version libswscale
cat > $TMPH <<EOF cat > $TMPH <<EOF
/* Automatically generated by configure - do not modify! */ /* Automatically generated by configure - do not modify! */

View File

@ -824,12 +824,13 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
chunk_code = avio_rl32(pb); chunk_code = avio_rl32(pb);
chunk_size = avio_rl32(pb); chunk_size = avio_rl32(pb);
if (chunk_size > end || end - chunk_size < cur || chunk_size == UINT_MAX) { if (chunk_size > end || end - chunk_size < cur || chunk_size == UINT_MAX) {
avio_seek(pb, -9, SEEK_CUR); avio_seek(pb, -9, SEEK_CUR);
chunk_code = avio_rl32(pb); chunk_code = avio_rl32(pb);
chunk_size = avio_rl32(pb); chunk_size = avio_rl32(pb);
if (chunk_size > end || end - chunk_size < cur || chunk_size == UINT_MAX) { if (chunk_size > end || end - chunk_size < cur || chunk_size == UINT_MAX) {
av_log(s, AV_LOG_ERROR, "too big INFO subchunk\n"); av_log(s, AV_LOG_WARNING, "too big INFO subchunk\n");
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
} }

View File

@ -91,3 +91,32 @@ VECTOR_FMAC_SCALAR
INIT_YMM avx INIT_YMM avx
VECTOR_FMAC_SCALAR VECTOR_FMAC_SCALAR
%endif %endif
;------------------------------------------------------------------------------
; void ff_vector_fmul_scalar(float *dst, const float *src, float mul, int len)
;------------------------------------------------------------------------------
%macro VECTOR_FMUL_SCALAR 0
%if UNIX64
cglobal vector_fmul_scalar, 3,3,2, dst, src, len
%else
cglobal vector_fmul_scalar, 4,4,3, dst, src, mul, len
%endif
%if ARCH_X86_32
movss m0, mulm
%elif WIN64
SWAP 0, 2
%endif
shufps m0, m0, 0
lea lenq, [lend*4-mmsize]
.loop:
mova m1, [srcq+lenq]
mulps m1, m0
mova [dstq+lenq], m1
sub lenq, mmsize
jge .loop
REP_RET
%endmacro
INIT_XMM sse
VECTOR_FMUL_SCALAR

View File

@ -32,6 +32,9 @@ extern void ff_vector_fmac_scalar_sse(float *dst, const float *src, float mul,
extern void ff_vector_fmac_scalar_avx(float *dst, const float *src, float mul, extern void ff_vector_fmac_scalar_avx(float *dst, const float *src, float mul,
int len); int len);
extern void ff_vector_fmul_scalar_sse(float *dst, const float *src, float mul,
int len);
void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp) void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp)
{ {
int mm_flags = av_get_cpu_flags(); int mm_flags = av_get_cpu_flags();
@ -39,6 +42,7 @@ void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp)
if (EXTERNAL_SSE(mm_flags)) { if (EXTERNAL_SSE(mm_flags)) {
fdsp->vector_fmul = ff_vector_fmul_sse; fdsp->vector_fmul = ff_vector_fmul_sse;
fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse; fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse;
fdsp->vector_fmul_scalar = ff_vector_fmul_scalar_sse;
} }
if (EXTERNAL_AVX(mm_flags)) { if (EXTERNAL_AVX(mm_flags)) {
fdsp->vector_fmul = ff_vector_fmul_avx; fdsp->vector_fmul = ff_vector_fmul_avx;