58 printf(
"motion-test [-h]\n"
59 "test motion implementations\n");
72 printf(
"testing '%s'\n", name);
75 for(it=0;it<20;it++) {
80 for(y=0;y<HEIGHT-17;y++) {
81 for(x=0;x<
WIDTH-17;x++) {
82 ptr =
img2 + y * WIDTH + x;
83 d1 = test_func(
NULL,
img1, ptr, WIDTH, 8);
84 d2 = ref_func(
NULL,
img1, ptr, WIDTH, 8);
86 printf(
"error: mmx=%d c=%d\n", d1, d2);
98 for(x=0;x<
WIDTH-17;x++) {
99 ptr =
img2 + y * WIDTH + x;
100 d1 += test_func(
NULL,
img1, ptr, WIDTH, 8);
108 printf(
" %0.0f kop/s\n",
110 (
double)(ti / 1000.0));
114 int main(
int argc,
char **argv)
120 int flags_size = HAVE_MMXEXT ? 2 : 1;
127 printf(
"ffmpeg motion test\n");
132 memset(&cctx, 0,
sizeof(cctx));
134 for (c = 0; c < flags_size; c++) {
137 memset(&mmxctx, 0,
sizeof(mmxctx));
140 for (x = 0; x < 2; x++) {
141 printf(
"%s for %dx%d pixels\n", c ?
"mmx2" :
"mmx",
142 x ? 8 : 16, x ? 8 : 16);
av_cold void ff_me_cmp_init(MECmpContext *c, AVCodecContext *avctx)
static void fill_random(uint8_t *tab, int size)
memory handling functions
static uint8_t img2[WIDTH *HEIGHT]
static uint8_t img1[WIDTH *HEIGHT]
#define AV_CPU_FLAG_MMXEXT
SSE integer functions or AMD MMX ext.
int flags
AV_CODEC_FLAG_*.
me_cmp_func pix_abs[2][4]
common internal API header
#define AV_CODEC_FLAG_BITEXACT
Use only bitexact stuff (except (I)DCT).
AVCodecContext * avcodec_alloc_context3(const AVCodec *codec)
Allocate an AVCodecContext and set its fields to default values.
int(* me_cmp_func)(struct MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, ptrdiff_t stride, int h)
main external API structure.
#define AV_CPU_FLAG_MMX
standard MMX
static unsigned int av_lfg_get(AVLFG *c)
Get the next random unsigned 32-bit number using an ALFG.
static void test_motion(const char *name, me_cmp_func test_func, me_cmp_func ref_func)
av_cold void av_lfg_init(AVLFG *c, unsigned int seed)
int64_t av_gettime_relative(void)
Get the current time in microseconds since some unspecified starting point.
int main(int argc, char **argv)
static const struct twinvq_data tab
void av_force_cpu_flags(int arg)
Disables cpu detection and forces the specified flags.