X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_transpose.c;h=6affbed0a69fd828eab156d7b4022a5c674bdab0;hb=f183d6555e714e00b41aec728feb8a731826cbdc;hp=dd54947bd96b974cce34c89f3663adbd05e4a331;hpb=bad70b7af6b909691f5389e14eb7d0c03db10af9;p=ffmpeg diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c index dd54947bd96..6affbed0a69 100644 --- a/libavfilter/vf_transpose.c +++ b/libavfilter/vf_transpose.c @@ -40,14 +40,6 @@ #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),