summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TOOLS/vf_dlopen/Makefile2
-rw-r--r--TOOLS/vf_dlopen/showqscale.c120
-rwxr-xr-xold-configure6
-rw-r--r--video/filter/vf_dlopen.c48
-rw-r--r--video/filter/vf_pullup.c33
5 files changed, 4 insertions, 205 deletions
diff --git a/TOOLS/vf_dlopen/Makefile b/TOOLS/vf_dlopen/Makefile
index 8057676d57..c6d03cfd2b 100644
--- a/TOOLS/vf_dlopen/Makefile
+++ b/TOOLS/vf_dlopen/Makefile
@@ -19,7 +19,7 @@
# 02110-1301 USA
#
-FILTERS = showqscale telecine tile rectangle framestep ildetect
+FILTERS = telecine tile rectangle framestep ildetect
COMMON = filterutils.o
OBJECTS = $(patsubst %,%.o,$(FILTERS)) $(COMMON)
diff --git a/TOOLS/vf_dlopen/showqscale.c b/TOOLS/vf_dlopen/showqscale.c
deleted file mode 100644
index 071971eeec..0000000000
--- a/TOOLS/vf_dlopen/showqscale.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2012 Rudolf Polzer <divVerent@xonotic.org>
- *
- * This file is part of mpv's vf_dlopen examples.
- *
- * mpv's vf_dlopen examples are free software; you can redistribute them and/or
- * modify them under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of the
- * License, or (at your option) any later version.
- *
- * mpv's vf_dlopen examples are distributed in the hope that they will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
- * General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with mpv's vf_dlopen examples; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "vf_dlopen.h"
-
-/*
- * qscale visualizer
- *
- * usage: --vf=dlopen=/path/to/showqscale.so
- *
- * uses reddish colors for high QPs, and greenish colors for low QPs
- */
-
-#define PLANE_Y 0
-#define PLANE_U 1
-#define PLANE_V 2
-
-static int qs_put_image(struct vf_dlopen_context *ctx)
-{
- unsigned int x, y, p;
-
- assert(ctx->inpic.planes == ctx->outpic[0].planes);
-
- for (p = 0; p < ctx->outpic[0].planes; ++p) {
- assert(ctx->inpic.planewidth[p] == ctx->outpic[0].planewidth[p]);
- assert(ctx->inpic.planeheight[p] == ctx->outpic[0].planeheight[p]);
- if ((p == PLANE_U || p == PLANE_V) && ctx->inpic_qscale)
- continue;
-#if 0
- // copy as is
- for (y = 0; y < ctx->outpic[0].planeheight[p]; ++y)
- memcpy(
- &ctx->outpic[0].plane[p][ctx->outpic[0].planestride[p] * y],
- &inpic[ctx->outpic[0].planeofs[p] + ctx->inpic.planestride[p] * y],
- ctx->outpic[0].planewidth[p]
- );
-#else
- // reduce contrast
- for (y = 0; y < ctx->outpic[0].planeheight[p]; ++y)
- for (x = 0; x < ctx->outpic[0].planewidth[p]; ++x)
- ctx->outpic[0].plane[p][ctx->outpic[0].planestride[p] * y + x] =
- 0x20 + ((ctx->inpic.plane[p][ctx->inpic.planestride[p] * y + x] * 3) >> 2);
-#endif
- }
-
- if (ctx->inpic_qscale) {
- int qmin = 255;
- int qmax = -255;
-
- // clear U plane
- p = PLANE_U;
- for (y = 0; y < ctx->outpic[0].planeheight[p]; ++y)
- memset(
- &ctx->outpic[0].plane[p][ctx->outpic[0].planestride[p] * y],
- 0x80,
- ctx->outpic[0].planewidth[p]
- );
-
- // replace V by the qp (0 = green, 12 = red)
- p = PLANE_V;
- for (y = 0; y < ctx->outpic[0].planeheight[p]; ++y)
- for (x = 0; x < ctx->outpic[0].planewidth[p]; ++x) {
- int q = ctx->inpic_qscale[
- (x >> (ctx->inpic_qscaleshift - ctx->inpic.planexshift[p])) +
- (y >> (ctx->inpic_qscaleshift - ctx->inpic.planeyshift[p])) * ctx->inpic_qscalestride];
- if (q < qmin)
- qmin = q;
- if (q > qmax)
- qmax = q;
- int v = 128 + 21 * (q - 6); // range: 0 = green, 12 = red
- if (v < 0)
- v = 0;
- if (v > 255)
- v = 255;
- ctx->outpic[0].plane[p][ctx->outpic[0].planestride[p] * y + x] = v;
- }
-
- // printf("qscale range: %d .. %d\n", qmin, qmax);
- }
-
- ctx->outpic[0].pts = ctx->inpic.pts;
- return 1;
-}
-
-int vf_dlopen_getcontext(struct vf_dlopen_context *ctx, int argc, const char **argv)
-{
- VF_DLOPEN_CHECK_VERSION(ctx);
- (void) argc;
- (void) argv;
- static struct vf_dlopen_formatpair map[] = {
- { "yuv420p", "yuv420p" },
- { NULL, NULL }
- };
- ctx->format_mapping = map;
- ctx->put_image = qs_put_image;
- return 1;
-}
diff --git a/old-configure b/old-configure
index 91f83da2f9..6d00ff4946 100755
--- a/old-configure
+++ b/old-configure
@@ -821,12 +821,6 @@ api_statement_check \
'enum AVFrameSideDataType type = AV_FRAME_DATA_SKIP_SAMPLES'
api_statement_check \
- "libavutil QP API" \
- HAVE_AVUTIL_QP_API \
- libavutil/frame.h \
- 'av_frame_get_qp_table(NULL, NULL, NULL)'
-
-api_statement_check \
"libavcodec av_vdpau_alloc_context()" \
HAVE_AVCODEC_VDPAU_ALLOC_CONTEXT \
libavcodec/vdpau.h \
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; i<c->w[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; i<c->w[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: