diff libvo/vo_directx.c @ 29263:0f1b5b68af32

whitespace cosmetics: Remove all trailing whitespace.
author diego
date Wed, 13 May 2009 02:58:57 +0000
parents eda346733b8c
children a33cf9c69731
line wrap: on
line diff
--- a/libvo/vo_directx.c	Tue May 12 19:25:35 2009 +0000
+++ b/libvo/vo_directx.c	Wed May 13 02:58:57 2009 +0000
@@ -70,7 +70,7 @@
 static HICON                mplayericon = NULL;     // Handle to mplayer icon
 static HCURSOR              mplayercursor = NULL;   // Handle to mplayer cursor
 static uint32_t image_width, image_height;          //image width and height
-static uint32_t d_image_width, d_image_height;      //image width and height zoomed 
+static uint32_t d_image_width, d_image_height;      //image width and height zoomed
 static uint8_t  *image=NULL;                        //image data
 static void* tmp_image = NULL;
 static uint32_t image_format=0;                       //image format
@@ -85,7 +85,7 @@
 static int adapter_count=0;
 static GUID selected_guid;
 static GUID *selected_guid_ptr = NULL;
-static RECT monitor_rect;	                        //monitor coordinates 
+static RECT monitor_rect;	                        //monitor coordinates
 static float window_aspect;
 static BOOL (WINAPI* myGetMonitorInfo)(HMONITOR, LPMONITORINFO) = NULL;
 static RECT last_rect = {0xDEADC0DE, 0xDEADC0DE, 0xDEADC0DE, 0xDEADC0DE};
@@ -105,7 +105,7 @@
 const GUID IID_IDirectDrawColorControl =
 {
 	0x4b9f0ee0,0x0d7e,0x11d0,{0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8}
-}; 
+};
 
 
 typedef struct directx_fourcc_caps
@@ -118,22 +118,22 @@
 
 
 static directx_fourcc_caps g_ddpf[] =
-{                                                                         
+{
 	{"YV12 ",IMGFMT_YV12 ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('Y','V','1','2'),0,0,0,0,0}},
-	{"I420 ",IMGFMT_I420 ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('I','4','2','0'),0,0,0,0,0}},   //yv12 with swapped uv 
+	{"I420 ",IMGFMT_I420 ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('I','4','2','0'),0,0,0,0,0}},   //yv12 with swapped uv
 	{"IYUV ",IMGFMT_IYUV ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('I','Y','U','V'),0,0,0,0,0}},   //same as i420
-	{"YVU9 ",IMGFMT_YVU9 ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('Y','V','U','9'),0,0,0,0,0}},	
+	{"YVU9 ",IMGFMT_YVU9 ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('Y','V','U','9'),0,0,0,0,0}},
 	{"YUY2 ",IMGFMT_YUY2 ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('Y','U','Y','2'),0,0,0,0,0}},
 	{"UYVY ",IMGFMT_UYVY ,0,{sizeof(DDPIXELFORMAT), DDPF_FOURCC,MAKEFOURCC('U','Y','V','Y'),0,0,0,0,0}},
- 	{"BGR8 ",IMGFMT_BGR8 ,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 8,  0x00000000, 0x00000000, 0x00000000, 0}},   
+ 	{"BGR8 ",IMGFMT_BGR8 ,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 8,  0x00000000, 0x00000000, 0x00000000, 0}},
 	{"RGB15",IMGFMT_RGB15,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16,  0x0000001F, 0x000003E0, 0x00007C00, 0}},   //RGB 5:5:5
-	{"BGR15",IMGFMT_BGR15,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16,  0x00007C00, 0x000003E0, 0x0000001F, 0}},   
+	{"BGR15",IMGFMT_BGR15,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16,  0x00007C00, 0x000003E0, 0x0000001F, 0}},
 	{"RGB16",IMGFMT_RGB16,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16,  0x0000001F, 0x000007E0, 0x0000F800, 0}},   //RGB 5:6:5
-    {"BGR16",IMGFMT_BGR16,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16,  0x0000F800, 0x000007E0, 0x0000001F, 0}},   
-	{"RGB24",IMGFMT_RGB24,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 24,  0x000000FF, 0x0000FF00, 0x00FF0000, 0}},   
-    {"BGR24",IMGFMT_BGR24,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 24,  0x00FF0000, 0x0000FF00, 0x000000FF, 0}},  
-    {"RGB32",IMGFMT_RGB32,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 32,  0x000000FF, 0x0000FF00, 0x00FF0000, 0}},  
-    {"BGR32",IMGFMT_BGR32,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 32,  0x00FF0000, 0x0000FF00, 0x000000FF, 0}}   
+    {"BGR16",IMGFMT_BGR16,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16,  0x0000F800, 0x000007E0, 0x0000001F, 0}},
+	{"RGB24",IMGFMT_RGB24,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 24,  0x000000FF, 0x0000FF00, 0x00FF0000, 0}},
+    {"BGR24",IMGFMT_BGR24,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 24,  0x00FF0000, 0x0000FF00, 0x000000FF, 0}},
+    {"RGB32",IMGFMT_RGB32,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 32,  0x000000FF, 0x0000FF00, 0x00FF0000, 0}},
+    {"BGR32",IMGFMT_BGR32,0,{sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 32,  0x00FF0000, 0x0000FF00, 0x000000FF, 0}}
 };
 #define NUM_FORMATS (sizeof(g_ddpf) / sizeof(g_ddpf[0]))
 
