MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / main

Function main

libavcodec/tests/motion.c:114–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

112
113
114int main(int argc, char **argv)
115{
116 AVCodecContext *ctx;
117 int c;
118 MECmpContext cctx, mmxctx;
119 int flags[2] = { AV_CPU_FLAG_MMX, AV_CPU_FLAG_MMXEXT };
120 int flags_size = HAVE_MMXEXT ? 2 : 1;
121
122 if (argc > 1) {
123 help();
124 return 1;
125 }
126
127 printf("ffmpeg motion test\n");
128
129 ctx = avcodec_alloc_context3(NULL);
130 if (!ctx) {
131 return 1;
132 }
133
134 ctx->flags |= AV_CODEC_FLAG_BITEXACT;
135 av_force_cpu_flags(0);
136 ff_me_cmp_init(&cctx, ctx);
137 for (c = 0; c < flags_size; c++) {
138 int x;
139 av_force_cpu_flags(flags[c]);
140 ff_me_cmp_init(&mmxctx, ctx);
141
142 for (x = 0; x < 2; x++) {
143 printf("%s for %dx%d pixels\n", c ? "mmx2" : "mmx",
144 x ? 8 : 16, x ? 8 : 16);
145 test_motion("mmx", mmxctx.pix_abs[x][0], cctx.pix_abs[x][0]);
146 test_motion("mmx_x2", mmxctx.pix_abs[x][1], cctx.pix_abs[x][1]);
147 test_motion("mmx_y2", mmxctx.pix_abs[x][2], cctx.pix_abs[x][2]);
148 test_motion("mmx_xy2", mmxctx.pix_abs[x][3], cctx.pix_abs[x][3]);
149 }
150 }
151 av_free(ctx);
152
153 return 0;
154}

Callers

nothing calls this directly

Calls 6

avcodec_alloc_context3Function · 0.85
av_force_cpu_flagsFunction · 0.85
ff_me_cmp_initFunction · 0.85
helpFunction · 0.70
test_motionFunction · 0.70
av_freeFunction · 0.50

Tested by

no test coverage detected