1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Michael Giacomelli 2008-12-20 01:38:34 +00:00
parent 0df38260e8
commit 0301ed5594

View file

@ -328,6 +328,9 @@ int wma_decode_init(WMADecodeContext* s, asf_waveformatex_t *wfx)
coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE); coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
#endif #endif
s->channel_coded[0]=0;
s->channel_coded[1]=0;
s->sample_rate = wfx->rate; s->sample_rate = wfx->rate;
s->nb_channels = wfx->channels; s->nb_channels = wfx->channels;
s->bit_rate = wfx->bitrate; s->bit_rate = wfx->bitrate;
@ -1434,7 +1437,7 @@ static int wma_decode_frame(WMADecodeContext *s, int32_t *samples)
/* read each block */ /* read each block */
s->block_num = 0; s->block_num = 0;
s->block_pos = 0; s->block_pos = 0;
for(;;) for(;;)
{ {
@ -1483,7 +1486,7 @@ int wma_decode_superframe_init(WMADecodeContext* s,
s->last_superframe_len = 0; s->last_superframe_len = 0;
return 0; return 0;
} }
s->current_frame = 0; s->current_frame = 0;
init_get_bits(&s->gb, buf, buf_size*8); init_get_bits(&s->gb, buf, buf_size*8);