diff options
author | Paul B Mahol <onemda@gmail.com> | 2020-08-31 11:04:38 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2020-08-31 11:09:53 +0200 |
commit | eb9fa00bcc7138516009c6e060e07b510806fe61 (patch) | |
tree | f49c55e93a63ab300f7ebc980d95c5e4ff72d53b | |
parent | 823eb009cb93b9717e3532e4325233bf85946a73 (diff) | |
download | ffmpeg-eb9fa00bcc7138516009c6e060e07b510806fe61.tar.gz |
avfilter/vsrc_gradients: add speed option
-rw-r--r-- | doc/filters.texi | 3 | ||||
-rw-r--r-- | libavfilter/vsrc_gradients.c | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/doc/filters.texi b/doc/filters.texi index 40d493fcae..5074538e9a 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -22577,6 +22577,9 @@ for the accepted syntax. If not specified, or the expressed duration is negative, the video is supposed to be generated forever. + +@item speed +Set speed of gradients rotation. @end table diff --git a/libavfilter/vsrc_gradients.c b/libavfilter/vsrc_gradients.c index f62cedad8f..9de0544f5b 100644 --- a/libavfilter/vsrc_gradients.c +++ b/libavfilter/vsrc_gradients.c @@ -38,6 +38,7 @@ typedef struct GradientsContext { AVRational frame_rate; int64_t pts; int64_t duration; ///< duration expressed in microseconds + float speed; uint8_t color_rgba[8][4]; int nb_colors; @@ -75,6 +76,7 @@ static const AVOption gradients_options[] = { {"seed", "set the seed", OFFSET(seed), AV_OPT_TYPE_INT64, {.i64=-1}, -1, UINT32_MAX, FLAGS }, {"duration", "set video duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64=-1}, -1, INT64_MAX, FLAGS },\ {"d", "set video duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64=-1}, -1, INT64_MAX, FLAGS },\ + {"speed", "set gradients rotation speed", OFFSET(speed), AV_OPT_TYPE_FLOAT,{.dbl=0.01}, 0.00001, 1, FLAGS },\ {NULL}, }; @@ -250,7 +252,7 @@ static int gradients_request_frame(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; GradientsContext *s = ctx->priv; AVFrame *frame = ff_get_video_buffer(outlink, s->w, s->h); - float angle = fmodf(s->pts / 100.f, 2.f * M_PI); + float angle = fmodf(s->pts * s->speed, 2.f * M_PI); const float w2 = s->w / 2.f; const float h2 = s->h / 2.f; |