diff options
Diffstat (limited to 'apps/codecs/libatrac/atrac3.c')
-rw-r--r-- | apps/codecs/libatrac/atrac3.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/apps/codecs/libatrac/atrac3.c b/apps/codecs/libatrac/atrac3.c index b2f675ef18..3c6ecc9197 100644 --- a/apps/codecs/libatrac/atrac3.c +++ b/apps/codecs/libatrac/atrac3.c | |||
@@ -55,9 +55,12 @@ | |||
55 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a)) | 55 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a)) |
56 | #define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) | 56 | #define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) |
57 | 57 | ||
58 | static int32_t qmf_window[48] IBSS_ATTR; | 58 | static VLC spectral_coeff_tab[7]; |
59 | static VLC spectral_coeff_tab[7]; | 59 | static int32_t qmf_window[48] IBSS_ATTR; |
60 | static channel_unit channel_units[2] IBSS_ATTR_LARGE_IRAM; | 60 | static int32_t atrac3_spectrum [2][1024] IBSS_ATTR __attribute__((aligned(16))); |
61 | static int32_t atrac3_IMDCT_buf[2][ 512] IBSS_ATTR __attribute__((aligned(16))); | ||
62 | static int32_t atrac3_prevFrame[2][1024] IBSS_ATTR; | ||
63 | static channel_unit channel_units[2] IBSS_ATTR_LARGE_IRAM; | ||
61 | 64 | ||
62 | 65 | ||
63 | /** | 66 | /** |
@@ -425,7 +428,7 @@ static void inverseQuantizeSpectrum(int *mantissas, int32_t *pOut, | |||
425 | * @return outSubbands subband counter, fix for broken specification/files | 428 | * @return outSubbands subband counter, fix for broken specification/files |
426 | */ | 429 | */ |
427 | 430 | ||
428 | int decodeSpectrum (GetBitContext *gb, int32_t *pOut) ICODE_ATTR; | 431 | int decodeSpectrum (GetBitContext *gb, int32_t *pOut) ICODE_ATTR_LARGE_IRAM; |
429 | int decodeSpectrum (GetBitContext *gb, int32_t *pOut) | 432 | int decodeSpectrum (GetBitContext *gb, int32_t *pOut) |
430 | { | 433 | { |
431 | int numSubbands, codingMode, cnt, first, last, subbWidth; | 434 | int numSubbands, codingMode, cnt, first, last, subbWidth; |
@@ -1228,7 +1231,14 @@ int atrac3_decode_init(ATRAC3Context *q, RMContext *rmctx) | |||
1228 | q->matrix_coeff_index_next[i] = 3; | 1231 | q->matrix_coeff_index_next[i] = 3; |
1229 | } | 1232 | } |
1230 | 1233 | ||
1234 | /* Link the iram'ed arrays to the decoder's data structure */ | ||
1231 | q->pUnits = channel_units; | 1235 | q->pUnits = channel_units; |
1236 | q->pUnits[0].spectrum = &atrac3_spectrum [0][0]; | ||
1237 | q->pUnits[1].spectrum = &atrac3_spectrum [1][0]; | ||
1238 | q->pUnits[0].IMDCT_buf = &atrac3_IMDCT_buf[0][0]; | ||
1239 | q->pUnits[1].IMDCT_buf = &atrac3_IMDCT_buf[1][0]; | ||
1240 | q->pUnits[0].prevFrame = &atrac3_prevFrame[0][0]; | ||
1241 | q->pUnits[1].prevFrame = &atrac3_prevFrame[1][0]; | ||
1232 | 1242 | ||
1233 | return 0; | 1243 | return 0; |
1234 | } | 1244 | } |