History

lavfi: add a preinit callback to filters.

It is necessary for filters with child objects, to set the class and default options values.

Nicolas George committed 9 years ago

Commit f8d7b5f1 parent 19804022 files · +23 −0Browse files

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

Unified · Split

libavfilter/avfilter.c+8−0
@@ -692,6 +692,7 @@ static int default_execute(AVFilterContext *ctx, avfilter_action_func *func, voi · 691 unmodified lines
692AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name)692AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name)
693{693{
694 AVFilterContext *ret;694 AVFilterContext *ret;
695 int preinited = 0;
695 696
696 if (!filter)697 if (!filter)
697 return NULL;698 return NULL;
@@ -708,6 +709,11 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name) · 10 unmodified lines
708 if (!ret->priv)709 if (!ret->priv)
709 goto err;710 goto err;
710 }711 }
712 if (filter->preinit) {
713 if (filter->preinit(ret) < 0)
714 goto err;
715 preinited = 1;
716 }
711 717
712 av_opt_set_defaults(ret);718 av_opt_set_defaults(ret);
713 if (filter->priv_class) {719 if (filter->priv_class) {
@@ -745,6 +751,8 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name) · 31 unmodified lines
745 return ret;751 return ret;
746 752
747err:753err:
754 if (preinited)
755 filter->uninit(ret);
748 av_freep(&ret->inputs);756 av_freep(&ret->inputs);
749 av_freep(&ret->input_pads);757 av_freep(&ret->input_pads);
750 ret->nb_inputs = 0;758 ret->nb_inputs = 0;

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