summaryrefslogtreecommitdiff
path: root/apps/codecs/libmad/layer3.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libmad/layer3.c')
-rw-r--r--apps/codecs/libmad/layer3.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/apps/codecs/libmad/layer3.c b/apps/codecs/libmad/layer3.c
index 752dbdb..0198e66 100644
--- a/apps/codecs/libmad/layer3.c
+++ b/apps/codecs/libmad/layer3.c
@@ -3230,8 +3230,10 @@ int mad_layer_III(struct mad_stream *stream, struct mad_frame *frame)
enum mad_error error;
int result = 0;
+#if 0 /* rockbox: do not allocate */
/* allocate Layer III dynamic structures */
-
+ /* rockbox: not used. Both pointers are linked to an array in rockbox'
+ * apps/codecs/mpa.c before calling this. */
if (stream->main_data == 0) {
stream->main_data = malloc(MAD_BUFFER_MDLEN);
if (stream->main_data == 0) {
@@ -3247,6 +3249,13 @@ int mad_layer_III(struct mad_stream *stream, struct mad_frame *frame)
return -1;
}
}
+#else
+ /* rockbox: This should not happen. Return with error. */
+ if ((stream->main_data == 0) || (frame->overlap == 0)) {
+ stream->error = MAD_ERROR_NOMEM;
+ return -1;
+ }
+#endif /* rockbox */
nch = MAD_NCHANNELS(header);
si_len = (header->flags & MAD_FLAG_LSF_EXT) ?