[FFmpeg-cvslog] avfilter/vf_drawbox: use ff_filter_process_command()
Paul B Mahol
git at videolan.org
Mon Oct 14 12:42:18 EEST 2019
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Tue Oct 8 22:04:02 2019 +0200| [9e883a1448a172bef151e23a59e6b6a7f53596fc] | committer: Paul B Mahol
avfilter/vf_drawbox: use ff_filter_process_command()
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9e883a1448a172bef151e23a59e6b6a7f53596fc
---
libavfilter/vf_drawbox.c | 55 +++++++++++++++++++++---------------------------
1 file changed, 24 insertions(+), 31 deletions(-)
diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c
index e5f5351b9d..d71e3af397 100644
--- a/libavfilter/vf_drawbox.c
+++ b/libavfilter/vf_drawbox.c
@@ -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)
{
+ AVFilterLink *inlink = ctx->inputs[0];
DrawBoxContext *s = ctx->priv;
+ int old_x = s->x;
+ int old_y = s->y;
+ int old_w = s->w;
+ int old_h = s->h;
+ int old_t = s->thickness;
+ int old_r = s->replace;
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_y = s->y;
- int old_w = s->w;
- int old_h = s->h;
- int old_t = s->thickness;
- int old_r = s->replace;
-
- AVFilterLink *inlink = ctx->inputs[0];
-
- av_opt_set(s, cmd, args, 0);
- init(ctx);
-
- if ((ret = config_input(inlink)) < 0) {
- s->x = old_x;
- s->y = old_y;
- s->w = old_w;
- s->h = old_h;
- s->thickness = old_t;
- s->replace = old_r;
- return ret;
- }
- } else {
- ret = AVERROR(ENOSYS);
+ ret = ff_filter_process_command(ctx, cmd, args, res, res_len, flags);
+ if (ret < 0)
+ return ret;
+
+ ret = init(ctx);
+ if (ret < 0)
+ goto end;
+ ret = config_input(inlink);;
+end:
+ if (ret < 0) {
+ s->x = old_x;
+ s->y = old_y;
+ s->w = old_w;
+ s->h = old_h;
+ s->thickness = old_t;
+ s->replace = old_r;
}
return ret;
}
#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
More information about the ffmpeg-cvslog
mailing list