diff options
author | Nils Wallménius <nils@rockbox.org> | 2011-06-05 20:18:31 +0000 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2011-06-05 20:18:31 +0000 |
commit | 684b74147f203662fb6767f65b4ca8fc9b8eeeac (patch) | |
tree | 9ef604a3f98f8cd46d3fa396d96d42de81599492 /apps/codecs/libtremor/block.c | |
parent | 965113ed5051d3e9e4b563b8da1f5523c5470a76 (diff) | |
download | rockbox-684b74147f203662fb6767f65b4ca8fc9b8eeeac.tar.gz rockbox-684b74147f203662fb6767f65b4ca8fc9b8eeeac.zip |
Safe part of FS#11268, saving some codec buffer space for targets that don't use separate iram.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29975 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libtremor/block.c')
-rw-r--r-- | apps/codecs/libtremor/block.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/apps/codecs/libtremor/block.c b/apps/codecs/libtremor/block.c index 0eaf7bc820..b88896dd15 100644 --- a/apps/codecs/libtremor/block.c +++ b/apps/codecs/libtremor/block.c | |||
@@ -153,7 +153,6 @@ int vorbis_block_clear(vorbis_block *vb){ | |||
153 | static int _vds_init(vorbis_dsp_state *v,vorbis_info *vi){ | 153 | static int _vds_init(vorbis_dsp_state *v,vorbis_info *vi){ |
154 | int i; | 154 | int i; |
155 | long b_size[2]; | 155 | long b_size[2]; |
156 | LOOKUP_TNC *iramposw; | ||
157 | 156 | ||
158 | codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; | 157 | codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; |
159 | private_state *b=NULL; | 158 | private_state *b=NULL; |
@@ -183,17 +182,20 @@ static int _vds_init(vorbis_dsp_state *v,vorbis_info *vi){ | |||
183 | b_size[1]=ci->blocksizes[1]/2; | 182 | b_size[1]=ci->blocksizes[1]/2; |
184 | b->window[0]=_vorbis_window(0,b_size[0]); | 183 | b->window[0]=_vorbis_window(0,b_size[0]); |
185 | b->window[1]=_vorbis_window(0,b_size[1]); | 184 | b->window[1]=_vorbis_window(0,b_size[1]); |
186 | 185 | ||
186 | #ifdef TREMOR_USE_IRAM | ||
187 | /* allocate IRAM buffer for window tables too, if sufficient iram available */ | 187 | /* allocate IRAM buffer for window tables too, if sufficient iram available */ |
188 | /* give preference to the larger window over the smaller window | 188 | /* give preference to the larger window over the smaller window |
189 | (on the assumption that both windows are equally likely used) */ | 189 | (on the assumption that both windows are equally likely used) */ |
190 | LOOKUP_TNC *iramposw; | ||
190 | for(i=1; i>=0; i--){ | 191 | for(i=1; i>=0; i--){ |
191 | iramposw=(LOOKUP_TNC *)iram_malloc(b_size[i]*sizeof(LOOKUP_TNC)); | 192 | iramposw=iram_malloc(b_size[i]*sizeof(LOOKUP_TNC)); |
192 | if(iramposw!=NULL) { | 193 | if(iramposw!=NULL) { |
193 | memcpy(iramposw, b->window[i], b_size[i]*sizeof(LOOKUP_TNC)); | 194 | memcpy(iramposw, b->window[i], b_size[i]*sizeof(LOOKUP_TNC)); |
194 | b->window[i]=iramposw; | 195 | b->window[i]=iramposw; |
195 | } | 196 | } |
196 | } | 197 | } |
198 | #endif | ||
197 | 199 | ||
198 | /* finish the codebooks */ | 200 | /* finish the codebooks */ |
199 | if(!ci->fullbooks){ | 201 | if(!ci->fullbooks){ |