summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/codecs/alac.c1
-rw-r--r--apps/codecs/demac/libdemac/SOURCES1
-rw-r--r--apps/codecs/lib/SOURCES5
-rw-r--r--apps/codecs/lib/mdct2.c513
-rw-r--r--apps/codecs/lib/mdct2.h76
-rw-r--r--apps/codecs/lib/mdct_arm.S437
-rw-r--r--apps/codecs/libalac/alac.c3
-rw-r--r--apps/codecs/libalac/decomp.h9
-rw-r--r--apps/codecs/libatrac/Makefile.test11
-rw-r--r--apps/codecs/libatrac/main.c168
-rw-r--r--apps/codecs/libcook/Makefile.test10
-rw-r--r--apps/codecs/libcook/main.c190
-rw-r--r--apps/codecs/libfaad/decoder.c3
-rw-r--r--apps/codecs/libfaad/mp4.c3
-rw-r--r--apps/codecs/libfaad/mp4.h2
-rw-r--r--apps/codecs/libfaad/tns.c6
-rw-r--r--apps/codecs/libffmpegFLAC/Makefile.test21
-rw-r--r--apps/codecs/libffmpegFLAC/main.c322
-rw-r--r--apps/codecs/libm4a/m4a.c17
-rw-r--r--apps/codecs/libm4a/m4a.h2
-rw-r--r--apps/codecs/libspeex/bits.c2
-rw-r--r--apps/codecs/libtremor/asm_arm.h20
-rw-r--r--apps/codecs/libtremor/asm_mcf5249.h12
-rw-r--r--apps/codecs/libtremor/misc.h14
-rw-r--r--apps/codecs/libtta/ttadec.c3
-rw-r--r--apps/codecs/raac.c2
26 files changed, 27 insertions, 1826 deletions
diff --git a/apps/codecs/alac.c b/apps/codecs/alac.c
index 82bda264c3..b6852f5b3f 100644
--- a/apps/codecs/alac.c
+++ b/apps/codecs/alac.c
@@ -83,7 +83,6 @@ enum codec_status codec_run(void)
}
/* initialise the sound converter */
- create_alac(demux_res.sound_sample_size, demux_res.num_channels,&alac);
alac_set_info(&alac, demux_res.codecdata);
/* Set i for first frame, seek to desired sample position for resuming. */
diff --git a/apps/codecs/demac/libdemac/SOURCES b/apps/codecs/demac/libdemac/SOURCES
index f9f8f217c7..018f35a73c 100644
--- a/apps/codecs/demac/libdemac/SOURCES
+++ b/apps/codecs/demac/libdemac/SOURCES
@@ -1,4 +1,3 @@
-crc.c
predictor.c
#ifdef CPU_ARM
predictor-arm.S
diff --git a/apps/codecs/lib/SOURCES b/apps/codecs/lib/SOURCES
index cef214a3ab..cd38dc1545 100644
--- a/apps/codecs/lib/SOURCES
+++ b/apps/codecs/lib/SOURCES
@@ -3,16 +3,11 @@ codeclib.c
fixedpoint.c
ffmpeg_bitstream.c
-/* OLD MDCT */
-/* (when all other codecs are remediated this can be remoed) */
-mdct2.c
mdct_lookup.c
-
fft-ffmpeg.c
mdct.c
#ifdef CPU_ARM
-mdct_arm.S
../../../firmware/target/arm/support-arm.S
#endif
diff --git a/apps/codecs/lib/mdct2.c b/apps/codecs/lib/mdct2.c
deleted file mode 100644
index ba8b5ca6be..0000000000
--- a/apps/codecs/lib/mdct2.c
+++ /dev/null
@@ -1,513 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
- * *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: normalized modified discrete cosine transform
- power of two length transform only [64 <= n ]
-
-
- Original algorithm adapted long ago from _The use of multirate filter
- banks for coding of high quality digital audio_, by T. Sporer,
- K. Brandenburg and B. Edler, collection of the European Signal
- Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp
- 211-214
-
- The below code implements an algorithm that no longer looks much like
- that presented in the paper, but the basic structure remains if you
- dig deep enough to see it.
-
- This module DOES NOT INCLUDE code to generate/apply the window
- function. Everybody has their own weird favorite including me... I
- happen to like the properties of y=sin(.5PI*sin^2(x)), but others may
- vehemently disagree.
-
- ********************************************************************/
-
-/*Tremor IMDCT adapted for use with libwmai*/
-
-
-#include "mdct2.h"
-#include "mdct_lookup.h"
-#ifdef ROCKBOX
-#include <codecs/lib/codeclib.h>
-#endif /* ROCKBOX */
-
-#if defined(CPU_ARM)
-
-extern void mdct_butterfly_32(int32_t *x);
-extern void mdct_butterfly_generic_loop(int32_t *x1, int32_t *x2,
- const int32_t *T0, int step,
- const int32_t *Ttop);
-
-static inline void mdct_butterfly_generic(int32_t *x,int points, int step){
- mdct_butterfly_generic_loop(x + points, x + (points>>1), sincos_lookup0, step, sincos_lookup0+1024);
-}
-
-#else
-
-/* 8 point butterfly (in place) */
-static inline void mdct_butterfly_8(int32_t *x){
- register int32_t r0 = x[4] + x[0];
- register int32_t r1 = x[4] - x[0];
- register int32_t r2 = x[5] + x[1];
- register int32_t r3 = x[5] - x[1];
- register int32_t r4 = x[6] + x[2];
- register int32_t r5 = x[6] - x[2];
- register int32_t r6 = x[7] + x[3];
- register int32_t r7 = x[7] - x[3];
-
- x[0] = r5 + r3;
- x[1] = r7 - r1;
- x[2] = r5 - r3;
- x[3] = r7 + r1;
- x[4] = r4 - r0;
- x[5] = r6 - r2;
- x[6] = r4 + r0;
- x[7] = r6 + r2;
-}
-
-/* 16 point butterfly (in place, 4 register) */
-static inline void mdct_butterfly_16(int32_t *x){
-
- register int32_t r0, r1;
-
- r0 = x[ 0] - x[ 8]; x[ 8] += x[ 0];
- r1 = x[ 1] - x[ 9]; x[ 9] += x[ 1];
- x[ 0] = MULT31((r0 + r1) , cPI2_8);
- x[ 1] = MULT31((r1 - r0) , cPI2_8);
-
- r0 = x[10] - x[ 2]; x[10] += x[ 2];
- r1 = x[ 3] - x[11]; x[11] += x[ 3];
- x[ 2] = r1; x[ 3] = r0;
-
- r0 = x[12] - x[ 4]; x[12] += x[ 4];
- r1 = x[13] - x[ 5]; x[13] += x[ 5];
- x[ 4] = MULT31((r0 - r1) , cPI2_8);
- x[ 5] = MULT31((r0 + r1) , cPI2_8);
-
- r0 = x[14] - x[ 6]; x[14] += x[ 6];
- r1 = x[15] - x[ 7]; x[15] += x[ 7];
- x[ 6] = r0; x[ 7] = r1;
-
- mdct_butterfly_8(x);
- mdct_butterfly_8(x+8);
-}
-
-/* 32 point butterfly (in place, 4 register) */
-static inline void mdct_butterfly_32(int32_t *x){
-
- register int32_t r0, r1;
-
- r0 = x[30] - x[14]; x[30] += x[14];
- r1 = x[31] - x[15]; x[31] += x[15];
- x[14] = r0; x[15] = r1;
-
- r0 = x[28] - x[12]; x[28] += x[12];
- r1 = x[29] - x[13]; x[29] += x[13];
- XNPROD31( r0, r1, cPI1_8, cPI3_8, &x[12], &x[13] );
-
- r0 = x[26] - x[10]; x[26] += x[10];
- r1 = x[27] - x[11]; x[27] += x[11];
- x[10] = MULT31((r0 - r1) , cPI2_8);
- x[11] = MULT31((r0 + r1) , cPI2_8);
-
- r0 = x[24] - x[ 8]; x[24] += x[ 8];
- r1 = x[25] - x[ 9]; x[25] += x[ 9];
- XNPROD31( r0, r1, cPI3_8, cPI1_8, &x[ 8], &x[ 9] );
-
- r0 = x[22] - x[ 6]; x[22] += x[ 6];
- r1 = x[ 7] - x[23]; x[23] += x[ 7];
- x[ 6] = r1; x[ 7] = r0;
-
- r0 = x[ 4] - x[20]; x[20] += x[ 4];
- r1 = x[ 5] - x[21]; x[21] += x[ 5];
- XPROD31 ( r0, r1, cPI3_8, cPI1_8, &x[ 4], &x[ 5] );
-
- r0 = x[ 2] - x[18]; x[18] += x[ 2];
- r1 = x[ 3] - x[19]; x[19] += x[ 3];
- x[ 2] = MULT31((r1 + r0) , cPI2_8);
- x[ 3] = MULT31((r1 - r0) , cPI2_8);
-
- r0 = x[ 0] - x[16]; x[16] += x[ 0];
- r1 = x[ 1] - x[17]; x[17] += x[ 1];
- XPROD31 ( r0, r1, cPI1_8, cPI3_8, &x[ 0], &x[ 1] );
-
- mdct_butterfly_16(x);
- mdct_butterfly_16(x+16);
-}
-
-/* N/stage point generic N stage butterfly (in place, 4 register) */
-void mdct_butterfly_generic(int32_t *x,int points, int step)
- ICODE_ATTR_TREMOR_MDCT;
-void mdct_butterfly_generic(int32_t *x,int points, int step){
- const int32_t *T = sincos_lookup0;
- int32_t *x1 = x + points - 8;
- int32_t *x2 = x + (points>>1) - 8;
- register int32_t r0;
- register int32_t r1;
- register int32_t r2;
- register int32_t r3;
-
- do{
- r0 = x1[6] - x2[6]; x1[6] += x2[6];
- r1 = x2[7] - x1[7]; x1[7] += x2[7];
- r2 = x1[4] - x2[4]; x1[4] += x2[4];
- r3 = x2[5] - x1[5]; x1[5] += x2[5];
- XPROD31( r1, r0, T[0], T[1], &x2[6], &x2[7] ); T+=step;
- XPROD31( r3, r2, T[0], T[1], &x2[4], &x2[5] ); T+=step;
-
- r0 = x1[2] - x2[2]; x1[2] += x2[2];
- r1 = x2[3] - x1[3]; x1[3] += x2[3];
- r2 = x1[0] - x2[0]; x1[0] += x2[0];
- r3 = x2[1] - x1[1]; x1[1] += x2[1];
- XPROD31( r1, r0, T[0], T[1], &x2[2], &x2[3] ); T+=step;
- XPROD31( r3, r2, T[0], T[1], &x2[0], &x2[1] ); T+=step;
-
- x1-=8; x2-=8;
- }while(T<sincos_lookup0+1024);
- do{
- r0 = x1[6] - x2[6]; x1[6] += x2[6];
- r1 = x1[7] - x2[7]; x1[7] += x2[7];
- r2 = x1[4] - x2[4]; x1[4] += x2[4];
- r3 = x1[5] - x2[5]; x1[5] += x2[5];
- XNPROD31( r0, r1, T[0], T[1], &x2[6], &x2[7] ); T-=step;
- XNPROD31( r2, r3, T[0], T[1], &x2[4], &x2[5] ); T-=step;
-
- r0 = x1[2] - x2[2]; x1[2] += x2[2];
- r1 = x1[3] - x2[3]; x1[3] += x2[3];
- r2 = x1[0] - x2[0]; x1[0] += x2[0];
- r3 = x1[1] - x2[1]; x1[1] += x2[1];
- XNPROD31( r0, r1, T[0], T[1], &x2[2], &x2[3] ); T-=step;
- XNPROD31( r2, r3, T[0], T[1], &x2[0], &x2[1] ); T-=step;
-
- x1-=8; x2-=8;
- }while(T>sincos_lookup0);
- do{
- r0 = x2[6] - x1[6]; x1[6] += x2[6];
- r1 = x2[7] - x1[7]; x1[7] += x2[7];
- r2 = x2[4] - x1[4]; x1[4] += x2[4];
- r3 = x2[5] - x1[5]; x1[5] += x2[5];
- XPROD31( r0, r1, T[0], T[1], &x2[6], &x2[7] ); T+=step;
- XPROD31( r2, r3, T[0], T[1], &x2[4], &x2[5] ); T+=step;
-
- r0 = x2[2] - x1[2]; x1[2] += x2[2];
- r1 = x2[3] - x1[3]; x1[3] += x2[3];
- r2 = x2[0] - x1[0]; x1[0] += x2[0];
- r3 = x2[1] - x1[1]; x1[1] += x2[1];
- XPROD31( r0, r1, T[0], T[1], &x2[2], &x2[3] ); T+=step;
- XPROD31( r2, r3, T[0], T[1], &x2[0], &x2[1] ); T+=step;
-
- x1-=8; x2-=8;
- }while(T<sincos_lookup0+1024);
- do{
- r0 = x1[6] - x2[6]; x1[6] += x2[6];
- r1 = x2[7] - x1[7]; x1[7] += x2[7];
- r2 = x1[4] - x2[4]; x1[4] += x2[4];
- r3 = x2[5] - x1[5]; x1[5] += x2[5];
- XNPROD31( r1, r0, T[0], T[1], &x2[6], &x2[7] ); T-=step;
- XNPROD31( r3, r2, T[0], T[1], &x2[4], &x2[5] ); T-=step;
-
- r0 = x1[2] - x2[2]; x1[2] += x2[2];
- r1 = x2[3] - x1[3]; x1[3] += x2[3];
- r2 = x1[0] - x2[0]; x1[0] += x2[0];
- r3 = x2[1] - x1[1]; x1[1] += x2[1];
- XNPROD31( r1, r0, T[0], T[1], &x2[2], &x2[3] ); T-=step;
- XNPROD31( r3, r2, T[0], T[1], &x2[0], &x2[1] ); T-=step;
-
- x1-=8; x2-=8;
- }while(T>sincos_lookup0);
-}
-
-#endif /* CPU_ARM */
-
-static inline void mdct_butterflies(int32_t *x,int points,int shift) {
-
- int stages=8-shift;
- int i,j;
-
- for(i=0;--stages>0;i++){
- for(j=0;j<(1<<i);j++)
- mdct_butterfly_generic(x+(points>>i)*j,points>>i,4<<(i+shift));
- }
-
- for(j=0;j<points;j+=32)
- mdct_butterfly_32(x+j);
-}
-
-static const unsigned char bitrev[] ICONST_ATTR =
-{
- 0, 32, 16, 48, 8, 40, 24, 56, 4, 36, 20, 52, 12, 44, 28, 60,
- 2, 34, 18, 50, 10, 42, 26, 58, 6, 38, 22, 54, 14, 46, 30, 62,
- 1, 33, 17, 49, 9, 41, 25, 57, 5, 37, 21, 53, 13, 45, 29, 61,
- 3, 35, 19, 51, 11, 43, 27, 59, 7, 39, 23, 55, 15, 47, 31, 63
-};
-
-static inline int bitrev12(int x){
- return bitrev[x>>6]|((bitrev[x&0x03f])<<6);
-}
-
-static inline void mdct_bitreverse(int32_t *x,int n,int step,int shift) {
-
- int bit = 0;
- int32_t *w0 = x;
- int32_t *w1 = x = w0+(n>>1);
- const int32_t *T = (step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1;
- const int32_t *Ttop = T+1024;
- register int32_t r2;
-
- do{
- register int32_t r3 = bitrev12(bit++);
- int32_t *x0 = x + ((r3 ^ 0xfff)>>shift) -1;
- int32_t *x1 = x + (r3>>shift);
-
- register int32_t r0 = x0[0] + x1[0];
- register int32_t r1 = x1[1] - x0[1];
-
- XPROD32( r0, r1, T[1], T[0], r2, r3 ); T+=step;
-
- w1 -= 4;
-
- r0 = (x0[1] + x1[1])>>1;
- r1 = (x0[0] - x1[0])>>1;
- w0[0] = r0 + r2;
- w0[1] = r1 + r3;
- w1[2] = r0 - r2;
- w1[3] = r3 - r1;
-
- r3 = bitrev12(bit++);
- x0 = x + ((r3 ^ 0xfff)>>shift) -1;
- x1 = x + (r3>>shift);
-
- r0 = x0[0] + x1[0];
- r1 = x1[1] - x0[1];
-
- XPROD32( r0, r1, T[1], T[0], r2, r3 ); T+=step;
-
- r0 = (x0[1] + x1[1])>>1;
- r1 = (x0[0] - x1[0])>>1;
- w0[2] = r0 + r2;
- w0[3] = r1 + r3;
- w1[0] = r0 - r2;
- w1[1] = r3 - r1;
-
- w0 += 4;
- }while(T<Ttop);
- do{
- register int32_t r3 = bitrev12(bit++);
- int32_t *x0 = x + ((r3 ^ 0xfff)>>shift) -1;
- int32_t *x1 = x + (r3>>shift);
-
- register int32_t r0 = x0[0] + x1[0];
- register int32_t r1 = x1[1] - x0[1];
-
- T-=step; XPROD32( r0, r1, T[0], T[1], r2, r3 );
-
- w1 -= 4;
-
- r0 = (x0[1] + x1[1])>>1;
- r1 = (x0[0] - x1[0])>>1;
- w0[0] = r0 + r2;
- w0[1] = r1 + r3;
- w1[2] = r0 - r2;
- w1[3] = r3 - r1;
-
- r3 = bitrev12(bit++);
- x0 = x + ((r3 ^ 0xfff)>>shift) -1;
- x1 = x + (r3>>shift);
-
- r0 = x0[0] + x1[0];
- r1 = x1[1] - x0[1];
-
- T-=step; XPROD32( r0, r1, T[0], T[1], r2, r3 );
-
- r0 = (x0[1] + x1[1])>>1;
- r1 = (x0[0] - x1[0])>>1;
- w0[2] = r0 + r2;
- w0[3] = r1 + r3;
- w1[0] = r0 - r2;
- w1[1] = r3 - r1;
-
- w0 += 4;
- }while(w0<w1);
-}
-
-
-void mdct_backward(int n, int32_t *in, int32_t *out)
- ICODE_ATTR_TREMOR_MDCT;
-void mdct_backward(int n, int32_t *in, int32_t *out) {
- int n2=n>>1;
- int n4=n>>2;
- int32_t *iX;
- int32_t *oX;
- const int32_t *T;
- const int32_t *V;
- int shift;
- int step;
- for (shift=6;!(n&(1<<shift));shift++);
- shift=13-shift;
- step=2<<shift;
-
- /* rotate */
-
- iX = in+n2-7;
- oX = out+n2+n4;
- T = sincos_lookup0;
-
- do{
- oX-=4;
- XPROD31( iX[4], iX[6], T[0], T[1], &oX[2], &oX[3] ); T+=step;
- XPROD31( iX[0], iX[2], T[0], T[1], &oX[0], &oX[1] ); T+=step;
- iX-=8;
- }while(iX>=in+n4);
- do{
- oX-=4;
- XPROD31( iX[4], iX[6], T[1], T[0], &oX[2], &oX[3] ); T-=step;
- XPROD31( iX[0], iX[2], T[1], T[0], &oX[0], &oX[1] ); T-=step;
- iX-=8;
- }while(iX>=in);
-
- iX = in+n2-8;
- oX = out+n2+n4;
- T = sincos_lookup0;
-
- do{
- T+=step; XNPROD31( iX[6], iX[4], T[0], T[1], &oX[0], &oX[1] );
- T+=step; XNPROD31( iX[2], iX[0], T[0], T[1], &oX[2], &oX[3] );
- iX-=8;
- oX+=4;
- }while(iX>=in+n4);
- do{
- T-=step; XNPROD31( iX[6], iX[4], T[1], T[0], &oX[0], &oX[1] );
- T-=step; XNPROD31( iX[2], iX[0], T[1], T[0], &oX[2], &oX[3] );
- iX-=8;
- oX+=4;
- }while(iX>=in);
-
- mdct_butterflies(out+n2,n2,shift);
- mdct_bitreverse(out,n,step,shift);
- /* rotate + window */
-
- step>>=2;
- {
- int32_t *oX1=out+n2+n4;
- int32_t *oX2=out+n2+n4;
- int32_t *iX =out;
-
- switch(step) {
- default: {
- T=(step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1;
- do{
- oX1-=4;
- XPROD31( iX[0], -iX[1], T[0], T[1], &oX1[3], &oX2[0] ); T+=step;
- XPROD31( iX[2], -iX[3], T[0], T[1], &oX1[2], &oX2[1] ); T+=step;
- XPROD31( iX[4], -iX[5], T[0], T[1], &oX1[1], &oX2[2] ); T+=step;
- XPROD31( iX[6], -iX[7], T[0], T[1], &oX1[0], &oX2[3] ); T+=step;
- oX2+=4;
- iX+=8;
- }while(iX<oX1);
- break;
- }
-
- case 1: {
- /* linear interpolation between table values: offset=0.5, step=1 */
- register int32_t t0,t1,v0,v1;
- T = sincos_lookup0;
- V = sincos_lookup1;
- t0 = (*T++)>>1;
- t1 = (*T++)>>1;
- do{
- oX1-=4;
-
- t0 += (v0 = (*V++)>>1);
- t1 += (v1 = (*V++)>>1);
- XPROD31( iX[0], -iX[1], t0, t1, &oX1[3], &oX2[0] );
- v0 += (t0 = (*T++)>>1);
- v1 += (t1 = (*T++)>>1);
- XPROD31( iX[2], -iX[3], v0, v1, &oX1[2], &oX2[1] );
- t0 += (v0 = (*V++)>>1);
- t1 += (v1 = (*V++)>>1);
- XPROD31( iX[4], -iX[5], t0, t1, &oX1[1], &oX2[2] );
- v0 += (t0 = (*T++)>>1);
- v1 += (t1 = (*T++)>>1);
- XPROD31( iX[6], -iX[7], v0, v1, &oX1[0], &oX2[3] );
-
- oX2+=4;
- iX+=8;
- }while(iX<oX1);
- break;
- }
-
- case 0: {
- /* linear interpolation between table values: offset=0.25, step=0.5 */
- register int32_t t0,t1,v0,v1,q0,q1;
- T = sincos_lookup0;
- V = sincos_lookup1;
- t0 = *T++;
- t1 = *T++;
- do{
- oX1-=4;
-
- v0 = *V++;
- v1 = *V++;
- t0 += (q0 = (v0-t0)>>2);
- t1 += (q1 = (v1-t1)>>2);
- XPROD31( iX[0], -iX[1], t0, t1, &oX1[3], &oX2[0] );
- t0 = v0-q0;
- t1 = v1-q1;
- XPROD31( iX[2], -iX[3], t0, t1, &oX1[2], &oX2[1] );
-
- t0 = *T++;
- t1 = *T++;
- v0 += (q0 = (t0-v0)>>2);
- v1 += (q1 = (t1-v1)>>2);
- XPROD31( iX[4], -iX[5], v0, v1, &oX1[1], &oX2[2] );
- v0 = t0-q0;
- v1 = t1-q1;
- XPROD31( iX[6], -iX[7], v0, v1, &oX1[0], &oX2[3] );
-
- oX2+=4;
- iX+=8;
- }while(iX<oX1);
- break;
- }
- }
-
- iX=out+n2+n4;
- oX1=out+n4;
- oX2=oX1;
-
- do{
- oX1-=4;
- iX-=4;
-
- oX2[0] = -(oX1[3] = iX[3]);
- oX2[1] = -(oX1[2] = iX[2]);
- oX2[2] = -(oX1[1] = iX[1]);
- oX2[3] = -(oX1[0] = iX[0]);
-
- oX2+=4;
- }while(oX2<iX);
-
- iX=out+n2+n4;
- oX1=out+n2+n4;
- oX2=out+n2;
-
- do{
- oX1-=4;
- oX1[0]= iX[3];
- oX1[1]= iX[2];
- oX1[2]= iX[1];
- oX1[3]= iX[0];
- iX+=4;
- }while(oX1>oX2);
- }
-}
diff --git a/apps/codecs/lib/mdct2.h b/apps/codecs/lib/mdct2.h
deleted file mode 100644
index 12b0c0845f..0000000000
--- a/apps/codecs/lib/mdct2.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
- * *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: modified discrete cosine transform prototypes
-
- ********************************************************************/
-
-#ifndef _OGG_mdct_H_
-#define _OGG_mdct_H_
-
-
-
-#ifdef _LOW_ACCURACY_
-# define X(n) (((((n)>>22)+1)>>1) - ((((n)>>22)+1)>>9))
-# //define LOOKUP_T const unsigned char
-#else
-# define X(n) (n)
-# //define LOOKUP_T const ogg_int32_t
-#endif
-
-#ifdef ROCKBOX
-#include <codecs.h>
-#endif /* ROCKBOX */
-
-#include "codeclib_misc.h"
-
-#ifndef ICONST_ATTR_TREMOR_WINDOW
-#define ICONST_ATTR_TREMOR_WINDOW ICONST_ATTR
-#endif
-
-#ifndef ICODE_ATTR_TREMOR_MDCT
-#define ICODE_ATTR_TREMOR_MDCT ICODE_ATTR
-#endif
-
-#ifndef ICODE_ATTR_TREMOR_NOT_MDCT
-#define ICODE_ATTR_TREMOR_NOT_MDCT ICODE_ATTR
-#endif
-
-
-
-#ifdef _LOW_ACCURACY_
-#define cPI3_8 (0x0062)
-#define cPI2_8 (0x00b5)
-#define cPI1_8 (0x00ed)
-#else
-#define cPI3_8 (0x30fbc54d)
-#define cPI2_8 (0x5a82799a)
-#define cPI1_8 (0x7641af3d)
-#endif
-
-
-extern void mdct_backward(int n, int32_t *in, int32_t *out);
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/codecs/lib/mdct_arm.S b/apps/codecs/lib/mdct_arm.S
deleted file mode 100644
index 515b859b44..0000000000
--- a/apps/codecs/lib/mdct_arm.S
+++ /dev/null
@@ -1,437 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2007 by Tomasz Malesinski
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "config.h"
-/* Codecs should not normally do this, but we need to check a macro, and
- * codecs.h would confuse the assembler. */
-
-#define cPI3_8 (0x30fbc54d)
-#define cPI2_8 (0x5a82799a)
-#define cPI1_8 (0x7641af3d)
-
-#ifdef USE_IRAM
- .section .icode,"ax",%progbits
-#else
- .text
-#endif
- .align
-
- .global mdct_butterfly_32
- .global mdct_butterfly_generic_loop
-
-mdct_butterfly_8:
-@ inputs: r0,r1,r2,r3,r4,r5,r6,r10,r11 &lr
-@ uses: r8,r9,r12(scratch)
-@ modifies: r0,r1,r2,r3,r4,r5,r6,r10,r11. increments r0 by #8*4
- add r9, r5, r1 @ x4 + x0
- sub r5, r5, r1 @ x4 - x0
- add r7, r6, r2 @ x5 + x1
- sub r6, r6, r2 @ x5 - x1
- add r8, r10, r3 @ x6 + x2
- sub r10, r10, r3 @ x6 - x2
- add r12, r11, r4 @ x7 + x3
- sub r11, r11, r4 @ x7 - x3
-
- add r1, r10, r6 @ y0 = (x6 - x2) + (x5 - x1)
- sub r2, r11, r5 @ y1 = (x7 - x3) - (x4 - x0)
- sub r3, r10, r6 @ y2 = (x6 - x2) - (x5 - x1)
- add r4, r11, r5 @ y3 = (x7 - x3) + (x4 - x0)
- sub r5, r8, r9 @ y4 = (x6 + x2) - (x4 + x0)
- sub r6, r12, r7 @ y5 = (x7 + x3) - (x5 + x1)
- add r10, r8, r9 @ y6 = (x6 + x2) + (x4 + x0)
- add r11, r12, r7 @ y7 = (x7 + x3) + (x5 + x1)
- stmia r0!, {r1, r2, r3, r4, r5, r6, r10, r11}
-
- bx lr
-
-mdct_butterfly_16:
-@ inputs: r0,r1 &lr
-@ uses: r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12
-@ modifies: r0. increments r0 by #16*4
-@ calls mdct_butterfly_8 via bl so need to stack lr for return address
- str lr, [sp, #-4]!
- add r1, r0, #8*4
-
- ldmia r0, {r2, r3, r4, r5}
- ldmia r1, {r6, r7, r8, r9}
- add r6, r6, r2 @ y8 = x8 + x0
- rsb r2, r6, r2, asl #1 @ x0 - x8
- add r7, r7, r3 @ y9 = x9 + x1
- rsb r3, r7, r3, asl #1 @ x1 - x9
- add r8, r8, r4 @ y10 = x10 + x2
- sub r11, r8, r4, asl #1 @ x10 - x2
- add r9, r9, r5 @ y11 = x11 + x3
- rsb r10, r9, r5, asl #1 @ x3 - x11
-
- stmia r1!, {r6, r7, r8, r9}
-
- add r2, r2, r3 @ (x0 - x8) + (x1 - x9)
- rsb r3, r2, r3, asl #1 @ (x1 - x9) - (x0 - x8)
-
- ldr r12, =cPI2_8
- smull r8, r5, r12, r2
- smull r8, r6, r12, r3
- mov r5, r5, asl #1
- mov r6, r6, asl #1
-
- stmia r0!, {r5, r6, r10, r11}
-
- ldmia r0, {r2, r3, r4, r5}
- ldmia r1, {r6, r7, r8, r9}
- add r6, r6, r2 @ y12 = x12 + x4
- sub r2, r6, r2, asl #1 @ x12 - x4
- add r7, r7, r3 @ y13 = x13 + x5
- sub r3, r7, r3, asl #1 @ x13 - x5
- add r8, r8, r4 @ y10 = x14 + x6
- sub r10, r8, r4, asl #1 @ x14 - x6
- add r9, r9, r5 @ y11 = x15 + x7
- sub r11, r9, r5, asl #1 @ x15 - x7
-
- stmia r1, {r6, r7, r8, r9}
-
- sub r2, r2, r3 @ (x12 - x4) - (x13 - x5)
- add r3, r2, r3, asl #1 @ (x12 - x4) + (x13 - x5)
-
- smull r8, r5, r12, r2
- smull r8, r6, r12, r3
- mov r5, r5, asl #1
- mov r6, r6, asl #1
- @ no stmia here, r5, r6, r10, r11 are passed to mdct_butterfly_8
-
- sub r0, r0, #4*4
- ldmia r0, {r1, r2, r3, r4}
- bl mdct_butterfly_8
-
- @ mdct_butterfly_8 will have incremented r0 by #8*4 already
- ldmia r0, {r1, r2, r3, r4, r5, r6, r10, r11}
-
- bl mdct_butterfly_8
- @ mdct_butterfly_8 increments r0 by another #8*4 here
- @ at end, r0 has been incremented by #16*4
-
- ldrpc
-
-mdct_butterfly_32:
- stmdb sp!, {r4-r11, lr}
-
- add r1, r0, #16*4
-
- ldmia r0, {r2, r3, r4, r5}
- ldmia r1, {r6, r7, r8, r9}
- add r6, r6, r2 @ y16 = x16 + x0
- rsb r2, r6, r2, asl #1 @ x0 - x16
- add r7, r7, r3 @ y17 = x17 + x1
- rsb r3, r7, r3, asl #1 @ x1 - x17
- add r8, r8, r4 @ y18 = x18 + x2
- rsb r4, r8, r4, asl #1 @ x2 - x18
- add r9, r9, r5 @ y19 = x19 + x3
- rsb r5, r9, r5, asl #1 @ x3 - x19
-
- stmia r1!, {r6, r7, r8, r9}
-
- ldr r12, =cPI1_8
- ldr lr, =cPI3_8
- smull r10, r6, r12, r2
- rsb r2, r2, #0
- smlal r10, r6, lr, r3
- smull r10, r7, r12, r3
- smlal r10, r7, lr, r2
- mov r6, r6, asl #1
- mov r7, r7, asl #1
-
- add r4, r4, r5 @ (x3 - x19) + (x2 - x18)
- rsb r5, r4, r5, asl #1 @ (x3 - x19) - (x2 - x18)
-
- ldr r11, =cPI2_8
- smull r10, r8, r4, r11
- smull r10, r9, r5, r11
- mov r8, r8, asl #1
- mov r9, r9, asl #1
-
- stmia r0!, {r6, r7, r8, r9}
-
- ldmia r0, {r2, r3, r4, r5}
- ldmia r1, {r6, r7, r8, r9}
- add r6, r6, r2 @ y20 = x20 + x4
- rsb r2, r6, r2, asl #1 @ x4 - x20
- add r7, r7, r3 @ y21 = x21 + x5
- rsb r3, r7, r3, asl #1 @ x5 - x21
- add r8, r8, r4 @ y22 = x22 + x6
- sub r11, r8, r4, asl #1 @ x22 - x6
- add r9, r9, r5 @ y23 = x23 + x7
- rsb r10, r9, r5, asl #1 @ x7 - x23
- stmia r1!, {r6, r7, r8, r9}
-
- @r4,r5,r6,r7,r8,r9 now free
- @ we don't use r5, r8, r9 below
-
- smull r4, r6, lr, r2
- rsb r2, r2, #0
- smlal r4, r6, r12, r3
- smull r4, r7, lr, r3
- smlal r4, r7, r12, r2
- mov r6, r6, asl #1
- mov r7, r7, asl #1
-
- stmia r0!, {r6, r7, r10, r11}
-
- ldmia r0, {r2, r3, r4, r5}
- ldmia r1, {r6, r7, r8, r9}
- add r6, r6, r2 @ y24 = x24 + x8
- sub r2, r6, r2, asl #1 @ x24 - x8
- add r7, r7, r3 @ y25 = x25 + x9
- sub r3, r7, r3, asl #1 @ x25 - x9
- add r8, r8, r4 @ y26 = x26 + x10
- sub r4, r8, r4, asl #1 @ x26 - x10
- add r9, r9, r5 @ y27 = x27 + x11
- sub r5, r9, r5, asl #1 @ x27 - x11
-
- stmia r1!, {r6, r7, r8, r9}
-
- smull r10, r7, lr, r3
- rsb r3, r3, #0
- smlal r10, r7, r12, r2
- smull r10, r6, r12, r3
- smlal r10, r6, lr, r2
- mov r6, r6, asl #1
- mov r7, r7, asl #1
-
- sub r4, r4, r5 @ (x26 - x10) - (x27 - x11)
- add r5, r4, r5, asl #1 @ (x26 - x10) + (x27 - x11)
-
- ldr r11, =cPI2_8
- smull r10, r8, r11, r4
- smull r10, r9, r11, r5
- mov r8, r8, asl #1
- mov r9, r9, asl #1
-
- stmia r0!, {r6, r7, r8, r9}
-
- ldmia r0, {r2, r3, r4, r5}
- ldmia r1, {r6, r7, r8, r9}
- add r6, r6, r2 @ y28 = x28 + x12
- sub r2, r6, r2, asl #1 @ x28 - x12
- add r7, r7, r3 @ y29 = x29 + x13
- sub r3, r7, r3, asl #1 @ x29 - x13
- add r8, r8, r4 @ y30 = x30 + x14
- sub r10, r8, r4, asl #1 @ x30 - x14
- add r9, r9, r5 @ y31 = x31 + x15
- sub r11, r9, r5, asl #1 @ x31 - x15
- stmia r1, {r6, r7, r8, r9}
-
- @ r4,r5,r6,r7,r8,r9 now free
- @ we don't use r5,r8,r9 below
-
- smull r4, r7, r12, r3
- rsb r3, r3, #0
- smlal r4, r7, lr, r2
- smull r4, r6, lr, r3
- smlal r4, r6, r12, r2
- mov r6, r6, asl #1
- mov r7, r7, asl #1
-
- stmia r0, {r6, r7, r10, r11}
-
- sub r0, r0, #12*4
- bl mdct_butterfly_16
-
- @ we know mdct_butterfly_16 increments r0 by #16*4
- @ and we wanted to advance by #16*4 anyway, so just call again
- bl mdct_butterfly_16
-
- ldmpc regs=r4-r11
-
- @ mdct_butterfly_generic_loop(x1, x2, T0, step, Ttop)
-mdct_butterfly_generic_loop:
- stmdb sp!, {r4-r11, lr}
- str r2, [sp, #-4]
- ldr r4, [sp, #36]
-1:
- ldmdb r0, {r6, r7, r8, r9}
- ldmdb r1, {r10, r11, r12, r14}
-
- add r6, r6, r10
- sub r10, r6, r10, asl #1
- add r7, r7, r11
- rsb r11, r7, r11, asl #1
- add r8, r8, r12
- sub r12, r8, r12, asl #1
- add r9, r9, r14
- rsb r14, r9, r14, asl #1
-
- stmdb r0!, {r6, r7, r8, r9}
-
- ldmia r2, {r6, r7}
- smull r5, r8, r6, r14
- rsb r14, r14, #0
- smlal r5, r8, r7, r12
- smull r5, r9, r6, r12
- smlal r5, r9, r7, r14
-
- mov r8, r8, asl #1
- mov r9, r9, asl #1
- add r2, r2, r3, asl #2
-
- ldmia r2, {r12, r14}
- smull r5, r6, r12, r11
- rsb r11, r11, #0
- smlal r5, r6, r14, r10
- smull r5, r7, r12, r10
- smlal r5, r7, r14, r11
-
- mov r6, r6, asl #1
- mov r7, r7, asl #1
- stmdb r1!, {r6, r7, r8, r9}
- add r2, r2, r3, asl #2
-
- cmp r2, r4
- blo 1b
-
- ldr r4, [sp, #-4]
-1:
- ldmdb r0, {r6, r7, r8, r9}
- ldmdb r1, {r10, r11, r12, r14}
-
- add r6, r6, r10
- sub r10, r6, r10, asl #1
- add r7, r7, r11
- sub r11, r7, r11, asl #1
- add r8, r8, r12
- sub r12, r8, r12, asl #1
- add r9, r9, r14
- sub r14, r9, r14, asl #1
-
- stmdb r0!, {r6, r7, r8, r9}
-
- ldmia r2, {r6, r7}
- smull r5, r9, r6, r14
- rsb r14, r14, #0
- smlal r5, r9, r7, r12
- smull r5, r8, r6, r12
- smlal r5, r8, r7, r14
-
- mov r8, r8, asl #1
- mov r9, r9, asl #1
-
- sub r2, r2, r3, asl #2
-
- ldmia r2, {r12, r14}
- smull r5, r7, r12, r11
- rsb r11, r11, #0
- smlal r5, r7, r14, r10
- smull r5, r6, r12, r10
- smlal r5, r6, r14, r11
-
- mov r6, r6, asl #1
- mov r7, r7, asl #1
- stmdb r1!, {r6, r7, r8, r9}
- sub r2, r2, r3, asl #2
-
- cmp r2, r4
- bhi 1b
-
- ldr r4, [sp, #36]
-1:
- ldmdb r0, {r6, r7, r8, r9}
- ldmdb r1, {r10, r11, r12, r14}
-
- add r6, r6, r10
- rsb r10, r6, r10, asl #1
- add r7, r7, r11
- rsb r11, r7, r11, asl #1
- add r8, r8, r12
- rsb r12, r8, r12, asl #1
- add r9, r9, r14
- rsb r14, r9, r14, asl #1
-
- stmdb r0!, {r6, r7, r8, r9}
-
- ldmia r2, {r6, r7}
- smull r5, r8, r6, r12
- rsb r12, r12, #0
- smlal r5, r8, r7, r14
- smull r5, r9, r6, r14
- smlal r5, r9, r7, r12
-
- mov r8, r8, asl #1
- mov r9, r9, asl #1
-
- add r2, r2, r3, asl #2
-
- ldmia r2, {r12, r14}
- smull r5, r6, r12, r10
- rsb r10, r10, #0
- smlal r5, r6, r14, r11
- smull r5, r7, r12, r11
- smlal r5, r7, r14, r10
-
- mov r6, r6, asl #1
- mov r7, r7, asl #1
- stmdb r1!, {r6, r7, r8, r9}
- add r2, r2, r3, asl #2
-
- cmp r2, r4
- blo 1b
-
- ldr r4, [sp, #-4]
-1:
- ldmdb r0, {r6, r7, r8, r9}
- ldmdb r1, {r10, r11, r12, r14}
-
- add r6, r6, r10
- sub r10, r6, r10, asl #1
- add r7, r7, r11
- rsb r11, r7, r11, asl #1
- add r8, r8, r12
- sub r12, r8, r12, asl #1
- add r9, r9, r14
- rsb r14, r9, r14, asl #1
-
- stmdb r0!, {r6, r7, r8, r9}
-
- ldmia r2, {r6, r7}
- smull r5, r9, r6, r12
- smlal r5, r9, r7, r14
- rsb r12, r12, #0
- smull r5, r8, r6, r14
- smlal r5, r8, r7, r12
-
- mov r8, r8, asl #1
- mov r9, r9, asl #1
- sub r2, r2, r3, asl #2
-
- ldmia r2, {r12, r14}
- smull r5, r7, r12, r10
- rsb r10, r10, #0
- smlal r5, r7, r14, r11
- smull r5, r6, r12, r11
- smlal r5, r6, r14, r10
-
- mov r6, r6, asl #1
- mov r7, r7, asl #1
- stmdb r1!, {r6, r7, r8, r9}
- sub r2, r2, r3, asl #2
-
- cmp r2, r4
- bhi 1b
-
- ldmpc regs=r4-r11
-
diff --git a/apps/codecs/libalac/alac.c b/apps/codecs/libalac/alac.c
index 7438e9436b..fd24656504 100644
--- a/apps/codecs/libalac/alac.c
+++ b/apps/codecs/libalac/alac.c
@@ -1139,9 +1139,10 @@ int alac_decode_frame(alac_file *alac,
return outputsamples;
}
+/* rockbox: not used
void create_alac(int samplesize, int numchannels, alac_file* alac)
{
alac->samplesize = samplesize;
alac->numchannels = numchannels;
alac->bytespersample = (samplesize / 8) * numchannels;
-}
+} */
diff --git a/apps/codecs/libalac/decomp.h b/apps/codecs/libalac/decomp.h
index d7abd4db34..21dabd86b0 100644
--- a/apps/codecs/libalac/decomp.h
+++ b/apps/codecs/libalac/decomp.h
@@ -17,9 +17,12 @@ typedef struct
unsigned char *input_buffer;
int input_buffer_bitaccumulator; /* used so we can do arbitary
bit reads */
+
+ /* rockbox: not used
int samplesize;
int numchannels;
- int bytespersample;
+ int bytespersample; */
+
int bytes_consumed;
/* stuff from setinfo */
@@ -37,8 +40,10 @@ typedef struct
/* end setinfo stuff */
} alac_file;
+/* rockbox: not used
void create_alac(int samplesize, int numchannels, alac_file* alac)
- ICODE_ATTR_ALAC;
+ ICODE_ATTR_ALAC; */
+
int alac_decode_frame(alac_file *alac,
unsigned char *inbuffer,
int32_t outputbuffer[ALAC_MAX_CHANNELS][ALAC_BLOCKSIZE],
diff --git a/apps/codecs/libatrac/Makefile.test b/apps/codecs/libatrac/Makefile.test
deleted file mode 100644
index 5cc3d9d7d5..0000000000
--- a/apps/codecs/libatrac/Makefile.test
+++ /dev/null
@@ -1,11 +0,0 @@
-CFLAGS = -Wall -O3 -I../lib -DTEST -D"DEBUGF=printf" -D"ROCKBOX_LITTLE_ENDIAN=1" -D"ICONST_ATTR=" -D"ICODE_ATTR=" -D"IBSS_ATTR="
-OBJS = atrac3.o ../lib/ffmpeg_bitstream.o ../librm/rm.o fixp_math.o ../lib/mdct2.o ../lib/mdct_lookup.o main.o
-
-atractest: $(OBJS)
- gcc -o atractest $(OBJS)
-
-.c.o :
- $(CC) $(CFLAGS) -c -o $@ $<
-
-clean:
- rm -f atractest $(OBJS) *~ output.wav
diff --git a/apps/codecs/libatrac/main.c b/apps/codecs/libatrac/main.c
deleted file mode 100644
index ca3c39a68e..0000000000
--- a/apps/codecs/libatrac/main.c
+++ /dev/null
@@ -1,168 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-
-#include "atrac3.h"
-#include "../librm/rm.h"
-
-ATRAC3Context q IBSS_ATTR;
-
-static unsigned char wav_header[44]={
- 'R','I','F','F',// 0 - ChunkID
- 0,0,0,0, // 4 - ChunkSize (filesize-8)
- 'W','A','V','E',// 8 - Format
- 'f','m','t',' ',// 12 - SubChunkID
- 16,0,0,0, // 16 - SubChunk1ID // 16 for PCM
- 1,0, // 20 - AudioFormat (1=Uncompressed)
- 2,0, // 22 - NumChannels
- 0,0,0,0, // 24 - SampleRate in Hz
- 0,0,0,0, // 28 - Byte Rate (SampleRate*NumChannels*(BitsPerSample/8)
- 4,0, // 32 - BlockAlign (== NumChannels * BitsPerSample/8)
- 16,0, // 34 - BitsPerSample
- 'd','a','t','a',// 36 - Subchunk2ID
- 0,0,0,0 // 40 - Subchunk2Size
-};
-
-int open_wav(char* filename) {
- int fd,res;
-
- fd=open(filename,O_CREAT|O_WRONLY|O_TRUNC,S_IRUSR|S_IWUSR);
- if (fd >= 0) {
- res = write(fd,wav_header,sizeof(wav_header));
- }
-
- return(fd);
-}
-
-void close_wav(int fd, RMContext *rmctx, ATRAC3Context *q) {
- int x,res;
- int filesize;
- int bytes_per_sample = 2;
- int samples_per_frame = q->samples_per_frame;
- int nb_channels = rmctx->nb_channels;
- int sample_rate = rmctx->sample_rate;
- int nb_frames = rmctx->audio_framesize/rmctx->block_align * rmctx->nb_packets - 2; // first 2 frames have no valid audio; skipped in output
-
- filesize= samples_per_frame*bytes_per_sample*nb_frames +44;
- printf("Filesize = %d\n",filesize);
-
- // ChunkSize
- x=filesize-8;
- wav_header[4]=(x&0xff);
- wav_header[5]=(x&0xff00)>>8;
- wav_header[6]=(x&0xff0000)>>16;
- wav_header[7]=(x&0xff000000)>>24;
-
- // Number of channels
- wav_header[22]=nb_channels;
-
- // Samplerate
- wav_header[24]=sample_rate&0xff;
- wav_header[25]=(sample_rate&0xff00)>>8;
- wav_header[26]=(sample_rate&0xff0000)>>16;
- wav_header[27]=(sample_rate&0xff000000)>>24;
-
- // ByteRate
- x=sample_rate*bytes_per_sample*nb_channels;
- wav_header[28]=(x&0xff);
- wav_header[29]=(x&0xff00)>>8;
- wav_header[30]=(x&0xff0000)>>16;
- wav_header[31]=(x&0xff000000)>>24;
-
- // BlockAlign
- wav_header[32]=rmctx->block_align;//2*rmctx->nb_channels;
-
- // Bits per sample
- wav_header[34]=16;
-
- // Subchunk2Size
- x=filesize-44;
- wav_header[40]=(x&0xff);
- wav_header[41]=(x&0xff00)>>8;
- wav_header[42]=(x&0xff0000)>>16;
- wav_header[43]=(x&0xff000000)>>24;
-
- lseek(fd,0,SEEK_SET);
- res = write(fd,wav_header,sizeof(wav_header));
- close(fd);
-}
-
-int main(int argc, char *argv[])
-{
- int fd, fd_dec;
- int res, i, datasize = 0;
-
-#ifdef DUMP_RAW_FRAMES
- char filename[15];
- int fd_out;
-#endif
- int16_t outbuf[2048];
- uint16_t fs,sps,h;
- uint32_t packet_count;
- RMContext rmctx;
- RMPacket pkt;
-
- memset(&q,0,sizeof(ATRAC3Context));
- memset(&rmctx,0,sizeof(RMContext));
- memset(&pkt,0,sizeof(RMPacket));
-
- if (argc != 2) {
- DEBUGF("Incorrect number of arguments\n");
- return -1;
- }
-
- fd = open(argv[1],O_RDONLY);
- if (fd < 0) {
- DEBUGF("Error opening file %s\n", argv[1]);
- return -1;
- }
-
- /* copy the input rm file to a memory buffer */
- uint8_t * filebuf = (uint8_t *)calloc((int)filesize(fd),sizeof(uint8_t));
- res = read(fd,filebuf,filesize(fd));
-
- fd_dec = open_wav("output.wav");
- if (fd_dec < 0) {
- DEBUGF("Error creating output file\n");
- return -1;
- }
- res = real_parse_header(fd, &rmctx);
- packet_count = rmctx.nb_packets;
- rmctx.audio_framesize = rmctx.block_align;
- rmctx.block_align = rmctx.sub_packet_size;
- fs = rmctx.audio_framesize;
- sps= rmctx.block_align;
- h = rmctx.sub_packet_h;
- atrac3_decode_init(&q,&rmctx);
-
- /* change the buffer pointer to point at the first audio frame */
- advance_buffer(&filebuf, rmctx.data_offset + DATA_HEADER_SIZE);
- while(packet_count)
- {
- rm_get_packet(&filebuf, &rmctx, &pkt);
- for(i = 0; i < rmctx.audio_pkt_cnt*(fs/sps) ; i++)
- {
- /* output raw audio frames that are sent to the decoder into separate files */
-#ifdef DUMP_RAW_FRAMES
- snprintf(filename,sizeof(filename),"dump%d.raw",++x);
- fd_out = open(filename,O_WRONLY|O_CREAT|O_APPEND, 0666);
- write(fd_out,pkt.frames[i],sps);
- close(fd_out);
-#endif
- if(pkt.length > 0)
- res = atrac3_decode_frame(&rmctx,&q, outbuf, &datasize, pkt.frames[i] , rmctx.block_align);
- rmctx.frame_number++;
- res = write(fd_dec,outbuf,datasize);
- }
- packet_count -= rmctx.audio_pkt_cnt;
- rmctx.audio_pkt_cnt = 0;
- }
- close_wav(fd_dec, &rmctx, &q);
- close(fd);
-
- return 0;
-}
diff --git a/apps/codecs/libcook/Makefile.test b/apps/codecs/libcook/Makefile.test
deleted file mode 100644
index 32e3549452..0000000000
--- a/apps/codecs/libcook/Makefile.test
+++ /dev/null
@@ -1,10 +0,0 @@
-CFLAGS = -Wall -O3 -I../lib -DTEST -D"DEBUGF=printf" -D"ROCKBOX_LITTLE_ENDIAN=1" -D"ICONST_ATTR=" -D"ICODE_ATTR="
-OBJS = main.o ../lib/ffmpeg_bitstream.o cook.o ../librm/rm.o ../lib/mdct2.o ../lib/mdct_lookup.o
-cooktest: $(OBJS)
- gcc -o cooktest $(OBJS)
-
-.c.o :
- $(CC) $(CFLAGS) -c -o $@ $<
-
-clean:
- rm -f cooktest $(OBJS) *~ output.wav
diff --git a/apps/codecs/libcook/main.c b/apps/codecs/libcook/main.c
deleted file mode 100644
index 928cad298e..0000000000
--- a/apps/codecs/libcook/main.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2009 Mohamed Tarek
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include <stdint.h>
-#include <inttypes.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-
-#include "../librm/rm.h"
-#include "cook.h"
-
-//#define DUMP_RAW_FRAMES
-
-#define DATA_HEADER_SIZE 18 /* size of DATA chunk header in a rm file */
-static unsigned char wav_header[44]={
- 'R','I','F','F',// 0 - ChunkID
- 0,0,0,0, // 4 - ChunkSize (filesize-8)
- 'W','A','V','E',// 8 - Format
- 'f','m','t',' ',// 12 - SubChunkID
- 16,0,0,0, // 16 - SubChunk1ID // 16 for PCM
- 1,0, // 20 - AudioFormat (1=Uncompressed)
- 2,0, // 22 - NumChannels
- 0,0,0,0, // 24 - SampleRate in Hz
- 0,0,0,0, // 28 - Byte Rate (SampleRate*NumChannels*(BitsPerSample/8)
- 4,0, // 32 - BlockAlign (== NumChannels * BitsPerSample/8)
- 16,0, // 34 - BitsPerSample
- 'd','a','t','a',// 36 - Subchunk2ID
- 0,0,0,0 // 40 - Subchunk2Size
-};
-
-int open_wav(char* filename) {
- int fd,res;
-
- fd=open(filename,O_CREAT|O_WRONLY|O_TRUNC,S_IRUSR|S_IWUSR);
- if (fd >= 0) {
- res = write(fd,wav_header,sizeof(wav_header));
- }
-
- return(fd);
-}
-
-void close_wav(int fd, RMContext *rmctx, COOKContext *q) {
- int x,res;
- int filesize;
- int bytes_per_sample = 2;
- int samples_per_frame = q->samples_per_frame;
- int nb_channels = rmctx->nb_channels;
- int sample_rate = rmctx->sample_rate;
- int nb_frames = rmctx->audio_framesize/rmctx->block_align * rmctx->nb_packets - 2; // first 2 frames have no valid audio; skipped in output
-
- filesize= samples_per_frame*bytes_per_sample*nb_frames +44;
- printf("Filesize = %d\n",filesize);
-
- // ChunkSize
- x=filesize-8;
- wav_header[4]=(x&0xff);
- wav_header[5]=(x&0xff00)>>8;
- wav_header[6]=(x&0xff0000)>>16;
- wav_header[7]=(x&0xff000000)>>24;
-
- // Number of channels
- wav_header[22]=nb_channels;
-
- // Samplerate
- wav_header[24]=sample_rate&0xff;
- wav_header[25]=(sample_rate&0xff00)>>8;
- wav_header[26]=(sample_rate&0xff0000)>>16;
- wav_header[27]=(sample_rate&0xff000000)>>24;
-
- // ByteRate
- x=sample_rate*bytes_per_sample*nb_channels;
- wav_header[28]=(x&0xff);
- wav_header[29]=(x&0xff00)>>8;
- wav_header[30]=(x&0xff0000)>>16;
- wav_header[31]=(x&0xff000000)>>24;
-
- // BlockAlign
- wav_header[32]=rmctx->block_align;//2*rmctx->nb_channels;
-
- // Bits per sample
- wav_header[34]=16;
-
- // Subchunk2Size
- x=filesize-44;
- wav_header[40]=(x&0xff);
- wav_header[41]=(x&0xff00)>>8;
- wav_header[42]=(x&0xff0000)>>16;
- wav_header[43]=(x&0xff000000)>>24;
-
- lseek(fd,0,SEEK_SET);
- res = write(fd,wav_header,sizeof(wav_header));
- close(fd);
-}
-
-int main(int argc, char *argv[])
-{
- int fd, fd_dec;
- int res, datasize,i;
- int nb_frames = 0;
-#ifdef DUMP_RAW_FRAMES
- char filename[15];
- int fd_out;
-#endif
- int32_t outbuf[2048];
- uint16_t fs,sps,h;
- uint32_t packet_count;
- COOKContext q;
- RMContext rmctx;
- RMPacket pkt;
-
- memset(&q,0,sizeof(COOKContext));
- memset(&rmctx,0,sizeof(RMContext));
- memset(&pkt,0,sizeof(RMPacket));
-
- if (argc != 2) {
- DEBUGF("Incorrect number of arguments\n");
- return -1;
- }
-
- fd = open(argv[1],O_RDONLY);
- if (fd < 0) {
- DEBUGF("Error opening file %s\n", argv[1]);
- return -1;
- }
-
- /* copy the input rm file to a memory buffer */
- uint8_t * filebuf = (uint8_t *)calloc((int)filesize(fd),sizeof(uint8_t));
- res = read(fd,filebuf,filesize(fd));
-
- fd_dec = open_wav("output.wav");
- if (fd_dec < 0) {
- DEBUGF("Error creating output file\n");
- return -1;
- }
- res = real_parse_header(fd, &rmctx);
- packet_count = rmctx.nb_packets;
- rmctx.audio_framesize = rmctx.block_align;
- rmctx.block_align = rmctx.sub_packet_size;
- fs = rmctx.audio_framesize;
- sps= rmctx.block_align;
- h = rmctx.sub_packet_h;
- cook_decode_init(&rmctx,&q);
-
- /* change the buffer pointer to point at the first audio frame */
- advance_buffer(&filebuf, rmctx.data_offset+ DATA_HEADER_SIZE);
- while(packet_count)
- {
- rm_get_packet(&filebuf, &rmctx, &pkt);
- //DEBUGF("total frames = %d packet count = %d output counter = %d \n",rmctx.audio_pkt_cnt*(fs/sps), packet_count,rmctx.audio_pkt_cnt);
- for(i = 0; i < rmctx.audio_pkt_cnt*(fs/sps) ; i++)
- {
- /* output raw audio frames that are sent to the decoder into separate files */
-#ifdef DUMP_RAW_FRAMES
- snprintf(filename,sizeof(filename),"dump%d.raw",++x);
- fd_out = open(filename,O_WRONLY|O_CREAT|O_APPEND, 0666);
- write(fd_out,pkt.frames[i],sps);
- close(fd_out);
-#endif
- nb_frames = cook_decode_frame(&rmctx,&q, outbuf, &datasize, pkt.frames[i] , rmctx.block_align);
- rmctx.frame_number++;
- res = write(fd_dec,outbuf,datasize);
- }
- packet_count -= rmctx.audio_pkt_cnt;
- rmctx.audio_pkt_cnt = 0;
- }
- close_wav(fd_dec, &rmctx, &q);
- close(fd);
-
-
- return 0;
-}
diff --git a/apps/codecs/libfaad/decoder.c b/apps/codecs/libfaad/decoder.c
index caedda7f55..d68d093b0b 100644
--- a/apps/codecs/libfaad/decoder.c
+++ b/apps/codecs/libfaad/decoder.c
@@ -88,6 +88,8 @@ char* NEAACDECAPI NeAACDecGetErrorMessage(uint8_t errcode)
return err_msg[errcode];
}
+/* rockbox: not used */
+#if 0
uint32_t NEAACDECAPI NeAACDecGetCapabilities(void)
{
uint32_t cap = 0;
@@ -113,6 +115,7 @@ uint32_t NEAACDECAPI NeAACDecGetCapabilities(void)
return cap;
}
+#endif
NeAACDecHandle NEAACDECAPI NeAACDecOpen(void)
{
diff --git a/apps/codecs/libfaad/mp4.c b/apps/codecs/libfaad/mp4.c
index fb0999fb01..94e1a1daaa 100644
--- a/apps/codecs/libfaad/mp4.c
+++ b/apps/codecs/libfaad/mp4.c
@@ -119,12 +119,13 @@ static uint8_t ObjectTypesTable[32] = {
};
/* Table 1.6.1 */
+/* rockbox: not used
int8_t NEAACDECAPI NeAACDecAudioSpecificConfig(uint8_t *pBuffer,
uint32_t buffer_size,
mp4AudioSpecificConfig *mp4ASC)
{
return AudioSpecificConfig2(pBuffer, buffer_size, mp4ASC, NULL);
-}
+}*/
int8_t AudioSpecificConfig2(uint8_t *pBuffer,
uint32_t buffer_size,
diff --git a/apps/codecs/libfaad/mp4.h b/apps/codecs/libfaad/mp4.h
index f647b67067..afcf094796 100644
--- a/apps/codecs/libfaad/mp4.h
+++ b/apps/codecs/libfaad/mp4.h
@@ -34,9 +34,11 @@ extern "C" {
#include "decoder.h"
+/* rockbox: not used
int8_t NEAACDECAPI NeAACDecAudioSpecificConfig(uint8_t *pBuffer,
uint32_t buffer_size,
mp4AudioSpecificConfig *mp4ASC);
+*/
int8_t AudioSpecificConfig2(uint8_t *pBuffer,
uint32_t buffer_size,
diff --git a/apps/codecs/libfaad/tns.c b/apps/codecs/libfaad/tns.c
index a759174196..a2bec86519 100644
--- a/apps/codecs/libfaad/tns.c
+++ b/apps/codecs/libfaad/tns.c
@@ -37,8 +37,10 @@ static void tns_decode_coef(uint8_t order, uint8_t coef_res_bits, uint8_t coef_c
uint8_t *coef, real_t *a);
static void tns_ar_filter(real_t *spectrum, uint16_t size, int8_t inc, real_t *lpc,
int8_t order);
+#ifdef LTP_DEC
static void tns_ma_filter(real_t *spectrum, uint16_t size, int8_t inc, real_t *lpc,
int8_t order);
+#endif
#ifdef _MSC_VER
@@ -129,6 +131,7 @@ void tns_decode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index,
}
}
+#ifdef LTP_DEC
/* TNS encoding for one channel and frame */
void tns_encode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index,
uint8_t object_type, real_t *spec, uint16_t frame_len)
@@ -182,6 +185,7 @@ void tns_encode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index,
}
}
}
+#endif
/* Decoder transmitted coefficients for one TNS filter */
static void tns_decode_coef(uint8_t order, uint8_t coef_res_bits, uint8_t coef_compress,
@@ -268,6 +272,7 @@ static void tns_ar_filter(real_t *spectrum, uint16_t size, int8_t inc, real_t *l
}
}
+#ifdef LTP_DEC
static void tns_ma_filter(real_t *spectrum, uint16_t size, int8_t inc, real_t *lpc,
int8_t order)
{
@@ -304,3 +309,4 @@ static void tns_ma_filter(real_t *spectrum, uint16_t size, int8_t inc, real_t *l
spectrum += inc;
}
}
+#endif
diff --git a/apps/codecs/libffmpegFLAC/Makefile.test b/apps/codecs/libffmpegFLAC/Makefile.test
deleted file mode 100644
index 0bd9e521e4..0000000000
--- a/apps/codecs/libffmpegFLAC/Makefile.test
+++ /dev/null
@@ -1,21 +0,0 @@
-# Simple Makefile for standalone testing of decoder
-
-OBJS=main.o decoder.o bitstream.o tables.o
-CFLAGS=-O2 -Wall -DBUILD_STANDALONE
-CC=gcc
-
-# Uncomment the next line to build on a big-endian target:
-
-#CFLAGS += -DBUILD_BIGENDIAN
-
-all: test
-
-main.o: main.c decoder.h
-decoder.o: decoder.c bitstream.h golomb.h decoder.h
-bitstream.o: bitstream.c
-
-test: $(OBJS)
- gcc -o test $(OBJS)
-
-clean:
- rm -f test $(OBJS) *~
diff --git a/apps/codecs/libffmpegFLAC/main.c b/apps/codecs/libffmpegFLAC/main.c
deleted file mode 100644
index e6d4b2f4fd..0000000000
--- a/apps/codecs/libffmpegFLAC/main.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2005 Dave Chapman
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-/* A test program for the Rockbox version of the ffmpeg FLAC decoder.
-
- Compile using Makefile.test - run it as "./test file.flac" to decode the
- FLAC file to the file "test.wav" in the current directory
-
- This test program should support 16-bit and 24-bit mono and stereo files.
-
- The resulting "test.wav" should have the same md5sum as a WAV file created
- by the official FLAC decoder (it produces the same 44-byte canonical WAV
- header.
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <inttypes.h>
-#include <stdbool.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "decoder.h"
-
-static unsigned char wav_header[44]={
- 'R','I','F','F',// 0 - ChunkID
- 0,0,0,0, // 4 - ChunkSize (filesize-8)
- 'W','A','V','E',// 8 - Format
- 'f','m','t',' ',// 12 - SubChunkID
- 16,0,0,0, // 16 - SubChunk1ID // 16 for PCM
- 1,0, // 20 - AudioFormat (1=Uncompressed)
- 2,0, // 22 - NumChannels
- 0,0,0,0, // 24 - SampleRate in Hz
- 0,0,0,0, // 28 - Byte Rate (SampleRate*NumChannels*(BitsPerSample/8)
- 4,0, // 32 - BlockAlign (== NumChannels * BitsPerSample/8)
- 16,0, // 34 - BitsPerSample
- 'd','a','t','a',// 36 - Subchunk2ID
- 0,0,0,0 // 40 - Subchunk2Size
-};
-
-int open_wav(char* filename) {
- int fd;
-
- fd=open(filename,O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR);
- if (fd >= 0) {
- if (write(fd,wav_header,sizeof(wav_header)) < sizeof(wav_header)) {
- fprintf(stderr,"[ERR} Failed to write wav header\n");
- exit(1);
- }
- }
- return(fd);
-}
-
-void close_wav(int fd, FLACContext* fc) {
- int x;
- int filesize;
- int bytespersample;
-
- bytespersample=fc->bps/8;
-
- filesize=fc->totalsamples*bytespersample*fc->channels+44;
-
- // ChunkSize
- x=filesize-8;
- wav_header[4]=(x&0xff);
- wav_header[5]=(x&0xff00)>>8;
- wav_header[6]=(x&0xff0000)>>16;
- wav_header[7]=(x&0xff000000)>>24;
-
- // Number of channels
- wav_header[22]=fc->channels;
-
- // Samplerate
- wav_header[24]=fc->samplerate&0xff;
- wav_header[25]=(fc->samplerate&0xff00)>>8;
- wav_header[26]=(fc->samplerate&0xff0000)>>16;
- wav_header[27]=(fc->samplerate&0xff000000)>>24;
-
- // ByteRate
- x=fc->samplerate*(fc->bps/8)*fc->channels;
- wav_header[28]=(x&0xff);
- wav_header[29]=(x&0xff00)>>8;
- wav_header[30]=(x&0xff0000)>>16;
- wav_header[31]=(x&0xff000000)>>24;
-
- // BlockAlign
- wav_header[32]=(fc->bps/8)*fc->channels;
-
- // Bits per sample
- wav_header[34]=fc->bps;
-
- // Subchunk2Size
- x=filesize-44;
- wav_header[40]=(x&0xff);
- wav_header[41]=(x&0xff00)>>8;
- wav_header[42]=(x&0xff0000)>>16;
- wav_header[43]=(x&0xff000000)>>24;
-
- lseek(fd,0,SEEK_SET);
- if (write(fd,wav_header,sizeof(wav_header)) < sizeof(wav_header)) {
- fprintf(stderr,"[ERR} Failed to write wav header\n");
- exit(1);
- }
- close(fd);
-}
-
-static void dump_headers(FLACContext *s)
-{
- fprintf(stderr," Blocksize: %d .. %d\n", s->min_blocksize,
- s->max_blocksize);
- fprintf(stderr," Framesize: %d .. %d\n", s->min_framesize,
- s->max_framesize);
- fprintf(stderr," Samplerate: %d\n", s->samplerate);
- fprintf(stderr," Channels: %d\n", s->channels);
- fprintf(stderr," Bits per sample: %d\n", s->bps);
- fprintf(stderr," Metadata length: %d\n", s->metadatalength);
- fprintf(stderr," Total Samples: %lu\n",s->totalsamples);
- fprintf(stderr," Duration: %d ms\n",s->length);
- fprintf(stderr," Bitrate: %d kbps\n",s->bitrate);
-}
-
-static bool flac_init(int fd, FLACContext* fc)
-{
- unsigned char buf[255];
- struct stat statbuf;
- bool found_streaminfo=false;
- int endofmetadata=0;
- int blocklength;
- uint32_t* p;
- uint32_t seekpoint_lo,seekpoint_hi;
- uint32_t offset_lo,offset_hi;
- int n;
-
- if (lseek(fd, 0, SEEK_SET) < 0)
- {
- return false;
- }
-
- if (read(fd, buf, 4) < 4)
- {
- return false;
- }
-
- if (memcmp(buf,"fLaC",4) != 0)
- {
- return false;
- }
- fc->metadatalength = 4;
-
- while (!endofmetadata) {
- if (read(fd, buf, 4) < 4)
- {
- return false;
- }
-
- endofmetadata=(buf[0]&0x80);
- blocklength = (buf[1] << 16) | (buf[2] << 8) | buf[3];
- fc->metadatalength+=blocklength+4;
-
- if ((buf[0] & 0x7f) == 0) /* 0 is the STREAMINFO block */
- {
- /* FIXME: Don't trust the value of blocklength */
- if (read(fd, buf, blocklength) < 0)
- {
- return false;
- }
-
- fstat(fd,&statbuf);
- fc->filesize = statbuf.st_size;
- fc->min_blocksize = (buf[0] << 8) | buf[1];
- fc->max_blocksize = (buf[2] << 8) | buf[3];
- fc->min_framesize = (buf[4] << 16) | (buf[5] << 8) | buf[6];
- fc->max_framesize = (buf[7] << 16) | (buf[8] << 8) | buf[9];
- fc->samplerate = (buf[10] << 12) | (buf[11] << 4)
- | ((buf[12] & 0xf0) >> 4);
- fc->channels = ((buf[12]&0x0e)>>1) + 1;
- fc->bps = (((buf[12]&0x01) << 4) | ((buf[13]&0xf0)>>4) ) + 1;
-
- /* totalsamples is a 36-bit field, but we assume <= 32 bits are
- used */
- fc->totalsamples = (buf[14] << 24) | (buf[15] << 16)
- | (buf[16] << 8) | buf[17];
-
- /* Calculate track length (in ms) and estimate the bitrate
- (in kbit/s) */
- fc->length = (fc->totalsamples / fc->samplerate) * 1000;
-
- found_streaminfo=true;
- } else if ((buf[0] & 0x7f) == 3) { /* 3 is the SEEKTABLE block */
- fprintf(stderr,"Seektable length = %d bytes\n",blocklength);
- while (blocklength >= 18) {
- n=read(fd,buf,18);
- if (n < 18) return false;
- blocklength-=n;
-
- p=(uint32_t*)buf;
- seekpoint_hi=betoh32(*(p++));
- seekpoint_lo=betoh32(*(p++));
- offset_hi=betoh32(*(p++));
- offset_lo=betoh32(*(p++));
-
- if ((seekpoint_hi != 0xffffffff) && (seekpoint_lo != 0xffffffff)) {
- fprintf(stderr,"Seekpoint: %u, Offset=%u\n",seekpoint_lo,offset_lo);
- }
- }
- lseek(fd, blocklength, SEEK_CUR);
- } else {
- /* Skip to next metadata block */
- if (lseek(fd, blocklength, SEEK_CUR) < 0)
- {
- return false;
- }
- }
- }
-
- if (found_streaminfo) {
- fc->bitrate = ((fc->filesize-fc->metadatalength) * 8) / fc->length;
- return true;
- } else {
- return false;
- }
-}
-
-/* Dummy function needed to pass to flac_decode_frame() */
-void yield() {
-}
-
-int main(int argc, char* argv[]) {
- FLACContext fc;
- int fd,fdout;
- int n;
- int i;
- int bytesleft;
- int consumed;
- unsigned char buf[MAX_FRAMESIZE]; /* The input buffer */
- /* The output buffers containing the decoded samples (channels 0 and 1) */
- int32_t decoded0[MAX_BLOCKSIZE];
- int32_t decoded1[MAX_BLOCKSIZE];
-
- /* For testing */
- int8_t wavbuf[MAX_CHANNELS*MAX_BLOCKSIZE*3];
- int8_t* p;
- int scale;
-
- fd=open(argv[1],O_RDONLY);
-
- if (fd < 0) {
- fprintf(stderr,"Can not parse %s\n",argv[1]);
- return(1);
- }
-
- /* Read the metadata and position the file pointer at the start of the
- first audio frame */
- flac_init(fd,&fc);
-
- dump_headers(&fc);
-
- fdout=open_wav("test.wav");
- bytesleft=read(fd,buf,sizeof(buf));
- while (bytesleft) {
- if(flac_decode_frame(&fc,decoded0,decoded1,buf,bytesleft,yield) < 0) {
- fprintf(stderr,"DECODE ERROR, ABORTING\n");
- break;
- }
- consumed=fc.gb.index/8;
-
- scale=FLAC_OUTPUT_DEPTH-fc.bps;
- p=wavbuf;
- for (i=0;i<fc.blocksize;i++) {
- /* Left sample */
- decoded0[i]=decoded0[i]>>scale;
- *(p++)=decoded0[i]&0xff;
- *(p++)=(decoded0[i]&0xff00)>>8;
- if (fc.bps==24) *(p++)=(decoded0[i]&0xff0000)>>16;
-
- if (fc.channels==2) {
- /* Right sample */
- decoded1[i]=decoded1[i]>>scale;
- *(p++)=decoded1[i]&0xff;
- *(p++)=(decoded1[i]&0xff00)>>8;
- if (fc.bps==24) *(p++)=(decoded1[i]&0xff0000)>>16;
- }
- }
- n = fc.blocksize*fc.channels*(fc.bps/8);
- if (write(fdout,wavbuf,n) < n) {
- fprintf(stderr,"[ERR] Write failed\n");
- exit(1);
- }
-
- memmove(buf,&buf[consumed],bytesleft-consumed);
- bytesleft-=consumed;
-
- n=read(fd,&buf[bytesleft],sizeof(buf)-bytesleft);
- if (n > 0) {
- bytesleft+=n;
- }
- }
- close_wav(fdout,&fc);
- close(fd);
- return(0);
-}
diff --git a/apps/codecs/libm4a/m4a.c b/apps/codecs/libm4a/m4a.c
index 84144ea76c..5fe778ac03 100644
--- a/apps/codecs/libm4a/m4a.c
+++ b/apps/codecs/libm4a/m4a.c
@@ -67,16 +67,6 @@ uint32_t stream_read_uint32(stream_t *stream)
return v;
}
-int16_t stream_read_int16(stream_t *stream)
-{
- int16_t v;
- stream_read(stream, 2, &v);
-#ifdef ROCKBOX_LITTLE_ENDIAN
- _Swap16(v);
-#endif
- return v;
-}
-
uint16_t stream_read_uint16(stream_t *stream)
{
uint16_t v;
@@ -87,13 +77,6 @@ uint16_t stream_read_uint16(stream_t *stream)
return v;
}
-int8_t stream_read_int8(stream_t *stream)
-{
- int8_t v;
- stream_read(stream, 1, &v);
- return v;
-}
-
uint8_t stream_read_uint8(stream_t *stream)
{
uint8_t v;
diff --git a/apps/codecs/libm4a/m4a.h b/apps/codecs/libm4a/m4a.h
index 4847e2db32..aa8e768045 100644
--- a/apps/codecs/libm4a/m4a.h
+++ b/apps/codecs/libm4a/m4a.h
@@ -117,10 +117,8 @@ int32_t stream_tell(stream_t *stream);
int32_t stream_read_int32(stream_t *stream);
uint32_t stream_read_uint32(stream_t *stream);
-int16_t stream_read_int16(stream_t *stream);
uint16_t stream_read_uint16(stream_t *stream);
-int8_t stream_read_int8(stream_t *stream);
uint8_t stream_read_uint8(stream_t *stream);
void stream_skip(stream_t *stream, size_t skip);
diff --git a/apps/codecs/libspeex/bits.c b/apps/codecs/libspeex/bits.c
index 9d6cad8886..cc63ce0d16 100644
--- a/apps/codecs/libspeex/bits.c
+++ b/apps/codecs/libspeex/bits.c
@@ -45,7 +45,7 @@
#define MAX_CHARS_PER_FRAME (2000/BYTES_PER_CHAR)
#endif
-#ifndef ROCKBOX_VOICE_CODEC
+#ifdef ROCKBOX_VOICE_ENCODER
void speex_bits_init(SpeexBits *bits)
{
bits->chars = (char*)speex_alloc(MAX_CHARS_PER_FRAME);
diff --git a/apps/codecs/libtremor/asm_arm.h b/apps/codecs/libtremor/asm_arm.h
index 9531f21657..99790ea4b3 100644
--- a/apps/codecs/libtremor/asm_arm.h
+++ b/apps/codecs/libtremor/asm_arm.h
@@ -216,26 +216,6 @@ static inline void vect_copy(ogg_int32_t *x, const ogg_int32_t *y, int n)
#endif
#endif
-/* not used anymore */
-/*
-#ifndef _V_CLIP_MATH
-#define _V_CLIP_MATH
-
-static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) {
- 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);
-}
-
-#endif
-*/
#ifndef _V_LSP_MATH_ASM
#define _V_LSP_MATH_ASM
diff --git a/apps/codecs/libtremor/asm_mcf5249.h b/apps/codecs/libtremor/asm_mcf5249.h
index 621beadde8..3266113771 100644
--- a/apps/codecs/libtremor/asm_mcf5249.h
+++ b/apps/codecs/libtremor/asm_mcf5249.h
@@ -250,16 +250,4 @@ void vect_mult_bw(ogg_int32_t *data, LOOKUP_T *window, int n)
#endif
#endif
-/* not used anymore */
-/*
-#ifndef _V_CLIP_MATH
-#define _V_CLIP_MATH
-
-static inline ogg_int32_t CLIP_TO_15(register ogg_int32_t x) {
- register ogg_int32_t hi=32767, lo=-32768;
- return (x>=hi ? hi : (x<=lo ? lo : x));
-}
-
-#endif
-*/
#endif
diff --git a/apps/codecs/libtremor/misc.h b/apps/codecs/libtremor/misc.h
index 6b67740b0d..39f67057ab 100644
--- a/apps/codecs/libtremor/misc.h
+++ b/apps/codecs/libtremor/misc.h
@@ -203,20 +203,6 @@ static inline void vect_copy(ogg_int32_t *x, const ogg_int32_t *y, int n)
#endif
#endif
-/* not used anymore */
-/*
-#ifndef _V_CLIP_MATH
-#define _V_CLIP_MATH
-
-static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) {
- int ret=x;
- ret-= ((x<=32767)-1)&(x-32767);
- ret-= ((x>=-32768)-1)&(x+32768);
- return(ret);
-}
-
-#endif
-*/
static inline ogg_int32_t VFLOAT_MULT(ogg_int32_t a,ogg_int32_t ap,
ogg_int32_t b,ogg_int32_t bp,
diff --git a/apps/codecs/libtta/ttadec.c b/apps/codecs/libtta/ttadec.c
index aaefe736b9..06ca431084 100644
--- a/apps/codecs/libtta/ttadec.c
+++ b/apps/codecs/libtta/ttadec.c
@@ -227,6 +227,7 @@ static int done_buffer_read(void) {
/************************* decoder functions ****************************/
+/* rockbox: not used
const char *get_error_str (int error) {
switch (error) {
case NO_ERROR: return "No errors found";
@@ -237,7 +238,7 @@ const char *get_error_str (int error) {
case MEMORY_ERROR: return "Insufficient memory available";
default: return "Unknown error code";
}
-}
+} */
int set_tta_info (tta_info *info)
{
diff --git a/apps/codecs/raac.c b/apps/codecs/raac.c
index 3f6dc01970..0ef7e715bc 100644
--- a/apps/codecs/raac.c
+++ b/apps/codecs/raac.c
@@ -24,7 +24,9 @@
#include "libfaad/common.h"
#include "libfaad/structs.h"
#include "libfaad/decoder.h"
+/* rockbox: not used
#include "libfaad/output.h"
+*/
CODEC_HEADER