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
622}622}
623#endif623#endif
624 624
625static 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
625void avfilter_free(AVFilterContext *filter)644void avfilter_free(AVFilterContext *filter)
626{645{
627 int i;646 int i;
628 AVFilterLink *link;
629 647
630 if (!filter)648 if (!filter)
631 return;649 return;
@@ -637,30 +655,10 @@ void avfilter_free(AVFilterContext *filter) · 5 unmodified lines
637 filter->filter->uninit(filter);655 filter->filter->uninit(filter);
638 656
639 for (i = 0; i < filter->nb_inputs; i++) {657 for (i = 0; i < filter->nb_inputs; i++) {
640 if ((link = filter->inputs[i])) {658 free_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);
651 }659 }
652 for (i = 0; i < filter->nb_outputs; i++) {660 for (i = 0; i < filter->nb_outputs; i++) {
653 if ((link = filter->outputs[i])) {661 free_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);
664 }662 }
665 663
666 if (filter->filter->priv_class)664 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