[FFmpeg-cvslog] avfilter/vf_v360: fix cylindrical input format

Paul B Mahol git at videolan.org
Sun Mar 1 12:27:31 EET 2020


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sun Mar  1 11:24:31 2020 +0100| [1281399135a872c742b97a006eef9076cbebfa6d] | committer: Paul B Mahol

avfilter/vf_v360: fix cylindrical input format

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1281399135a872c742b97a006eef9076cbebfa6d
---

 libavfilter/vf_v360.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c
index e1754624cd..e6984e703a 100644
--- a/libavfilter/vf_v360.c
+++ b/libavfilter/vf_v360.c
@@ -2641,10 +2641,10 @@ static int xyz_to_cylindrical(const V360Context *s,
                               int16_t us[4][4], int16_t vs[4][4], float *du, float *dv)
 {
     const float phi   = atan2f(vec[0], -vec[2]) * s->input_mirror_modifier[0] / s->iflat_range[0];
-    const float theta = atan2f(-vec[1], hypotf(vec[0], vec[2])) * s->input_mirror_modifier[1] / s->iflat_range[1];
+    const float theta = asinf(-vec[1]) * s->input_mirror_modifier[1];
 
     const float uf = (phi + 1.f) * (width - 1) / 2.f;
-    const float vf = (tanf(theta) + 1.f) * height / 2.f;
+    const float vf = (tanf(theta) / s->iflat_range[1] + 1.f) * height / 2.f;
 
     const int ui = floorf(uf);
     const int vi = floorf(vf);



More information about the ffmpeg-cvslog mailing list