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

View file

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