MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / avfilter_free

Function avfilter_free

libavfilter/avfilter.c:799–843  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

797}
798
799void avfilter_free(AVFilterContext *filter)
800{
801 FFFilterContext *ctxi;
802 int i;
803
804 if (!filter)
805 return;
806 ctxi = fffilterctx(filter);
807
808 if (filter->graph)
809 ff_filter_graph_remove_filter(filter->graph, filter);
810
811 if (fffilter(filter->filter)->uninit)
812 fffilter(filter->filter)->uninit(filter);
813
814 for (i = 0; i < filter->nb_inputs; i++) {
815 free_link(filter->inputs[i]);
816 if (filter->input_pads[i].flags & AVFILTERPAD_FLAG_FREE_NAME)
817 av_freep(&filter->input_pads[i].name);
818 }
819 for (i = 0; i < filter->nb_outputs; i++) {
820 free_link(filter->outputs[i]);
821 if (filter->output_pads[i].flags & AVFILTERPAD_FLAG_FREE_NAME)
822 av_freep(&filter->output_pads[i].name);
823 }
824
825 if (filter->filter->priv_class)
826 av_opt_free(filter->priv);
827
828 av_buffer_unref(&filter->hw_device_ctx);
829
830 av_freep(&filter->name);
831 av_freep(&filter->input_pads);
832 av_freep(&filter->output_pads);
833 av_freep(&filter->inputs);
834 av_freep(&filter->outputs);
835 av_freep(&filter->priv);
836 while (ctxi->command_queue)
837 command_queue_pop(filter);
838 av_opt_free(filter);
839 av_expr_free(ctxi->enable);
840 ctxi->enable = NULL;
841 av_freep(&ctxi->var_values);
842 av_free(filter);
843}
844
845int ff_filter_get_nb_threads(AVFilterContext *ctx)
846{

Callers 7

avfilter_graph_parse2Function · 0.85
avfilter_graph_parseFunction · 0.85
avfilter_graph_parse_ptrFunction · 0.85
avfilter_graph_freeFunction · 0.85
mainFunction · 0.85

Calls 10

fffilterctxFunction · 0.85
fffilterFunction · 0.85
free_linkFunction · 0.85
av_freepFunction · 0.85
av_opt_freeFunction · 0.85
av_buffer_unrefFunction · 0.85
command_queue_popFunction · 0.85
av_expr_freeFunction · 0.85
av_freeFunction · 0.50

Tested by 1

mainFunction · 0.68