From 0301ed559451ba4561b21e438d29b9ee29e31353 Mon Sep 17 00:00:00 2001 From: Michael Giacomelli Date: Sat, 20 Dec 2008 01:38:34 +0000 Subject: [PATCH] Fix bug where a mono file using noise coding would be corrupted if it was played immediately after a stereo files using noise coding due to incorrect initialization of the decoder state. Thanks to Tom Ross for pointing out that initialization was incomplete on these files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19494 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libwma/wmadeci.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/codecs/libwma/wmadeci.c b/apps/codecs/libwma/wmadeci.c index d362c6d1e9..4c06ad0e42 100644 --- a/apps/codecs/libwma/wmadeci.c +++ b/apps/codecs/libwma/wmadeci.c @@ -328,6 +328,9 @@ int wma_decode_init(WMADecodeContext* s, asf_waveformatex_t *wfx) coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE); #endif + s->channel_coded[0]=0; + s->channel_coded[1]=0; + s->sample_rate = wfx->rate; s->nb_channels = wfx->channels; s->bit_rate = wfx->bitrate; @@ -1434,7 +1437,7 @@ static int wma_decode_frame(WMADecodeContext *s, int32_t *samples) /* read each block */ s->block_num = 0; s->block_pos = 0; - + for(;;) { @@ -1483,7 +1486,7 @@ int wma_decode_superframe_init(WMADecodeContext* s, s->last_superframe_len = 0; return 0; } - + s->current_frame = 0; init_get_bits(&s->gb, buf, buf_size*8);