From 9f91bc4b75eda0395ed6bc8b3ae3b58e663489a6 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Mon, 7 Mar 2016 17:34:47 +0100 Subject: 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) --- video/out/opengl/video.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'video/out/opengl/video.c') 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: -- cgit v1.2.3