Mercurial > mplayer.hg
view TOOLS/emboss.fp @ 17588:79081ba52e00
Move the v{Y,C}CoeffsBank vectors into the SwsContext, filling them in just
once when the scaler is initialized, instead of building them and freeing
them over and over. This gives massive performance improvements.
patch by Alan Curry, pacman*at*TheWorld*dot*com
author | diego |
---|---|
date | Sat, 11 Feb 2006 14:16:10 +0000 |
parents | 3191dcb27a12 |
children | 69785427a61e |
line wrap: on
line source
!!ARBfp1.0 # Custom YUV->RGB conversion program for MPlayer's -vo gl. # Copyleft (C) Reimar Döffinger, 2005 # Licensed under the GNU GPL v2 # Usage: mplayer -vo gl:yuv=4:customprog=emboss.fp # This is an emboss effect. PARAM sizes = program.env[0]; TEMP res, y, u, v, xdiff, ydiff, pos, tmp; TEX y, fragment.texcoord[0], texture[0], 2D; SUB pos, fragment.texcoord[0], sizes.xwww; TEX tmp, pos, texture[0], 2D; SUB xdiff, y, tmp; MAD xdiff, xdiff, {0.5, 0.5, 0.5, 0}, {0.5, 0.5, 0.5, 0}; SUB pos, fragment.texcoord[0], sizes.wyww; TEX tmp, pos, texture[0], 2D; SUB ydiff, y, tmp; MAD res, ydiff, {0.8660, 0.8660, 0.8660, 0}, xdiff; # now do the normal YUV -> RGB conversion MAD res, res, {1.164, 1.164, 1.164, 0}, {-0.87416, 0.53133, -1.08599, 0}; TEX u, fragment.texcoord[1], texture[1], 2D; MAD res, u, {0, -0.391, 2.018, 0}, res; TEX v, fragment.texcoord[2], texture[2], 2D; MAD res, v, {1.596, -0.813, 0, 0}, res; # do gamma texture lookup ADD res.a, res.a, 0.125; TEX res.r, res.raaa, texture[3], 2D; ADD res.a, res.a, 0.25; TEX res.g, res.gaaa, texture[3], 2D; ADD res.a, res.a, 0.25; TEX res.b, res.baaa, texture[3], 2D; # move res into result, this allows easily commenting out some parts. ADD result.color, res, {0, 0, 0, 0}; END