summaryrefslogtreecommitdiffstats
path: root/TOOLS
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-12-03 22:59:12 +0100
committerwm4 <wm4@nowhere>2014-12-03 23:01:20 +0100
commit185e95ee3d4436e03255759495d783a944e6dfbb (patch)
tree0372a4e7905eba258d0f7d257d963deea7904757 /TOOLS
parent809936fdb93a5375699a7ba4be1e08acdf5e5645 (diff)
downloadmpv-185e95ee3d4436e03255759495d783a944e6dfbb.tar.bz2
mpv-185e95ee3d4436e03255759495d783a944e6dfbb.tar.xz
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.
Diffstat (limited to 'TOOLS')
-rw-r--r--TOOLS/vf_dlopen/Makefile2
-rw-r--r--TOOLS/vf_dlopen/showqscale.c120
2 files changed, 1 insertions, 121 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;
-}