32 for (
size_t i = 0;
i < (
size & ~3);
i += 4)
46 static const int look_ahead = 17;
48 int i, x, y,
h, d1, d2;
56 const uint8_t *blk2 , ptrdiff_t
stride,
59 if (test_func ==
NULL) {
72 h = 4 + ((
rnd() % (16 + 1 - 4)) & ~1);
74 ptr = img2 + y *
WIDTH + x;
80 printf(
"func: %s, x=%d y=%d h=%d, error: asm=%d c=%d\n",
name, x, y,
h, d1, d2);
85 ptr = img2 + 3 *
WIDTH + 3;
90#define ME_CMP_1D_ARRAYS(XX) \
123 snprintf(buf,
sizeof(buf),
"pix_abs_%d_%d",
i, j);
129#define XX(me_cmp_array) \
130 for (int i = 0; i < FF_ARRAY_ELEMS(me_ctx.me_cmp_array); i++) { \
131 snprintf(buf, sizeof(buf), #me_cmp_array "_%d", i); \
132 test_motion(buf, me_ctx.me_cmp_array[i]); \
133 report(#me_cmp_array); \
#define i(width, name, range_min, range_max)
#define bit(string, value)
common internal and external API header
__device__ int printf(const char *,...)
#define declare_func_emms
#define AV_CODEC_FLAG_BITEXACT
Use only bitexact stuff (except (I)DCT).
#define AV_CPU_FLAG_MMX
standard MMX
av_cold void ff_me_cmp_init(MECmpContext *c, AVCodecContext *avctx)
int(* me_cmp_func)(MPVEncContext *c, const uint8_t *blk1, const uint8_t *blk2, ptrdiff_t stride, int h)
#define LOCAL_ALIGNED_16(t, v,...)
static void fill_random(uint8_t *tab, size_t size)
static void check_motion(void)
#define ME_CMP_1D_ARRAYS(XX)
void checkasm_check_motion(void)
static void test_motion(const char *name, me_cmp_func test_func)
#define FF_ARRAY_ELEMS(a)
main external API structure.
me_cmp_func pix_abs[2][4]
static const struct twinvq_data tab