summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2008-10-19 12:35:53 +0000
committerNils Wallménius <nils@rockbox.org>2008-10-19 12:35:53 +0000
commit2f50cd58b9fb7cd75448622b5ac222cdcad6bc6f (patch)
tree880a25472bfa6ce2fcda13a334c17607aa1ad419
parent01177055425776fadbdd6cf167111105b118754a (diff)
downloadrockbox-2f50cd58b9fb7cd75448622b5ac222cdcad6bc6f.tar.gz
rockbox-2f50cd58b9fb7cd75448622b5ac222cdcad6bc6f.zip
Codec memory reorganization
Based on a patch by Tomasz Malesinski * Merge Codec buffer and Malloc buffer into one large buffer. * The new merged buffer is now 1MB on targets with lots of memory. * Renamed codec_get_memory to codec_get_buffer and made it behave more. like plugin_get_buffer. * Bumped Codec api and min api versions. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18834 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs.c13
-rw-r--r--apps/codecs.h9
-rw-r--r--apps/codecs/Tremor/oggmalloc.c2
-rw-r--r--apps/codecs/lib/codeclib.c2
-rw-r--r--apps/codecs/lib/codeclib.h2
-rw-r--r--apps/playback.c17
-rw-r--r--firmware/export/config-c200.h2
-rw-r--r--firmware/export/config-clip.h2
-rw-r--r--firmware/export/config-cowond2.h2
-rw-r--r--firmware/export/config-creativezv.h2
-rw-r--r--firmware/export/config-creativezvm.h2
-rw-r--r--firmware/export/config-creativezvm60gb.h2
-rw-r--r--firmware/export/config-e200.h2
-rw-r--r--firmware/export/config-gigabeat-s.h2
-rw-r--r--firmware/export/config-gigabeat.h2
-rw-r--r--firmware/export/config-h10.h2
-rw-r--r--firmware/export/config-h100.h2
-rw-r--r--firmware/export/config-h10_5gb.h2
-rw-r--r--firmware/export/config-h120.h2
-rw-r--r--firmware/export/config-h300.h2
-rwxr-xr-xfirmware/export/config-hdd1630.h2
-rw-r--r--firmware/export/config-iaudio7.h2
-rw-r--r--firmware/export/config-iaudiom3.h2
-rw-r--r--firmware/export/config-iaudiom5.h2
-rw-r--r--firmware/export/config-iaudiox5.h2
-rw-r--r--firmware/export/config-ifp7xx.h2
-rw-r--r--firmware/export/config-ipod1g2g.h2
-rw-r--r--firmware/export/config-ipod3g.h2
-rw-r--r--firmware/export/config-ipod4g.h2
-rw-r--r--firmware/export/config-ipodcolor.h2
-rw-r--r--firmware/export/config-ipodmini.h2
-rw-r--r--firmware/export/config-ipodmini2g.h2
-rw-r--r--firmware/export/config-ipodnano.h2
-rw-r--r--firmware/export/config-ipodvideo.h2
-rw-r--r--firmware/export/config-logikdax.h2
-rw-r--r--firmware/export/config-m200.h2
-rw-r--r--firmware/export/config-meizu-m3.h2
-rw-r--r--firmware/export/config-meizu-m6sl.h2
-rw-r--r--firmware/export/config-meizu-m6sp.h2
-rw-r--r--firmware/export/config-mrobe100.h2
-rw-r--r--firmware/export/config-mrobe500.h2
-rw-r--r--firmware/export/config-ondavx747.h2
-rw-r--r--firmware/export/config-ondavx767.h2
-rwxr-xr-xfirmware/export/config-sa9200.h2
-rw-r--r--firmware/export/config-tpj1022.h2
45 files changed, 66 insertions, 57 deletions
diff --git a/apps/codecs.c b/apps/codecs.c
index 417b546391..8e9e55a5d4 100644
--- a/apps/codecs.c
+++ b/apps/codecs.c
@@ -66,6 +66,8 @@ void sim_codec_close(void *pd);
66extern unsigned char codecbuf[]; 66extern unsigned char codecbuf[];
67#endif 67#endif
68 68
69size_t codec_size;
70
69extern void* plugin_get_audio_buffer(size_t *buffer_size); 71extern void* plugin_get_audio_buffer(size_t *buffer_size);
70 72
71struct codec_api ci = { 73struct codec_api ci = {
@@ -78,7 +80,7 @@ struct codec_api ci = {
78 0, /* new_track */ 80 0, /* new_track */
79 0, /* seek_time */ 81 0, /* seek_time */
80 NULL, /* struct dsp_config *dsp */ 82 NULL, /* struct dsp_config *dsp */
81 NULL, /* get_codec_memory */ 83 NULL, /* codec_get_buffer */
82 NULL, /* pcmbuf_insert */ 84 NULL, /* pcmbuf_insert */
83 NULL, /* set_elapsed */ 85 NULL, /* set_elapsed */
84 NULL, /* read_filebuf */ 86 NULL, /* read_filebuf */
@@ -193,6 +195,9 @@ static int codec_load_ram(int size, struct codec_api *api)
193 logf("codec header error"); 195 logf("codec header error");
194 return CODEC_ERROR; 196 return CODEC_ERROR;
195 } 197 }
198
199 codec_size = hdr->end_addr - codecbuf;
200
196#else /* SIMULATOR */ 201#else /* SIMULATOR */
197 void *pd; 202 void *pd;
198 203
@@ -211,6 +216,9 @@ static int codec_load_ram(int size, struct codec_api *api)
211 sim_codec_close(pd); 216 sim_codec_close(pd);
212 return CODEC_ERROR; 217 return CODEC_ERROR;
213 } 218 }
219
220 codec_size = codecbuf - codecbuf;
221
214#endif /* SIMULATOR */ 222#endif /* SIMULATOR */
215 if (hdr->api_version > CODEC_API_VERSION 223 if (hdr->api_version > CODEC_API_VERSION
216 || hdr->api_version < CODEC_MIN_API_VERSION) { 224 || hdr->api_version < CODEC_MIN_API_VERSION) {
@@ -226,7 +234,8 @@ static int codec_load_ram(int size, struct codec_api *api)
226 return status; 234 return status;
227} 235}
228 236
229int codec_load_buf(unsigned int hid, struct codec_api *api) { 237int codec_load_buf(unsigned int hid, struct codec_api *api)
238{
230 int rc; 239 int rc;
231 rc = bufread(hid, CODEC_SIZE, codecbuf); 240 rc = bufread(hid, CODEC_SIZE, codecbuf);
232 if (rc < 0) { 241 if (rc < 0) {
diff --git a/apps/codecs.h b/apps/codecs.h
index becb73c8b7..6d8c1016a8 100644
--- a/apps/codecs.h
+++ b/apps/codecs.h
@@ -82,12 +82,12 @@
82#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */ 82#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */
83 83
84/* increase this every time the api struct changes */ 84/* increase this every time the api struct changes */
85#define CODEC_API_VERSION 25 85#define CODEC_API_VERSION 26
86 86
87/* update this to latest version if a change to the api struct breaks 87/* update this to latest version if a change to the api struct breaks
88 backwards compatibility (and please take the opportunity to sort in any 88 backwards compatibility (and please take the opportunity to sort in any
89 new function which are "waiting" at the end of the function table) */ 89 new function which are "waiting" at the end of the function table) */
90#define CODEC_MIN_API_VERSION 25 90#define CODEC_MIN_API_VERSION 26
91 91
92/* codec return codes */ 92/* codec return codes */
93enum codec_status { 93enum codec_status {
@@ -125,7 +125,7 @@ struct codec_api {
125 struct dsp_config *dsp; 125 struct dsp_config *dsp;
126 126
127 /* Returns buffer to malloc array. Only codeclib should need this. */ 127 /* Returns buffer to malloc array. Only codeclib should need this. */
128 void* (*get_codec_memory)(size_t *size); 128 void* (*codec_get_buffer)(size_t *size);
129 /* Insert PCM data into audio buffer for playback. Playback will start 129 /* Insert PCM data into audio buffer for playback. Playback will start
130 automatically. */ 130 automatically. */
131 bool (*pcmbuf_insert)(const void *ch1, const void *ch2, int count); 131 bool (*pcmbuf_insert)(const void *ch1, const void *ch2, int count);
@@ -256,6 +256,9 @@ struct codec_header {
256 enum codec_status(*entry_point)(struct codec_api*); 256 enum codec_status(*entry_point)(struct codec_api*);
257}; 257};
258 258
259extern unsigned char codecbuf[];
260extern size_t codec_size;
261
259#ifdef CODEC 262#ifdef CODEC
260#ifndef SIMULATOR 263#ifndef SIMULATOR
261/* plugin_* is correct, codecs use the plugin linker script */ 264/* plugin_* is correct, codecs use the plugin linker script */
diff --git a/apps/codecs/Tremor/oggmalloc.c b/apps/codecs/Tremor/oggmalloc.c
index d7e903b156..b11eaa54f5 100644
--- a/apps/codecs/Tremor/oggmalloc.c
+++ b/apps/codecs/Tremor/oggmalloc.c
@@ -5,7 +5,7 @@ static size_t bufsize, tmp_ptr, mem_ptr;
5 5
6void ogg_malloc_init(void) 6void ogg_malloc_init(void)
7{ 7{
8 mallocbuf = ci->get_codec_memory(&bufsize); 8 mallocbuf = ci->codec_get_buffer(&bufsize);
9 tmp_ptr = bufsize & ~3; 9 tmp_ptr = bufsize & ~3;
10 mem_ptr = 0; 10 mem_ptr = 0;
11} 11}
diff --git a/apps/codecs/lib/codeclib.c b/apps/codecs/lib/codeclib.c
index e537995db9..6e11eb1aa1 100644
--- a/apps/codecs/lib/codeclib.c
+++ b/apps/codecs/lib/codeclib.c
@@ -36,7 +36,7 @@ unsigned char* filebuf; // The rest of the MP3 buffer
36int codec_init(void) 36int codec_init(void)
37{ 37{
38 mem_ptr = 0; 38 mem_ptr = 0;
39 mallocbuf = (unsigned char *)ci->get_codec_memory((size_t *)&bufsize); 39 mallocbuf = (unsigned char *)ci->codec_get_buffer((size_t *)&bufsize);
40 40
41 return 0; 41 return 0;
42} 42}
diff --git a/apps/codecs/lib/codeclib.h b/apps/codecs/lib/codeclib.h
index 87cc926c6b..744accb8aa 100644
--- a/apps/codecs/lib/codeclib.h
+++ b/apps/codecs/lib/codeclib.h
@@ -24,8 +24,6 @@
24#include "system.h" 24#include "system.h"
25#include <sys/types.h> 25#include <sys/types.h>
26 26
27#define MALLOC_BUFSIZE (512*1024)
28
29extern struct codec_api *ci; 27extern struct codec_api *ci;
30extern long mem_ptr; 28extern long mem_ptr;
31extern long bufsize; 29extern long bufsize;
diff --git a/apps/playback.c b/apps/playback.c
index f41cca64a2..bfad1a280c 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -166,10 +166,8 @@ enum filling_state {
166 166
167/* As defined in plugins/lib/xxx2wav.h */ 167/* As defined in plugins/lib/xxx2wav.h */
168#if MEM > 1 168#if MEM > 1
169#define MALLOC_BUFSIZE (512*1024)
170#define GUARD_BUFSIZE (32*1024) 169#define GUARD_BUFSIZE (32*1024)
171#else 170#else
172#define MALLOC_BUFSIZE (100*1024)
173#define GUARD_BUFSIZE (8*1024) 171#define GUARD_BUFSIZE (8*1024)
174#endif 172#endif
175 173
@@ -924,10 +922,12 @@ static bool codec_pcmbuf_insert_callback(
924 return true; 922 return true;
925} /* codec_pcmbuf_insert_callback */ 923} /* codec_pcmbuf_insert_callback */
926 924
927static void* codec_get_memory_callback(size_t *size) 925static void* codec_get_buffer(size_t *size)
928{ 926{
929 *size = MALLOC_BUFSIZE; 927 if (codec_size >= CODEC_SIZE)
930 return malloc_buf; 928 return NULL;
929 *size = CODEC_SIZE - codec_size;
930 return &codecbuf[codec_size];
931} 931}
932 932
933/* Between the codec and PCM track change, we need to keep updating the 933/* Between the codec and PCM track change, we need to keep updating the
@@ -2297,7 +2297,7 @@ static void audio_finalise_track_change(void)
2297 2297
2298/* 2298/*
2299 * Layout audio buffer as follows - iram buffer depends on target: 2299 * Layout audio buffer as follows - iram buffer depends on target:
2300 * [|SWAP:iram][|TALK]|MALLOC|FILE|GUARD|PCM|[SWAP:dram[|iram]|] 2300 * [|SWAP:iram][|TALK]|FILE|GUARD|PCM|[SWAP:dram[|iram]|]
2301 */ 2301 */
2302static void audio_reset_buffer(void) 2302static void audio_reset_buffer(void)
2303{ 2303{
@@ -2313,7 +2313,7 @@ static void audio_reset_buffer(void)
2313 /* Align the malloc buf to line size. Especially important to cf 2313 /* Align the malloc buf to line size. Especially important to cf
2314 targets that do line reads/writes. */ 2314 targets that do line reads/writes. */
2315 malloc_buf = (unsigned char *)(((uintptr_t)malloc_buf + 15) & ~15); 2315 malloc_buf = (unsigned char *)(((uintptr_t)malloc_buf + 15) & ~15);
2316 filebuf = malloc_buf + MALLOC_BUFSIZE; /* filebuf line align implied */ 2316 filebuf = malloc_buf; /* filebuf line align implied */
2317 filebuflen = audiobufend - filebuf; 2317 filebuflen = audiobufend - filebuf;
2318 2318
2319 filebuflen &= ~15; 2319 filebuflen &= ~15;
@@ -2338,7 +2338,6 @@ static void audio_reset_buffer(void)
2338 size_t pcmbufsize; 2338 size_t pcmbufsize;
2339 const unsigned char *pcmbuf = pcmbuf_get_meminfo(&pcmbufsize); 2339 const unsigned char *pcmbuf = pcmbuf_get_meminfo(&pcmbufsize);
2340 logf("mabuf: %08X", (unsigned)malloc_buf); 2340 logf("mabuf: %08X", (unsigned)malloc_buf);
2341 logf("mabufe: %08X", (unsigned)(malloc_buf + MALLOC_BUFSIZE));
2342 logf("fbuf: %08X", (unsigned)filebuf); 2341 logf("fbuf: %08X", (unsigned)filebuf);
2343 logf("fbufe: %08X", (unsigned)(filebuf + filebuflen)); 2342 logf("fbufe: %08X", (unsigned)(filebuf + filebuflen));
2344 logf("gbuf: %08X", (unsigned)(filebuf + filebuflen)); 2343 logf("gbuf: %08X", (unsigned)(filebuf + filebuflen));
@@ -2513,7 +2512,7 @@ void audio_init(void)
2513 /* Initialize codec api. */ 2512 /* Initialize codec api. */
2514 ci.read_filebuf = codec_filebuf_callback; 2513 ci.read_filebuf = codec_filebuf_callback;
2515 ci.pcmbuf_insert = codec_pcmbuf_insert_callback; 2514 ci.pcmbuf_insert = codec_pcmbuf_insert_callback;
2516 ci.get_codec_memory = codec_get_memory_callback; 2515 ci.codec_get_buffer = codec_get_buffer;
2517 ci.request_buffer = codec_request_buffer_callback; 2516 ci.request_buffer = codec_request_buffer_callback;
2518 ci.advance_buffer = codec_advance_buffer_callback; 2517 ci.advance_buffer = codec_advance_buffer_callback;
2519 ci.advance_buffer_loc = codec_advance_buffer_loc_callback; 2518 ci.advance_buffer_loc = codec_advance_buffer_loc_callback;
diff --git a/firmware/export/config-c200.h b/firmware/export/config-c200.h
index bb8adae505..9a9198ee05 100644
--- a/firmware/export/config-c200.h
+++ b/firmware/export/config-c200.h
@@ -96,7 +96,7 @@
96#define HAVE_FAT16SUPPORT 96#define HAVE_FAT16SUPPORT
97 97
98/* The number of bytes reserved for loadable codecs */ 98/* The number of bytes reserved for loadable codecs */
99#define CODEC_SIZE 0x80000 99#define CODEC_SIZE 0x100000
100 100
101/* The number of bytes reserved for loadable plugins */ 101/* The number of bytes reserved for loadable plugins */
102#define PLUGIN_BUFFER_SIZE 0x80000 102#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-clip.h b/firmware/export/config-clip.h
index b6ffccecab..0685e45fd9 100644
--- a/firmware/export/config-clip.h
+++ b/firmware/export/config-clip.h
@@ -83,7 +83,7 @@
83 83
84/* The number of bytes reserved for loadable codecs */ 84/* The number of bytes reserved for loadable codecs */
85#define CODEC_SIZE 0 85#define CODEC_SIZE 0
86//#define CODEC_SIZE 0x80000 86//#define CODEC_SIZE 0x100000
87 87
88/* The number of bytes reserved for loadable plugins */ 88/* The number of bytes reserved for loadable plugins */
89//#define PLUGIN_BUFFER_SIZE 0x80000 89//#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-cowond2.h b/firmware/export/config-cowond2.h
index 1bcb406837..d136caefb2 100644
--- a/firmware/export/config-cowond2.h
+++ b/firmware/export/config-cowond2.h
@@ -78,7 +78,7 @@
78#define ICODE_ATTR_TREMOR_NOT_MDCT 78#define ICODE_ATTR_TREMOR_NOT_MDCT
79 79
80/* The number of bytes reserved for loadable codecs */ 80/* The number of bytes reserved for loadable codecs */
81#define CODEC_SIZE 0x80000 81#define CODEC_SIZE 0x100000
82 82
83/* The number of bytes reserved for loadable plugins */ 83/* The number of bytes reserved for loadable plugins */
84#define PLUGIN_BUFFER_SIZE 0x80000 84#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-creativezv.h b/firmware/export/config-creativezv.h
index 2225e8c45e..e9cc2685b6 100644
--- a/firmware/export/config-creativezv.h
+++ b/firmware/export/config-creativezv.h
@@ -104,7 +104,7 @@
104//TODO: enable this back 104//TODO: enable this back
105 105
106/* The number of bytes reserved for loadable codecs */ 106/* The number of bytes reserved for loadable codecs */
107#define CODEC_SIZE 0x80000 107#define CODEC_SIZE 0x100000
108 108
109/* The number of bytes reserved for loadable plugins */ 109/* The number of bytes reserved for loadable plugins */
110#define PLUGIN_BUFFER_SIZE 0x100000 110#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-creativezvm.h b/firmware/export/config-creativezvm.h
index 02ec490284..ec21500296 100644
--- a/firmware/export/config-creativezvm.h
+++ b/firmware/export/config-creativezvm.h
@@ -104,7 +104,7 @@
104//TODO: enable this back 104//TODO: enable this back
105 105
106/* The number of bytes reserved for loadable codecs */ 106/* The number of bytes reserved for loadable codecs */
107#define CODEC_SIZE 0x80000 107#define CODEC_SIZE 0x100000
108 108
109/* The number of bytes reserved for loadable plugins */ 109/* The number of bytes reserved for loadable plugins */
110#define PLUGIN_BUFFER_SIZE 0x100000 110#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-creativezvm60gb.h b/firmware/export/config-creativezvm60gb.h
index f319dead47..d1e1d80889 100644
--- a/firmware/export/config-creativezvm60gb.h
+++ b/firmware/export/config-creativezvm60gb.h
@@ -104,7 +104,7 @@
104//TODO: enable this back 104//TODO: enable this back
105 105
106/* The number of bytes reserved for loadable codecs */ 106/* The number of bytes reserved for loadable codecs */
107#define CODEC_SIZE 0x80000 107#define CODEC_SIZE 0x100000
108 108
109/* The number of bytes reserved for loadable plugins */ 109/* The number of bytes reserved for loadable plugins */
110#define PLUGIN_BUFFER_SIZE 0x100000 110#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h
index f187c973f5..745aa71735 100644
--- a/firmware/export/config-e200.h
+++ b/firmware/export/config-e200.h
@@ -86,7 +86,7 @@
86#define HAVE_FAT16SUPPORT 86#define HAVE_FAT16SUPPORT
87 87
88/* The number of bytes reserved for loadable codecs */ 88/* The number of bytes reserved for loadable codecs */
89#define CODEC_SIZE 0x80000 89#define CODEC_SIZE 0x100000
90 90
91/* The number of bytes reserved for loadable plugins */ 91/* The number of bytes reserved for loadable plugins */
92#define PLUGIN_BUFFER_SIZE 0x80000 92#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-gigabeat-s.h b/firmware/export/config-gigabeat-s.h
index 92813c6b00..7f36bce7dd 100644
--- a/firmware/export/config-gigabeat-s.h
+++ b/firmware/export/config-gigabeat-s.h
@@ -64,7 +64,7 @@
64#define HAVE_SW_POWEROFF 64#define HAVE_SW_POWEROFF
65 65
66/* The number of bytes reserved for loadable codecs */ 66/* The number of bytes reserved for loadable codecs */
67#define CODEC_SIZE 0x80000 67#define CODEC_SIZE 0x100000
68 68
69/* The number of bytes reserved for loadable plugins */ 69/* The number of bytes reserved for loadable plugins */
70#define PLUGIN_BUFFER_SIZE 0x80000 70#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
index c2ac7a9483..f4910bfcb0 100644
--- a/firmware/export/config-gigabeat.h
+++ b/firmware/export/config-gigabeat.h
@@ -84,7 +84,7 @@
84#define HAVE_SW_POWEROFF 84#define HAVE_SW_POWEROFF
85 85
86/* The number of bytes reserved for loadable codecs */ 86/* The number of bytes reserved for loadable codecs */
87#define CODEC_SIZE 0x80000 87#define CODEC_SIZE 0x100000
88 88
89/* The number of bytes reserved for loadable plugins */ 89/* The number of bytes reserved for loadable plugins */
90#define PLUGIN_BUFFER_SIZE 0x80000 90#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h10.h b/firmware/export/config-h10.h
index 6f66555d7d..8504ffd25a 100644
--- a/firmware/export/config-h10.h
+++ b/firmware/export/config-h10.h
@@ -87,7 +87,7 @@
87#define HAVE_SW_POWEROFF 87#define HAVE_SW_POWEROFF
88 88
89/* The number of bytes reserved for loadable codecs */ 89/* The number of bytes reserved for loadable codecs */
90#define CODEC_SIZE 0x80000 90#define CODEC_SIZE 0x100000
91 91
92/* The number of bytes reserved for loadable plugins */ 92/* The number of bytes reserved for loadable plugins */
93#define PLUGIN_BUFFER_SIZE 0x80000 93#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index dcb0e6d9f0..641709f639 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -80,7 +80,7 @@
80#define HAVE_SW_POWEROFF 80#define HAVE_SW_POWEROFF
81 81
82/* The number of bytes reserved for loadable codecs */ 82/* The number of bytes reserved for loadable codecs */
83#define CODEC_SIZE 0x80000 83#define CODEC_SIZE 0x100000
84 84
85/* The number of bytes reserved for loadable plugins */ 85/* The number of bytes reserved for loadable plugins */
86#define PLUGIN_BUFFER_SIZE 0x80000 86#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h10_5gb.h b/firmware/export/config-h10_5gb.h
index 29f0e55b6b..fa1e37229a 100644
--- a/firmware/export/config-h10_5gb.h
+++ b/firmware/export/config-h10_5gb.h
@@ -66,7 +66,7 @@
66#define HAVE_SW_POWEROFF 66#define HAVE_SW_POWEROFF
67 67
68/* The number of bytes reserved for loadable codecs */ 68/* The number of bytes reserved for loadable codecs */
69#define CODEC_SIZE 0x80000 69#define CODEC_SIZE 0x100000
70 70
71/* The number of bytes reserved for loadable plugins */ 71/* The number of bytes reserved for loadable plugins */
72#define PLUGIN_BUFFER_SIZE 0x80000 72#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index c75734f7b7..6177347664 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -75,7 +75,7 @@
75#define HAVE_SW_POWEROFF 75#define HAVE_SW_POWEROFF
76 76
77/* The number of bytes reserved for loadable codecs */ 77/* The number of bytes reserved for loadable codecs */
78#define CODEC_SIZE 0x80000 78#define CODEC_SIZE 0x100000
79 79
80/* The number of bytes reserved for loadable plugins */ 80/* The number of bytes reserved for loadable plugins */
81#define PLUGIN_BUFFER_SIZE 0x80000 81#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h
index 134e90cd17..0b305747cf 100644
--- a/firmware/export/config-h300.h
+++ b/firmware/export/config-h300.h
@@ -73,7 +73,7 @@
73#define HAVE_SW_POWEROFF 73#define HAVE_SW_POWEROFF
74 74
75/* The number of bytes reserved for loadable codecs */ 75/* The number of bytes reserved for loadable codecs */
76#define CODEC_SIZE 0x80000 76#define CODEC_SIZE 0x100000
77 77
78/* The number of bytes reserved for loadable plugins */ 78/* The number of bytes reserved for loadable plugins */
79#define PLUGIN_BUFFER_SIZE 0x80000 79#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-hdd1630.h b/firmware/export/config-hdd1630.h
index 5a311993fe..810902e487 100755
--- a/firmware/export/config-hdd1630.h
+++ b/firmware/export/config-hdd1630.h
@@ -84,7 +84,7 @@
84/* #define HAVE_SW_POWEROFF */ 84/* #define HAVE_SW_POWEROFF */
85 85
86/* The number of bytes reserved for loadable codecs */ 86/* The number of bytes reserved for loadable codecs */
87#define CODEC_SIZE 0x80000 87#define CODEC_SIZE 0x100000
88 88
89/* The number of bytes reserved for loadable plugins */ 89/* The number of bytes reserved for loadable plugins */
90#define PLUGIN_BUFFER_SIZE 0x80000 90#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudio7.h b/firmware/export/config-iaudio7.h
index 3d6f239085..8934470537 100644
--- a/firmware/export/config-iaudio7.h
+++ b/firmware/export/config-iaudio7.h
@@ -89,7 +89,7 @@
89#define ICODE_ATTR_TREMOR_NOT_MDCT 89#define ICODE_ATTR_TREMOR_NOT_MDCT
90 90
91/* The number of bytes reserved for loadable codecs */ 91/* The number of bytes reserved for loadable codecs */
92#define CODEC_SIZE 0x80000 92#define CODEC_SIZE 0x100000
93 93
94/* The number of bytes reserved for loadable plugins */ 94/* The number of bytes reserved for loadable plugins */
95#define PLUGIN_BUFFER_SIZE 0x80000 95#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudiom3.h b/firmware/export/config-iaudiom3.h
index 429e922529..8ebd5cb8b6 100644
--- a/firmware/export/config-iaudiom3.h
+++ b/firmware/export/config-iaudiom3.h
@@ -79,7 +79,7 @@
79#define HAVE_SW_POWEROFF 79#define HAVE_SW_POWEROFF
80 80
81/* The number of bytes reserved for loadable codecs */ 81/* The number of bytes reserved for loadable codecs */
82#define CODEC_SIZE 0x80000 82#define CODEC_SIZE 0x100000
83 83
84/* The number of bytes reserved for loadable plugins */ 84/* The number of bytes reserved for loadable plugins */
85#define PLUGIN_BUFFER_SIZE 0x80000 85#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudiom5.h b/firmware/export/config-iaudiom5.h
index eb3b1216eb..027ffb61e5 100644
--- a/firmware/export/config-iaudiom5.h
+++ b/firmware/export/config-iaudiom5.h
@@ -86,7 +86,7 @@
86#define HAVE_SW_POWEROFF 86#define HAVE_SW_POWEROFF
87 87
88/* The number of bytes reserved for loadable codecs */ 88/* The number of bytes reserved for loadable codecs */
89#define CODEC_SIZE 0x80000 89#define CODEC_SIZE 0x100000
90 90
91/* The number of bytes reserved for loadable plugins */ 91/* The number of bytes reserved for loadable plugins */
92#define PLUGIN_BUFFER_SIZE 0x80000 92#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index be21006295..5ea3dcd73c 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -99,7 +99,7 @@
99#define HAVE_SW_POWEROFF 99#define HAVE_SW_POWEROFF
100 100
101/* The number of bytes reserved for loadable codecs */ 101/* The number of bytes reserved for loadable codecs */
102#define CODEC_SIZE 0x80000 102#define CODEC_SIZE 0x100000
103 103
104/* The number of bytes reserved for loadable plugins */ 104/* The number of bytes reserved for loadable plugins */
105#define PLUGIN_BUFFER_SIZE 0x80000 105#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ifp7xx.h b/firmware/export/config-ifp7xx.h
index bea4374fc1..6e6f9f4097 100644
--- a/firmware/export/config-ifp7xx.h
+++ b/firmware/export/config-ifp7xx.h
@@ -42,7 +42,7 @@
42#define HAVE_SW_POWEROFF 42#define HAVE_SW_POWEROFF
43 43
44/* The number of bytes reserved for loadable codecs */ 44/* The number of bytes reserved for loadable codecs */
45#define CODEC_SIZE 0x20000 45#define CODEC_SIZE 0x38000
46 46
47/* The number of bytes reserved for loadable plugins */ 47/* The number of bytes reserved for loadable plugins */
48#define PLUGIN_BUFFER_SIZE 0x10000 48#define PLUGIN_BUFFER_SIZE 0x10000
diff --git a/firmware/export/config-ipod1g2g.h b/firmware/export/config-ipod1g2g.h
index 5727e46616..ae810b14cb 100644
--- a/firmware/export/config-ipod1g2g.h
+++ b/firmware/export/config-ipod1g2g.h
@@ -70,7 +70,7 @@
70#define HAVE_SW_POWEROFF 70#define HAVE_SW_POWEROFF
71 71
72/* The number of bytes reserved for loadable codecs */ 72/* The number of bytes reserved for loadable codecs */
73#define CODEC_SIZE 0x80000 73#define CODEC_SIZE 0x100000
74 74
75/* The number of bytes reserved for loadable plugins */ 75/* The number of bytes reserved for loadable plugins */
76#define PLUGIN_BUFFER_SIZE 0x80000 76#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h
index 285043a77f..3ca95c375c 100644
--- a/firmware/export/config-ipod3g.h
+++ b/firmware/export/config-ipod3g.h
@@ -80,7 +80,7 @@
80#define HAVE_SW_POWEROFF 80#define HAVE_SW_POWEROFF
81 81
82/* The number of bytes reserved for loadable codecs */ 82/* The number of bytes reserved for loadable codecs */
83#define CODEC_SIZE 0x80000 83#define CODEC_SIZE 0x100000
84 84
85/* The number of bytes reserved for loadable plugins */ 85/* The number of bytes reserved for loadable plugins */
86#define PLUGIN_BUFFER_SIZE 0x80000 86#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h
index dddda21e07..4f0045fee8 100644
--- a/firmware/export/config-ipod4g.h
+++ b/firmware/export/config-ipod4g.h
@@ -80,7 +80,7 @@
80#define HAVE_SW_POWEROFF 80#define HAVE_SW_POWEROFF
81 81
82/* The number of bytes reserved for loadable codecs */ 82/* The number of bytes reserved for loadable codecs */
83#define CODEC_SIZE 0x80000 83#define CODEC_SIZE 0x100000
84 84
85/* The number of bytes reserved for loadable plugins */ 85/* The number of bytes reserved for loadable plugins */
86#define PLUGIN_BUFFER_SIZE 0x80000 86#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h
index f4db7d8b98..d23a03a00b 100644
--- a/firmware/export/config-ipodcolor.h
+++ b/firmware/export/config-ipodcolor.h
@@ -67,7 +67,7 @@
67#define HAVE_SW_POWEROFF 67#define HAVE_SW_POWEROFF
68 68
69/* The number of bytes reserved for loadable codecs */ 69/* The number of bytes reserved for loadable codecs */
70#define CODEC_SIZE 0x80000 70#define CODEC_SIZE 0x100000
71 71
72/* The number of bytes reserved for loadable plugins */ 72/* The number of bytes reserved for loadable plugins */
73#define PLUGIN_BUFFER_SIZE 0x80000 73#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h
index 37fb083af4..8477e497b4 100644
--- a/firmware/export/config-ipodmini.h
+++ b/firmware/export/config-ipodmini.h
@@ -79,7 +79,7 @@
79#define HAVE_SW_POWEROFF 79#define HAVE_SW_POWEROFF
80 80
81/* The number of bytes reserved for loadable codecs */ 81/* The number of bytes reserved for loadable codecs */
82#define CODEC_SIZE 0x80000 82#define CODEC_SIZE 0x100000
83 83
84/* The number of bytes reserved for loadable plugins */ 84/* The number of bytes reserved for loadable plugins */
85#define PLUGIN_BUFFER_SIZE 0x80000 85#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h
index a96e71dbc7..5e7bdb0d09 100644
--- a/firmware/export/config-ipodmini2g.h
+++ b/firmware/export/config-ipodmini2g.h
@@ -79,7 +79,7 @@
79#define HAVE_SW_POWEROFF 79#define HAVE_SW_POWEROFF
80 80
81/* The number of bytes reserved for loadable codecs */ 81/* The number of bytes reserved for loadable codecs */
82#define CODEC_SIZE 0x80000 82#define CODEC_SIZE 0x100000
83 83
84/* The number of bytes reserved for loadable plugins */ 84/* The number of bytes reserved for loadable plugins */
85#define PLUGIN_BUFFER_SIZE 0x80000 85#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index bfdf7fdc30..0750d55557 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -67,7 +67,7 @@
67#define HAVE_SW_POWEROFF 67#define HAVE_SW_POWEROFF
68 68
69/* The number of bytes reserved for loadable codecs */ 69/* The number of bytes reserved for loadable codecs */
70#define CODEC_SIZE 0x80000 70#define CODEC_SIZE 0x100000
71 71
72/* The number of bytes reserved for loadable plugins */ 72/* The number of bytes reserved for loadable plugins */
73#define PLUGIN_BUFFER_SIZE 0x80000 73#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 9b322f2ffd..c7a248e532 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -67,7 +67,7 @@
67#define HAVE_SW_POWEROFF 67#define HAVE_SW_POWEROFF
68 68
69/* The number of bytes reserved for loadable codecs */ 69/* The number of bytes reserved for loadable codecs */
70#define CODEC_SIZE 0x80000 70#define CODEC_SIZE 0x100000
71 71
72/* The number of bytes reserved for loadable plugins */ 72/* The number of bytes reserved for loadable plugins */
73#define PLUGIN_BUFFER_SIZE 0x80000 73#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-logikdax.h b/firmware/export/config-logikdax.h
index 0a2925128a..f1787b1a0e 100644
--- a/firmware/export/config-logikdax.h
+++ b/firmware/export/config-logikdax.h
@@ -57,7 +57,7 @@
57#define HAVE_SW_POWEROFF 57#define HAVE_SW_POWEROFF
58 58
59/* The number of bytes reserved for loadable codecs */ 59/* The number of bytes reserved for loadable codecs */
60#define CODEC_SIZE 0x20000 60#define CODEC_SIZE 0x38000
61 61
62/* The number of bytes reserved for loadable plugins */ 62/* The number of bytes reserved for loadable plugins */
63#define PLUGIN_BUFFER_SIZE 0x10000 63#define PLUGIN_BUFFER_SIZE 0x10000
diff --git a/firmware/export/config-m200.h b/firmware/export/config-m200.h
index a362b7e1a4..2733ad577d 100644
--- a/firmware/export/config-m200.h
+++ b/firmware/export/config-m200.h
@@ -58,7 +58,7 @@
58#define HAVE_SW_POWEROFF 58#define HAVE_SW_POWEROFF
59 59
60/* The number of bytes reserved for loadable codecs */ 60/* The number of bytes reserved for loadable codecs */
61#define CODEC_SIZE 0x20000 61#define CODEC_SIZE 0x38000
62 62
63/* The number of bytes reserved for loadable plugins */ 63/* The number of bytes reserved for loadable plugins */
64#define PLUGIN_BUFFER_SIZE 0x10000 64#define PLUGIN_BUFFER_SIZE 0x10000
diff --git a/firmware/export/config-meizu-m3.h b/firmware/export/config-meizu-m3.h
index 763fa49fbf..52bbaf2cfa 100644
--- a/firmware/export/config-meizu-m3.h
+++ b/firmware/export/config-meizu-m3.h
@@ -86,7 +86,7 @@
86#define HAVE_SW_POWEROFF 86#define HAVE_SW_POWEROFF
87 87
88/* The number of bytes reserved for loadable codecs */ 88/* The number of bytes reserved for loadable codecs */
89#define CODEC_SIZE 0x80000 89#define CODEC_SIZE 0x100000
90 90
91/* The number of bytes reserved for loadable plugins */ 91/* The number of bytes reserved for loadable plugins */
92#define PLUGIN_BUFFER_SIZE 0x80000 92#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-meizu-m6sl.h b/firmware/export/config-meizu-m6sl.h
index b2719501f7..2b81a8b3ae 100644
--- a/firmware/export/config-meizu-m6sl.h
+++ b/firmware/export/config-meizu-m6sl.h
@@ -86,7 +86,7 @@
86#define HAVE_SW_POWEROFF 86#define HAVE_SW_POWEROFF
87 87
88/* The number of bytes reserved for loadable codecs */ 88/* The number of bytes reserved for loadable codecs */
89#define CODEC_SIZE 0x80000 89#define CODEC_SIZE 0x100000
90 90
91/* The number of bytes reserved for loadable plugins */ 91/* The number of bytes reserved for loadable plugins */
92#define PLUGIN_BUFFER_SIZE 0x80000 92#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-meizu-m6sp.h b/firmware/export/config-meizu-m6sp.h
index a78d239c2d..71b78a563b 100644
--- a/firmware/export/config-meizu-m6sp.h
+++ b/firmware/export/config-meizu-m6sp.h
@@ -86,7 +86,7 @@
86#define HAVE_SW_POWEROFF 86#define HAVE_SW_POWEROFF
87 87
88/* The number of bytes reserved for loadable codecs */ 88/* The number of bytes reserved for loadable codecs */
89#define CODEC_SIZE 0x80000 89#define CODEC_SIZE 0x100000
90 90
91/* The number of bytes reserved for loadable plugins */ 91/* The number of bytes reserved for loadable plugins */
92#define PLUGIN_BUFFER_SIZE 0x80000 92#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-mrobe100.h b/firmware/export/config-mrobe100.h
index 03011745eb..99e7757af8 100644
--- a/firmware/export/config-mrobe100.h
+++ b/firmware/export/config-mrobe100.h
@@ -51,7 +51,7 @@
51#define HAVE_SW_POWEROFF 51#define HAVE_SW_POWEROFF
52 52
53/* The number of bytes reserved for loadable codecs */ 53/* The number of bytes reserved for loadable codecs */
54#define CODEC_SIZE 0x80000 54#define CODEC_SIZE 0x100000
55 55
56/* The number of bytes reserved for loadable plugins */ 56/* The number of bytes reserved for loadable plugins */
57#define PLUGIN_BUFFER_SIZE 0x80000 57#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-mrobe500.h b/firmware/export/config-mrobe500.h
index 3eab1209f4..8e20c9478c 100644
--- a/firmware/export/config-mrobe500.h
+++ b/firmware/export/config-mrobe500.h
@@ -115,7 +115,7 @@
115#define HAVE_SW_POWEROFF 115#define HAVE_SW_POWEROFF
116 116
117/* The number of bytes reserved for loadable codecs */ 117/* The number of bytes reserved for loadable codecs */
118#define CODEC_SIZE 0x80000 118#define CODEC_SIZE 0x100000
119 119
120/* The number of bytes reserved for loadable plugins */ 120/* The number of bytes reserved for loadable plugins */
121#define PLUGIN_BUFFER_SIZE 0x100000 121#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-ondavx747.h b/firmware/export/config-ondavx747.h
index 49047d6a3c..12deb9cf71 100644
--- a/firmware/export/config-ondavx747.h
+++ b/firmware/export/config-ondavx747.h
@@ -91,7 +91,7 @@
91//#define HAVE_SW_POWEROFF 91//#define HAVE_SW_POWEROFF
92 92
93/* The number of bytes reserved for loadable codecs */ 93/* The number of bytes reserved for loadable codecs */
94#define CODEC_SIZE 0x80000 94#define CODEC_SIZE 0x100000
95 95
96/* The number of bytes reserved for loadable plugins */ 96/* The number of bytes reserved for loadable plugins */
97#define PLUGIN_BUFFER_SIZE 0x100000 97#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-ondavx767.h b/firmware/export/config-ondavx767.h
index 55a6791cbc..9c2d237b01 100644
--- a/firmware/export/config-ondavx767.h
+++ b/firmware/export/config-ondavx767.h
@@ -89,7 +89,7 @@
89//#define HAVE_SW_POWEROFF 89//#define HAVE_SW_POWEROFF
90 90
91/* The number of bytes reserved for loadable codecs */ 91/* The number of bytes reserved for loadable codecs */
92#define CODEC_SIZE 0x80000 92#define CODEC_SIZE 0x100000
93 93
94/* The number of bytes reserved for loadable plugins */ 94/* The number of bytes reserved for loadable plugins */
95#define PLUGIN_BUFFER_SIZE 0x100000 95#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-sa9200.h b/firmware/export/config-sa9200.h
index 4d9c28af1e..433e28db82 100755
--- a/firmware/export/config-sa9200.h
+++ b/firmware/export/config-sa9200.h
@@ -74,7 +74,7 @@
74#define HAVE_FAT16SUPPORT 74#define HAVE_FAT16SUPPORT
75 75
76/* The number of bytes reserved for loadable codecs */ 76/* The number of bytes reserved for loadable codecs */
77#define CODEC_SIZE 0x80000 77#define CODEC_SIZE 0x100000
78 78
79/* The number of bytes reserved for loadable plugins */ 79/* The number of bytes reserved for loadable plugins */
80#define PLUGIN_BUFFER_SIZE 0x80000 80#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-tpj1022.h b/firmware/export/config-tpj1022.h
index 6f23b86f06..1b49e0ebb9 100644
--- a/firmware/export/config-tpj1022.h
+++ b/firmware/export/config-tpj1022.h
@@ -57,7 +57,7 @@
57#define HAVE_SW_POWEROFF 57#define HAVE_SW_POWEROFF
58 58
59/* The number of bytes reserved for loadable codecs */ 59/* The number of bytes reserved for loadable codecs */
60#define CODEC_SIZE 0x80000 60#define CODEC_SIZE 0x100000
61 61
62/* The number of bytes reserved for loadable plugins */ 62/* The number of bytes reserved for loadable plugins */
63#define PLUGIN_BUFFER_SIZE 0x80000 63#define PLUGIN_BUFFER_SIZE 0x80000