[FFmpeg-devel] [libav-devel] [PATCH] qpeg: use reget_buffer() in decode_frame()

Reimar Döffinger Reimar.Doeffinger at gmx.de
Thu Apr 28 08:45:32 CEST 2011


On 28 Apr 2011, at 01:26, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Wed, Apr 27, 2011 at 10:59:51PM +0200, Reimar Döffinger wrote:
>> On Wed, Apr 27, 2011 at 02:39:28PM +0000, Ronald S. Bultje wrote:
>>> Hi,
>>> 
>>> On Wed, Apr 27, 2011 at 10:52 AM, Stefano Sabatini
>>> <stefano.sabatini-lala at poste.it> wrote:
>>>> On date Tuesday 2011-04-26 19:20:46 +0200, Reimar Döffinger encoded:
>>>>> On Tue, Apr 26, 2011 at 11:53:25AM +0200, Stefano Sabatini wrote:
>>>>>> Also remove unnecessary call to avctx->release_buffer(). reget_buffer
>>>>>> is required since apparently the coded needs to be passed the previous
>>>>>> frame data again.
>>>>> 
>>>>> If that is correct
>>>>> 
>>>>>>      p->reference= 0;
>>>>>> -    if(avctx->get_buffer(avctx, p) < 0){
>>>>>> -        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
>>>>>> +    if (avctx->reget_buffer(avctx, p) < 0) {
>>>>> 
>>>>> This can't work.
>>>>> Setting reference=0 means (I think) e.g. it is ok for libavfilter to
>>>>> just draw an OSD directly on the frame instead of making a copy.
> 
> i would check the buffer hints too before doing that

Yes, but they are not set here (and I think nowhere in the codec) and to my knowledge they need to be set every time before the (re)get_buffer call.


More information about the ffmpeg-devel mailing list