Mercurial > mplayer.hg
comparison vidix/drivers/nvidia_vid.c @ 11118:344052fdfc4a
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,
author | atmos4 |
---|---|
date | Tue, 14 Oct 2003 21:29:25 +0000 |
parents | 7f659e7b7ce1 |
children | 8ac4d769a1fb |
comparison
equal
deleted
inserted
replaced
11117:9a6fbdb320a4 | 11118:344052fdfc4a |
---|---|
413 r = (chromakey & 0x00FF0000) >> 16; | 413 r = (chromakey & 0x00FF0000) >> 16; |
414 g = (chromakey & 0x0000FF00) >> 8; | 414 g = (chromakey & 0x0000FF00) >> 8; |
415 b = chromakey & 0x000000FF; | 415 b = chromakey & 0x000000FF; |
416 switch (info->depth) { | 416 switch (info->depth) { |
417 case 15: | 417 case 15: |
418 key = ((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3)); | 418 key = ((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3)) | 0x00008000; |
419 break; | 419 break; |
420 case 16: | 420 case 16: // XXX unchecked |
421 key = ((r >> 3) << 11) | ((g >> 2) << 5) | ((b >> 3)); | 421 key = ((r >> 3) << 11) | ((g >> 2) << 5) | ((b >> 3)) | 0x00008000; |
422 break; | 422 break; |
423 case 24: | 423 case 24: // XXX unchecked, maybe swap order of masking |
424 key = chromakey & 0x00FFFFFF; | 424 key = (chromakey & 0x00FFFFFF) | 0x00800000; |
425 break; | 425 break; |
426 case 32: | 426 case 32: |
427 key = chromakey; | 427 key = chromakey | 0x80000000; |
428 break; | 428 break; |
429 } | 429 } |
430 //printf("[nvidia_vid] depth=%d %08X \n", info->depth, chromakey); | |
430 if(!info->use_colorkey)return; | 431 if(!info->use_colorkey)return; |
431 switch (info->chip.arch) { | 432 switch (info->chip.arch) { |
432 case NV_ARCH_10: | 433 case NV_ARCH_10: |
433 case NV_ARCH_20: | 434 case NV_ARCH_20: |
434 case NV_ARCH_30: | 435 case NV_ARCH_30: |