[Mplayer-cvslog] CVS: main/libvo video_out.c,1.76,1.77 video_out.h,1.52,1.53 vo_xmga.c,1.84,1.85 vo_xover.c,1.4,1.5 vo_xvidix.c,1.61,1.62
Alex Beregszaszi
alex at mplayerhq.hu
Fri Oct 3 20:13:54 CEST 2003
Update of /cvsroot/mplayer/main/libvo
In directory mail:/var/tmp.root/cvs-serv23891/libvo
Modified Files:
video_out.c video_out.h vo_xmga.c vo_xover.c vo_xvidix.c
Log Message:
user settable colorkey
Index: video_out.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/video_out.c,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- video_out.c 2 Oct 2003 14:25:52 -0000 1.76
+++ video_out.c 3 Oct 2003 18:13:45 -0000 1.77
@@ -47,6 +47,8 @@
char *vo_subdevice = NULL;
int vo_directrendering=0;
+int vo_colorkey = 0x0000ff00; // default colorkey is green
+
//
// Externally visible list of all vo drivers
//
Index: video_out.h
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/video_out.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- video_out.h 1 Sep 2003 18:24:27 -0000 1.52
+++ video_out.h 3 Oct 2003 18:13:45 -0000 1.53
@@ -211,6 +211,8 @@
extern char *vo_subdevice;
+extern int vo_colorkey;
+
#if defined(HAVE_FBDEV)||defined(HAVE_VESA)
typedef struct {
Index: vo_xmga.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xmga.c,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -r1.84 -r1.85
--- vo_xmga.c 31 Aug 2003 12:57:27 -0000 1.84
+++ vo_xmga.c 3 Oct 2003 18:13:45 -0000 1.85
@@ -62,7 +62,7 @@
static uint32_t mDepth;
static XWindowAttributes attribs;
-static uint32_t fgColor;
+static int colorkey;
static uint32_t mvHeight;
static uint32_t mvWidth;
@@ -81,7 +81,7 @@
{
XSetBackground( mDisplay,vo_gc,0 );
XClearWindow( mDisplay,vo_window );
- XSetForeground( mDisplay,vo_gc,fgColor );
+ XSetForeground( mDisplay,vo_gc,colorkey );
XFillRectangle( mDisplay,vo_window,vo_gc,drwX,drwY,drwWidth,(vo_fs?drwHeight - 1:drwHeight) );
XFlush( mDisplay );
}
@@ -112,6 +112,7 @@
char * mTitle=(title == NULL) ? "XMGA render" : title;
XVisualInfo vinfo;
unsigned long xswamask;
+ int r, g, b;
if(mga_init(width,height,format)) return -1; // ioctl errors?
@@ -129,14 +130,18 @@
vo_dwidth=d_width; vo_dheight=d_height;
vo_mouse_autohide=1;
+ r = (vo_colorkey & 0x00ff0000) >> 16;
+ g = (vo_colorkey & 0x0000ff00) >> 8;
+ b = vo_colorkey & 0x000000ff;
switch ( vo_depthonscreen )
{
- case 32:
- case 24: fgColor=0x00ff00ffL; break;
- case 16: fgColor=0xf81fL; break;
- case 15: fgColor=0x7c1fL; break;
+ case 32: colorkey = vo_colorkey; break;
+ case 24: colorkey = vo_colorkey & 0x00ffffff; break;
+ case 16: colorkey = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3); break;
+ case 15: colorkey = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3); break;
default: mp_msg(MSGT_VO,MSGL_ERR,"Sorry, this (%d) color depth not supported.\n",vo_depthonscreen ); return -1;
}
+ mp_msg(MSGT_VO, MSGL_INFO, "Using colorkey: %x\n", colorkey);
inited=1;
@@ -208,9 +213,9 @@
panscan_calc();
mga_vid_config.colkey_on=1;
- mga_vid_config.colkey_red=255;
- mga_vid_config.colkey_green=0;
- mga_vid_config.colkey_blue=255;
+ mga_vid_config.colkey_red=r;
+ mga_vid_config.colkey_green=g;
+ mga_vid_config.colkey_blue=b;
set_window(); // set up mga_vid_config.dest_width etc
Index: vo_xover.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xover.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- vo_xover.c 29 Aug 2003 21:42:51 -0000 1.4
+++ vo_xover.c 3 Oct 2003 18:13:45 -0000 1.5
@@ -53,8 +53,7 @@
/* X11 related variables */
/* Colorkey handling */
static XGCValues mGCV;
-static uint32_t fgColor;
-static uint32_t bgColor;
+static int colorkey;
/* Image parameters */
static uint32_t image_width;
@@ -188,9 +187,9 @@
/* mDrawColorKey: */
/* fill drawable with specified color */
- XSetBackground( mDisplay,vo_gc,bgColor );
+ XSetBackground(mDisplay, vo_gc, 0L);
XClearWindow( mDisplay,vo_window );
- XSetForeground(mDisplay, vo_gc, fgColor);
+ XSetForeground(mDisplay, vo_gc, colorkey);
XFillRectangle(mDisplay, vo_window, vo_gc, drwX, drwY, drwWidth,
(vo_fs ? drwHeight - 1 : drwHeight));
/* flush, update drawable */
@@ -210,7 +209,7 @@
XSetWindowAttributes xswa;
unsigned long xswamask;
XWindowAttributes attribs;
- int window_depth;
+ int window_depth, r, g, b;
mp_colorkey_t colork;
char _title[255];
@@ -233,24 +232,28 @@
window_width = d_width;
window_height = d_height;
- /* from xmga.c */
- bgColor = 0x0L;
+ r = (vo_colorkey & 0x00ff0000) >> 16;
+ g = (vo_colorkey & 0x0000ff00) >> 8;
+ b = vo_colorkey & 0x000000ff;
switch(vo_depthonscreen)
{
case 32:
+ colorkey = vo_colorkey;
+ break;
case 24:
- fgColor = 0x00ff00ffL;
+ colorkey = vo_colorkey & 0x00ffffff;
break;
case 16:
- fgColor = 0xf81fL;
+ colorkey = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3);
break;
case 15:
- fgColor = 0x7c1fL;
+ colorkey = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3);
break;
default:
mp_msg(MSGT_VO, MSGL_ERR, "Sorry, this (%d) color depth is not supported\n",
vo_depthonscreen);
}
+ mp_msg(MSGT_VO, MSGL_INFO, "Using colorkey: %x\n", colorkey);
aspect(&d_width, &d_height, A_NOZOOM);
@@ -332,10 +335,10 @@
mp_msg(MSGT_VO, MSGL_ERR, "xover: sub vo config failed\n");
return 1;
}
- colork.x11 = fgColor;
- colork.r = 255;
- colork.g = 0;
- colork.b = 255;
+ colork.x11 = colorkey;
+ colork.r = r;
+ colork.g = g;
+ colork.b = b;
if(sub_vo->control(VOCTRL_XOVERLAY_SET_COLORKEY,&colork) != VO_TRUE)
mp_msg(MSGT_VO, MSGL_WARN, "xover: set_colorkey failed\n");
Index: vo_xvidix.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xvidix.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- vo_xvidix.c 31 Aug 2003 18:33:02 -0000 1.61
+++ vo_xvidix.c 3 Oct 2003 18:13:45 -0000 1.62
@@ -53,8 +53,7 @@
/* X11 related variables */
/* Colorkey handling */
static XGCValues mGCV;
-static uint32_t fgColor;
-static uint32_t bgColor;
+static int colorkey;
static vidix_grkey_t gr_key;
/* VIDIX related */
@@ -198,9 +197,9 @@
/* mDrawColorKey: */
/* fill drawable with specified color */
- XSetBackground( mDisplay,vo_gc,bgColor );
+ XSetBackground(mDisplay, vo_gc, 0L);
XClearWindow( mDisplay,vo_window );
- XSetForeground(mDisplay, vo_gc, fgColor);
+ XSetForeground(mDisplay, vo_gc, colorkey);
XFillRectangle(mDisplay, vo_window, vo_gc, drwX, drwY, drwWidth,
(vo_fs ? drwHeight - 1 : drwHeight));
/* flush, update drawable */
@@ -220,7 +219,7 @@
XSetWindowAttributes xswa;
unsigned long xswamask;
XWindowAttributes attribs;
- int window_depth;
+ int window_depth, r, g, b;
title = "MPlayer VIDIX X11 Overlay";
@@ -246,24 +245,28 @@
// if (vo_fs)
// { vo_old_width=d_width; vo_old_height=d_height; }
- /* from xmga.c */
- bgColor = 0x0L;
+ r = (vo_colorkey & 0x00ff0000) >> 16;
+ g = (vo_colorkey & 0x0000ff00) >> 8;
+ b = vo_colorkey & 0x000000ff;
switch(vo_depthonscreen)
{
case 32:
+ colorkey = vo_colorkey;
+ break;
case 24:
- fgColor = 0x00ff00ffL;
+ colorkey = vo_colorkey & 0x00ffffff;
break;
case 16:
- fgColor = 0xf81fL;
+ colorkey = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3);
break;
case 15:
- fgColor = 0x7c1fL;
+ colorkey = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3);
break;
default:
mp_msg(MSGT_VO, MSGL_ERR, "Sorry, this (%d) color depth is not supported\n",
vo_depthonscreen);
}
+ mp_msg(MSGT_VO, MSGL_INFO, "Using colorkey: %x\n", colorkey);
aspect(&d_width, &d_height, A_NOZOOM);
@@ -344,9 +347,9 @@
vidix_grkey_get(&gr_key);
gr_key.key_op = KEYS_PUT;
gr_key.ckey.op = CKEY_TRUE;
- gr_key.ckey.red = 255;
- gr_key.ckey.green = 0;
- gr_key.ckey.blue = 255;
+ gr_key.ckey.red = r;
+ gr_key.ckey.green = g;
+ gr_key.ckey.blue = b;
vidix_grkey_set(&gr_key);
}
More information about the MPlayer-cvslog
mailing list