avfilter/vf_transpose: add x86 SIMD
This commit is contained in:
parent
f7f4691f9f
commit
ccd9bca15a
5 changed files with 157 additions and 8 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue