http://bugs.winehq.org/show_bug.cgi?id=13194
--- Comment #2 from Juan Lang juan_lang@yahoo.com 2008-05-13 16:35:11 --- First off, does your test app work in Windows?
I downloaded your test app and used winetricks to install xvid.
I then ran WINEDEBUG=msvideo,driver wine codec.exe, and this is a partial log of what I see:
trace:msvideo:ICOpen (VIDC,XVID,0x00000000) trace:driver:OpenDriver (L"VIDC.XVID", L"drivers32", 0x0033fe08); trace:driver:DRIVER_GetLibName registry: L"VIDC.XVID", L"drivers32", 0x33fbb6, 522 trace:driver:DRIVER_TryOpenDriver32 (L"xvidvfw.dll", 0033FE08); (snip) trace:driver:DRIVER_TryOpenDriver32 (L"xvidvfw.dll", 0033FE08); trace:driver:DRIVER_SendMessage Before call32 proc=0x10006d20 drvrID=00000000 hDrv=0x1287d8 wMsg=0003 p1=00000000 p2=0033fe08 trace:driver:DRIVER_SendMessage After call32 proc=0x10006d20 drvrID=00000000 hDrv=0x1287d8 wMsg=0003 p1=00000000 p2=0033fe08 => 00000000 trace:driver:DRIVER_AddToList DRV_OPEN failed on driver 0x1287d8
The After line (the next to the last line) indicates that the return value from this DRIVER_SendMessage call is NULL, which winmm thinks is a failure:
233 lpNewDrv->d.d32.dwDriverID = DRIVER_SendMessage(lpNewDrv, DRV_OPEN, lParam1, lParam2); 234 235 if (lpNewDrv->d.d32.dwDriverID == 0) 236 { 237 TRACE("DRV_OPEN failed on driver %p\n", lpNewDrv); 238 return FALSE; 239 }
So either this is a xvid bug, or this initialization process in Wine is flawed.