29#define MAX_BLOCK_SIZE 16
32#define BUF_SIZE ((MAX_BLOCK_SIZE - 1) * MAX_STRIDE + MAX_BLOCK_SIZE)
37#define INPUT_BUF_SIZE (MAX_BLOCK_SIZE * MAX_STRIDE + MAX_BLOCK_SIZE + 1 + (MAX_BLOCK_SIZE - 1))
39#define randomize_buffers(buf0, buf1) \
41 static_assert(sizeof(buf0) == sizeof(buf1), "Incompatible buffers"); \
42 static_assert(!(sizeof(buf0) % 4), "Tail handling needed"); \
43 static_assert(sizeof(buf0[0]) == 1 && sizeof(buf1[0]) == 1, \
44 "Pointer arithmetic needs to be adapted"); \
45 for (size_t k = 0; k < sizeof(buf0); k += 4) { \
47 AV_WN32A(buf0 + k, r); \
48 AV_WN32A(buf1 + k, r); \
64#define TEST(NAME) { .name = #NAME, .offset = offsetof(QpelDSPContext, NAME) }
65 TEST(put_qpel_pixels_tab),
66 TEST(avg_qpel_pixels_tab),
67 TEST(put_no_rnd_qpel_pixels_tab),
75 for (
unsigned j = 0; j < 2; ++j) {
78 for (
unsigned dxy = 0; dxy < 16; ++dxy) {
84 const uint8_t *
src0 = srcbuf0 + src_offset, *
src1 = srcbuf1 + src_offset;
85 uint8_t *dst0 = dstbuf0 + dst_offset, *dst1 = dstbuf1 + dst_offset;
89 dst1 += (blocksize - 1) *
stride;
90 dst0 += (blocksize - 1) *
stride;
102 if (memcmp(srcbuf0, srcbuf1,
sizeof(srcbuf0)) || memcmp(dstbuf0, dstbuf1,
sizeof(dstbuf0)))
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define i(width, name, range_min, range_max)
static const struct @213162273235257122266207155164174051374107224106 func_tab[]
#define declare_func_emms
av_cold void ff_qpeldsp_init(QpelDSPContext *c)
#define AV_CPU_FLAG_MMXEXT
SSE integer functions or AMD MMX ext.
Utility Preprocessor macros.
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
void(* qpel_mc_func)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
#define FF_ARRAY_ELEMS(a)
void checkasm_check_qpeldsp(void)
#define randomize_buffers(buf0, buf1)