]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/vf_v360: unbreak fov_from_dfov() for (d)fisheye when width != height
authorPaul B Mahol <onemda@gmail.com>
Sun, 11 Apr 2021 08:09:48 +0000 (10:09 +0200)
committerPaul B Mahol <onemda@gmail.com>
Sun, 11 Apr 2021 08:12:11 +0000 (10:12 +0200)
Based on patch by Daniel Playfair Cal.

libavfilter/vf_v360.c

index 87105dbe9208856a834da5c479b5e93d08b9d07c..053ea8868eb4dfbf383c30f187bb279189e7f2b1 100644 (file)
@@ -4078,18 +4078,18 @@ static void fov_from_dfov(int format, float d_fov, float w, float h, float *h_fo
         break;
     case DUAL_FISHEYE:
         {
-            const float d = 0.5f * hypotf(w * 0.5f, h);
+            const float d = hypotf(w * 0.5f, h);
 
-            *h_fov = d / w * 2.f * d_fov;
-            *v_fov = d / h * d_fov;
+            *h_fov = 0.5f * w / d * d_fov;
+            *v_fov =        h / d * d_fov;
         }
         break;
     case FISHEYE:
         {
-            const float d = 0.5f * hypotf(w, h);
+            const float d = hypotf(w, h);
 
-            *h_fov = d / w * d_fov;
-            *v_fov = d / h * d_fov;
+            *h_fov = w / d * d_fov;
+            *v_fov = h / d * d_fov;
         }
         break;
     case FLAT: