diff options
| -rw-r--r-- | apps/codecs/lib/SOURCES | 4 | ||||
| -rw-r--r-- | apps/codecs/lib/asm_arm.h | 13 | ||||
| -rw-r--r-- | apps/codecs/lib/codeclib.h | 2 |
3 files changed, 11 insertions, 8 deletions
diff --git a/apps/codecs/lib/SOURCES b/apps/codecs/lib/SOURCES index 438cd1f..da77f97 100644 --- a/apps/codecs/lib/SOURCES +++ b/apps/codecs/lib/SOURCES @@ -4,14 +4,14 @@ fixedpoint.c /* OLD MDCT */ /* (when all other codecs are remediated this can be remoed) */ -/* mdct2.c */ +mdct2.c mdct_lookup.c fft-ffmpeg.c mdct.c #ifdef CPU_ARM -/*mdct_arm.S*/ +mdct_arm.S setjmp_arm.S ../../../firmware/target/arm/support-arm.S #endif diff --git a/apps/codecs/lib/asm_arm.h b/apps/codecs/lib/asm_arm.h index 9dcbcef..4f31f80 100644 --- a/apps/codecs/lib/asm_arm.h +++ b/apps/codecs/lib/asm_arm.h @@ -226,11 +226,14 @@ void vect_mult_bw(int32_t *data, int32_t *window, int n) #define _V_CLIP_MATH static inline int32_t CLIP_TO_15(int32_t x) { - const int32_t mask = 0xffff7fff; - asm volatile("teq %0,%0,asr #31\n\t" - "eorne %0,%1,%0,asr #31\n\t" - : "+r"(x) - : "r" (mask) + int tmp; + asm volatile("subs %1, %0, #32768\n\t" + "movpl %0, #0x7f00\n\t" + "orrpl %0, %0, #0xff\n" + "adds %1, %0, #32768\n\t" + "movmi %0, #0x8000" + : "+r"(x),"=r"(tmp) + : : "cc"); return(x); } diff --git a/apps/codecs/lib/codeclib.h b/apps/codecs/lib/codeclib.h index 32a4696..817d86a 100644 --- a/apps/codecs/lib/codeclib.h +++ b/apps/codecs/lib/codeclib.h @@ -65,7 +65,7 @@ void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, con /*MDCT library functions*/ /* -1- Tremor mdct */ -/* extern void mdct_backward(int n, int32_t *in, int32_t *out); */ +extern void mdct_backward(int n, int32_t *in, int32_t *out); /* -2- ffmpeg fft-based mdct */ extern void ff_imdct_half(unsigned int nbits, int32_t *output, const int32_t *input); extern void ff_imdct_calc(unsigned int nbits, int32_t *output, const int32_t *input); |