From 2d769843906fca61aae5a0f0d0506e0f91beb098 Mon Sep 17 00:00:00 2001 From: Yannis Gerlach Date: Wed, 1 May 2024 10:23:19 +0200 Subject: [PATCH] avfilter/colorize: add speed option --- libavfilter/vf_colorize.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavfilter/vf_colorize.c b/libavfilter/vf_colorize.c index e6c563e3e2..cfcf1a54fb 100644 --- a/libavfilter/vf_colorize.c +++ b/libavfilter/vf_colorize.c @@ -29,6 +29,7 @@ typedef struct ColorizeContext { float saturation; float lightness; float mix; + float speed; int depth; int c[3]; @@ -205,6 +206,13 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) ff_filter_execute(ctx, do_slice, frame, NULL, FFMIN(s->planeheight[1], ff_filter_get_nb_threads(ctx))); + s->hue += s->speed; + if (s->hue < 0.f) { + s->hue += 360.f; + } else if(s->hue > 360.f) { + s->hue -= 360.f; + } + return ff_filter_frame(ctx->outputs[0], frame); } @@ -267,6 +275,7 @@ static const AVOption colorize_options[] = { { "saturation", "set the saturation", OFFSET(saturation), AV_OPT_TYPE_FLOAT, {.dbl=0.5},0, 1, VF }, { "lightness", "set the lightness", OFFSET(lightness), AV_OPT_TYPE_FLOAT, {.dbl=0.5},0, 1, VF }, { "mix", "set the mix of source lightness", OFFSET(mix), AV_OPT_TYPE_FLOAT, {.dbl=1}, 0, 1, VF }, + { "speed", "set the change of hue per frame", OFFSET(speed), AV_OPT_TYPE_FLOAT, {.dbl=0}, -180, 180, VF }, { NULL } };