summaryrefslogtreecommitdiff
path: root/apps/codecs/mpa.c
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2006-04-22 15:13:53 +0000
committerBrandon Low <lostlogic@rockbox.org>2006-04-22 15:13:53 +0000
commitf42459ff3bb3f2c31d8c8b645c412d2fd2c66cd3 (patch)
treec8789ff457d15c5d7e03127a46c986bf11becf77 /apps/codecs/mpa.c
parentc71ad7ea7f005e6e84e60163837638eb958ae855 (diff)
Comment and make pretty the hack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9761 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/mpa.c')
-rw-r--r--apps/codecs/mpa.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/codecs/mpa.c b/apps/codecs/mpa.c
index da449f4d8d..bbfbb574e6 100644
--- a/apps/codecs/mpa.c
+++ b/apps/codecs/mpa.c
@@ -34,6 +34,8 @@ struct mad_synth synth IBSS_ATTR;
void abort(void) {
}
+/* These extra 8 bytes fake-added to each read make mad decode the last frame */
+#define MAD_BUFFER_GUARD 8
#define INPUT_CHUNK_SIZE 8192
mad_fixed_t mad_frame_overlap[2][32][18] IBSS_ATTR;
@@ -181,7 +183,8 @@ enum codec_status codec_start(struct codec_api *api)
inputbuffer = ci->request_buffer(&size, INPUT_CHUNK_SIZE);
if (size == 0 || inputbuffer == NULL)
break;
- mad_stream_buffer(&stream, (unsigned char *)inputbuffer, size + 8);
+ mad_stream_buffer(&stream, (unsigned char *)inputbuffer,
+ size + MAD_BUFFER_GUARD);
}
if (mad_frame_decode(&frame, &stream)) {