Go to the documentation of this file.
37 #define randomize_buffers(size) \
40 for (i = 0; i < size; i++) { \
42 AV_WN16A(buf0 + i, r); \
43 AV_WN16A(buf1 + i, r); \
47 #define check_clear(func, size) \
49 if (check_func(h.func, "blockdsp." #func)) { \
50 declare_func(void, int16_t *block); \
51 randomize_buffers(size); \
54 if (memcmp(buf0, buf1, sizeof(*buf0) * size)) \
62 {
"fill_block_tab[0]", 16},
63 {
"fill_block_tab[1]", 8},
69 int n =
tests[t].size;
71 ptrdiff_t line_size,
int h);
77 if (memcmp(buf0, buf1,
sizeof(*buf0) * n * n))
void checkasm_check_blockdsp(void)
#define check_func(func,...)
#define FF_ARRAY_ELEMS(a)
av_cold void ff_blockdsp_init(BlockDSPContext *c)
#define LOCAL_ALIGNED_32(t, v,...)
static void check_fill(BlockDSPContext *h)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
#define randomize_buffers(size)
#define check_clear(func, size)
static void test(const char *pattern, const char *host)
#define declare_func(ret,...)
The exact code depends on how similar the blocks are and how related they are to the block