@@ -163,7 +163,7 @@
     case IMGFMT_UYVY :
         vo_draw_alpha_yuy2(w,h,src,srca,stride,((uint8_t *) image) + dstride*y0 + 2*x0 + 1,dstride);
     break;
-	case IMGFMT_RGB15:	
+	case IMGFMT_RGB15:
     case IMGFMT_BGR15:
 		vo_draw_alpha_rgb15(w,h,src,srca,stride,((uint8_t *) image)+dstride*y0+2*x0,dstride);
     break;
@@ -206,7 +206,7 @@
     //cleanup
 	if(g_lpddsPrimary)g_lpddsPrimary->lpVtbl->Release(g_lpddsPrimary);
 	g_lpddsPrimary=NULL;
-	
+
     if(vidmode)g_lpdd->lpVtbl->SetDisplayMode(g_lpdd,vm_width,vm_height,vm_bpp,vo_refresh_rate,0);
     ZeroMemory(&ddsd, sizeof(ddsd));
     ddsd.dwSize = sizeof(ddsd);
@@ -247,14 +247,14 @@
     ddsdOverlay.dwWidth=image_width;
     ddsdOverlay.dwHeight=image_height;
     ddsdOverlay.dwBackBufferCount=2;
-	ddsdOverlay.ddpfPixelFormat=g_ddpf[i].g_ddpfOverlay; 
+	ddsdOverlay.ddpfPixelFormat=g_ddpf[i].g_ddpfOverlay;
 	if(vo_doublebuffering)   //tribblebuffering
 	{
 		if (g_lpdd->lpVtbl->CreateSurface(g_lpdd,&ddsdOverlay, &g_lpddsOverlay, NULL)== DD_OK)
 		{
 			mp_msg(MSGT_VO, MSGL_V,"<vo_directx><INFO>overlay with format %s created\n",g_ddpf[i].img_format_name);
             //get the surface directly attached to the primary (the back buffer)
-            ddsdOverlay.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER; 
+            ddsdOverlay.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;
             if(g_lpddsOverlay->lpVtbl->GetAttachedSurface(g_lpddsOverlay,&ddsdOverlay.ddsCaps, &g_lpddsBack) != DD_OK)
 			{
 				mp_msg(MSGT_VO, MSGL_FATAL,"<vo_directx><FATAL ERROR>can't get attached surface\n");
@@ -264,7 +264,7 @@
 		}
 		vo_doublebuffering=0; //disable tribblebuffering
 		mp_msg(MSGT_VO, MSGL_V,"<vo_directx><WARN>cannot create tribblebuffer overlay with format %s\n",g_ddpf[i].img_format_name);
-	} 
+	}
 	//single buffer
 	mp_msg(MSGT_VO, MSGL_V,"<vo_directx><INFO>using singlebuffer overlay\n");
     ddsdOverlay.dwBackBufferCount=0;
@@ -298,11 +298,11 @@
 	      case DDERR_OUTOFMEMORY:
 		     {mp_msg(MSGT_VO, MSGL_ERR,"not enough system memory\n");break;}
 	      case DDERR_UNSUPPORTEDMODE:
-			 {mp_msg(MSGT_VO, MSGL_ERR,"unsupported mode\n");break;}  
+			 {mp_msg(MSGT_VO, MSGL_ERR,"unsupported mode\n");break;}
 		  case DDERR_OUTOFVIDEOMEMORY:
 			 {mp_msg(MSGT_VO, MSGL_ERR,"not enough video memory\n");break;}
           default:
-             mp_msg(MSGT_VO, MSGL_ERR,"create surface failed with 0x%x\n",ddrval);       
+             mp_msg(MSGT_VO, MSGL_ERR,"create surface failed with 0x%x\n",ddrval);
 	   }
 	   return 1;
 	}
@@ -314,7 +314,7 @@
 {
     DDSURFACEDESC2   ddsd;
 	//cleanup
-	if (g_lpddsBack)g_lpddsBack->lpVtbl->Release(g_lpddsBack); 
+	if (g_lpddsBack)g_lpddsBack->lpVtbl->Release(g_lpddsBack);
 	g_lpddsBack=NULL;
 	ZeroMemory(&ddsd, sizeof(ddsd));
     ddsd.dwSize = sizeof(ddsd);
@@ -372,16 +372,16 @@
 	if (g_lpdd != NULL){
 	    if(vidmode)g_lpdd->lpVtbl->RestoreDisplayMode(g_lpdd);
 	    g_lpdd->lpVtbl->Release(g_lpdd);
-	}  
+	}
 	mp_msg(MSGT_VO, MSGL_DBG3,"<vo_directx><INFO>directdrawobject released\n");
 	FreeLibrary( hddraw_dll);
 	hddraw_dll= NULL;
 	mp_msg(MSGT_VO, MSGL_DBG3,"<vo_directx><INFO>ddraw.dll freed\n");
