ffmpeg: enable assembly on targets with fpu

Also no longer disable run-time CPU detection for fpu targets except
arm which is built for each variant (neon, vfp).
This vastly improves performance on x86 which now supports building ASM
code with yasm and makes use of a broad spectrum of extensions
depending on their availability at run-time.

In future, such differentiation should also be introduced for MIPS
to at least conditionally enable the output of MIPS32r2 instructions as
well as DSPr1 and DSPr2 if the target supports that dispite them having
CONFIG_SOFT_FLOAT=y set.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle 2016-09-02 00:41:45 +02:00
parent 0d3a10e3b4
commit efc746428a
1 changed files with 17 additions and 15 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ffmpeg
PKG_VERSION:=2.8.7
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://ffmpeg.org/releases/
@ -282,7 +282,7 @@ $(call Package/ffmpeg/Default)
SECTION:=libs
CATEGORY:=Libraries
TITLE+= libraries
DEPENDS+= @BUILD_PATENTED +libpthread +zlib +libbz2
DEPENDS+= @BUILD_PATENTED @!TARGET_x86||YASM +libpthread +zlib +libbz2
PROVIDES:= libffmpeg
endef
@ -364,13 +364,21 @@ FFMPEG_CONFIGURE:= \
--enable-small \
--enable-pthreads \
--enable-zlib \
--disable-runtime-cpudetect \
--disable-doc \
--disable-debug \
\
--enable-gpl \
--enable-version3 \
\
--disable-dxva2 \
--disable-lzma \
--disable-vaapi \
--disable-vda \
--disable-vdpau \
--disable-outdevs
ifeq ($(CONFIG_SOFT_FLOAT),y)
FFMPEG_CONFIGURE += \
--disable-altivec \
--disable-amd3dnow \
--disable-amd3dnowext \
@ -393,14 +401,13 @@ FFMPEG_CONFIGURE:= \
--disable-mipsdspr1 \
--disable-mipsdspr2 \
--disable-mipsfpu \
\
--disable-dxva2 \
--disable-lzma \
--disable-vaapi \
--disable-vda \
--disable-vdpau \
--disable-outdevs
--disable-runtime-cpudetect
else ifneq ($(findstring arm,$(CONFIG_ARCH)),)
FFMPEG_CONFIGURE += \
--disable-runtime-cpudetect
endif
#selectibly disable optimizations according to arch/cpu type
ifneq ($(findstring arm,$(CONFIG_ARCH)),)
@ -413,11 +420,6 @@ ifneq ($(findstring arm,$(CONFIG_ARCH)),)
--disable-neon
endif
else ifneq ($(ARCH),aarch64)
FFMPEG_CONFIGURE+= \
--disable-vfp \
--disable-neon
endif
ifeq ($(BUILD_VARIANT),full)