]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/v360.h
avfilter/vf_ssim: remove unnecessary check
[ffmpeg] / libavfilter / v360.h
index e1f131c9a8178bfdffa408a18cea109e49ea0210..87770664a359e801073cddef528b08635de0ec84 100644 (file)
@@ -49,16 +49,23 @@ enum Projections {
     PERSPECTIVE,
     TETRAHEDRON,
     BARREL_SPLIT,
+    TSPYRAMID,
+    HEQUIRECTANGULAR,
+    EQUISOLID,
+    ORTHOGRAPHIC,
+    OCTAHEDRON,
     NB_PROJECTIONS,
 };
 
 enum InterpMethod {
     NEAREST,
     BILINEAR,
+    LAGRANGE9,
     BICUBIC,
     LANCZOS,
     SPLINE16,
     GAUSSIAN,
+    MITCHELL,
     NB_INTERP_METHODS,
 };
 
@@ -103,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;
@@ -137,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;
@@ -158,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,