]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/vf_v360: simplify tetrahedron input calculation
authorPaul B Mahol <onemda@gmail.com>
Sat, 29 Feb 2020 12:00:25 +0000 (13:00 +0100)
committerPaul B Mahol <onemda@gmail.com>
Sat, 29 Feb 2020 13:24:35 +0000 (14:24 +0100)
libavfilter/vf_v360.c

index 31d5e605538678a970b2faa927684a519aa54ec4..1cdbaf73301ce267e59a42281be23824e3e580ec 100644 (file)
@@ -2713,18 +2713,15 @@ static int xyz_to_tetrahedron(const V360Context *s,
                               const float *vec, int width, int height,
                               int16_t us[4][4], int16_t vs[4][4], float *du, float *dv)
 {
-    float d = 0.5f * (vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]);
-
-    const float d0 = (vec[0] * 0.5f + vec[1] * 0.5f + vec[2] *-0.5f) / d;
-    const float d1 = (vec[0] *-0.5f + vec[1] *-0.5f + vec[2] *-0.5f) / d;
-    const float d2 = (vec[0] * 0.5f + vec[1] *-0.5f + vec[2] * 0.5f) / d;
-    const float d3 = (vec[0] *-0.5f + vec[1] * 0.5f + vec[2] * 0.5f) / d;
+    const float d0 = vec[0] * 1.f + vec[1] * 1.f + vec[2] *-1.f;
+    const float d1 = vec[0] *-1.f + vec[1] *-1.f + vec[2] *-1.f;
+    const float d2 = vec[0] * 1.f + vec[1] *-1.f + vec[2] * 1.f;
+    const float d3 = vec[0] *-1.f + vec[1] * 1.f + vec[2] * 1.f;
+    const float d = FFMAX(d0, FFMAX3(d1, d2, d3));
 
     float uf, vf, x, y, z;
     int ui, vi;
 
-    d = FFMAX(d0, FFMAX3(d1, d2, d3));
-
     x =  vec[0] / d;
     y =  vec[1] / d;
     z = -vec[2] / d;