]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_transpose.c
avfilter: Constify all AVFilters
[ffmpeg] / libavfilter / vf_transpose.c
index dd54947bd96b974cce34c89f3663adbd05e4a331..6affbed0a69fd828eab156d7b4022a5c674bdab0 100644 (file)
 #include "video.h"
 #include "transpose.h"
 
-typedef struct TransVtable {
-    void (*transpose_8x8)(uint8_t *src, ptrdiff_t src_linesize,
-                          uint8_t *dst, ptrdiff_t dst_linesize);
-    void (*transpose_block)(uint8_t *src, ptrdiff_t src_linesize,
-                            uint8_t *dst, ptrdiff_t dst_linesize,
-                            int w, int h);
-} TransVtable;
-
 typedef struct TransContext {
     const AVClass *class;
     int hsub, vsub;
@@ -243,6 +235,14 @@ static int config_props_output(AVFilterLink *outlink)
         }
     }
 
+    if (ARCH_X86) {
+        for (int i = 0; i < 4; i++) {
+            TransVtable *v = &s->vtables[i];
+
+            ff_transpose_init_x86(v, s->pixsteps[i]);
+        }
+    }
+
     av_log(ctx, AV_LOG_VERBOSE,
            "w:%d h:%d dir:%d -> w:%d h:%d rotation:%s vflip:%d\n",
            inlink->w, inlink->h, s->dir, outlink->w, outlink->h,
@@ -397,7 +397,7 @@ static const AVFilterPad avfilter_vf_transpose_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_transpose = {
+const AVFilter ff_vf_transpose = {
     .name          = "transpose",
     .description   = NULL_IF_CONFIG_SMALL("Transpose input video."),
     .priv_size     = sizeof(TransContext),