-	mp_msg(MSGT_VO, MSGL_DBG3,"<vo_directx><INFO>uninitialized\n");    
+	mp_msg(MSGT_VO, MSGL_DBG3,"<vo_directx><INFO>uninitialized\n");
 }
 
 static BOOL WINAPI EnumCallbackEx(GUID FAR *lpGUID, LPSTR lpDriverDescription, LPSTR lpDriverName, LPVOID lpContext, HMONITOR  hm)
-{   
+{
     mp_msg(MSGT_VO, MSGL_INFO ,"<vo_directx> adapter %d: ", adapter_count);
 
     if (!lpGUID)
@@ -392,7 +392,7 @@
     {
         mp_msg(MSGT_VO, MSGL_INFO ,"%s", lpDriverDescription);
     }
-    
+
     if(adapter_count == vo_adapter_num){
         MONITORINFO mi;
         if (!lpGUID)
@@ -410,9 +410,9 @@
         mp_msg(MSGT_VO, MSGL_INFO ,"\t\t<--");
     }
     mp_msg(MSGT_VO, MSGL_INFO ,"\n");
-    
+
     adapter_count++;
-    
+
     return 1; // list all adapters
 }
 
@@ -422,7 +422,7 @@
 	DDSURFACEDESC2 ddsd;
 	LPDIRECTDRAWENUMERATEEX OurDirectDrawEnumerateEx;
 	HINSTANCE user32dll=LoadLibrary("user32.dll");
-	
+
 	adapter_count = 0;
 	if(user32dll){
 		myGetMonitorInfo=GetProcAddress(user32dll,"GetMonitorInfoA");
@@ -431,7 +431,7 @@
 			vo_adapter_num = 0;
 		}
 	}
-	
+
 	mp_msg(MSGT_VO, MSGL_DBG3,"<vo_directx><INFO>Initing DirectDraw\n" );
 
 	//load direct draw DLL: based on videolans code
@@ -441,7 +441,7 @@
         mp_msg(MSGT_VO, MSGL_FATAL,"<vo_directx><FATAL ERROR>failed loading ddraw.dll\n" );
 		return 1;
     }
-	
+
     last_rect.left = 0xDEADC0DE;   // reset window position cache
 
 	if(vo_adapter_num){ //display other than default
@@ -483,13 +483,13 @@
 	//get current screen siz for selected monitor ...
 	ddsd.dwSize=sizeof(ddsd);
 	ddsd.dwFlags=DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT;
-	g_lpdd->lpVtbl->GetDisplayMode(g_lpdd, &ddsd);		
+	g_lpdd->lpVtbl->GetDisplayMode(g_lpdd, &ddsd);
 	if(vo_screenwidth && vo_screenheight)
 	{
 	    vm_height=vo_screenheight;
 	    vm_width=vo_screenwidth;
 	}
-    else 
+    else
     {
 	    vm_height=ddsd.dwHeight;
 	    vm_width=ddsd.dwWidth;
@@ -504,15 +504,15 @@
 		{
 	        mp_msg(MSGT_VO, MSGL_FATAL,"<vo_directx><FATAL ERROR>can't set cooperativelevel for exclusive mode\n");
             return 1;
-		}                                
+		}
 		/*SetDisplayMode(ddobject,width,height,bpp,refreshrate,aditionalflags)*/
 		if(g_lpdd->lpVtbl->SetDisplayMode(g_lpdd,vm_width, vm_height, vm_bpp,0,0) != DD_OK)
 		{
 	        mp_msg(MSGT_VO, MSGL_FATAL,"<vo_directx><FATAL ERROR>can't set displaymode\n");
 	        return 1;
 		}
-	    mp_msg(MSGT_VO, MSGL_V,"<vo_directx><INFO>Initialized adapter %i for %i x %i @ %i \n",vo_adapter_num,vm_width,vm_height,vm_bpp);	
-	    return 0;	
+	    mp_msg(MSGT_VO, MSGL_V,"<vo_directx><INFO>Initialized adapter %i for %i x %i @ %i \n",vo_adapter_num,vm_width,vm_height,vm_bpp);
+	    return 0;
 	}
 	if (g_lpdd->lpVtbl->SetCooperativeLevel(g_lpdd, hWnd, DDSCL_NORMAL) != DD_OK) // or DDSCL_SETFOCUSWINDOW
      {
@@ -521,7 +521,7 @@
     }
     mp_msg(MSGT_VO, MSGL_DBG3,"<vo_directx><INFO>DirectDraw Initialized\n");
 	return 0;
-}	
+}
 
 static void check_events(void)
 {
@@ -534,13 +534,13 @@
 }
 
 static uint32_t Directx_ManageDisplay(void)
