diff options
author | Paul B Mahol <onemda@gmail.com> | 2021-10-16 11:37:07 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-10-16 11:39:15 +0200 |
commit | 5bcc61ce87922ecccaaa0bd303a7e195929859a8 (patch) | |
tree | 5301a4a61d3aad47336173eb56eb5ffaaba3efd2 /libavfilter/vf_v360.c | |
parent | 3cc3f5de2afda5b8f880c0817e9d67c2dafbfe1e (diff) | |
download | ffmpeg-5bcc61ce87922ecccaaa0bd303a7e195929859a8.tar.gz |
avfilter/vf_v360: add reset_rot option
Diffstat (limited to 'libavfilter/vf_v360.c')
-rw-r--r-- | libavfilter/vf_v360.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index 1a813c1f14..ed25e1f07d 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -164,6 +164,7 @@ static const AVOption v360_options[] = { { "iv_fov", "input vertical field of view", OFFSET(iv_fov), AV_OPT_TYPE_FLOAT, {.dbl=0.f}, 0.f, 360.f,TFLAGS, "iv_fov"}, { "id_fov", "input diagonal field of view", OFFSET(id_fov), AV_OPT_TYPE_FLOAT, {.dbl=0.f}, 0.f, 360.f,TFLAGS, "id_fov"}, {"alpha_mask", "build mask in alpha plane", OFFSET(alpha), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS, "alpha"}, + { "reset_rot", "reset rotation", OFFSET(reset_rot), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1,TFLAGS, "reset_rot"}, { NULL } }; @@ -4948,6 +4949,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) return ff_filter_frame(outlink, out); } +static void reset_rot(V360Context *s) +{ + s->rot_quaternion[0][0] = 1.f; + s->rot_quaternion[0][1] = s->rot_quaternion[0][2] = s->rot_quaternion[0][3] = 0.f; +} + static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags) { @@ -4955,11 +4962,15 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar int ret; s->yaw = s->pitch = s->roll = 0.f; + s->reset_rot = 0; ret = ff_filter_process_command(ctx, cmd, args, res, res_len, flags); if (ret < 0) return ret; + if (s->reset_rot) + reset_rot(s); + return config_output(ctx->outputs[0]); } @@ -4967,8 +4978,7 @@ static av_cold int init(AVFilterContext *ctx) { V360Context *s = ctx->priv; - s->rot_quaternion[0][0] = 1.f; - s->rot_quaternion[0][1] = s->rot_quaternion[0][2] = s->rot_quaternion[0][3] = 0.f; + reset_rot(s); return 0; } |