* 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 | 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 | 713 | int avfilter_init_str(AVFilterContext *filter, const char *args) |
| 692 | 714 | { |
| 693 | 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) { | |
| 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); | |
| 819 | + ret = avfilter_init_dict(filter, &options); | |
| 811 | 820 | if (ret < 0) |
| 812 | 821 | goto fail; |
| 813 | 822 | |