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. 
#define flags(name, subs,...)
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.