# HG changeset patch # User rfelker # Date 1064720262 0 # Node ID fdcd0d5719127e8ad39ce01577ad698ea3f39f22 # Parent 6d1388df591b2f2e76c5e61d9262afc9caed2049 support for selecting which plane to use for metrics in the pullup core (one of the chroma planes could be used for much lower cpu load at the expense of some accuracy) and turning off verbose mode. diff -r 6d1388df591b -r fdcd0d571912 libmpcodecs/pullup.c --- a/libmpcodecs/pullup.c Sun Sep 28 01:45:54 2003 +0000 +++ b/libmpcodecs/pullup.c Sun Sep 28 03:37:42 2003 +0000 @@ -257,9 +257,10 @@ { unsigned char *a, *b; int x, y; - int xstep = c->bpp[0]; - int ystep = c->stride[0]<<3; - int s = c->stride[0]<<1; /* field stride */ + int mp = c->metric_plane; + int xstep = c->bpp[mp]; + int ystep = c->stride[mp]<<3; + int s = c->stride[mp]<<1; /* field stride */ int w = c->metric_w*xstep; if (!fa->buffer || !fb->buffer) return; @@ -270,8 +271,8 @@ return; } - a = fa->buffer->planes[0] + pa * c->stride[0] + c->metric_offset; - b = fb->buffer->planes[0] + pb * c->stride[0] + c->metric_offset; + a = fa->buffer->planes[mp] + pa * c->stride[mp] + c->metric_offset; + b = fb->buffer->planes[mp] + pb * c->stride[mp] + c->metric_offset; for (y = c->metric_h; y; y--) { for (x = 0; x < w; x += xstep) { @@ -634,12 +635,13 @@ void pullup_init_context(struct pullup_context *c) { + int mp = c->metric_plane; if (c->nbuffers < 10) c->nbuffers = 10; c->buffers = calloc(c->nbuffers, sizeof (struct pullup_buffer)); - c->metric_w = (c->w[0] - (c->junk_left + c->junk_right << 3)) >> 3; - c->metric_h = (c->h[0] - (c->junk_top + c->junk_bottom << 1)) >> 3; - c->metric_offset = c->junk_left*c->bpp[0] + (c->junk_top<<1)*c->stride[0]; + c->metric_w = (c->w[mp] - (c->junk_left + c->junk_right << 3)) >> 3; + c->metric_h = (c->h[mp] - (c->junk_top + c->junk_bottom << 1)) >> 3; + c->metric_offset = c->junk_left*c->bpp[mp] + (c->junk_top<<1)*c->stride[mp]; c->metric_len = c->metric_w * c->metric_h; c->head = make_field_queue(c, 8); diff -r 6d1388df591b -r fdcd0d571912 libmpcodecs/pullup.h --- a/libmpcodecs/pullup.h Sun Sep 28 01:45:54 2003 +0000 +++ b/libmpcodecs/pullup.h Sun Sep 28 03:37:42 2003 +0000 @@ -48,6 +48,7 @@ unsigned int cpu; int junk_left, junk_right, junk_top, junk_bottom; int verbose; + int metric_plane; /* Internal data */ struct pullup_field *first, *last, *head; struct pullup_buffer *buffers; diff -r 6d1388df591b -r fdcd0d571912 libmpcodecs/vf_pullup.c --- a/libmpcodecs/vf_pullup.c Sun Sep 28 01:45:54 2003 +0000 +++ b/libmpcodecs/vf_pullup.c Sun Sep 28 03:37:42 2003 +0000 @@ -51,11 +51,12 @@ c->stride[0] = mpi->width; c->stride[1] = c->stride[2] = mpi->chroma_width; c->background[1] = c->background[2] = 128; + c->metric_plane = 0; } c->junk_left = c->junk_right = 1; c->junk_top = c->junk_bottom = 4; - c->verbose = 1; + c->verbose = 0; if (gCpuCaps.hasMMX) c->cpu |= PULLUP_CPU_MMX; if (gCpuCaps.hasMMX2) c->cpu |= PULLUP_CPU_MMX2;