You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-06-30 22:24:04 +02:00
avfilter/vf_v360: define variables in for loops consistently
This commit is contained in:
@ -337,10 +337,8 @@ static void nearest_kernel(float du, float dv, const XYRemap *r_tmp,
|
|||||||
static void bilinear_kernel(float du, float dv, const XYRemap *r_tmp,
|
static void bilinear_kernel(float du, float dv, const XYRemap *r_tmp,
|
||||||
uint16_t *u, uint16_t *v, int16_t *ker)
|
uint16_t *u, uint16_t *v, int16_t *ker)
|
||||||
{
|
{
|
||||||
int i, j;
|
for (int i = 0; i < 2; i++) {
|
||||||
|
for (int j = 0; j < 2; j++) {
|
||||||
for (i = 0; i < 2; i++) {
|
|
||||||
for (j = 0; j < 2; j++) {
|
|
||||||
u[i * 2 + j] = r_tmp->u[i + 1][j + 1];
|
u[i * 2 + j] = r_tmp->u[i + 1][j + 1];
|
||||||
v[i * 2 + j] = r_tmp->v[i + 1][j + 1];
|
v[i * 2 + j] = r_tmp->v[i + 1][j + 1];
|
||||||
}
|
}
|
||||||
@ -382,15 +380,14 @@ static inline void calculate_bicubic_coeffs(float t, float *coeffs)
|
|||||||
static void bicubic_kernel(float du, float dv, const XYRemap *r_tmp,
|
static void bicubic_kernel(float du, float dv, const XYRemap *r_tmp,
|
||||||
uint16_t *u, uint16_t *v, int16_t *ker)
|
uint16_t *u, uint16_t *v, int16_t *ker)
|
||||||
{
|
{
|
||||||
int i, j;
|
|
||||||
float du_coeffs[4];
|
float du_coeffs[4];
|
||||||
float dv_coeffs[4];
|
float dv_coeffs[4];
|
||||||
|
|
||||||
calculate_bicubic_coeffs(du, du_coeffs);
|
calculate_bicubic_coeffs(du, du_coeffs);
|
||||||
calculate_bicubic_coeffs(dv, dv_coeffs);
|
calculate_bicubic_coeffs(dv, dv_coeffs);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
for (j = 0; j < 4; j++) {
|
for (int j = 0; j < 4; j++) {
|
||||||
u[i * 4 + j] = r_tmp->u[i][j];
|
u[i * 4 + j] = r_tmp->u[i][j];
|
||||||
v[i * 4 + j] = r_tmp->v[i][j];
|
v[i * 4 + j] = r_tmp->v[i][j];
|
||||||
ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 16384;
|
ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 16384;
|
||||||
@ -406,10 +403,9 @@ static void bicubic_kernel(float du, float dv, const XYRemap *r_tmp,
|
|||||||
*/
|
*/
|
||||||
static inline void calculate_lanczos_coeffs(float t, float *coeffs)
|
static inline void calculate_lanczos_coeffs(float t, float *coeffs)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
float sum = 0.f;
|
float sum = 0.f;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
const float x = M_PI * (t - i + 1);
|
const float x = M_PI * (t - i + 1);
|
||||||
if (x == 0.f) {
|
if (x == 0.f) {
|
||||||
coeffs[i] = 1.f;
|
coeffs[i] = 1.f;
|
||||||
@ -419,7 +415,7 @@ static inline void calculate_lanczos_coeffs(float t, float *coeffs)
|
|||||||
sum += coeffs[i];
|
sum += coeffs[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
coeffs[i] /= sum;
|
coeffs[i] /= sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -437,15 +433,14 @@ static inline void calculate_lanczos_coeffs(float t, float *coeffs)
|
|||||||
static void lanczos_kernel(float du, float dv, const XYRemap *r_tmp,
|
static void lanczos_kernel(float du, float dv, const XYRemap *r_tmp,
|
||||||
uint16_t *u, uint16_t *v, int16_t *ker)
|
uint16_t *u, uint16_t *v, int16_t *ker)
|
||||||
{
|
{
|
||||||
int i, j;
|
|
||||||
float du_coeffs[4];
|
float du_coeffs[4];
|
||||||
float dv_coeffs[4];
|
float dv_coeffs[4];
|
||||||
|
|
||||||
calculate_lanczos_coeffs(du, du_coeffs);
|
calculate_lanczos_coeffs(du, du_coeffs);
|
||||||
calculate_lanczos_coeffs(dv, dv_coeffs);
|
calculate_lanczos_coeffs(dv, dv_coeffs);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
for (j = 0; j < 4; j++) {
|
for (int j = 0; j < 4; j++) {
|
||||||
u[i * 4 + j] = r_tmp->u[i][j];
|
u[i * 4 + j] = r_tmp->u[i][j];
|
||||||
v[i * 4 + j] = r_tmp->v[i][j];
|
v[i * 4 + j] = r_tmp->v[i][j];
|
||||||
ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 16384;
|
ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 16384;
|
||||||
@ -1094,7 +1089,6 @@ static void xyz_to_cube3x2(const V360Context *s,
|
|||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int ewi, ehi;
|
int ewi, ehi;
|
||||||
int i, j;
|
|
||||||
int direction, face;
|
int direction, face;
|
||||||
int u_face, v_face;
|
int u_face, v_face;
|
||||||
|
|
||||||
@ -1118,8 +1112,8 @@ static void xyz_to_cube3x2(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
int new_ui = ui + j;
|
int new_ui = ui + j;
|
||||||
int new_vi = vi + i;
|
int new_vi = vi + i;
|
||||||
int u_shift, v_shift;
|
int u_shift, v_shift;
|
||||||
@ -1238,7 +1232,6 @@ static void xyz_to_cube1x6(const V360Context *s,
|
|||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int ehi;
|
int ehi;
|
||||||
int i, j;
|
|
||||||
int direction, face;
|
int direction, face;
|
||||||
|
|
||||||
xyz_to_cube(s, vec, &uf, &vf, &direction);
|
xyz_to_cube(s, vec, &uf, &vf, &direction);
|
||||||
@ -1258,8 +1251,8 @@ static void xyz_to_cube1x6(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
int new_ui = ui + j;
|
int new_ui = ui + j;
|
||||||
int new_vi = vi + i;
|
int new_vi = vi + i;
|
||||||
int v_shift;
|
int v_shift;
|
||||||
@ -1315,7 +1308,6 @@ static void xyz_to_cube6x1(const V360Context *s,
|
|||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int ewi;
|
int ewi;
|
||||||
int i, j;
|
|
||||||
int direction, face;
|
int direction, face;
|
||||||
|
|
||||||
xyz_to_cube(s, vec, &uf, &vf, &direction);
|
xyz_to_cube(s, vec, &uf, &vf, &direction);
|
||||||
@ -1335,8 +1327,8 @@ static void xyz_to_cube6x1(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
int new_ui = ui + j;
|
int new_ui = ui + j;
|
||||||
int new_vi = vi + i;
|
int new_vi = vi + i;
|
||||||
int u_shift;
|
int u_shift;
|
||||||
@ -1463,7 +1455,6 @@ static void xyz_to_stereographic(const V360Context *s,
|
|||||||
const float y = av_clipf(vec[2] / (1.f - vec[1]), -1.f, 1.f) * s->input_mirror_modifier[1];
|
const float y = av_clipf(vec[2] / (1.f - vec[1]), -1.f, 1.f) * s->input_mirror_modifier[1];
|
||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int i, j;
|
|
||||||
|
|
||||||
uf = (x + 1.f) * width / 2.f;
|
uf = (x + 1.f) * width / 2.f;
|
||||||
vf = (y + 1.f) * height / 2.f;
|
vf = (y + 1.f) * height / 2.f;
|
||||||
@ -1473,8 +1464,8 @@ static void xyz_to_stereographic(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
us[i + 1][j + 1] = av_clip(ui + j, 0, width - 1);
|
us[i + 1][j + 1] = av_clip(ui + j, 0, width - 1);
|
||||||
vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1);
|
vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1);
|
||||||
}
|
}
|
||||||
@ -1501,7 +1492,6 @@ static void xyz_to_equirect(const V360Context *s,
|
|||||||
const float theta = asinf(-vec[1]) * s->input_mirror_modifier[1];
|
const float theta = asinf(-vec[1]) * s->input_mirror_modifier[1];
|
||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int i, j;
|
|
||||||
|
|
||||||
uf = (phi / M_PI + 1.f) * width / 2.f;
|
uf = (phi / M_PI + 1.f) * width / 2.f;
|
||||||
vf = (theta / M_PI_2 + 1.f) * height / 2.f;
|
vf = (theta / M_PI_2 + 1.f) * height / 2.f;
|
||||||
@ -1511,8 +1501,8 @@ static void xyz_to_equirect(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
us[i + 1][j + 1] = mod(ui + j, width);
|
us[i + 1][j + 1] = mod(ui + j, width);
|
||||||
vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1);
|
vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1);
|
||||||
}
|
}
|
||||||
@ -1730,7 +1720,6 @@ static void xyz_to_eac(const V360Context *s,
|
|||||||
|
|
||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int i, j;
|
|
||||||
int direction, face;
|
int direction, face;
|
||||||
int u_face, v_face;
|
int u_face, v_face;
|
||||||
|
|
||||||
@ -1756,8 +1745,8 @@ static void xyz_to_eac(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
us[i + 1][j + 1] = av_clip(ui + j, 0, width - 1);
|
us[i + 1][j + 1] = av_clip(ui + j, 0, width - 1);
|
||||||
vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1);
|
vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1);
|
||||||
}
|
}
|
||||||
@ -1874,7 +1863,6 @@ static void xyz_to_dfisheye(const V360Context *s,
|
|||||||
|
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int u_shift;
|
int u_shift;
|
||||||
int i, j;
|
|
||||||
|
|
||||||
if (vec[2] >= 0) {
|
if (vec[2] >= 0) {
|
||||||
u_shift = 0;
|
u_shift = 0;
|
||||||
@ -1889,8 +1877,8 @@ static void xyz_to_dfisheye(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
us[i + 1][j + 1] = av_clip(u_shift + ui + j, 0, width - 1);
|
us[i + 1][j + 1] = av_clip(u_shift + ui + j, 0, width - 1);
|
||||||
vs[i + 1][j + 1] = av_clip( vi + i, 0, height - 1);
|
vs[i + 1][j + 1] = av_clip( vi + i, 0, height - 1);
|
||||||
}
|
}
|
||||||
@ -1993,7 +1981,6 @@ static void xyz_to_barrel(const V360Context *s,
|
|||||||
int u_shift, v_shift;
|
int u_shift, v_shift;
|
||||||
float uf, vf;
|
float uf, vf;
|
||||||
int ui, vi;
|
int ui, vi;
|
||||||
int i, j;
|
|
||||||
|
|
||||||
if (theta > -theta_range && theta < theta_range) {
|
if (theta > -theta_range && theta < theta_range) {
|
||||||
ew = 4 * width / 5;
|
ew = 4 * width / 5;
|
||||||
@ -2033,8 +2020,8 @@ static void xyz_to_barrel(const V360Context *s,
|
|||||||
*du = uf - ui;
|
*du = uf - ui;
|
||||||
*dv = vf - vi;
|
*dv = vf - vi;
|
||||||
|
|
||||||
for (i = -1; i < 3; i++) {
|
for (int i = -1; i < 3; i++) {
|
||||||
for (j = -1; j < 3; j++) {
|
for (int j = -1; j < 3; j++) {
|
||||||
us[i + 1][j + 1] = u_shift + av_clip(ui + j, 0, ew - 1);
|
us[i + 1][j + 1] = u_shift + av_clip(ui + j, 0, ew - 1);
|
||||||
vs[i + 1][j + 1] = v_shift + av_clip(vi + i, 0, eh - 1);
|
vs[i + 1][j + 1] = v_shift + av_clip(vi + i, 0, eh - 1);
|
||||||
}
|
}
|
||||||
@ -2165,7 +2152,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
int sizeof_ker;
|
int sizeof_ker;
|
||||||
int elements;
|
int elements;
|
||||||
int err;
|
int err;
|
||||||
int p, h, w;
|
int h, w;
|
||||||
float hf, wf;
|
float hf, wf;
|
||||||
float output_mirror_modifier[3];
|
float output_mirror_modifier[3];
|
||||||
void (*in_transform)(const V360Context *s,
|
void (*in_transform)(const V360Context *s,
|
||||||
@ -2416,7 +2403,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
set_mirror_modifier(s->h_flip, s->v_flip, s->d_flip, output_mirror_modifier);
|
set_mirror_modifier(s->h_flip, s->v_flip, s->d_flip, output_mirror_modifier);
|
||||||
|
|
||||||
// Calculate remap data
|
// Calculate remap data
|
||||||
for (p = 0; p < s->nb_allocated; p++) {
|
for (int p = 0; p < s->nb_allocated; p++) {
|
||||||
const int width = s->planewidth[p];
|
const int width = s->planewidth[p];
|
||||||
const int uv_linesize = s->uv_linesize[p];
|
const int uv_linesize = s->uv_linesize[p];
|
||||||
const int height = s->planeheight[p];
|
const int height = s->planeheight[p];
|
||||||
@ -2425,10 +2412,9 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
float du, dv;
|
float du, dv;
|
||||||
float vec[3];
|
float vec[3];
|
||||||
XYRemap r_tmp;
|
XYRemap r_tmp;
|
||||||
int i, j;
|
|
||||||
|
|
||||||
for (i = 0; i < width; i++) {
|
for (int i = 0; i < width; i++) {
|
||||||
for (j = 0; j < height; j++) {
|
for (int j = 0; j < height; j++) {
|
||||||
uint16_t *u = s->u[p] + (j * uv_linesize + i) * elements;
|
uint16_t *u = s->u[p] + (j * uv_linesize + i) * elements;
|
||||||
uint16_t *v = s->v[p] + (j * uv_linesize + i) * elements;
|
uint16_t *v = s->v[p] + (j * uv_linesize + i) * elements;
|
||||||
int16_t *ker = s->ker[p] + (j * uv_linesize + i) * elements;
|
int16_t *ker = s->ker[p] + (j * uv_linesize + i) * elements;
|
||||||
@ -2482,9 +2468,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
|
|||||||
static av_cold void uninit(AVFilterContext *ctx)
|
static av_cold void uninit(AVFilterContext *ctx)
|
||||||
{
|
{
|
||||||
V360Context *s = ctx->priv;
|
V360Context *s = ctx->priv;
|
||||||
int p;
|
|
||||||
|
|
||||||
for (p = 0; p < s->nb_allocated; p++) {
|
for (int p = 0; p < s->nb_allocated; p++) {
|
||||||
av_freep(&s->u[p]);
|
av_freep(&s->u[p]);
|
||||||
av_freep(&s->v[p]);
|
av_freep(&s->v[p]);
|
||||||
av_freep(&s->ker[p]);
|
av_freep(&s->ker[p]);
|
||||||
|
Reference in New Issue
Block a user