annotate TOOLS/edgedetect.fp @ 24678:9aab9d7b51f0

Fix missing subtitles after seeking back Subtitle packets that had been demuxed but whose start time had not yet been reached were left in the demuxer stream after seeking. When using the default (non-libass) subtitle rendering this could block subtitles from appearing as long as the playback position stayed below the original one before seek. External subtitle files were not affected. Fixed by making seek code free all packets from the subtitle stream.
author uau
date Thu, 04 Oct 2007 02:35:34 +0000
parents 69785427a61e
children cae067bfc231
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
1 !!ARBfp1.0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
2 # Custom YUV->RGB conversion program for MPlayer's -vo gl.
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
3 # Copyleft (C) Reimar Döffinger, 2005
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
4 # Licensed under the GNU GPL v2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
5 # Usage: mplayer -vo gl:yuv=4:customprog=edgedetect.fp
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
6 # This is some custom edge-detect like effect.
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
7 # Try adjusting the gamma!
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
8 # program.env[0].xy contains the size of one source texel
19018
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
9 TEMP res, yuv, pos, tmp, sizes;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
10 SWZ sizes, program.env[0], x, y, 0, 0;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
11 TEX yuv.r, fragment.texcoord[0], texture[0], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
12 ADD pos, fragment.texcoord[0].xyxy, sizes.xwwy; # texels to the right and below
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
13 TEX tmp.r, pos.xyxy, texture[0], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
14 MAD yuv.r, yuv.rrrr, {4}, -tmp.rrrr;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
15 TEX tmp.r, pos.zwzw, texture[0], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
16 SUB yuv.r, yuv.rrrr, tmp.rrrr;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
17 SUB pos, fragment.texcoord[0].xyxy, sizes.xwwy; # texels to the left and above
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
18 TEX tmp.r, pos.xyxy, texture[0], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
19 SUB yuv.r, yuv.rrrr, tmp.rrrr;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
20 TEX tmp.r, pos.zwzw, texture[0], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
21 SUB yuv.r, yuv.rrrr, tmp.rrrr;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
22 TEX yuv.g, fragment.texcoord[1], texture[1], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
23 TEX yuv.b, fragment.texcoord[2], texture[2], 2D;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
24 # now do the normal YUV -> RGB conversion but include effect strength
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
25 # multiplication by 2 and 0.5 offset
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
26 MAD res, yuv.rrrr, {2.328, 2.328, 2.328, 0}, {-0.37416, 1.03133, -0.58599, 0.125};
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
27 MAD res.rgb, yuv.gggg, {0, -0.391, 2.018, 0}, res;
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
28 MAD res.rgb, yuv.bbbb, {1.596, -0.813, 0, 0}, res;
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
29 # do gamma texture lookup
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
30 TEX res.r, res.raaa, texture[3], 2D;
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
31 ADD res.a, res.a, 0.25;
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
32 TEX res.g, res.gaaa, texture[3], 2D;
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
33 ADD res.a, res.a, 0.25;
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
34 TEX res.b, res.baaa, texture[3], 2D;
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
35 # move res into result, this allows easily commenting out some parts.
19018
69785427a61e Fix for changed env parameter contents and improve speed.
reimar
parents: 16488
diff changeset
36 MOV result.color, res;
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents:
diff changeset
37 END