提交 f0d8005e 编写于 作者: P Paul B Mahol

avfilter/vf_v360: add asserts to guard against invalid conditions

上级 32dd429b
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
* 5) Remap input frame to output frame using precalculated data * 5) Remap input frame to output frame using precalculated data
*/ */
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h" #include "libavutil/imgutils.h"
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
...@@ -696,6 +697,8 @@ static inline void rotate_cube_face(float *uf, float *vf, int rotation) ...@@ -696,6 +697,8 @@ static inline void rotate_cube_face(float *uf, float *vf, int rotation)
*uf = *vf; *uf = *vf;
*vf = tmp; *vf = tmp;
break; break;
default:
av_assert0(0);
} }
} }
...@@ -720,6 +723,8 @@ static inline void rotate_cube_face_inverse(float *uf, float *vf, int rotation) ...@@ -720,6 +723,8 @@ static inline void rotate_cube_face_inverse(float *uf, float *vf, int rotation)
*uf = -*vf; *uf = -*vf;
*vf = tmp; *vf = tmp;
break; break;
default:
av_assert0(0);
} }
} }
...@@ -850,6 +855,8 @@ static void xyz_to_cube(const V360Context *s, ...@@ -850,6 +855,8 @@ static void xyz_to_cube(const V360Context *s,
*uf = -vec[0] / vec[2]; *uf = -vec[0] / vec[2];
*vf = -vec[1] / vec[2]; *vf = -vec[1] / vec[2];
break; break;
default:
av_assert0(0);
} }
face = s->in_cubemap_face_order[*direction]; face = s->in_cubemap_face_order[*direction];
...@@ -929,6 +936,8 @@ static void process_cube_coordinates(const V360Context *s, ...@@ -929,6 +936,8 @@ static void process_cube_coordinates(const V360Context *s,
*new_uf = uf; *new_uf = uf;
*new_vf = vf; *new_vf = vf;
break; break;
default:
av_assert0(0);
} }
} else if (uf >= 1.f) { } else if (uf >= 1.f) {
uf -= 2.f; uf -= 2.f;
...@@ -963,6 +972,8 @@ static void process_cube_coordinates(const V360Context *s, ...@@ -963,6 +972,8 @@ static void process_cube_coordinates(const V360Context *s,
*new_uf = uf; *new_uf = uf;
*new_vf = vf; *new_vf = vf;
break; break;
default:
av_assert0(0);
} }
} else if (vf < -1.f) { } else if (vf < -1.f) {
vf += 2.f; vf += 2.f;
...@@ -997,6 +1008,8 @@ static void process_cube_coordinates(const V360Context *s, ...@@ -997,6 +1008,8 @@ static void process_cube_coordinates(const V360Context *s,
*new_uf = -uf; *new_uf = -uf;
*new_vf = -vf; *new_vf = -vf;
break; break;
default:
av_assert0(0);
} }
} else if (vf >= 1.f) { } else if (vf >= 1.f) {
vf -= 2.f; vf -= 2.f;
...@@ -1031,6 +1044,8 @@ static void process_cube_coordinates(const V360Context *s, ...@@ -1031,6 +1044,8 @@ static void process_cube_coordinates(const V360Context *s,
*new_uf = -uf; *new_uf = -uf;
*new_vf = -vf; *new_vf = -vf;
break; break;
default:
av_assert0(0);
} }
} else { } else {
// Inside cube face // Inside cube face
...@@ -1587,6 +1602,8 @@ static void eac_to_xyz(const V360Context *s, ...@@ -1587,6 +1602,8 @@ static void eac_to_xyz(const V360Context *s,
l_y = 1.f; l_y = 1.f;
l_z = -uf; l_z = -uf;
break; break;
default:
av_assert0(0);
} }
norm = sqrtf(l_x * l_x + l_y * l_y + l_z * l_z); norm = sqrtf(l_x * l_x + l_y * l_y + l_z * l_z);
...@@ -2017,6 +2034,8 @@ static int config_output(AVFilterLink *outlink) ...@@ -2017,6 +2034,8 @@ static int config_output(AVFilterLink *outlink)
sizeof_uv = sizeof(uint16_t) * elements; sizeof_uv = sizeof(uint16_t) * elements;
sizeof_ker = sizeof(uint16_t) * elements; sizeof_ker = sizeof(uint16_t) * elements;
break; break;
default:
av_assert0(0);
} }
switch (s->in) { switch (s->in) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册