Bug#655890: [libav-devel] Bug#655890: libavcodec53: Breaks decoding using gst-ffmpeg
Anton Khirnov
anton at khirnov.net
Sun Jan 15 15:41:27 UTC 2012
On Sun, 15 Jan 2012 16:18:51 +0100, Reinhard Tartler <siretart at tauware.de> wrote:
> forwarded 655890 justin.ruggles at gmail.com
> stop
>
> On Sa, Jan 14, 2012 at 16:51:27 (CET), reiter.christoph at gmail.com wrote:
>
> > Package: libavcodec53
> > Version: 4:0.8~beta2-1
> > Severity: important
> >
> > The recent upload of 0.8 to sid broke gst-ffmpeg and more specific WMA decoding
> > since gst-ffmpeg is used for this in totem etc. by default (playbin)
> >
> > I get lots of
> >
> > ffmpeg :0:: A custom get_buffer() cannot be used with avcodec_decode_audio3()
> >
> > Downgrading libav to 0.7 fixes it.
>
> Using git blame, I have identified the following commit, which
> introduces the error message cited above to libavcodec/utils.c:
>
> commit 0eea212943544d40f99b05571aa7159d78667154
> Author: Justin Ruggles <justin.ruggles at gmail.com>
> Date: Tue Sep 6 12:17:45 2011 -0400
>
> Add avcodec_decode_audio4().
>
> Deprecate avcodec_decode_audio3().
> Implement audio support in avcodec_default_get_buffer().
> Implement the new audio decoder API in all audio decoders.
>
>
> This commits adds the following entries to doc/APIchanges:
>
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -13,6 +13,13 @@ libavutil: 2011-04-18
>
> API changes, most recent first:
>
> +2011-xx-xx - xxxxxxx - lavc 53.25.0
> + Add nb_samples and extended_data fields to AVFrame.
> + Deprecate AVCODEC_MAX_AUDIO_FRAME_SIZE.
> + Deprecate avcodec_decode_audio3() in favor of avcodec_decode_audio4().
> + avcodec_decode_audio4() writes output samples to an AVFrame, which allows
> + audio decoders to use get_buffer().
> +
> 2011-xx-xx - xxxxxxx - lavc 53.24.0
> Change AVFrame.data[4]/base[4]/linesize[4]/error[4] to [8] at next major bump.
> Change AVPicture.data[4]/linesize[4] to [8] at next major bump.
>
>
> Justin, it seems that additionally to what is documented above, this
> change breaks applications such as gst-ffmpeg, which have successfully
> used avcodec_decode_audio3() with a custom get_buffer(). If this is
> correct, what can we do to restore this functionality? Would the
> following patch be likely to unbreak gst-ffmpeg?
Setting custom get_buffer() for audio was not valid before
avcodec_decode_audio3(), so IMO the proper solution would be to simply
not do that for non-video streams.
--
Anton Khirnov
More information about the pkg-multimedia-maintainers
mailing list