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. 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. (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. Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel