Hi,

On Sat, Dec 17, 2011 at 9:46 AM, Mans Rullgard <[email protected]> wrote:

> 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 <[email protected]>
> ---
>  libavcodec/mpegaudiodec.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
> index eeef470..0c8f9c7 100644
> --- a/libavcodec/mpegaudiodec.c
> +++ b/libavcodec/mpegaudiodec.c
> @@ -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));
>     }


OK.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to