LANCZOS,
SPLINE16,
GAUSSIAN,
+ MITCHELL,
NB_INTERP_METHODS,
};
float ker[4][4];
} XYRemap;
+typedef struct SliceXYRemap {
+ int16_t *u[2], *v[2];
+ int16_t *ker[2];
+ uint8_t *mask;
+} SliceXYRemap;
+
typedef struct V360Context {
const AVClass *class;
int in, out;
float flat_range[2];
float iflat_range[2];
- float rot_mat[3][3];
+ float rot_quaternion[2][4];
- float input_mirror_modifier[2];
float output_mirror_modifier[3];
int in_width, in_height;
int elements;
int mask_size;
int max_value;
+ int nb_threads;
- int16_t *u[2], *v[2];
- int16_t *ker[2];
- uint8_t *mask;
+ SliceXYRemap *slice_remap;
unsigned map[4];
int (*in_transform)(const struct V360Context *s,