annotate TOOLS/edgeenh.fp @ 36659:f41b65ac7e81

configure: disable internal libmpeg2 by default. While the last tests showed that it can be slightly faster in some cases, the difference should not be relevant to the majority of users. In addition, the code is of not particularly high quality, so I consider it better/safer to have it disabled by default. Removing the code after the next release is a possible future action.
author reimar
date Sun, 26 Jan 2014 18:19:31 +0000
parents 7013c4222a19
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25761
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
1 !!ARBfp1.0
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
2 # Custom YUV->RGB conversion program for MPlayer's -vo gl.
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
3 # Copyleft (C) Reimar Döffinger, 2005
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
4 # Licensed under the GNU GPL v2 or later
25770
7013c4222a19 Fix usage example comment
reimar
parents: 25761
diff changeset
5 # Usage: mplayer -vo gl:yuv=4:customprog=edgeenh.fp
25761
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
6 # This is some custom edge-enhancement like effect.
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
7 # Try adjusting the gamma!
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
8 # program.env[0].xy contains the size of one source texel
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
9 PARAM strength = {0.5};
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
10 TEMP res, yuv, pos, tmp, sizes, center;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
11 SWZ sizes, program.env[0], x, y, 0, 0;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
12 TEX center.r, fragment.texcoord[0], texture[0], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
13 ADD pos, fragment.texcoord[0].xyxy, sizes.xwwy; # texels to the right and below
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
14 TEX tmp.r, pos.xyxy, texture[0], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
15 MAD yuv.r, center.rrrr, {4}, -tmp.rrrr;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
16 TEX tmp.r, pos.zwzw, texture[0], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
17 SUB yuv.r, yuv.rrrr, tmp.rrrr;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
18 SUB pos, fragment.texcoord[0].xyxy, sizes.xwwy; # texels to the left and above
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
19 TEX tmp.r, pos.xyxy, texture[0], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
20 SUB yuv.r, yuv.rrrr, tmp.rrrr;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
21 TEX tmp.r, pos.zwzw, texture[0], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
22 SUB yuv.r, yuv.rrrr, tmp.rrrr;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
23 MAD yuv.r, yuv.rrrr, strength, center.rrrr;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
24 TEX yuv.g, fragment.texcoord[1], texture[1], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
25 TEX yuv.b, fragment.texcoord[2], texture[2], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
26 # now do the normal YUV -> RGB conversion
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
27 MAD res, yuv.rrrr, {1.164, 1.164, 1.164, 0}, {-0.87416, 0.53133, -1.08599, 0.125};
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
28 MAD res.rgb, yuv.gggg, {0, -0.391, 2.018, 0}, res;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
29 MAD res.rgb, yuv.bbbb, {1.596, -0.813, 0, 0}, res;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
30 # do gamma texture lookup
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
31 TEX res.r, res.raaa, texture[3], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
32 ADD res.a, res.a, 0.25;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
33 TEX res.g, res.gaaa, texture[3], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
34 ADD res.a, res.a, 0.25;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
35 TEX res.b, res.baaa, texture[3], 2D;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
36 # move res into result, this allows easily commenting out some parts.
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
37 MOV result.color, res;
8bb92a143435 Add the edge-enhancement filter based on edgedetect I had lying around.
reimar
parents:
diff changeset
38 END