summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-02-29 20:22:37 +0100
committerPaul B Mahol <onemda@gmail.com>2020-02-29 20:22:37 +0100
commitf707c84b8b89a937cc388e5ae4b8fcd67e07b75c (patch)
treea99ac5a347ce2a55c950bcb20093e42976c7aed3 /libavfilter
parent3733a6bc20e2a2ca7b06f5d867542f1f5cc874f1 (diff)
avfilter/vf_v360: add partial size setup for flat
Other part of size is calculated from both available horizontal and vertical FOV and given one size component.
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_v360.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c
index 3c73ad32f7..fc799f18c2 100644
--- a/libavfilter/vf_v360.c
+++ b/libavfilter/vf_v360.c
@@ -3790,7 +3790,15 @@ static int config_output(AVFilterLink *outlink)
}
// Override resolution with user values if specified
- if (s->width > 0 && s->height > 0) {
+ if (s->width > 0 && s->height <= 0 && s->h_fov > 0.f && s->v_fov > 0.f &&
+ s->out == FLAT && s->d_fov == 0.f) {
+ w = s->width;
+ h = w / tanf(s->h_fov * M_PI / 360.f) * tanf(s->v_fov * M_PI / 360.f);
+ } else if (s->width <= 0 && s->height > 0 && s->h_fov > 0.f && s->v_fov > 0.f &&
+ s->out == FLAT && s->d_fov == 0.f) {
+ h = s->height;
+ w = h / tanf(s->v_fov * M_PI / 360.f) * tanf(s->h_fov * M_PI / 360.f);
+ } else if (s->width > 0 && s->height > 0) {
w = s->width;
h = s->height;
} else if (s->width > 0 || s->height > 0) {