[FFmpeg-devel] [PATCH] avfilter/vf_stereo3d: implement auto detection by using frame side data

Paul B Mahol onemda at gmail.com
Fri Dec 1 11:35:34 EET 2017


On 12/1/17, Nicolas George <george at nsup.org> wrote:
> Paul B Mahol (2017-11-30):
>> +static int reset_links(AVFilterContext *filter)
>> +{
>> +    int i, ret;
>> +
>> +    if (!filter)
>> +        return 0;
>> +
>> +    for (i = 0; i < filter->nb_outputs; i++) {
>> +        AVFilterLink *link = filter->outputs[i];
>> +
>> +        link->init_state = AVLINK_UNINIT;
>> +        link->frame_rate.num = link->frame_rate.den = 0;
>> +        link->w = link->h = 0;
>> +
>> +        ret = reset_links(link->dst);
>> +        if (ret < 0)
>> +            return ret;
>> +    }
>> +
>> +    if (!i)
>> +        return avfilter_config_links(filter);
>> +
>> +    return 0;
>> +}
>
> Sorry, but no. All filters are currently written with the assumption
> that config_props is called only once. Not all of them actually rely on
> this assumption, but some do, and expect the fields of the private
> context to be in their initial state. Violating that assumption would
> result in a lot of memory leaks and probably a few crashes, some of them
> security relevant.

Not all filters are written with such assumption. And I would like to fix those
who rely on this assumption.

>
> Plus, the public API of buffersink does not document params changes and
> does not provide a good way of reacting to it, so enabling params
> changes like that would have problematic results on applications that
> expect frames with all the same size.

Well for that point one can always autoinsert scale filter if user does
not set some flag when calling buffersink function.

>
> (By the way, I am quite worried to see that Michael weakened the
> protections for that last point in 5d859e59809.)
>
> Filters reconfiguration has been wanted for a lot of time. If it was
> that simple, it would have been done already. If you want to implement
> it, please go ahead, but it will not be an easy task.

I would like to proceed but I can't guess what is in your mind.


More information about the ffmpeg-devel mailing list