X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_transpose.c;h=cb49c4a301dc05f400abc319bd8667eb0466420c;hb=cb9dbc60db1847fcb594684b92334da54ea8757e;hp=74a4bbcf58b47ad583f3a29b7ab78bc8c9880aba;hpb=ff44c2d4f483cda53859ce019f3815c69239a7e0;p=ffmpeg diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c index 74a4bbcf58b..cb49c4a301d 100644 --- a/libavfilter/vf_transpose.c +++ b/libavfilter/vf_transpose.c @@ -38,27 +38,7 @@ #include "formats.h" #include "internal.h" #include "video.h" - -typedef enum { - TRANSPOSE_PT_TYPE_NONE, - TRANSPOSE_PT_TYPE_LANDSCAPE, - TRANSPOSE_PT_TYPE_PORTRAIT, -} PassthroughType; - -enum TransposeDir { - TRANSPOSE_CCLOCK_FLIP, - TRANSPOSE_CLOCK, - TRANSPOSE_CCLOCK, - TRANSPOSE_CLOCK_FLIP, -}; - -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; +#include "transpose.h" typedef struct TransContext { const AVClass *class; @@ -255,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,