On 01/15/2012 03:23 PM, Reinhard Tartler wrote:

> Do not fail audio decoding with avcodec_decode_audio3 if user has set a
> custom get_buffer. Strictly speaking, this was never allowed by the API,
> but it seems that some software packages did so anyways. In order to
> unbreak applications (cf. http://bugs.debian.org/655890), this change
> clarifies the API and overrides the custom get_buffer() with the defaults.
> 
> This change is inspired by a similar
> commit (c3846e3ebab610be691adb8b40d376dc2f675dc4) in FFmpeg.
> 
> Signed-off-by: Reinhard Tartler <[email protected]>
> ---
>  libavcodec/avcodec.h |    5 +++++
>  libavcodec/utils.c   |    8 +++++---
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> Justin's comments are incorporated into this version
> 
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index c195ad5..83752cd 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -4070,6 +4070,11 @@ int avcodec_open2(AVCodecContext *avctx, AVCodec 
> *codec, AVDictionary **options)
>   * @warning The end of the input buffer avpkt->data should be set to 0 to 
> ensure that
>   * no overreading happens for damaged MPEG streams.
>   *
> + * @warning You must not provide a custom get_buffer() when using
> + * avcodec_decode_audio3().  Doing so will (silently) override it with


logging 2 error messages doesn't seem "silent" to me. ;)

[...]
> +        av_log(avctx, AV_LOG_ERROR, "Custom get_buffer() for use with"
> +               "avcodec_decode_audio3() detected. Overriding with 
> avcodec_default_get_buffer\n");
> +        av_log(avctx, AV_LOG_ERROR, "Please port your application to "
> +               "avcodec_decode_audio4()\n");
> +        avctx->get_buffer = avcodec_default_get_buffer;


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

Reply via email to