diff -Naur a/libvo/vo_directx.c b/libvo/vo_directx.c --- a/libvo/vo_directx.c 2004-12-31 00:19:31.515625000 +0100 +++ b/libvo/vo_directx.c 2005-01-06 15:39:49.406250000 +0100 @@ -48,7 +48,6 @@ static LPDIRECTDRAWSURFACE7 g_lpddsBack = NULL; //Back surface static LPDIRECTDRAWCLIPPER g_lpddclipper; //clipper object, can only be used without overlay static DDSURFACEDESC2 ddsdsf; //surface descripiton needed for locking -static HINSTANCE hddraw_dll; //handle to ddraw.dll static RECT rd; //rect of our stretched image static RECT rs; //rect of our source image static HWND hWnd=NULL; //handle to the window @@ -351,8 +350,6 @@ g_lpdd->lpVtbl->Release(g_lpdd); } mp_msg(MSGT_VO, MSGL_DBG3,"directdrawobject released\n"); - FreeLibrary( hddraw_dll); - hddraw_dll= NULL; mp_msg(MSGT_VO, MSGL_DBG3,"ddraw.dll freed\n"); mp_msg(MSGT_VO, MSGL_DBG3,"uninited\n"); } @@ -395,6 +392,7 @@ static uint32_t Directx_InitDirectDraw() { + HINSTANCE hddraw_dll; HRESULT (WINAPI *OurDirectDrawCreateEx)(GUID *,LPVOID *, REFIID,IUnknown FAR *); LPDIRECTDRAW lpDDraw; DDSURFACEDESC2 ddsd; @@ -423,7 +421,6 @@ OurDirectDrawEnumerateEx = (LPDIRECTDRAWENUMERATEEX) GetProcAddress(hddraw_dll,"DirectDrawEnumerateExA"); if (!OurDirectDrawEnumerateEx){ FreeLibrary( hddraw_dll ); - hddraw_dll = NULL; mp_msg(MSGT_VO, MSGL_FATAL,"failed geting proc address: DirectDrawEnumerateEx\n"); mp_msg(MSGT_VO, MSGL_FATAL,"no directx 7 or higher installed\n"); return 1; @@ -441,7 +438,6 @@ if ( OurDirectDrawCreateEx == NULL ) { FreeLibrary( hddraw_dll ); - hddraw_dll = NULL; mp_msg(MSGT_VO, MSGL_FATAL,"failed geting proc address: DirectDrawCreateEx\n"); return 1; } @@ -450,7 +446,6 @@ if (OurDirectDrawCreateEx(selected_guid_ptr, (VOID**)&g_lpdd, &IID_IDirectDraw7, NULL ) != DD_OK ) { FreeLibrary( hddraw_dll ); - hddraw_dll = NULL; mp_msg(MSGT_VO, MSGL_FATAL,"can't initialize ddraw\n"); return 1; } @@ -495,6 +490,7 @@ return 1; } mp_msg(MSGT_VO, MSGL_DBG3,"DirectDraw Inited\n"); + FreeLibrary( hddraw_dll ); return 0; }