-{   
+{
     HRESULT         ddrval;
     DDCAPS          capsDrv;
     DDOVERLAYFX     ovfx;
     DWORD           dwUpdateFlags=0;
     int width,height;
-   
+
     if(!vidmode && !vo_fs && WinID!=-1) {
       RECT current_rect = {0, 0, 0, 0};
       GetWindowRect(hWnd, &current_rect);
@@ -563,7 +563,7 @@
       POINT pt;
       pt.x = vo_dx;
       pt.y = vo_dy;
-      ClientToScreen(hWnd,&pt);  
+      ClientToScreen(hWnd,&pt);
       width=d_image_width;
       height=d_image_height;
       rd.left = pt.x;
@@ -574,7 +574,7 @@
       POINT pt;
       pt.x = 0;  //overlayposition relative to the window
       pt.y = 0;
-      ClientToScreen(hWnd,&pt);  
+      ClientToScreen(hWnd,&pt);
       GetClientRect(hWnd, &rd);
 	  width=rd.right - rd.left;
 	  height=rd.bottom - rd.top;
@@ -583,7 +583,7 @@
       rd.right -= monitor_rect.left;
       rd.bottom -= monitor_rect.top;
 	  rd.left = pt.x;
-      rd.top = pt.y; 
+      rd.top = pt.y;
       if(!nooverlay && (!width || !height)){
 	    /*window is minimized*/
 	    ddrval = g_lpddsOverlay->lpVtbl->UpdateOverlay(g_lpddsOverlay,NULL, g_lpddsPrimary, NULL, DDOVER_HIDE, NULL);
@@ -591,13 +591,13 @@
 	  }
       if(vo_keepaspect){
           int tmpheight=((float)width/window_aspect);
-          tmpheight+=tmpheight%2;       
+          tmpheight+=tmpheight%2;
           if(tmpheight > height){
             width=((float)height*window_aspect);
-            width+=width%2;       
+            width+=width%2;
           }
           else height=tmpheight;
-      }    
+      }
       if (WinID == -1)
           while(ShowCursor(TRUE)<=0){}
     }
@@ -607,8 +607,8 @@
 	/*ok, let's workaround some overlay limitations*/
 	if(!nooverlay)
 	{
-		uint32_t        uStretchFactor1000;  //minimum stretch 
-        uint32_t        xstretch1000,ystretch1000; 
+		uint32_t        uStretchFactor1000;  //minimum stretch
+        uint32_t        xstretch1000,ystretch1000;
 		/*get driver capabilities*/
         ZeroMemory(&capsDrv, sizeof(capsDrv));
         capsDrv.dwSize = sizeof(capsDrv);
@@ -637,7 +637,7 @@
 		}
 		else if((width > image_width)&& !(capsDrv.dwFXCaps & DDFXCAPS_OVERLAYSTRETCHX))
 		{
-			if(capsDrv.dwFXCaps & DDFXCAPS_OVERLAYSTRETCHXN)mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can only stretchN\n"); 
+			if(capsDrv.dwFXCaps & DDFXCAPS_OVERLAYSTRETCHXN)mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can only stretchN\n");
 	        else mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can't stretch x\n");
 	        rd.right = rd.left+image_width;
 		}
@@ -652,7 +652,7 @@
 			if(capsDrv.dwFXCaps & DDFXCAPS_OVERLAYSTRETCHYN)mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can only stretchN\n");
 	        else mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can't stretch y\n");
 	        rd.bottom = rd.top + image_height;
-		} 
+		}
 		/*the last thing to check are alignment restrictions
           these expressions (x & -y) just do alignment by dropping low order bits...
           so to round up, we add first, then truncate*/
@@ -669,12 +669,12 @@
         ovfx.dwSize = sizeof(ovfx);
         if(vo_fs||vidmode)
 		{
-			ovfx.dckDestColorkey.dwColorSpaceLowValue = 0; 
+			ovfx.dckDestColorkey.dwColorSpaceLowValue = 0;
             ovfx.dckDestColorkey.dwColorSpaceHighValue = 0;
 		}
 		else
 		{
-			ovfx.dckDestColorkey.dwColorSpaceLowValue = destcolorkey; 
+			ovfx.dckDestColorkey.dwColorSpaceLowValue = destcolorkey;
             ovfx.dckDestColorkey.dwColorSpaceHighValue = destcolorkey;
 		}
         // set the flags we'll send to UpdateOverlay      //DDOVER_AUTOFLIP|DDOVERFX_MIRRORLEFTRIGHT|DDOVERFX_MIRRORUPDOWN could be useful?;
@@ -686,19 +686,19 @@
     else
     {
         g_lpddclipper->lpVtbl->SetHWnd(g_lpddclipper, 0,(vo_fs && !vidmode)?hWndFS: hWnd);
-    }       
-	
+    }
+
     if(!vidmode && !vo_fs){
       if(WinID == -1) {
           RECT rdw=rd;
           if (vo_border)
           AdjustWindowRect(&rdw,WNDSTYLE,FALSE);
-//          printf("window: %i %i %ix%i\n",rdw.left,rdw.top,rdw.right - rdw.left,rdw.bottom - rdw.top);      
+//          printf("window: %i %i %ix%i\n",rdw.left,rdw.top,rdw.right - rdw.left,rdw.bottom - rdw.top);
 		  rdw.left += monitor_rect.left; /* move to global coordinate space */
           rdw.top += monitor_rect.top;
 		  rdw.right += monitor_rect.left;
 		  rdw.bottom += monitor_rect.top;
-          SetWindowPos(hWnd,(vo_ontop)?HWND_TOPMOST:(vo_rootwin?HWND_BOTTOM:HWND_NOTOPMOST),rdw.left,rdw.top,rdw.right-rdw.left,rdw.bottom-rdw.top,SWP_NOOWNERZORDER); 
+          SetWindowPos(hWnd,(vo_ontop)?HWND_TOPMOST:(vo_rootwin?HWND_BOTTOM:HWND_NOTOPMOST),rdw.left,rdw.top,rdw.right-rdw.left,rdw.bottom-rdw.top,SWP_NOOWNERZORDER);
       }
     }
     else SetWindowPos(vidmode?hWnd:hWndFS,vo_rootwin?HWND_BOTTOM:HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOOWNERZORDER|SWP_NOCOPYBITS);
@@ -708,15 +708,15 @@
     if(rd.right>vo_screenwidth)rd.right=vo_screenwidth;
     if(rd.top<0)rd.top=0;
     if(rd.bottom>vo_screenheight)rd.bottom=vo_screenheight;
-    
+
   	/*for nonoverlay mode we are finished, for overlay mode we have to display the overlay first*/
 	if(nooverlay)return 0;
-	
+
 //    printf("overlay: %i %i %ix%i\n",rd.left,rd.top,rd.right - rd.left,rd.bottom - rd.top);
 	ddrval = g_lpddsOverlay->lpVtbl->UpdateOverlay(g_lpddsOverlay,&rs, g_lpddsPrimary, &rd, dwUpdateFlags, &ovfx);
     if(FAILED(ddrval))
     {
-        // one cause might be the driver lied about minimum stretch 
+        // one cause might be the driver lied about minimum stretch
         // we should try upping the destination size a bit, or
         // perhaps shrinking the source size
 	   	mp_msg(MSGT_VO, MSGL_ERR ,"<vo_directx><ERROR>UpdateOverlay failed\n" );
@@ -745,12 +745,12 @@
 					mp_msg(MSGT_VO, MSGL_ERR ,"surfaces lost\n");
 					g_lpddsOverlay->lpVtbl->Restore( g_lpddsOverlay ); //restore and try again
 			        g_lpddsPrimary->lpVtbl->Restore( g_lpddsPrimary );
-			        ddrval = g_lpddsOverlay->lpVtbl->UpdateOverlay(g_lpddsOverlay,&rs, g_lpddsPrimary, &rd, dwUpdateFlags, &ovfx);   
+			        ddrval = g_lpddsOverlay->lpVtbl->UpdateOverlay(g_lpddsOverlay,&rs, g_lpddsPrimary, &rd, dwUpdateFlags, &ovfx);
 					if(ddrval !=DD_OK)mp_msg(MSGT_VO, MSGL_FATAL ,"<vo_directx><FATAL ERROR>UpdateOverlay failed again\n" );
 					break;
 				}
             default:
-                mp_msg(MSGT_VO, MSGL_ERR ," 0x%x\n",ddrval);      
+                mp_msg(MSGT_VO, MSGL_ERR ," 0x%x\n",ddrval);
 		}
 	    /*ok we can't do anything about it -> hide overlay*/
 		if(ddrval != DD_OK)
@@ -786,7 +786,7 @@
 	}
     mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>testing supported overlay pixelformats\n");
     //it is not possible to query for pixel formats supported by the
-    //overlay hardware: try out various formats till one works  
+    //overlay hardware: try out various formats till one works
     ZeroMemory(&ddsdOverlay, sizeof(ddsdOverlay));
     ddsdOverlay.dwSize = sizeof(ddsdOverlay);
     ddsdOverlay.ddsCaps.dwCaps=DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;
@@ -796,7 +796,7 @@
     ddsdOverlay.dwBackBufferCount=0;
     //try to create an overlay surface using one of the pixel formats in our global list
 	i=0;
-    do 
+    do
     {
    		ddsdOverlay.ddpfPixelFormat=g_ddpf[i].g_ddpfOverlay;
         ddrval = g_lpdd->lpVtbl->CreateSurface(g_lpdd,&ddsdOverlay, &g_lpddsOverlay, NULL);
@@ -820,12 +820,12 @@
 	}
     if(capsDrv.dwFXCaps & DDFXCAPS_OVERLAYMIRRORLEFTRIGHT)mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>can mirror left right\n"); //I don't have hardware which
     if(capsDrv.dwFXCaps & DDFXCAPS_OVERLAYMIRRORUPDOWN )mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>can mirror up down\n");      //supports those send me one and I'll implement ;)
-	return 0;		
+	return 0;
 }
 
 //find out the Pixelformat of the Primary Surface
 static uint32_t Directx_CheckPrimaryPixelformat(void)
-{	
+{
 	uint32_t i=0;
     uint32_t formatcount = 0;
 	DDPIXELFORMAT	ddpf;
@@ -852,7 +852,7 @@
 			   mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><FORMAT PRIMARY>%i %s supported\n",i,g_ddpf[i].img_format_name);
 			   g_ddpf[i].drv_caps = VFCAP_CSP_SUPPORTED |VFCAP_OSD;
 			   formatcount++;
-               primary_image_format=g_ddpf[i].img_format;     
+               primary_image_format=g_ddpf[i].img_format;
 		   }
 	   }
 	   i++;
@@ -861,8 +861,8 @@
 	destcolorkey = CLR_INVALID;
     if (windowcolor != CLR_INVALID && g_lpddsPrimary->lpVtbl->GetDC(g_lpddsPrimary,&hdc) == DD_OK)
     {
-        rgbT = GetPixel(hdc, 0, 0);     
-        SetPixel(hdc, 0, 0, windowcolor);  
+        rgbT = GetPixel(hdc, 0, 0);
+        SetPixel(hdc, 0, 0, windowcolor);
         g_lpddsPrimary->lpVtbl->ReleaseDC(g_lpddsPrimary,hdc);
     }
     // read back the converted color
@@ -871,9 +871,9 @@
         ;
     if (hres == DD_OK)
     {
-        destcolorkey = *(DWORD *) ddsd.lpSurface;                
+        destcolorkey = *(DWORD *) ddsd.lpSurface;
         if (ddsd.ddpfPixelFormat.dwRGBBitCount < 32)
-            destcolorkey &= (1 << ddsd.ddpfPixelFormat.dwRGBBitCount) - 1;  
+            destcolorkey &= (1 << ddsd.ddpfPixelFormat.dwRGBBitCount) - 1;
         g_lpddsPrimary->lpVtbl->Unlock(g_lpddsPrimary,NULL);
     }
     if (windowcolor != CLR_INVALID && g_lpddsPrimary->lpVtbl->GetDC(g_lpddsPrimary,&hdc) == DD_OK)
