avfilter/vf_transpose: add x86 SIMD

This commit is contained in:
Paul B Mahol 2019-10-21 16:43:26 +02:00
parent f7f4691f9f
commit ccd9bca15a
5 changed files with 157 additions and 8 deletions

View file

@ -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,