]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/v360.h
avfilter/vf_ssim: remove unnecessary check
[ffmpeg] / libavfilter / v360.h
index 7fbbecf691c6458f34660045b5408bb026285115..87770664a359e801073cddef528b08635de0ec84 100644 (file)
@@ -53,6 +53,7 @@ enum Projections {
     HEQUIRECTANGULAR,
     EQUISOLID,
     ORTHOGRAPHIC,
+    OCTAHEDRON,
     NB_PROJECTIONS,
 };
 
@@ -64,6 +65,7 @@ enum InterpMethod {
     LANCZOS,
     SPLINE16,
     GAUSSIAN,
+    MITCHELL,
     NB_INTERP_METHODS,
 };
 
@@ -108,6 +110,12 @@ typedef struct XYRemap {
     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;
@@ -142,9 +150,8 @@ typedef struct V360Context {
     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;
@@ -163,10 +170,9 @@ typedef struct V360Context {
     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,