diff options
author | Tomasz Malesinski <tomal@rockbox.org> | 2006-11-26 18:31:41 +0000 |
---|---|---|
committer | Tomasz Malesinski <tomal@rockbox.org> | 2006-11-26 18:31:41 +0000 |
commit | 80da8b141c4672ca4380d66094976b6342ed5071 (patch) | |
tree | 631e9edd537ae9983524622a9e1ec82e24957280 /apps/codecs/a52.c | |
parent | 8ef3c8a342d41c2aa5e5d8370fd4e89d4d8d937e (diff) | |
download | rockbox-80da8b141c4672ca4380d66094976b6342ed5071.tar.gz rockbox-80da8b141c4672ca4380d66094976b6342ed5071.zip |
FS#6357, patch 1: let iramcopy and bss share the same space in codecs and
plugins. Currently, in case of plugins using IRAM bss is cleared twice,
once in the loader, once in PLUGIN_IRAM_INIT. For codecs, bss is cleared only
during codec initialization. Also, removed double variables in codecs
storing a pointer to codec_api.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11606 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/a52.c')
-rw-r--r-- | apps/codecs/a52.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/apps/codecs/a52.c b/apps/codecs/a52.c index b7190be71b..4f41bfeaf5 100644 --- a/apps/codecs/a52.c +++ b/apps/codecs/a52.c | |||
@@ -28,8 +28,6 @@ CODEC_HEADER | |||
28 | 28 | ||
29 | #define A52_SAMPLESPERFRAME (6*256) | 29 | #define A52_SAMPLESPERFRAME (6*256) |
30 | 30 | ||
31 | struct codec_api *ci; | ||
32 | |||
33 | static a52_state_t *state; | 31 | static a52_state_t *state; |
34 | unsigned long samplesdone; | 32 | unsigned long samplesdone; |
35 | unsigned long frequency; | 33 | unsigned long frequency; |
@@ -117,16 +115,8 @@ void a52_decode_data(uint8_t *start, uint8_t *end) | |||
117 | } | 115 | } |
118 | } | 116 | } |
119 | 117 | ||
120 | #ifdef USE_IRAM | ||
121 | extern char iramcopy[]; | ||
122 | extern char iramstart[]; | ||
123 | extern char iramend[]; | ||
124 | extern char iedata[]; | ||
125 | extern char iend[]; | ||
126 | #endif | ||
127 | |||
128 | /* this is the codec entry point */ | 118 | /* this is the codec entry point */ |
129 | enum codec_status codec_start(struct codec_api *api) | 119 | enum codec_status codec_main(void) |
130 | { | 120 | { |
131 | size_t n; | 121 | size_t n; |
132 | unsigned char *filebuf; | 122 | unsigned char *filebuf; |
@@ -134,19 +124,12 @@ enum codec_status codec_start(struct codec_api *api) | |||
134 | int retval; | 124 | int retval; |
135 | 125 | ||
136 | /* Generic codec initialisation */ | 126 | /* Generic codec initialisation */ |
137 | ci = api; | ||
138 | |||
139 | #ifdef USE_IRAM | ||
140 | ci->memcpy(iramstart, iramcopy, iramend - iramstart); | ||
141 | ci->memset(iedata, 0, iend - iedata); | ||
142 | #endif | ||
143 | |||
144 | ci->configure(DSP_SET_STEREO_MODE, (long *)STEREO_NONINTERLEAVED); | 127 | ci->configure(DSP_SET_STEREO_MODE, (long *)STEREO_NONINTERLEAVED); |
145 | ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)28); | 128 | ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)28); |
146 | ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (long *)(1024*128)); | 129 | ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (long *)(1024*128)); |
147 | 130 | ||
148 | next_track: | 131 | next_track: |
149 | if (codec_init(api)) { | 132 | if (codec_init()) { |
150 | retval = CODEC_ERROR; | 133 | retval = CODEC_ERROR; |
151 | goto exit; | 134 | goto exit; |
152 | } | 135 | } |