Commit db8146f4 authored by Paul B Mahol's avatar Paul B Mahol

avfilter/vf_v360: cleanup some code

parent 8f3df1dd
......@@ -1707,15 +1707,14 @@ static int xyz_to_stereographic(const V360Context *s,
{
const float x = vec[0] / (1.f - vec[1]) / s->iflat_range[0] * s->input_mirror_modifier[0];
const float y = vec[2] / (1.f - vec[1]) / s->iflat_range[1] * s->input_mirror_modifier[1];
float uf, vf;
int visible, ui, vi;
uf = (x + 1.f) * width / 2.f;
vf = (y + 1.f) * height / 2.f;
ui = floorf(uf);
vi = floorf(vf);
const float uf = (x + 1.f) * width / 2.f;
const float vf = (y + 1.f) * height / 2.f;
const int ui = floorf(uf);
const int vi = floorf(vf);
visible = isfinite(x) && isfinite(y) && vi >= 0 && vi < height && ui >= 0 && ui < width;
const int visible = isfinite(x) && isfinite(y) && vi >= 0 && vi < height && ui >= 0 && ui < width;
*du = visible ? uf - ui : 0.f;
*dv = visible ? vf - vi : 0.f;
......@@ -1748,13 +1747,12 @@ static int xyz_to_equirect(const V360Context *s,
{
const float phi = atan2f(vec[0], -vec[2]) * s->input_mirror_modifier[0];
const float theta = asinf(-vec[1]) * s->input_mirror_modifier[1];
float uf, vf;
int ui, vi;
uf = (phi / M_PI + 1.f) * width / 2.f;
vf = (theta / M_PI_2 + 1.f) * height / 2.f;
ui = floorf(uf);
vi = floorf(vf);
const float uf = (phi / M_PI + 1.f) * width / 2.f;
const float vf = (theta / M_PI_2 + 1.f) * height / 2.f;
const int ui = floorf(uf);
const int vi = floorf(vf);
*du = uf - ui;
*dv = vf - vi;
......@@ -1851,13 +1849,12 @@ static int xyz_to_mercator(const V360Context *s,
{
const float phi = atan2f(vec[0], -vec[2]) * s->input_mirror_modifier[0];
const float theta = -vec[1] * s->input_mirror_modifier[1];
float uf, vf;
int ui, vi;
uf = (phi / M_PI + 1.f) * width / 2.f;
vf = (av_clipf(logf((1.f + theta) / (1.f - theta)) / (2.f * M_PI), -1.f, 1.f) + 1.f) * height / 2.f;
ui = floorf(uf);
vi = floorf(vf);
const float uf = (phi / M_PI + 1.f) * width / 2.f;
const float vf = (av_clipf(logf((1.f + theta) / (1.f - theta)) / (2.f * M_PI), -1.f, 1.f) + 1.f) * height / 2.f;
const int ui = floorf(uf);
const int vi = floorf(vf);
*du = uf - ui;
*dv = vf - vi;
......@@ -1920,14 +1917,12 @@ static int xyz_to_ball(const V360Context *s,
{
const float l = hypotf(vec[0], vec[1]);
const float r = sqrtf(1.f + vec[2]) / M_SQRT2;
float uf, vf;
int ui, vi;
uf = (1.f + r * vec[0] * s->input_mirror_modifier[0] / (l > 0.f ? l : 1.f)) * width * 0.5f;
vf = (1.f - r * vec[1] * s->input_mirror_modifier[1] / (l > 0.f ? l : 1.f)) * height * 0.5f;
const float uf = (1.f + r * vec[0] * s->input_mirror_modifier[0] / (l > 0.f ? l : 1.f)) * width * 0.5f;
const float vf = (1.f - r * vec[1] * s->input_mirror_modifier[1] / (l > 0.f ? l : 1.f)) * height * 0.5f;
ui = floorf(uf);
vi = floorf(vf);
const int ui = floorf(uf);
const int vi = floorf(vf);
*du = uf - ui;
*dv = vf - vi;
......@@ -2036,13 +2031,12 @@ static int xyz_to_hammer(const V360Context *s,
const float z = sqrtf(1.f + sqrtf(1.f - vec[1] * vec[1]) * cosf(theta * 0.5f));
const float x = sqrtf(1.f - vec[1] * vec[1]) * sinf(theta * 0.5f) / z;
const float y = -vec[1] / z * s->input_mirror_modifier[1];
float uf, vf;
int ui, vi;
uf = (x + 1.f) * width / 2.f;
vf = (y + 1.f) * height / 2.f;
ui = floorf(uf);
vi = floorf(vf);
const float uf = (x + 1.f) * width / 2.f;
const float vf = (y + 1.f) * height / 2.f;
const int ui = floorf(uf);
const int vi = floorf(vf);
*du = uf - ui;
*dv = vf - vi;
......@@ -2106,13 +2100,12 @@ static int xyz_to_sinusoidal(const V360Context *s,
{
const float theta = asinf(-vec[1]) * s->input_mirror_modifier[1];
const float phi = atan2f(vec[0], -vec[2]) * s->input_mirror_modifier[0] * cosf(theta);
float uf, vf;
int ui, vi;
uf = (phi / M_PI + 1.f) * width / 2.f;
vf = (theta / M_PI_2 + 1.f) * height / 2.f;
ui = floorf(uf);
vi = floorf(vf);
const float uf = (phi / M_PI + 1.f) * width / 2.f;
const float vf = (theta / M_PI_2 + 1.f) * height / 2.f;
const int ui = floorf(uf);
const int vi = floorf(vf);
*du = uf - ui;
*dv = vf - vi;
......@@ -2649,17 +2642,16 @@ static int xyz_to_cylindrical(const V360Context *s,
{
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];
int visible, ui, vi;
float uf, vf;
uf = (phi + 1.f) * (width - 1) / 2.f;
vf = (tanf(theta) + 1.f) * height / 2.f;
ui = floorf(uf);
vi = floorf(vf);
const float uf = (phi + 1.f) * (width - 1) / 2.f;
const float vf = (tanf(theta) + 1.f) * height / 2.f;
const int ui = floorf(uf);
const int vi = floorf(vf);
visible = vi >= 0 && vi < height && ui >= 0 && ui < width &&
theta <= M_PI * s->iv_fov / 180.f &&
theta >= -M_PI * s->iv_fov / 180.f;
const int visible = vi >= 0 && vi < height && ui >= 0 && ui < width &&
theta <= M_PI * s->iv_fov / 180.f &&
theta >= -M_PI * s->iv_fov / 180.f;
*du = uf - ui;
*dv = vf - vi;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment