diff -u speex-1.2~rc1+git20090708+a6d05eb/debian/changelog speex-1.2~rc1+git20090708+a6d05eb/debian/changelog --- speex-1.2~rc1+git20090708+a6d05eb/debian/changelog +++ speex-1.2~rc1+git20090708+a6d05eb/debian/changelog @@ -1,3 +1,10 @@ +speex (1.2~rc1+git20090708+a6d05eb-1linaro4) oneiric; urgency=low + + * debian/patches/neon-autodetection.patch: + - Refresh patch to avoid FTBFS + + -- Ricardo Salveti de Araujo Mon, 26 Mar 2012 07:39:02 -0300 + speex (1.2~rc1+git20090708+a6d05eb-1linaro3) oneiric; urgency=low * debian/patches/neon-autodetection.patch: diff -u speex-1.2~rc1+git20090708+a6d05eb/debian/patches/neon-autodetection.patch speex-1.2~rc1+git20090708+a6d05eb/debian/patches/neon-autodetection.patch --- speex-1.2~rc1+git20090708+a6d05eb/debian/patches/neon-autodetection.patch +++ speex-1.2~rc1+git20090708+a6d05eb/debian/patches/neon-autodetection.patch @@ -8,10 +8,10 @@ libspeex/resample_neon.h | 10 ++-- 2 files changed, 133 insertions(+), 8 deletions(-) -diff --git a/libspeex/resample.c b/libspeex/resample.c -index 7957c61..8a2ee02 100644 ---- a/libspeex/resample.c -+++ b/libspeex/resample.c +Index: speex-1.2~rc1+git20090708+a6d05eb/libspeex/resample.c +=================================================================== +--- speex-1.2~rc1+git20090708+a6d05eb.orig/libspeex/resample.c 2012-03-26 07:21:55.694337228 -0300 ++++ speex-1.2~rc1+git20090708+a6d05eb/libspeex/resample.c 2012-03-26 07:21:55.706337288 -0300 @@ -57,10 +57,16 @@ The latter both reduces CPU time and makes the algorithm more SIMD-friendly. */ @@ -30,7 +30,7 @@ #ifdef OUTSIDE_SPEEX #include static void *speex_alloc (int size) {return calloc(size,1);} -@@ -95,6 +101,7 @@ static void speex_free (void *ptr) {free(ptr);} +@@ -95,6 +101,7 @@ #define NULL 0 #endif @@ -38,7 +38,7 @@ #ifdef _USE_SSE #include "resample_sse.h" #endif -@@ -103,6 +110,8 @@ static void speex_free (void *ptr) {free(ptr);} +@@ -103,6 +110,8 @@ #include "resample_neon.h" #endif @@ -47,7 +47,7 @@ /* Numer of elements to allocate on the stack */ #ifdef VAR_ARRAYS #define FIXED_STACK_ALLOC 8192 -@@ -257,7 +266,46 @@ static double compute_func(float x, struct FuncDef *func) +@@ -257,7 +266,46 @@ /*sum = frac*accum[1] + (1-frac)*accum[2];*/ return interp[0]*func->table[ind] + interp[1]*func->table[ind+1] + interp[2]*func->table[ind+2] + interp[3]*func->table[ind+3]; } @@ -94,7 +94,7 @@ #if 0 #include int main(int argc, char **argv) -@@ -306,7 +354,10 @@ static void cubic_coef(spx_word16_t x, spx_word16_t interp[4]) +@@ -306,7 +354,10 @@ but I know it's MMSE-optimal on a sinc */ spx_word16_t x2, x3; x2 = MULT16_16_P15(x, x); @@ -105,7 +105,7 @@ interp[0] = PSHR32(MULT16_16(QCONST16(-0.16667f, 15),x) + MULT16_16(QCONST16(0.16667f, 15),x3),15); interp[1] = EXTRACT16(EXTEND32(x) + SHR32(SUB32(EXTEND32(x2),EXTEND32(x3)),1)); interp[3] = PSHR32(MULT16_16(QCONST16(-0.33333f, 15),x) + MULT16_16(QCONST16(.5f,15),x2) - MULT16_16(QCONST16(0.16667f, 15),x3),15); -@@ -329,6 +380,62 @@ static void cubic_coef(spx_word16_t frac, spx_word16_t interp[4]) +@@ -329,6 +380,62 @@ } #endif @@ -168,7 +168,7 @@ static int resampler_basic_direct_single(SpeexResamplerState *st, spx_uint32_t channel_index, const spx_word16_t *in, spx_uint32_t *in_len, spx_word16_t *out, spx_uint32_t *out_len) { const int N = st->filt_len; -@@ -366,7 +473,8 @@ static int resampler_basic_direct_single(SpeexResamplerState *st, spx_uint32_t c +@@ -366,7 +473,8 @@ */ sum = SATURATE32PSHR(sum, 15, 32767); #else @@ -178,7 +178,7 @@ #endif out[out_stride * out_sample++] = sum; -@@ -384,6 +492,8 @@ static int resampler_basic_direct_single(SpeexResamplerState *st, spx_uint32_t c +@@ -384,6 +492,8 @@ return out_sample; } @@ -187,7 +187,7 @@ #ifdef FIXED_POINT #else /* This is the same as the previous function, except with a double-precision accumulator */ -@@ -559,10 +669,13 @@ static int resampler_basic_interpolate_double(SpeexResamplerState *st, spx_uint3 +@@ -559,10 +669,13 @@ } #endif @@ -201,7 +201,7 @@ old_length = st->filt_len; st->oversample = quality_map[st->quality].oversample; st->filt_len = quality_map[st->quality].base_length; -@@ -614,7 +727,19 @@ static void update_filter(SpeexResamplerState *st) +@@ -614,7 +727,19 @@ } } #ifdef FIXED_POINT @@ -222,10 +222,10 @@ #else if (st->quality>8) st->resampler_ptr = resampler_basic_direct_double; -diff --git a/libspeex/resample_neon.h b/libspeex/resample_neon.h -index e7e981e..1909e75 100644 ---- a/libspeex/resample_neon.h -+++ b/libspeex/resample_neon.h +Index: speex-1.2~rc1+git20090708+a6d05eb/libspeex/resample_neon.h +=================================================================== +--- speex-1.2~rc1+git20090708+a6d05eb.orig/libspeex/resample_neon.h 2012-03-26 07:21:55.698337252 -0300 ++++ speex-1.2~rc1+git20090708+a6d05eb/libspeex/resample_neon.h 2012-03-26 07:22:32.410519303 -0300 @@ -40,7 +40,7 @@ #ifdef FIXED_POINT @@ -235,7 +235,7 @@ int32_t ret; asm ("ssat %[ret], #16, %[a]" : [ret] "=&r" (ret) -@@ -49,7 +49,7 @@ static inline int32_t saturate_32bit_to_16bit(int32_t a) { +@@ -49,7 +49,7 @@ return ret; } #else @@ -244,7 +244,7 @@ int32_t ret; asm ("vmov.s32 d0[0], %[a]\n" "vqmovn.s32 d0, q0\n" -@@ -65,7 +65,7 @@ static inline int32_t saturate_32bit_to_16bit(int32_t a) { +@@ -65,7 +65,7 @@ #define OVERRIDE_INNER_PRODUCT_SINGLE /* Only works when len % 4 == 0 */ @@ -253,7 +253,7 @@ { int32_t ret; uint32_t remainder = len % 16; -@@ -123,7 +123,7 @@ static inline int32_t inner_product_single(const int16_t *a, const int16_t *b, u +@@ -123,7 +123,7 @@ } #elif defined(FLOATING_POINT) @@ -262,7 +262,12 @@ int32_t ret; asm ("vmov.f32 d0[0], %[a]\n" "vcvt.s32.f32 d0, d0, #15\n" -@@ -139,7 +139,7 @@ static inline int32_t saturate_float_to_16bit(float a) { +@@ -135,11 +135,11 @@ + return ret; + } + #undef WORD2INT +-#define WORD2INT(x) (saturate_float_to_16bit(x)) ++#define WORD2INT(x) (saturate_float_to_16bit_neon(x)) #define OVERRIDE_INNER_PRODUCT_SINGLE /* Only works when len % 4 == 0 */ @@ -274,3 +278,0 @@ --- -1.7.0.4 -