* commit '1ba95a9cca57b023b9b9de071a5671fc05b05e58': lavfi: add avfilter_init_dict() for initializing a filter with a dict. Conflicts: libavfilter/avfilter.c
Showing the changes to libavfilter/avfilter.c (1 of 3 files). Show all
Unified · Split
| @@ -688,6 +688,28 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque · 687 unmodified lines | |||
| 688 | } | 688 | } |
| 689 | #endif | 689 | #endif |
| 690 | 690 | ||
| 691 | int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options) | ||
| 692 | { | ||
| 693 | int ret = 0; | ||
| 694 | |||
| 695 | if (ctx->filter->priv_class) { | ||
| 696 | ret = av_opt_set_dict(ctx->priv, options); | ||
| 697 | if (ret < 0) { | ||
| 698 | av_log(ctx, AV_LOG_ERROR, "Error applying options to the filter.\n"); | ||
| 699 | return ret; | ||
| 700 | } | ||
| 701 | } | ||
| 702 | |||
| 703 | if (ctx->filter->init_opaque) | ||
| 704 | ret = ctx->filter->init_opaque(ctx, NULL); | ||
| 705 | else if (ctx->filter->init) | ||
| 706 | ret = ctx->filter->init(ctx); | ||
| 707 | else if (ctx->filter->init_dict) | ||
| 708 | ret = ctx->filter->init_dict(ctx, options); | ||
| 709 | |||
| 710 | return ret; | ||
| 711 | } | ||
| 712 | |||
| 691 | int avfilter_init_str(AVFilterContext *filter, const char *args) | 713 | int avfilter_init_str(AVFilterContext *filter, const char *args) |
| 692 | { | 714 | { |
| 693 | AVDictionary *options = NULL; | 715 | AVDictionary *options = NULL; |
| @@ -794,20 +816,7 @@ int avfilter_init_str(AVFilterContext *filter, const char *args) · 100 unmodified lines | |||
| 794 | } | 816 | } |
| 795 | } | 817 | } |
| 796 | 818 | ||
| 797 | if (filter->filter->priv_class) { | 819 | ret = avfilter_init_dict(filter, &options); |
| 798 | ret = av_opt_set_dict(filter->priv, &options); | ||
| 799 | if (ret < 0) { | ||
| 800 | av_log(filter, AV_LOG_ERROR, "Error applying options to the filter.\n"); | ||
| 801 | goto fail; | ||
| 802 | } | ||
| 803 | } | ||
| 804 | |||
| 805 | if (filter->filter->init_opaque) | ||
| 806 | ret = filter->filter->init_opaque(filter, NULL); | ||
| 807 | else if (filter->filter->init) | ||
| 808 | ret = filter->filter->init(filter); | ||
| 809 | else if (filter->filter->init_dict) | ||
| 810 | ret = filter->filter->init_dict(filter, &options); | ||
| 811 | if (ret < 0) | 820 | if (ret < 0) |
| 812 | goto fail; | 821 | goto fail; |
| 813 | 822 | ||