From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 4B5F448398 for ; Wed, 1 May 2024 06:48:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C431368D681; Wed, 1 May 2024 09:48:30 +0300 (EEST) Received: from relay.yourmailgateway.de (relay.yourmailgateway.de [188.68.61.103]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E07E468D5AD for ; Wed, 1 May 2024 09:48:24 +0300 (EEST) Received: from mors-relay-8403.netcup.net (localhost [127.0.0.1]) by mors-relay-8403.netcup.net (Postfix) with ESMTPS id 4VTnhS0kFVz81q7 for ; Wed, 1 May 2024 08:48:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ygerlach.de; s=key2; t=1714546104; bh=yZWRt/ZrsxOgPao4vDkM9ks4kHaZZpiQTfEBDlcxUTU=; h=Date:From:Subject:To:From; b=MeQBCFwm12EPi9JonsYIBxKlb0xVVM3Lptv4k7AV/AXyCFkrwneiaM541p+ePPBHg VFxkLWBhC8rVeMVC+D4JW5/wA1D9cXJzHeyo+qTYFkTbsJZO1vS41EVH75BwZuBlYc k/CDsTtVLEG74BpgH3a55hSo4Wn7CutoJPZQRYJdLWgUi0mMA40brvRFlmeHMlUfEa i/TYr4yItAJv+JejzfWleLD27fcMlQ0uF1UsVvNvuAn0SeqRSylwRd+uS+fb0jS5Wl vPPtliiNxotVQdZI4UA7qQejNLBWftcqQJjT81gKlmGQcmLNKf38yUVr9RjfKknzxx kkkX1z9NBAwnQ== Received: from policy02-mors.netcup.net (unknown [46.38.225.35]) by mors-relay-8403.netcup.net (Postfix) with ESMTPS id 4VTnhS0MMhz81nd for ; Wed, 1 May 2024 08:48:24 +0200 (CEST) Received: from mx2e30.netcup.net (unknown [10.243.12.53]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by policy02-mors.netcup.net (Postfix) with ESMTPS id 4VTnhR60wkz8scg for ; Wed, 1 May 2024 08:48:23 +0200 (CEST) Received: from [IPV6:2003:cd:f21:b900:b07a:64af:5bbc:7b45] (p200300cd0f21b900b07a64af5bbc7b45.dip0.t-ipconnect.de [IPv6:2003:cd:f21:b900:b07a:64af:5bbc:7b45]) by mx2e30.netcup.net (Postfix) with ESMTPSA id 5783240953 for ; Wed, 1 May 2024 08:48:19 +0200 (CEST) Authentication-Results: mx2e30; spf=pass (sender IP is 2003:cd:f21:b900:b07a:64af:5bbc:7b45) smtp.mailfrom=ffmpeg@ygerlach.de smtp.helo=[IPV6:2003:cd:f21:b900:b07a:64af:5bbc:7b45] Received-SPF: pass (mx2e30: connection is authenticated) Message-ID: Date: Wed, 1 May 2024 08:48:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Yannis Gerlach To: ffmpeg-devel@ffmpeg.org Content-Language: de-DE, en-US X-PPP-Message-ID: <171454609958.7648.7465455902086176589@mx2e30.netcup.net> X-Rspamd-Queue-Id: 5783240953 X-Rspamd-Server: rspamd-worker-8404 X-NC-CID: SO4fdwAO6aFWF4Ppxdil+51YRXGsQ+g5Y+qyq6hYfcM= Subject: [FFmpeg-devel] [PATCH] avfilter/colorize: add speed option X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: The speed option allows to have a constant (per frame) change of hue. This allows for an easy way of creating an color changing effect without relying on somewhat complicated expressions. Signed-off-by: Yannis Gerlach --- libavfilter/vf_colorize.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libavfilter/vf_colorize.c b/libavfilter/vf_colorize.c index e6c563e3e2..ad8577c8fd 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); } @@ -263,10 +271,11 @@ static const AVFilterPad colorize_inputs[] = { #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM static const AVOption colorize_options[] = { - { "hue", "set the hue", OFFSET(hue), AV_OPT_TYPE_FLOAT, {.dbl=0}, 0, 360, VF }, - { "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 }, + { "hue", "set the hue", OFFSET(hue), AV_OPT_TYPE_FLOAT, {.dbl=0}, 0, 360, VF }, + { "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 } }; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".