History

Merge commit 'd79bd6040599ef017dc45d5997fcc959ab1f71f6'

* commit 'd79bd6040599ef017dc45d5997fcc959ab1f71f6': lavfi: factorize freeing a link Conflicts: libavfilter/avfilter.c

Michael Niedermayer committed 13 years ago

Commit fb8dde32 parents dd2eaf5 d79bd601 file · +21 −23Browse files

Showing the changes to libavfilter/avfilter.c (1 of 1 file). Show all

Unified · Split

libavfilter/avfilter.c+21−23
@@ -622,10 +622,28 @@ int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *in · 621 unmodified lines
622622 }
623623 #endif
624624
625+static void free_link(AVFilterLink *link)
626+{
627+ if (!link)
628+ return;
629+
630+ if (link->src)
631+ link->src->outputs[link->srcpad - link->src->output_pads] = NULL;
632+ if (link->dst)
633+ link->dst->inputs[link->dstpad - link->dst->input_pads] = NULL;
634+
635+ ff_formats_unref(&link->in_formats);
636+ ff_formats_unref(&link->out_formats);
637+ ff_formats_unref(&link->in_samplerates);
638+ ff_formats_unref(&link->out_samplerates);
639+ ff_channel_layouts_unref(&link->in_channel_layouts);
640+ ff_channel_layouts_unref(&link->out_channel_layouts);
641+ avfilter_link_free(&link);
642+}
643+
625644 void avfilter_free(AVFilterContext *filter)
626645 {
627646 int i;
628− AVFilterLink *link;
629647
630648 if (!filter)
631649 return;
@@ -637,30 +655,10 @@ void avfilter_free(AVFilterContext *filter) · 5 unmodified lines
637655 filter->filter->uninit(filter);
638656
639657 for (i = 0; i < filter->nb_inputs; i++) {
640− if ((link = filter->inputs[i])) {
641− if (link->src)
642− link->src->outputs[link->srcpad - link->src->output_pads] = NULL;
643− ff_formats_unref(&link->in_formats);
644− ff_formats_unref(&link->out_formats);
645− ff_formats_unref(&link->in_samplerates);
646− ff_formats_unref(&link->out_samplerates);
647− ff_channel_layouts_unref(&link->in_channel_layouts);
648− ff_channel_layouts_unref(&link->out_channel_layouts);
649− }
650− avfilter_link_free(&link);
658+ free_link(filter->inputs[i]);
651659 }
652660 for (i = 0; i < filter->nb_outputs; i++) {
653− if ((link = filter->outputs[i])) {
654− if (link->dst)
655− link->dst->inputs[link->dstpad - link->dst->input_pads] = NULL;
656− ff_formats_unref(&link->in_formats);
657− ff_formats_unref(&link->out_formats);
658− ff_formats_unref(&link->in_samplerates);
659− ff_formats_unref(&link->out_samplerates);
660− ff_channel_layouts_unref(&link->in_channel_layouts);
661− ff_channel_layouts_unref(&link->out_channel_layouts);
662− }
663− avfilter_link_free(&link);
661+ free_link(filter->outputs[i]);
664662 }
665663
666664 if (filter->filter->priv_class)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t