diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c index 6c412e5abc..dd97843b96 100644 --- a/libavfilter/vf_showinfo.c +++ b/libavfilter/vf_showinfo.c @@ -35,13 +35,6 @@ typedef struct { unsigned int frame; } ShowInfoContext; -static av_cold int init(AVFilterContext *ctx, const char *args) -{ - ShowInfoContext *showinfo = ctx->priv; - showinfo->frame = 0; - return 0; -} - static int filter_frame(AVFilterLink *inlink, AVFrame *frame) { AVFilterContext *ctx = inlink->dst; @@ -111,7 +104,6 @@ AVFilter avfilter_vf_showinfo = { .description = NULL_IF_CONFIG_SMALL("Show textual information for each video frame."), .priv_size = sizeof(ShowInfoContext), - .init = init, .inputs = avfilter_vf_showinfo_inputs, diff --git a/libavutil/opt.c b/libavutil/opt.c index f91d18b198..e1384022ef 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -177,7 +177,7 @@ static int set_string(void *obj, const AVOption *o, const char *val, uint8_t **d opt->type == AV_OPT_TYPE_INT) ? \ opt->default_val.i64 : opt->default_val.dbl) -static int set_string_number(void *obj, const AVOption *o, const char *val, void *dst) +static int set_string_number(void *obj, void *target_obj, const AVOption *o, const char *val, void *dst) { int ret = 0, notfirst = 0; for (;;) { @@ -200,7 +200,7 @@ static int set_string_number(void *obj, const AVOption *o, const char *val, void buf[i] = 0; { - const AVOption *o_named = av_opt_find(obj, buf, o->unit, 0, 0); + const AVOption *o_named = av_opt_find(target_obj, buf, o->unit, 0, 0); if (o_named && o_named->type == AV_OPT_TYPE_CONST) d = DEFAULT_NUMVAL(o_named); else if (!strcmp(buf, "default")) d = DEFAULT_NUMVAL(o); @@ -268,7 +268,7 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) case AV_OPT_TYPE_INT64: case AV_OPT_TYPE_FLOAT: case AV_OPT_TYPE_DOUBLE: - case AV_OPT_TYPE_RATIONAL: return set_string_number(obj, o, val, dst); + case AV_OPT_TYPE_RATIONAL: return set_string_number(obj, target_obj, o, val, dst); case AV_OPT_TYPE_IMAGE_SIZE: if (!val || !strcmp(val, "none")) { *(int *)dst = *((int *)dst + 1) = 0; @@ -321,7 +321,7 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) {\ if (!o || o->type != opttype)\ return AVERROR(EINVAL);\ - return set_string_number(obj, o, val, name ## _out);\ + return set_string_number(obj, obj, o, val, name ## _out);\ } OPT_EVAL_NUMBER(flags, AV_OPT_TYPE_FLAGS, int)