From 185e95ee3d4436e03255759495d783a944e6dfbb Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 3 Dec 2014 22:59:12 +0100 Subject: video: remove internal QP passing This was required by vf_pp, which was just removed. vf_dlopen has this stuff in its API. This API is considered stable, so the related fields are not removed from it. But the fields are always 0 now, so there's no point in keeping the example program around. vf_pullup.c did some extremely awkward passthrough of this information, but didn't actually use it. --- video/filter/vf_dlopen.c | 48 +++--------------------------------------------- video/filter/vf_pullup.c | 33 --------------------------------- 2 files changed, 3 insertions(+), 78 deletions(-) (limited to 'video/filter') diff --git a/video/filter/vf_dlopen.c b/video/filter/vf_dlopen.c index 118a4911f2..7e546df32f 100644 --- a/video/filter/vf_dlopen.c +++ b/video/filter/vf_dlopen.c @@ -62,10 +62,6 @@ struct vf_priv_s { unsigned int outbufferlen; mp_image_t *outbuffermpi; - // qscale buffer - unsigned char *qbuffer; - size_t qbuffersize; - unsigned int outfmt; int argc; @@ -182,55 +178,17 @@ static void uninit(struct vf_instance *vf) DLLClose(vf->priv->dll); vf->priv->dll = NULL; } - if (vf->priv->qbuffer) { - free(vf->priv->qbuffer); - vf->priv->qbuffer = NULL; - } -} - -static int norm_qscale(int qscale, int type) -{ - switch (type) { - case 0: // MPEG-1 - return qscale; - case 1: // MPEG-2 - return qscale >> 1; - case 2: // H264 - return qscale >> 2; - case 3: // VP56 - return (63 - qscale + 2) >> 2; - } - return qscale; } static int filter(struct vf_instance *vf, struct mp_image *mpi) { - int i, k; - if (!mpi) return 0; set_imgprop(&vf->priv->filter.inpic, mpi); - if (mpi->qscale) { - if (mpi->qscale_type != 0) { - k = mpi->qstride * ((mpi->h + 15) >> 4); - if (vf->priv->qbuffersize != k) { - vf->priv->qbuffer = realloc(vf->priv->qbuffer, k); - vf->priv->qbuffersize = k; - } - for (i = 0; i < k; ++i) - vf->priv->qbuffer[i] = norm_qscale(mpi->qscale[i], - mpi->qscale_type); - vf->priv->filter.inpic_qscale = vf->priv->qbuffer; - } else - vf->priv->filter.inpic_qscale = mpi->qscale; - vf->priv->filter.inpic_qscalestride = mpi->qstride; - vf->priv->filter.inpic_qscaleshift = 4; - } else { - vf->priv->filter.inpic_qscale = NULL; - vf->priv->filter.inpic_qscalestride = 0; - vf->priv->filter.inpic_qscaleshift = 0; - } + vf->priv->filter.inpic_qscale = NULL; + vf->priv->filter.inpic_qscalestride = 0; + vf->priv->filter.inpic_qscaleshift = 0; vf->priv->filter.inpic.pts = mpi->pts; struct mp_image *out[FILTER_MAX_OUTCNT] = {0}; diff --git a/video/filter/vf_pullup.c b/video/filter/vf_pullup.c index 2d131842e7..763783dc9e 100644 --- a/video/filter/vf_pullup.c +++ b/video/filter/vf_pullup.c @@ -40,7 +40,6 @@ struct vf_priv_s { struct pullup_context *ctx; int init; int fakecount; - char *qbuf; double lastpts; int junk_left, junk_right, junk_top, junk_bottom; int strict_breaks, metric_plane; @@ -51,8 +50,6 @@ static void reset(struct vf_instance *vf) { if (vf->priv->ctx) pullup_free_context(vf->priv->ctx); - free(vf->priv->qbuf); - vf->priv->qbuf = NULL; vf->priv->init = 0; struct pullup_context *c; vf->priv->ctx = c = pullup_alloc_context(); @@ -87,7 +84,6 @@ static void init_pullup(struct vf_instance *vf, mp_image_t *mpi) pullup_init_context(c); vf->priv->init = 1; - vf->priv->qbuf = malloc(c->w[3]); } static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi) @@ -96,7 +92,6 @@ static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi) struct pullup_buffer *b; struct pullup_frame *f; int p; - int i; double pts = mpi->pts; struct mp_image *dmpi = NULL; @@ -119,11 +114,6 @@ static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi) mpi->chroma_width, mpi->chroma_height, c->stride[2], mpi->stride[2]); } - if (mpi->qscale) { - memcpy(b->planes[3], mpi->qscale, c->w[3]); - memcpy(b->planes[3]+c->w[3], mpi->qscale, c->w[3]); - } - p = mpi->fields & MP_IMGFIELD_TOP_FIRST ? 0 : (mpi->fields & MP_IMGFIELD_ORDERED ? 1 : 0); @@ -178,23 +168,6 @@ static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi) } } -#if 0 - /* Average qscale tables from both frames. */ - if (mpi->qscale) { - for (i=0; iw[3]; i++) { - vf->priv->qbuf[i] = (f->ofields[0]->planes[3][i] - + f->ofields[1]->planes[3][i+c->w[3]])>>1; - } - } -#else - /* Take worst of qscale tables from both frames. */ - if (mpi->qscale) { - for (i=0; iw[3]; i++) { - vf->priv->qbuf[i] = MAX(f->ofields[0]->planes[3][i], f->ofields[1]->planes[3][i+c->w[3]]); - } - } -#endif - /* If the frame isn't already exportable... */ if (!f->buffer) pullup_pack_frame(c, f); @@ -222,12 +195,6 @@ static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi) dmpi->pts = f->pts; - // Warning: entirely bogus memory management of qscale - if (mpi->qscale) { - dmpi->qscale = vf->priv->qbuf; - dmpi->qstride = mpi->qstride; - dmpi->qscale_type = mpi->qscale_type; - } pullup_release_frame(f); skip: -- cgit v1.2.3