From: Bastien N. <ha...@us...> - 2004-03-16 18:59:55
|
Update of /cvsroot/xine/xine-lib/src/video_out In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9675/src/video_out Modified Files: video_out_xv.c Log Message: ignore the hue setting on NVidia cards using the Xv video output as both the XFree86 and the proprietary driver are broken Index: video_out_xv.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/video_out/video_out_xv.c,v retrieving revision 1.191 retrieving revision 1.192 diff -u -r1.191 -r1.192 --- video_out_xv.c 3 Mar 2004 20:09:15 -0000 1.191 +++ video_out_xv.c 16 Mar 2004 18:50:33 -0000 1.192 @@ -65,7 +65,7 @@ #include <X11/extensions/Xv.h> #include <X11/extensions/Xvlib.h> -#define LOG_MODULE "vidoe_out_xv" +#define LOG_MODULE "video_out_xv" #define LOG_VERBOSE /* #define LOG @@ -157,6 +157,7 @@ XvPortID xv_port; XvAdaptorInfo *adaptor_info; unsigned int adaptor_num; + char *adaptor_name; xine_t *xine; } xv_class_t; @@ -1253,10 +1254,13 @@ for(k = 0; k < nattr; k++) { if((attr[k].flags & XvSettable) && (attr[k].flags & XvGettable)) { if(!strcmp(attr[k].name, "XV_HUE")) { - xv_check_capability (this, VO_PROP_HUE, attr[k], - class->adaptor_info[class->adaptor_num].base_id, "XV_HUE", - NULL, NULL); - + if (!strncmp(class->adaptor_name, "NV", 2)) { + xprintf (this->xine, XINE_VERBOSITY_NONE, "video_out_xv: ignoring broken XV_HUE settings on NVidia cards"); + } else { + xv_check_capability (this, VO_PROP_HUE, attr[k], + class->adaptor_info[class->adaptor_num].base_id, "XV_HUE", + NULL, NULL); + } } else if(!strcmp(attr[k].name, "XV_SATURATION")) { xv_check_capability (this, VO_PROP_SATURATION, attr[k], class->adaptor_info[class->adaptor_num].base_id, "XV_SATURATION", @@ -1391,6 +1395,7 @@ XLockDisplay(this->display); XvFreeAdaptorInfo (this->adaptor_info); XUnlockDisplay(this->display); + free (this->adaptor_name); free (this); } @@ -1485,6 +1490,7 @@ this->xv_port = xv_port; this->adaptor_info = adaptor_info; this->adaptor_num = adaptor_num; + this->adaptor_name = strdup (adaptor_info[adaptor_num].name); this->xine = xine; return this; |