diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index d4ce97792d80f228784f854d5472508f7d178eac..02cdb56a0522863df8a421c720d4fd13bd194c43 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -429,6 +429,7 @@ void avfilter_destroy(AVFilterContext *filter) for(i = 0; i < filter->input_count; i ++) { if(filter->inputs[i]) { + if (filter->inputs[i]->src) filter->inputs[i]->src->outputs[filter->inputs[i]->srcpad] = NULL; avfilter_formats_unref(&filter->inputs[i]->in_formats); avfilter_formats_unref(&filter->inputs[i]->out_formats); @@ -437,6 +438,7 @@ void avfilter_destroy(AVFilterContext *filter) } for(i = 0; i < filter->output_count; i ++) { if(filter->outputs[i]) { + if (filter->outputs[i]->dst) filter->outputs[i]->dst->inputs[filter->outputs[i]->dstpad] = NULL; avfilter_formats_unref(&filter->outputs[i]->in_formats); avfilter_formats_unref(&filter->outputs[i]->out_formats);