diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 53ca8310262f3a622fa3f679fac757b6d4d123e4..f47ffebc064d6699c81036dd16a46086297475fa 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -99,6 +99,8 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad, int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, unsigned in, unsigned out) { + AVFilterFormats *formats; + av_log(NULL, AV_LOG_INFO, "auto-inserting filter '%s'\n", filt->filter->name); @@ -116,10 +118,9 @@ int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, /* if any information on supported colorspaces already exists on the * link, we need to preserve that */ - if(link->out_formats) { - filt->outputs[out]->out_formats = link->out_formats; - link->out_formats = NULL; - } + if((formats = link->out_formats)) + avfilter_formats_changeref(&link->out_formats, + &filt->outputs[out]->out_formats); return 0; }