summaryrefslogtreecommitdiff
path: root/apps/codecs/libatrac/atrac3.c
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-16 21:47:13 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-16 21:47:13 +0000
commit7b054efa0be8dbc209c351610fd8152b4de89f99 (patch)
tree763bb2fe04dfadbadc0dff1e0777403cec2a2e70 /apps/codecs/libatrac/atrac3.c
parent22c9b6ef8e1e1f4354ff0fc445990512175a1649 (diff)
downloadrockbox-7b054efa0be8dbc209c351610fd8152b4de89f99.tar.gz
rockbox-7b054efa0be8dbc209c351610fd8152b4de89f99.zip
FS#12117: Use more IRAM for atrac3. Speeds up decoding from 1-2% (PP5022, PP5024, S5L870x) to 11% (MCF5250).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29892 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libatrac/atrac3.c')
-rw-r--r--apps/codecs/libatrac/atrac3.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/codecs/libatrac/atrac3.c b/apps/codecs/libatrac/atrac3.c
index be41df5aad..711537fa96 100644
--- a/apps/codecs/libatrac/atrac3.c
+++ b/apps/codecs/libatrac/atrac3.c
@@ -60,12 +60,15 @@
60 #define QMFWIN_TYPE int32_t 60 #define QMFWIN_TYPE int32_t
61#endif 61#endif
62 62
63static VLC spectral_coeff_tab[7]; 63static VLC spectral_coeff_tab[7] IBSS_ATTR_LARGE_IRAM;
64static QMFWIN_TYPE qmf_window[48] IBSS_ATTR MEM_ALIGN_ATTR; 64static QMFWIN_TYPE qmf_window[48] IBSS_ATTR MEM_ALIGN_ATTR;
65static int32_t atrac3_spectrum [2][1024] IBSS_ATTR MEM_ALIGN_ATTR; 65static int32_t atrac3_spectrum [2][1024] IBSS_ATTR MEM_ALIGN_ATTR;
66static int32_t atrac3_IMDCT_buf[2][ 512] IBSS_ATTR MEM_ALIGN_ATTR; 66static int32_t atrac3_IMDCT_buf[2][ 512] IBSS_ATTR MEM_ALIGN_ATTR;
67static int32_t atrac3_prevFrame[2][1024] IBSS_ATTR MEM_ALIGN_ATTR; 67static int32_t atrac3_prevFrame[2][1024] IBSS_ATTR MEM_ALIGN_ATTR;
68static channel_unit channel_units[2] IBSS_ATTR_LARGE_IRAM; 68static channel_unit channel_units[2] IBSS_ATTR_LARGE_IRAM;
69static VLC_TYPE atrac3_vlc_table[4096][2] IBSS_ATTR_LARGE_IRAM;
70static int vlcs_initialized = 0;
71
69 72
70 73
71/** 74/**
@@ -1153,13 +1156,11 @@ int atrac3_decode_frame(unsigned long block_align, ATRAC3Context *q,
1153 * Atrac3 initialization 1156 * Atrac3 initialization
1154 * 1157 *
1155 * @param rmctx pointer to the RMContext 1158 * @param rmctx pointer to the RMContext
1156 */ 1159 */
1157int atrac3_decode_init(ATRAC3Context *q, struct mp3entry *id3) 1160int atrac3_decode_init(ATRAC3Context *q, struct mp3entry *id3)
1158{ 1161{
1159 int i; 1162 int i;
1160 uint8_t *edata_ptr = (uint8_t*)&id3->id3v2buf; 1163 uint8_t *edata_ptr = (uint8_t*)&id3->id3v2buf;
1161 static VLC_TYPE atrac3_vlc_table[4096][2];
1162 static int vlcs_initialized = 0;
1163 1164
1164#if defined(CPU_COLDFIRE) 1165#if defined(CPU_COLDFIRE)
1165 coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE); 1166 coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);