Skip to content

Commit

Permalink
sound/fdk-aac: Clean up Makefile, add overflow patch
Browse files Browse the repository at this point in the history
Clean up Makefile by utilizing toolchain logic
Make package pkg-config friendly
Add patch to prevent crashes due to overflow
Source: mstorsjo/fdk-aac@a50eecf

Signed-off-by: Daniel Engberg <[email protected]>
  • Loading branch information
diizzyy committed Jun 17, 2018
1 parent 48d5f1a commit 83c2603
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 10 deletions.
18 changes: 8 additions & 10 deletions sound/fdk-aac/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=fdk-aac
PKG_VERSION:=0.1.6
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_MAINTAINER:=Ted Hess <[email protected]>
PKG_LICENSE:=Fraunhofer-FDK-AAC-for-Android
PKG_LICENSE_FILES:=NOTICE


PKG_SOURCE_URL=https://codeload.github.com/mstorsjo/fdk-aac/tar.gz/v$(PKG_VERSION)?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=adbcd793e406e1b88b3c1c41382d49f8c27371485b823c0fdab69c9124fd2ce3

PKG_FIXUP:=autoreconf
PKG_INSTALL:=1

PKG_CONFIG_DEPENDS:= CONFIG_FDK-AAC_OPTIMIZE_SPEED

Expand Down Expand Up @@ -49,18 +49,16 @@ endef

define Package/fdk-aac/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/.libs/*.so* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.so* $(1)/usr/lib/
endef

define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/fdk-aac
$(CP) $(PKG_BUILD_DIR)/libAACdec/include/aacdecoder_lib.h $(1)/usr/include/fdk-aac
$(CP) $(PKG_BUILD_DIR)/libAACenc/include/aacenc_lib.h $(1)/usr/include/fdk-aac
$(CP) $(PKG_BUILD_DIR)/libSYS/include/FDK_audio.h $(1)/usr/include/fdk-aac
$(CP) $(PKG_BUILD_DIR)/libSYS/include/genericStds.h $(1)/usr/include/fdk-aac
$(CP) $(PKG_BUILD_DIR)/libSYS/include/machine_type.h $(1)/usr/include/fdk-aac
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/fdk-aac $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/.libs/*.{la,so*} $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.{la,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fdk-aac.pc $(1)/usr/lib/pkgconfig/
endef

$(eval $(call BuildPackage,fdk-aac))
29 changes: 29 additions & 0 deletions sound/fdk-aac/patches/001-fix-overflow.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From a50eecf65b5ce5d4f03768c5c2cb4b492d2badad Mon Sep 17 00:00:00 2001
From: Martin Storsjo <[email protected]>
Date: Fri, 4 May 2018 12:46:44 +0300
Subject: [PATCH] Fix overflows in accumulation, fixing crashes

This fixes github issue #83.
---
libSBRenc/src/tran_det.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libSBRenc/src/tran_det.cpp b/libSBRenc/src/tran_det.cpp
index 0e35ec3..51d6efe 100644
--- a/libSBRenc/src/tran_det.cpp
+++ b/libSBRenc/src/tran_det.cpp
@@ -256,12 +256,12 @@ static FIXP_DBL addLowbandEnergies(FIXP_DBL **Energies,
/* freqBandTable[LORES] has MAX_FREQ_COEFFS/2 +1 coeefs max. */
for (ts=tran_offdiv2; ts<YBufferWriteOffset; ts++) {
for (k = 0; k < freqBandTable[0]; k++) {
- accu1 += Energies[ts][k] >> 6;
+ accu1 = fAddSaturate(accu1, Energies[ts][k] >> 6);
}
}
for (; ts<tran_offdiv2+(slots>>nrgSzShift); ts++) {
for (k = 0; k < freqBandTable[0]; k++) {
- accu2 += Energies[ts][k] >> 9;
+ accu2 = fAddSaturate(accu2, Energies[ts][k] >> 9);
}
}

0 comments on commit 83c2603

Please sign in to comment.