summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authoratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-14 21:29:25 +0000
committeratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-14 21:29:25 +0000
commitdd1dae5c380f5e71204dcda7601dae6b91c65f3b (patch)
tree25060778347a1bab4b4718ee9c090a2b5eed7710 /vidix
parentcf31c8d5148275e304f909d875f840d235759eb5 (diff)
downloadmpv-dd1dae5c380f5e71204dcda7601dae6b91c65f3b.tar.bz2
mpv-dd1dae5c380f5e71204dcda7601dae6b91c65f3b.tar.xz
Fix colorkey for xvidix, tested on Riva128 4MB X@15/16/24bpp (aka 15/15/32 in nvidia_vid)
This is very cool, using mplayer -vo xvidix -ao oss -framedrop -dr movie.avi I can play 640x272 DivX 1MBps on PII 233, 64MB, i440LX, Riva128 4MB AGP, FreeBSD 5.0, XFree 4.2.0, with little framedrop, git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11119 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/nvidia_vid.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/vidix/drivers/nvidia_vid.c b/vidix/drivers/nvidia_vid.c
index 22cf135f40..260ecaa005 100644
--- a/vidix/drivers/nvidia_vid.c
+++ b/vidix/drivers/nvidia_vid.c
@@ -415,18 +415,19 @@ static void rivatv_overlay_colorkey (rivatv_info* info, unsigned int chromakey){
b = chromakey & 0x000000FF;
switch (info->depth) {
case 15:
- key = ((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3));
+ key = ((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3)) | 0x00008000;
break;
- case 16:
- key = ((r >> 3) << 11) | ((g >> 2) << 5) | ((b >> 3));
+ case 16: // XXX unchecked
+ key = ((r >> 3) << 11) | ((g >> 2) << 5) | ((b >> 3)) | 0x00008000;
break;
- case 24:
- key = chromakey & 0x00FFFFFF;
+ case 24: // XXX unchecked, maybe swap order of masking
+ key = (chromakey & 0x00FFFFFF) | 0x00800000;
break;
case 32:
- key = chromakey;
+ key = chromakey | 0x80000000;
break;
}
+ //printf("[nvidia_vid] depth=%d %08X \n", info->depth, chromakey);
if(!info->use_colorkey)return;
switch (info->chip.arch) {
case NV_ARCH_10: