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
diff --git a/apps/codecs.c b/apps/codecs.c
index 417b546..8e9e55a 100644
--- a/apps/codecs.c
+++ b/apps/codecs.c
@@ -66,6 +66,8 @@
extern unsigned char codecbuf[];
#endif
+size_t codec_size;
+
extern void* plugin_get_audio_buffer(size_t *buffer_size);
struct codec_api ci = {
@@ -78,7 +80,7 @@
0, /* new_track */
0, /* seek_time */
NULL, /* struct dsp_config *dsp */
- NULL, /* get_codec_memory */
+ NULL, /* codec_get_buffer */
NULL, /* pcmbuf_insert */
NULL, /* set_elapsed */
NULL, /* read_filebuf */
@@ -193,6 +195,9 @@
logf("codec header error");
return CODEC_ERROR;
}
+
+ codec_size = hdr->end_addr - codecbuf;
+
#else /* SIMULATOR */
void *pd;
@@ -211,6 +216,9 @@
sim_codec_close(pd);
return CODEC_ERROR;
}
+
+ codec_size = codecbuf - codecbuf;
+
#endif /* SIMULATOR */
if (hdr->api_version > CODEC_API_VERSION
|| hdr->api_version < CODEC_MIN_API_VERSION) {
@@ -226,7 +234,8 @@
return status;
}
-int codec_load_buf(unsigned int hid, struct codec_api *api) {
+int codec_load_buf(unsigned int hid, struct codec_api *api)
+{
int rc;
rc = bufread(hid, CODEC_SIZE, codecbuf);
if (rc < 0) {
diff --git a/apps/codecs.h b/apps/codecs.h
index becb73c..6d8c101 100644
--- a/apps/codecs.h
+++ b/apps/codecs.h
@@ -82,12 +82,12 @@
#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */
/* increase this every time the api struct changes */
-#define CODEC_API_VERSION 25
+#define CODEC_API_VERSION 26
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */
-#define CODEC_MIN_API_VERSION 25
+#define CODEC_MIN_API_VERSION 26
/* codec return codes */
enum codec_status {
@@ -125,7 +125,7 @@
struct dsp_config *dsp;
/* Returns buffer to malloc array. Only codeclib should need this. */
- void* (*get_codec_memory)(size_t *size);
+ void* (*codec_get_buffer)(size_t *size);
/* Insert PCM data into audio buffer for playback. Playback will start
automatically. */
bool (*pcmbuf_insert)(const void *ch1, const void *ch2, int count);
@@ -256,6 +256,9 @@
enum codec_status(*entry_point)(struct codec_api*);
};
+extern unsigned char codecbuf[];
+extern size_t codec_size;
+
#ifdef CODEC
#ifndef SIMULATOR
/* plugin_* is correct, codecs use the plugin linker script */
diff --git a/apps/codecs/Tremor/oggmalloc.c b/apps/codecs/Tremor/oggmalloc.c
index d7e903b..b11eaa5 100644
--- a/apps/codecs/Tremor/oggmalloc.c
+++ b/apps/codecs/Tremor/oggmalloc.c
@@ -5,7 +5,7 @@
void ogg_malloc_init(void)
{
- mallocbuf = ci->get_codec_memory(&bufsize);
+ mallocbuf = ci->codec_get_buffer(&bufsize);
tmp_ptr = bufsize & ~3;
mem_ptr = 0;
}
diff --git a/apps/codecs/lib/codeclib.c b/apps/codecs/lib/codeclib.c
index e537995..6e11eb1 100644
--- a/apps/codecs/lib/codeclib.c
+++ b/apps/codecs/lib/codeclib.c
@@ -36,7 +36,7 @@
int codec_init(void)
{
mem_ptr = 0;
- mallocbuf = (unsigned char *)ci->get_codec_memory((size_t *)&bufsize);
+ mallocbuf = (unsigned char *)ci->codec_get_buffer((size_t *)&bufsize);
return 0;
}
diff --git a/apps/codecs/lib/codeclib.h b/apps/codecs/lib/codeclib.h
index 87cc926..744accb 100644
--- a/apps/codecs/lib/codeclib.h
+++ b/apps/codecs/lib/codeclib.h
@@ -24,8 +24,6 @@
#include "system.h"
#include <sys/types.h>
-#define MALLOC_BUFSIZE (512*1024)
-
extern struct codec_api *ci;
extern long mem_ptr;
extern long bufsize;
diff --git a/apps/playback.c b/apps/playback.c
index f41cca6..bfad1a2 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -166,10 +166,8 @@
/* As defined in plugins/lib/xxx2wav.h */
#if MEM > 1
-#define MALLOC_BUFSIZE (512*1024)
#define GUARD_BUFSIZE (32*1024)
#else
-#define MALLOC_BUFSIZE (100*1024)
#define GUARD_BUFSIZE (8*1024)
#endif
@@ -924,10 +922,12 @@
return true;
} /* codec_pcmbuf_insert_callback */
-static void* codec_get_memory_callback(size_t *size)
+static void* codec_get_buffer(size_t *size)
{
- *size = MALLOC_BUFSIZE;
- return malloc_buf;
+ if (codec_size >= CODEC_SIZE)
+ return NULL;
+ *size = CODEC_SIZE - codec_size;
+ return &codecbuf[codec_size];
}
/* Between the codec and PCM track change, we need to keep updating the
@@ -2297,7 +2297,7 @@
/*
* Layout audio buffer as follows - iram buffer depends on target:
- * [|SWAP:iram][|TALK]|MALLOC|FILE|GUARD|PCM|[SWAP:dram[|iram]|]
+ * [|SWAP:iram][|TALK]|FILE|GUARD|PCM|[SWAP:dram[|iram]|]
*/
static void audio_reset_buffer(void)
{
@@ -2313,7 +2313,7 @@
/* Align the malloc buf to line size. Especially important to cf
targets that do line reads/writes. */
malloc_buf = (unsigned char *)(((uintptr_t)malloc_buf + 15) & ~15);
- filebuf = malloc_buf + MALLOC_BUFSIZE; /* filebuf line align implied */
+ filebuf = malloc_buf; /* filebuf line align implied */
filebuflen = audiobufend - filebuf;
filebuflen &= ~15;
@@ -2338,7 +2338,6 @@
size_t pcmbufsize;
const unsigned char *pcmbuf = pcmbuf_get_meminfo(&pcmbufsize);
logf("mabuf: %08X", (unsigned)malloc_buf);
- logf("mabufe: %08X", (unsigned)(malloc_buf + MALLOC_BUFSIZE));
logf("fbuf: %08X", (unsigned)filebuf);
logf("fbufe: %08X", (unsigned)(filebuf + filebuflen));
logf("gbuf: %08X", (unsigned)(filebuf + filebuflen));
@@ -2513,7 +2512,7 @@
/* Initialize codec api. */
ci.read_filebuf = codec_filebuf_callback;
ci.pcmbuf_insert = codec_pcmbuf_insert_callback;
- ci.get_codec_memory = codec_get_memory_callback;
+ ci.codec_get_buffer = codec_get_buffer;
ci.request_buffer = codec_request_buffer_callback;
ci.advance_buffer = codec_advance_buffer_callback;
ci.advance_buffer_loc = codec_advance_buffer_loc_callback;
diff --git a/firmware/export/config-c200.h b/firmware/export/config-c200.h
index bb8adae..9a9198e 100644
--- a/firmware/export/config-c200.h
+++ b/firmware/export/config-c200.h
@@ -96,7 +96,7 @@
#define HAVE_FAT16SUPPORT
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-clip.h b/firmware/export/config-clip.h
index b6ffcce..0685e45 100644
--- a/firmware/export/config-clip.h
+++ b/firmware/export/config-clip.h
@@ -83,7 +83,7 @@
/* The number of bytes reserved for loadable codecs */
#define CODEC_SIZE 0
-//#define CODEC_SIZE 0x80000
+//#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
//#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-cowond2.h b/firmware/export/config-cowond2.h
index 1bcb406..d136cae 100644
--- a/firmware/export/config-cowond2.h
+++ b/firmware/export/config-cowond2.h
@@ -78,7 +78,7 @@
#define ICODE_ATTR_TREMOR_NOT_MDCT
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-creativezv.h b/firmware/export/config-creativezv.h
index 2225e8c..e9cc268 100644
--- a/firmware/export/config-creativezv.h
+++ b/firmware/export/config-creativezv.h
@@ -104,7 +104,7 @@
//TODO: enable this back
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-creativezvm.h b/firmware/export/config-creativezvm.h
index 02ec490..ec21500 100644
--- a/firmware/export/config-creativezvm.h
+++ b/firmware/export/config-creativezvm.h
@@ -104,7 +104,7 @@
//TODO: enable this back
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-creativezvm60gb.h b/firmware/export/config-creativezvm60gb.h
index f319dea..d1e1d80 100644
--- a/firmware/export/config-creativezvm60gb.h
+++ b/firmware/export/config-creativezvm60gb.h
@@ -104,7 +104,7 @@
//TODO: enable this back
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h
index f187c97..745aa71 100644
--- a/firmware/export/config-e200.h
+++ b/firmware/export/config-e200.h
@@ -86,7 +86,7 @@
#define HAVE_FAT16SUPPORT
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-gigabeat-s.h b/firmware/export/config-gigabeat-s.h
index 92813c6..7f36bce 100644
--- a/firmware/export/config-gigabeat-s.h
+++ b/firmware/export/config-gigabeat-s.h
@@ -64,7 +64,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
index c2ac7a9..f4910bf 100644
--- a/firmware/export/config-gigabeat.h
+++ b/firmware/export/config-gigabeat.h
@@ -84,7 +84,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h10.h b/firmware/export/config-h10.h
index 6f66555..8504ffd 100644
--- a/firmware/export/config-h10.h
+++ b/firmware/export/config-h10.h
@@ -87,7 +87,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index dcb0e6d..641709f 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -80,7 +80,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h10_5gb.h b/firmware/export/config-h10_5gb.h
index 29f0e55..fa1e372 100644
--- a/firmware/export/config-h10_5gb.h
+++ b/firmware/export/config-h10_5gb.h
@@ -66,7 +66,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index c75734f..6177347 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -75,7 +75,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h
index 134e90c..0b30574 100644
--- a/firmware/export/config-h300.h
+++ b/firmware/export/config-h300.h
@@ -73,7 +73,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-hdd1630.h b/firmware/export/config-hdd1630.h
index 5a31199..810902e 100755
--- a/firmware/export/config-hdd1630.h
+++ b/firmware/export/config-hdd1630.h
@@ -84,7 +84,7 @@
/* #define HAVE_SW_POWEROFF */
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudio7.h b/firmware/export/config-iaudio7.h
index 3d6f239..8934470 100644
--- a/firmware/export/config-iaudio7.h
+++ b/firmware/export/config-iaudio7.h
@@ -89,7 +89,7 @@
#define ICODE_ATTR_TREMOR_NOT_MDCT
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudiom3.h b/firmware/export/config-iaudiom3.h
index 429e922..8ebd5cb 100644
--- a/firmware/export/config-iaudiom3.h
+++ b/firmware/export/config-iaudiom3.h
@@ -79,7 +79,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudiom5.h b/firmware/export/config-iaudiom5.h
index eb3b121..027ffb6 100644
--- a/firmware/export/config-iaudiom5.h
+++ b/firmware/export/config-iaudiom5.h
@@ -86,7 +86,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index be21006..5ea3dcd 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -99,7 +99,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ifp7xx.h b/firmware/export/config-ifp7xx.h
index bea4374..6e6f9f4 100644
--- a/firmware/export/config-ifp7xx.h
+++ b/firmware/export/config-ifp7xx.h
@@ -42,7 +42,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x20000
+#define CODEC_SIZE 0x38000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x10000
diff --git a/firmware/export/config-ipod1g2g.h b/firmware/export/config-ipod1g2g.h
index 5727e46..ae810b1 100644
--- a/firmware/export/config-ipod1g2g.h
+++ b/firmware/export/config-ipod1g2g.h
@@ -70,7 +70,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h
index 285043a..3ca95c3 100644
--- a/firmware/export/config-ipod3g.h
+++ b/firmware/export/config-ipod3g.h
@@ -80,7 +80,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h
index dddda21..4f0045f 100644
--- a/firmware/export/config-ipod4g.h
+++ b/firmware/export/config-ipod4g.h
@@ -80,7 +80,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h
index f4db7d8..d23a03a 100644
--- a/firmware/export/config-ipodcolor.h
+++ b/firmware/export/config-ipodcolor.h
@@ -67,7 +67,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h
index 37fb083..8477e49 100644
--- a/firmware/export/config-ipodmini.h
+++ b/firmware/export/config-ipodmini.h
@@ -79,7 +79,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h
index a96e71d..5e7bdb0 100644
--- a/firmware/export/config-ipodmini2g.h
+++ b/firmware/export/config-ipodmini2g.h
@@ -79,7 +79,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index bfdf7fd..0750d55 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -67,7 +67,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 9b322f2..c7a248e 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -67,7 +67,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-logikdax.h b/firmware/export/config-logikdax.h
index 0a29251..f1787b1 100644
--- a/firmware/export/config-logikdax.h
+++ b/firmware/export/config-logikdax.h
@@ -57,7 +57,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x20000
+#define CODEC_SIZE 0x38000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x10000
diff --git a/firmware/export/config-m200.h b/firmware/export/config-m200.h
index a362b7e..2733ad5 100644
--- a/firmware/export/config-m200.h
+++ b/firmware/export/config-m200.h
@@ -58,7 +58,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x20000
+#define CODEC_SIZE 0x38000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x10000
diff --git a/firmware/export/config-meizu-m3.h b/firmware/export/config-meizu-m3.h
index 763fa49..52bbaf2 100644
--- a/firmware/export/config-meizu-m3.h
+++ b/firmware/export/config-meizu-m3.h
@@ -86,7 +86,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-meizu-m6sl.h b/firmware/export/config-meizu-m6sl.h
index b271950..2b81a8b 100644
--- a/firmware/export/config-meizu-m6sl.h
+++ b/firmware/export/config-meizu-m6sl.h
@@ -86,7 +86,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-meizu-m6sp.h b/firmware/export/config-meizu-m6sp.h
index a78d239..71b78a5 100644
--- a/firmware/export/config-meizu-m6sp.h
+++ b/firmware/export/config-meizu-m6sp.h
@@ -86,7 +86,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-mrobe100.h b/firmware/export/config-mrobe100.h
index 0301174..99e7757 100644
--- a/firmware/export/config-mrobe100.h
+++ b/firmware/export/config-mrobe100.h
@@ -51,7 +51,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-mrobe500.h b/firmware/export/config-mrobe500.h
index 3eab120..8e20c94 100644
--- a/firmware/export/config-mrobe500.h
+++ b/firmware/export/config-mrobe500.h
@@ -115,7 +115,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-ondavx747.h b/firmware/export/config-ondavx747.h
index 49047d6..12deb9c 100644
--- a/firmware/export/config-ondavx747.h
+++ b/firmware/export/config-ondavx747.h
@@ -91,7 +91,7 @@
//#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-ondavx767.h b/firmware/export/config-ondavx767.h
index 55a6791..9c2d237 100644
--- a/firmware/export/config-ondavx767.h
+++ b/firmware/export/config-ondavx767.h
@@ -89,7 +89,7 @@
//#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
diff --git a/firmware/export/config-sa9200.h b/firmware/export/config-sa9200.h
index 4d9c28a..433e28d 100755
--- a/firmware/export/config-sa9200.h
+++ b/firmware/export/config-sa9200.h
@@ -74,7 +74,7 @@
#define HAVE_FAT16SUPPORT
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
diff --git a/firmware/export/config-tpj1022.h b/firmware/export/config-tpj1022.h
index 6f23b86..1b49e0e 100644
--- a/firmware/export/config-tpj1022.h
+++ b/firmware/export/config-tpj1022.h
@@ -57,7 +57,7 @@
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
-#define CODEC_SIZE 0x80000
+#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000