fdk-aac: Add fdk-aac-free for non BUILD_PATENTED configurations

The core parts of AAC were patented back in 1998. Those patents have
expired.

Some of the newer AAC features involved with HE-AAC are still patented.
These patches are taken from fedora where they remove all patented
functionality.

Note that LC-AAC comprises the majority of AAC content. HE-AAC is for low
bitrate stuff like audiobooks.

Patches come from Fedora where this is also distributed.

Local compiles show a 40% size reduction in the final ipk.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev
2019-11-02 16:02:59 -07:00
parent 14cdd0d466
commit bb1dab2471
5 changed files with 98505 additions and 5 deletions
+43 -5
View File
@@ -9,8 +9,8 @@ PKG_NAME:=fdk-aac
PKG_VERSION:=2.0.1
PKG_RELEASE:=1
PKG_SOURCE_URL=https://codeload.github.com/mstorsjo/fdk-aac/tar.gz/v$(PKG_VERSION)?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/mstorsjo/fdk-aac/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=a4142815d8d52d0e798212a5adea54ecf42bcd4eec8092b37a8cb615ace91dc6
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
@@ -23,6 +23,10 @@ PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS:= CONFIG_FDK-AAC_OPTIMIZE_SPEED
ifeq ($(BUILD_VARIANT),free)
PATCH_DIR:=./patches-free
endif
ifeq ($(CONFIG_FDK-AAC_OPTIMIZE_SPEED),y)
TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
TARGET_CFLAGS += $(TARGET_CFLAGS) -O2 -flto
@@ -33,20 +37,48 @@ endif
include $(INCLUDE_DIR)/package.mk
define Package/fdk-aac
define Package/fdk-aac/Default
SECTION:=sound
CATEGORY:=Sound
DEPENDS:=@BUILD_PATENTED
TITLE:=Fraunhofer FDK AAC Codec Library
URL:=https://sourceforge.net/projects/opencore-amr/
endef
define Package/fdk-aac/description
define Package/fdk-aac/Default/description
Port of the Fraunhofer FDK AAC Codec Library for Android
endef
define Package/fdk-aac/Default/config
source "$(SOURCE)/Config.in"
endef
define Package/fdk-aac
$(call Package/fdk-aac/Default)
DEPENDS:=@BUILD_PATENTED
VARIANT:=nonfree
endef
define Package/fdk-aac/description
$(call Package/fdk-aac/Default/description)
This is the full patent encumbered version.
endef
define Package/fdk-aac/config
source "$(SOURCE)/Config.in"
$(call Package/fdk-aac/Default/config)
endef
define Package/fdk-aac-free
$(call Package/fdk-aac/Default)
VARIANT:=free
endef
define Package/fdk-aac-free/description
$(call Package/fdk-aac/Default/description)
This is the free version that only supports LC-AAC.
endef
define Package/fdk-aac-free/config
$(call Package/fdk-aac/Default/config)
endef
define Build/InstallDev
@@ -63,4 +95,10 @@ define Package/fdk-aac/install
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.so* $(1)/usr/lib/
endef
define Package/fdk-aac-free/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,fdk-aac))
$(eval $(call BuildPackage,fdk-aac-free))