avfilter/vf_drawbox: use ff_filter_process_command()
This commit is contained in:
parent
4568e54cc5
commit
9e883a1448
@ -275,46 +275,39 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
|||||||
|
|
||||||
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
|
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
|
||||||
{
|
{
|
||||||
|
AVFilterLink *inlink = ctx->inputs[0];
|
||||||
DrawBoxContext *s = ctx->priv;
|
DrawBoxContext *s = ctx->priv;
|
||||||
int ret;
|
|
||||||
|
|
||||||
if ( !strcmp(cmd, "w") || !strcmp(cmd, "width")
|
|
||||||
|| !strcmp(cmd, "h") || !strcmp(cmd, "height")
|
|
||||||
|| !strcmp(cmd, "x") || !strcmp(cmd, "y")
|
|
||||||
|| !strcmp(cmd, "t") || !strcmp(cmd, "thickness")
|
|
||||||
|| !strcmp(cmd, "c") || !strcmp(cmd, "color")
|
|
||||||
|| !strcmp(cmd, "replace")) {
|
|
||||||
|
|
||||||
int old_x = s->x;
|
int old_x = s->x;
|
||||||
int old_y = s->y;
|
int old_y = s->y;
|
||||||
int old_w = s->w;
|
int old_w = s->w;
|
||||||
int old_h = s->h;
|
int old_h = s->h;
|
||||||
int old_t = s->thickness;
|
int old_t = s->thickness;
|
||||||
int old_r = s->replace;
|
int old_r = s->replace;
|
||||||
|
int ret;
|
||||||
|
|
||||||
AVFilterLink *inlink = ctx->inputs[0];
|
ret = ff_filter_process_command(ctx, cmd, args, res, res_len, flags);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
av_opt_set(s, cmd, args, 0);
|
ret = init(ctx);
|
||||||
init(ctx);
|
if (ret < 0)
|
||||||
|
goto end;
|
||||||
if ((ret = config_input(inlink)) < 0) {
|
ret = config_input(inlink);;
|
||||||
|
end:
|
||||||
|
if (ret < 0) {
|
||||||
s->x = old_x;
|
s->x = old_x;
|
||||||
s->y = old_y;
|
s->y = old_y;
|
||||||
s->w = old_w;
|
s->w = old_w;
|
||||||
s->h = old_h;
|
s->h = old_h;
|
||||||
s->thickness = old_t;
|
s->thickness = old_t;
|
||||||
s->replace = old_r;
|
s->replace = old_r;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ret = AVERROR(ENOSYS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define OFFSET(x) offsetof(DrawBoxContext, x)
|
#define OFFSET(x) offsetof(DrawBoxContext, x)
|
||||||
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
|
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_RUNTIME_PARAM
|
||||||
|
|
||||||
#if CONFIG_DRAWBOX_FILTER
|
#if CONFIG_DRAWBOX_FILTER
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user