summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-06-29 10:07:04 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-06-29 10:07:04 +0000
commit7195f3a30cc73e1540a590c519c9a2ecec137952 (patch)
tree6c59ec9b8ff5835370cc0831c36cdbe36bfca480
parentd16467873890e1fbe73fd194b01d9fee90878ad1 (diff)
downloadrockbox-7195f3a30cc73e1540a590c519c9a2ecec137952.tar.gz
rockbox-7195f3a30cc73e1540a590c519c9a2ecec137952.zip
r27159 broke mpegplayer but not the mpa codec because its libmad init wasn't also updated to be compatible with the changes. Fix that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27171 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/mpegplayer/audio_thread.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/apps/plugins/mpegplayer/audio_thread.c b/apps/plugins/mpegplayer/audio_thread.c
index d626df6681..84f0229000 100644
--- a/apps/plugins/mpegplayer/audio_thread.c
+++ b/apps/plugins/mpegplayer/audio_thread.c
@@ -225,20 +225,22 @@ static int audio_buffer(struct stream *str, enum stream_parse_mode type)
225/* Initialise libmad */ 225/* Initialise libmad */
226static void init_mad(void) 226static void init_mad(void)
227{ 227{
228 /*init the sbsample buffer*/ 228 /* init the sbsample buffer */
229 frame.sbsample = &sbsample;
230 frame.sbsample_prev = &sbsample; 229 frame.sbsample_prev = &sbsample;
231 230 frame.sbsample = &sbsample;
231
232 /* We do this so libmad doesn't try to call codec_calloc(). This needs to
233 * be called before mad_stream_init(), mad_frame_inti() and
234 * mad_synth_init(). */
235 frame.overlap = &mad_frame_overlap;
236 stream.main_data = &mad_main_data;
237
238 /* Call mad initialization. Those will zero the arrays frame.overlap,
239 * frame.sbsample and frame.sbsample_prev. Therefore there is no need to
240 * zero them here. */
232 mad_stream_init(&stream); 241 mad_stream_init(&stream);
233 mad_frame_init(&frame); 242 mad_frame_init(&frame);
234 mad_synth_init(&synth); 243 mad_synth_init(&synth);
235
236 /* We do this so libmad doesn't try to call codec_calloc() */
237 rb->memset(mad_frame_overlap, 0, sizeof(mad_frame_overlap));
238 frame.overlap = (void *)mad_frame_overlap;
239
240 rb->memset(mad_main_data, 0, sizeof(mad_main_data));
241 stream.main_data = &mad_main_data;
242} 244}
243 245
244/* Sync audio stream to a particular frame - see main decoder loop for 246/* Sync audio stream to a particular frame - see main decoder loop for