diff --git a/srcpkgs/faad2/patches/fix-stack_usage.patch b/srcpkgs/faad2/patches/fix-stack_usage.patch index 55858f367b9..de06bd625ae 100644 --- a/srcpkgs/faad2/patches/fix-stack_usage.patch +++ b/srcpkgs/faad2/patches/fix-stack_usage.patch @@ -3,26 +3,26 @@ firefox and icecat in the function ps_decode(), this is a try to reduce the stack footprint of faad2 decoding by making the main arrays X_left[][] and X_right[][] use static __thread storage. ---- a/libfaad/sbr_dec.c 2009-01-26 23:32:31.000000000 +0100 -+++ b/libfaad/sbr_dec.c 2015-09-11 12:44:28.305989011 +0200 -@@ -602,8 +602,12 @@ +--- a/libfaad/sbr_dec.c ++++ b/libfaad/sbr_dec.c +@@ -610,8 +610,12 @@ uint8_t sbrDecodeSingleFramePS(sbr_info uint8_t l, k; uint8_t dont_process = 0; uint8_t ret = 0; -- ALIGN qmf_t X_left[38][64] = {{0}}; -- ALIGN qmf_t X_right[38][64] = {{0}}; /* must set this to 0 */ +- ALIGN qmf_t X_left[MAX_NTSRHFG][64] = {{{0}}}; +- ALIGN qmf_t X_right[MAX_NTSRHFG][64] = {{{0}}}; /* must set this to 0 */ + /* 2015-09-11 jbu: make static to reduce stack footprint */ -+ static __thread ALIGN qmf_t X_left[38][64]; -+ static __thread ALIGN qmf_t X_right[38][64]; ++ static __thread ALIGN qmf_t X_left[MAX_NTSRHFG][64]; ++ static __thread ALIGN qmf_t X_right[MAX_NTSRHFG][64]; + /* must set this to 0 */ + memset(X_left, 0, sizeof(X_left)); + memset(X_right, 0, sizeof(X_right)); if (sbr == NULL) return 20; ---- a/libfaad/ps_dec.c 2009-01-26 23:32:31.000000000 +0100 -+++ b/libfaad/ps_dec.c 2015-09-11 13:02:37.898985783 +0200 -@@ -1039,10 +1039,10 @@ +--- a/libfaad/ps_dec.c ++++ b/libfaad/ps_dec.c +@@ -1045,10 +1045,10 @@ static void ps_decorrelate(ps_info *ps, const complex_t *Phi_Fract_SubQmf; uint8_t temp_delay_ser[NO_ALLPASS_LINKS]; real_t P_SmoothPeakDecayDiffNrg, nrg; @@ -36,12 +36,12 @@ main arrays X_left[][] and X_right[][] use static __thread storage. /* chose hybrid filterbank: 20 or 34 band case */ if (ps->use34hybrid_bands) -@@ -1963,8 +1963,10 @@ +@@ -1991,8 +1991,10 @@ ps_info *ps_init(uint8_t sr_index, uint8 /* main Parametric Stereo decoding function */ uint8_t ps_decode(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64]) { -- qmf_t X_hybrid_left[32][32] = {{0}}; -- qmf_t X_hybrid_right[32][32] = {{0}}; +- qmf_t X_hybrid_left[32][32] = {{{0}}}; +- qmf_t X_hybrid_right[32][32] = {{{0}}}; + static __thread qmf_t X_hybrid_left[32][32]; + static __thread qmf_t X_hybrid_right[32][32]; + memset(X_hybrid_left, 0, sizeof(X_hybrid_left)); diff --git a/srcpkgs/faad2/template b/srcpkgs/faad2/template index d7a3809a50f..ab44fe556bb 100644 --- a/srcpkgs/faad2/template +++ b/srcpkgs/faad2/template @@ -1,26 +1,21 @@ # Template file for 'faad2' pkgname=faad2 -version=2.10.1 +version=2.11.1 revision=1 -build_style=gnu-configure -hostmakedepends="autoconf automake libtool" +build_style=cmake +# hostmakedepends="autoconf automake libtool" short_desc="AAC decoding library" maintainer="Orphaned " license="GPL-2.0-or-later" homepage="http://www.audiocoding.com/" distfiles="https://github.com/knik0/faad2/archive/${version}.tar.gz" -checksum=4c16c71295ca0cbf7c3dfe98eb11d8fa8d0ac3042e41604cfd6cc11a408cf264 - -pre_configure() { - autoreconf -vfi -} +checksum=72dbc0494de9ee38d240f670eccf2b10ef715fd0508c305532ca3def3225bb06 faad2-devel_package() { depends="${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove usr/include - vmove "usr/lib/*.a" vmove "usr/lib/*.so" vmove usr/lib/pkgconfig }