Browse Source

mp3dec: hack: fix decoding with safe bitstream reader

The buffer splicing relies on the bitstream reader over-reading
the end of the buffer as declared in init_get_bits(), although
more data is actually present.  Manually moving the bitstream
boundary after init_get_bits() allows this to work as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
tags/n0.10
Mans Rullgard 13 years ago
parent
commit
ac08f798bb
1 changed files with 3 additions and 0 deletions
  1. +3
    -0
      libavcodec/mpegaudiodec.c

+ 3
- 0
libavcodec/mpegaudiodec.c View File

@@ -1548,6 +1548,9 @@ static int mp_decode_layer3(MPADecodeContext *s)
memcpy(s->last_buf + s->last_buf_size, ptr, EXTRABYTES);
s->in_gb = s->gb;
init_get_bits(&s->gb, s->last_buf, s->last_buf_size*8);
#if CONFIG_SAFE_BITSTREAM_READER
s->gb.size_in_bits_plus8 += EXTRABYTES * 8;
#endif
skip_bits_long(&s->gb, 8*(s->last_buf_size - main_data_begin));
}



Loading…
Cancel
Save