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:
parent
0df38260e8
commit
0301ed5594
1 changed files with 5 additions and 2 deletions
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue