summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/video.c
diff options
context:
space:
mode:
authorNiklas Haas <git@nand.wakku.to>2016-03-07 17:34:47 +0100
committerwm4 <wm4@nowhere>2016-03-07 22:31:15 +0100
commit9f91bc4b75eda0395ed6bc8b3ae3b58e663489a6 (patch)
treed703631b04060567c278b743eda029449e9272b9 /video/out/opengl/video.c
parent5fa45fb5641c95a5dc65faac2087d842333b5425 (diff)
downloadmpv-9f91bc4b75eda0395ed6bc8b3ae3b58e663489a6.tar.bz2
mpv-9f91bc4b75eda0395ed6bc8b3ae3b58e663489a6.tar.xz
vo_opengl: refactor superxbr algorithm
This is a fresh implementation from scratch that carries with it significantly less baggage and verbosity from the previous (ported) version. The actual values for the masks and such were copied from the current code. Behavior and performance should be unaffected. An important difference between the old code and the new code is that the new code always explicitly samples from the first component, rather than being able to process multiple planes at once. Since prescale-luma only affects luma, I deemed this unnecessary. May change in the future, if prescale-chroma ever gets implemented. But prescaling multiple planes would be slow to do this way. (Better would be to generalize it to differently-sized vectors)
Diffstat (limited to 'video/out/opengl/video.c')
-rw-r--r--video/out/opengl/video.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index 358249d2f8..3f0123eb65 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -1395,7 +1395,8 @@ static void pass_prescale_luma(struct gl_video *p, struct img_tex *tex,
switch(p->opts.prescale_luma) {
case 1:
- pass_superxbr(p->sc, planes, id, step, tex->multiplier,
+ assert(planes == 1);
+ pass_superxbr(p->sc, id, step, tex->multiplier,
p->opts.superxbr_opts, &step_transform);
break;
case 2: