[FFmpeg-devel] [PATCH 1/7] vp9: use proper refcounting.

Ronald S. Bultje rsbultje at gmail.com
Tue Nov 26 13:01:04 CET 2013


Hi,


On Tue, Nov 26, 2013 at 7:00 AM, Ronald S. Bultje <rsbultje at gmail.com>wrote:

> Hi,
>
> On Tue, Nov 26, 2013 at 4:01 AM, Clément Bœsch <u at pkh.me> wrote:
>
>> On Mon, Nov 25, 2013 at 09:44:44PM -0500, Ronald S. Bultje wrote:
>> > Based on something similar in libav. Author is likely Anton Khirnov
>> > <anton at khirnov.net> but I'm not sure.
>> > ---
>> >  libavcodec/vp9.c | 92
>> +++++++++++++++++++++++---------------------------------
>> >  1 file changed, 38 insertions(+), 54 deletions(-)
>> >
>> > diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
>> > index 785b187..28844b9 100644
>> > --- a/libavcodec/vp9.c
>> > +++ b/libavcodec/vp9.c
>> [...]
>> > -    // find unused reference
>> > -    for (i = 0; i < 10; i++)
>> > -        if (!s->fb[i]->data[0])
>> > -            break;
>> > -    av_assert0(i < 10);
>> > -    s->f = s->fb[i];
>> > +    s->f = frame;
>>
>> So, you didn't answer me in the previous submission: In the original
>> patch, s->f was unreferenced just after this. Can you explain why it was
>> done as such, and/or what was wrong with it?
>
>
> They have different base expectations. One says that the frame might have
> been filled and not properly unreferenced previously by the application.
> I'm OK with fixing it, but it will cause issues down the line so I don't
> particularly care much. I don't think other codecs care about that use case
> - the application is responsible for emptying the frame before inputting it
> in the decoder.
>

To be clear, issues = merge issues, not crash or so.

Ronald


More information about the ffmpeg-devel mailing list