@@ -898,7 +898,7 @@
 	switch (message)
     {
         case WM_MOUSEACTIVATE:
-            return MA_ACTIVATEANDEAT;       
+            return MA_ACTIVATEANDEAT;
 	    case WM_NCACTIVATE:
         {
             if(vidmode && adapter_count > 2) //only disable if more than one adapter.
@@ -927,17 +927,17 @@
         case WM_SYSCOMMAND:
 		{
 			switch (wParam)
-			{   //kill screensaver etc. 
+			{   //kill screensaver etc.
 				//note: works only when the window is active
 				//you can workaround this by disabling the allow screensaver option in
 				//the link to the app
-				case SC_SCREENSAVE:                
+				case SC_SCREENSAVE:
 				case SC_MONITORPOWER:
                 mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>killing screensaver\n" );
-                return 0;                      
+                return 0;
 				case SC_MAXIMIZE:
 					if (!vo_fs) control(VOCTRL_FULLSCREEN, NULL);
-                return 0;                      
+                return 0;
 			}
 			break;
 		}
@@ -946,13 +946,13 @@
 			switch (wParam)
 			{
 				case VK_LEFT:
-					{mplayer_put_key(KEY_LEFT);break;}      
+					{mplayer_put_key(KEY_LEFT);break;}
                 case VK_UP:
-					{mplayer_put_key(KEY_UP);break;} 
+					{mplayer_put_key(KEY_UP);break;}
                 case VK_RIGHT:
-					{mplayer_put_key(KEY_RIGHT);break;} 
+					{mplayer_put_key(KEY_RIGHT);break;}
 	            case VK_DOWN:
-					{mplayer_put_key(KEY_DOWN);break;} 
+					{mplayer_put_key(KEY_DOWN);break;}
 	            case VK_TAB:
 					{mplayer_put_key(KEY_TAB);break;}
 		        case VK_BACK:
@@ -1047,7 +1047,7 @@
 				mplayer_put_key(MOUSE_BTN6_DBL);
 			break;
 		}
-		
+
     }
 	return DefWindowProc(hWnd, message, wParam, lParam);
 }
@@ -1075,7 +1075,7 @@
     mplayercursor = LoadCursor(NULL, IDC_ARROW);
     monitor_rect.right=GetSystemMetrics(SM_CXSCREEN);
     monitor_rect.bottom=GetSystemMetrics(SM_CYSCREEN);
-	
+
     windowcolor = vo_colorkey;
     colorbrush = CreateSolidBrush(windowcolor);
     blackbrush = (HBRUSH)GetStockObject(BLACK_BRUSH);
@@ -1098,18 +1098,18 @@
     wc.hbrBackground = blackbrush;
     wc.lpszClassName = WNDCLASSNAME_FULLSCREEN;
     RegisterClass(&wc);
-	
+
 	if (Directx_InitDirectDraw()!= 0)return 1;          //init DirectDraw
-	
-    if(!vidmode)hWndFS = CreateWindow(WNDCLASSNAME_FULLSCREEN,"MPlayer Fullscreen",WS_POPUP,monitor_rect.left,monitor_rect.top,monitor_rect.right-monitor_rect.left,monitor_rect.bottom-monitor_rect.top,hWnd,NULL,hInstance,NULL);			
+
+    if(!vidmode)hWndFS = CreateWindow(WNDCLASSNAME_FULLSCREEN,"MPlayer Fullscreen",WS_POPUP,monitor_rect.left,monitor_rect.top,monitor_rect.right-monitor_rect.left,monitor_rect.bottom-monitor_rect.top,hWnd,NULL,hInstance,NULL);
     mp_msg(MSGT_VO, MSGL_DBG3 ,"<vo_directx><INFO>initial mplayer windows created\n");
-    
+
     if (Directx_CheckPrimaryPixelformat()!=0)return 1;
 	if (!nooverlay && Directx_CheckOverlayPixelformats() == 0)        //check for supported hardware
 	{
 		mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>hardware supports overlay\n");
 		nooverlay = 0;
- 	} 
+ 	}
 	else   //if we can't have overlay we create a backpuffer with the same imageformat as the primary surface
 	{
        	mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>using backpuffer\n");
@@ -1125,18 +1125,18 @@
     uint8_t *d;
     uint32_t uvstride=dstride/2;
 	// copy Y
-    d=image+dstride*y+x;                
-    s=src[0];                           
+    d=image+dstride*y+x;
+    s=src[0];
     mem2agpcpy_pic(d,s,w,h,dstride,stride[0]);
-    
+
 	w/=2;h/=2;x/=2;y/=2;
-	
+
 	// copy U
     d=image+dstride*image_height + uvstride*y+x;
     if(image_format == IMGFMT_YV12)s=src[2];
 	else s=src[1];
     mem2agpcpy_pic(d,s,w,h,uvstride,stride[1]);
-	
+
 	// copy V
     d=image+dstride*image_height +uvstride*(image_height/2) + uvstride*y+x;
     if(image_format == IMGFMT_YV12)s=src[1];
@@ -1149,9 +1149,9 @@
 {
    	HRESULT dxresult;
 	g_lpddsBack->lpVtbl->Unlock (g_lpddsBack,NULL);
-	if (vo_doublebuffering) 
+	if (vo_doublebuffering)
     {
-		// flip to the next image in the sequence  
+		// flip to the next image in the sequence
 		dxresult = g_lpddsOverlay->lpVtbl->Flip( g_lpddsOverlay,NULL, DDFLIP_WAIT);
 		if(dxresult == DDERR_SURFACELOST)
 		{
@@ -1167,7 +1167,7 @@
 		}
 		if(dxresult != DD_OK)mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can't flip page\n");
     }
-	if(nooverlay) 
+	if(nooverlay)
 	{
 		DDBLTFX  ddbltfx;
         // ask for the "NOTEARING" option
@@ -1200,7 +1200,7 @@
 
 static uint32_t get_image(mp_image_t *mpi)
 {
-    if(mpi->flags&MP_IMGFLAG_READABLE) {mp_msg(MSGT_VO, MSGL_V,"<vo_directx><ERROR>slow video ram\n");return VO_FALSE;} 
+    if(mpi->flags&MP_IMGFLAG_READABLE) {mp_msg(MSGT_VO, MSGL_V,"<vo_directx><ERROR>slow video ram\n");return VO_FALSE;}
     if(mpi->type==MP_IMGTYPE_STATIC) {mp_msg(MSGT_VO, MSGL_V,"<vo_directx><ERROR>not static\n");return VO_FALSE;}
     if((mpi->width==dstride) || (mpi->flags&(MP_IMGFLAG_ACCEPT_STRIDE|MP_IMGFLAG_ACCEPT_WIDTH)))
 	{
@@ -1232,10 +1232,10 @@
         mpi->flags|=MP_IMGFLAG_DIRECT;
         mp_msg(MSGT_VO, MSGL_DBG3, "<vo_directx><INFO>Direct Rendering ENABLED\n");
         return VO_TRUE;
-    } 
+    }
     return VO_FALSE;
 }
-  
+
 static uint32_t put_image(mp_image_t *mpi){
 
     uint8_t   *d;
@@ -1246,16 +1246,16 @@
 	uint32_t h = mpi->h;
 
     if (WinID != -1) Directx_ManageDisplay();
-   
-    if((mpi->flags&MP_IMGFLAG_DIRECT)||(mpi->flags&MP_IMGFLAG_DRAW_CALLBACK)) 
+
+    if((mpi->flags&MP_IMGFLAG_DIRECT)||(mpi->flags&MP_IMGFLAG_DRAW_CALLBACK))
 	{
 		mp_msg(MSGT_VO, MSGL_DBG3 ,"<vo_directx><INFO>put_image: nothing to do: drawslices\n");
 		return VO_TRUE;
     }
-   
+
     if (mpi->flags&MP_IMGFLAG_PLANAR)
 	{
-		
+
 		if(image_format!=IMGFMT_YVU9)draw_slice(mpi->planes,mpi->stride,mpi->w,mpi->h,0,0);
 		else
 		{
@@ -1303,7 +1303,7 @@
     if (g_cc != NULL)g_cc->lpVtbl->Release(g_cc);
     g_cc=NULL;
     if(g_lpddclipper)g_lpddclipper->lpVtbl->Release(g_lpddclipper);
-        g_lpddclipper=NULL;   
+        g_lpddclipper=NULL;
     if (g_lpddsBack != NULL) g_lpddsBack->lpVtbl->Release(g_lpddsBack);
     g_lpddsBack = NULL;
     if(vo_doublebuffering)
@@ -1327,38 +1327,38 @@
         rd.bottom = rd.top + d_image_height;
         if (WinID == -1) {
         if (vo_border)
-        AdjustWindowRect(&rd,WNDSTYLE,FALSE);  
-        SetWindowPos(hWnd,NULL, vo_dx, vo_dy,rd.right-rd.left,rd.bottom-rd.top,SWP_SHOWWINDOW|SWP_NOOWNERZORDER); 
+        AdjustWindowRect(&rd,WNDSTYLE,FALSE);
+        SetWindowPos(hWnd,NULL, vo_dx, vo_dy,rd.right-rd.left,rd.bottom-rd.top,SWP_SHOWWINDOW|SWP_NOOWNERZORDER);
         }
     }
-    else ShowWindow(hWnd,SW_SHOW); 
-     
-    if(vo_fs && !vidmode)ShowWindow(hWndFS,SW_SHOW);   
+    else ShowWindow(hWnd,SW_SHOW);
+
+    if(vo_fs && !vidmode)ShowWindow(hWndFS,SW_SHOW);
 	if (WinID == -1)
 	SetWindowText(hWnd,title);
-    
-    
-    if(vidmode)vo_fs=0;    
+
+
+    if(vidmode)vo_fs=0;
 
 
 	/*create the surfaces*/
     if(Directx_CreatePrimarySurface())return 1;
- 
-	//create palette for 256 color mode  
+
+	//create palette for 256 color mode
 	if(image_format==IMGFMT_BGR8){
 		LPDIRECTDRAWPALETTE ddpalette=NULL;
 		char* palette=malloc(4*256);
-		int i; 
+		int i;
 		for(i=0; i<256; i++){
 			palette[4*i+0] = ((i >> 5) & 0x07) * 255 / 7;
 			palette[4*i+1] = ((i >> 2) & 0x07) * 255 / 7;
 			palette[4*i+2] = ((i >> 0) & 0x03) * 255 / 3;
-			palette[4*i+3] = PC_NOCOLLAPSE;	
+			palette[4*i+3] = PC_NOCOLLAPSE;
 		}
-		g_lpdd->lpVtbl->CreatePalette(g_lpdd,DDPCAPS_8BIT|DDPCAPS_INITIALIZE,palette,&ddpalette,NULL);  
+		g_lpdd->lpVtbl->CreatePalette(g_lpdd,DDPCAPS_8BIT|DDPCAPS_INITIALIZE,palette,&ddpalette,NULL);
 		g_lpddsPrimary->lpVtbl->SetPalette(g_lpddsPrimary,ddpalette);
-		free(palette);       
-		ddpalette->lpVtbl->Release(ddpalette);      
+		free(palette);
+		ddpalette->lpVtbl->Release(ddpalette);
 	}
 
 	if (!nooverlay && Directx_CreateOverlay(image_format))
@@ -1367,7 +1367,7 @@
 			else {
               mp_msg(MSGT_VO, MSGL_FATAL,"<vo_directx><FATAL ERROR>can't use overlay mode: please use -vo directx:noaccel\n");
 			  return 1;
-            }       
+            }
 	}
 	if(nooverlay)
 	{
@@ -1433,7 +1433,7 @@
 		dcc.lSaturation = (value + 100) * 20000 / 200;
 		r = VO_TRUE;
 	}
-	
+
 	if (r == VO_TRUE) {
 		g_cc->lpVtbl->SetColorControls(g_cc, &dcc);
 	}
@@ -1470,14 +1470,14 @@
 		r = VO_TRUE;
 	}
 //	printf("\n*** %s = %d\n", what, *value);
-	
+
 	return r;
 }
 
 static int control(uint32_t request, void *data, ...)
 {
     switch (request) {
-   
+
 	case VOCTRL_GET_IMAGE:
       	return get_image(data);
     case VOCTRL_QUERY_FORMAT:
@@ -1558,17 +1558,17 @@
 					vo_fs=0;
 					ShowWindow(hWndFS,SW_HIDE);
 					ShowWindow(hWnd,SW_SHOW);
-				}  
+				}
 	      			last_rect.left = 0xDEADC0DE;   // reset window position cache
 				Directx_ManageDisplay();
-                break;				
+                break;
 			}
 		    return VO_TRUE;
 		}
 	case VOCTRL_SET_EQUALIZER: {
 		va_list	ap;
 		int	value;
-		
+
 		va_start(ap, data);
 		value = va_arg(ap, int);
 		va_end(ap);
@@ -1577,7 +1577,7 @@
 	case VOCTRL_GET_EQUALIZER: {
 		va_list	ap;
 		int	*value;
-		
+
 		va_start(ap, data);
 		value = va_arg(ap, int*);
 		va_end(ap);