mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-27 09:52:17 +00:00
avfilter/vsrc_gradients: add speed option
This commit is contained in:
parent
823eb009cb
commit
eb9fa00bcc
@ -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
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user