37 #define randomize_buffers(buf0, buf1, size) \
39 static_assert(sizeof(buf0[0]) == 1 && sizeof(buf1[0]) == 1, \
40 "Pointer arithmetic needs to be adapted"); \
41 for (size_t k = 0; k < (size & ~3); k += 4) { \
43 AV_WN32A(buf0 + k, r); \
44 AV_WN32A(buf1 + k, r); \
46 for (size_t k = size & ~3; k < size; ++k) \
47 buf0[k] = buf1[k] = rnd(); \
58 int *
const bounding_values = bounding_values_array + 127;
63 int lines_above, lines_below;
64 int pixels_left, pixels_right;
68 #define TEST(NAME) .name = #NAME, .offset = offsetof(VP3DSPContext, NAME)
69 {
TEST(v_loop_filter_unaligned), 2, 1, 0, 7, 1, 0 },
70 {
TEST(h_loop_filter_unaligned), 0, 7, 2, 1, 1, 1 },
78 int filter_limit =
rnd() % 128;
83 void (*
loop_filter)(uint8_t *, ptrdiff_t,
int*) = *(
void(**)(uint8_t *, ptrdiff_t,
int*))((
char*)&vp3dsp +
tests[
i].
offset);
86 uint8_t *buf0 =
tests[
i].horizontal ? hor_buf0 : ver_buf0;
87 uint8_t *buf1 =
tests[
i].horizontal ? hor_buf1 : ver_buf1;
106 if (memcmp(buf0, buf1, bufsize))