avfilter/vf_v360: simplify xyz_to_dfisheye() calculations

This commit is contained in:
Paul B Mahol 2019-09-21 21:33:03 +02:00
parent b342678bc4
commit 073d22696e

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;