Browse Source

avfilter/vf_v360: simplify xyz_to_dfisheye() calculations

tags/n4.3
Paul B Mahol 5 years ago
parent
commit
073d22696e
1 changed files with 5 additions and 4 deletions
  1. +5
    -4
      libavfilter/vf_v360.c

+ 5
- 4
libavfilter/vf_v360.c View File

@@ -2083,11 +2083,12 @@ static void xyz_to_dfisheye(const V360Context *s,
const float ew = width / 2.f;
const float eh = height;

const float phi = atan2f(-vec[1], -vec[0]) * s->input_mirror_modifier[0];
const float theta = acosf(fabsf(vec[2])) / M_PI * s->input_mirror_modifier[1];
const float h = hypotf(vec[0], vec[1]);
const float lh = h > 0.f ? h : 1.f;
const float theta = acosf(fabsf(vec[2])) / M_PI;

float uf = (theta * cosf(phi) * scale + 0.5f) * ew;
float vf = (theta * sinf(phi) * scale + 0.5f) * eh;
float uf = (theta * (-vec[0] / lh) * s->input_mirror_modifier[0] * scale + 0.5f) * ew;
float vf = (theta * (-vec[1] / lh) * s->input_mirror_modifier[1] * scale + 0.5f) * eh;

int ui, vi;
int u_shift;


Loading…
Cancel
Save