I've now finished my exams, and am trying to tidy up the MSVIDEO patch.
Sometime in the last month or so, mplayer no longer wants to work:
~$ wine -debugmsg +msvideo,+relay,+x11drv mplayer
<Open a dialog box, eg with File->Open>:
... lots snipped
Call comctl32.332: DPA_GetPtr(40d500a0,00000000) ret=4068f218 fs=008f
Ret comctl32.332: DPA_GetPtr() retval=40487434 ret=4068f218 fs=008f
Call comctl32.339:
DPA_Search(40d500a0,40885ac8,ffffffff,4068eee0,00000000,00000000)
ret=4068f245 fs=008f
Ret comctl32.339: DPA_Search() retval=00000002 ret=4068f245 fs=008f
Call comctl32.332: DPA_GetPtr(40d500a0,00000002) ret=4068f2a6 fs=008f
Ret comctl32.332: DPA_GetPtr() retval=40488f14 ret=4068f2a6 fs=008f
Ret shell32.261: SHGetFileInfoA() retval=40d50150 ret=412c4608 fs=008f
trace:relay:WINPROC_CallWndProc
(wndproc=0x4007736c,hwnd=00000ab4,msg=CB_INSERTSTRING32,wp=00000003,lp=4088609c)
trace:relay:WINPROC_CallWndProc
(wndproc=0x40088cdc,hwnd=00000b40,msg=LB_INSERTSTRING32,wp=00000003,lp=4088609c)
trace:relay:WINPROC_CallWndProc
(wndproc=0x4007736c,hwnd=00000ab4,msg=CB_SETITEMDATA32,wp=00000003,lp=404a6100)
trace:relay:WINPROC_CallWndProc
(wndproc=0x40088cdc,hwnd=00000b40,msg=LB_SETITEMDATA32,wp=00000003,lp=404a6100)
Call shell32.195: SHFree(404a608c) ret=412c4711 fs=008f
Ret shell32.195: SHFree() retval=00000001 ret=412c4711 fs=008f
Call shell32.153: ILGetNext(404a3d50) ret=412c45b1 fs=008f
Ret shell32.153: ILGetNext() retval=404a3d64 ret=412c45b1 fs=008f
Call shell32.153: ILGetNext(404a3d64) ret=412c45b1 fs=008f
Ret shell32.153: ILGetNext() retval=404a3d7d ret=412c45b1 fs=008f
Call shell32.153: ILGetNext(404a3d7d) ret=412c45b1 fs=008f
Ret shell32.153: ILGetNext() retval=404a3d9b ret=412c45b1 fs=008f
Call shell32.153: ILGetNext(404a3d9b) ret=412c45b1 fs=008f
Ret shell32.153: ILGetNext() retval=404a3db5 ret=412c45b1 fs=008f
Call shell32.153: ILGetNext(404a3db5) ret=412c45b1 fs=008f
Ret shell32.153: ILGetNext() retval=00000000 ret=412c45b1 fs=008f
Call shell32.18: ILClone(404a3d50) ret=412c45cb fs=008f
Ret shell32.18: ILClone() retval=404a6180 ret=412c45cb fs=008f
Call shell32.261:
SHGetFileInfoA(404a3d50,00000000,408860c0,00000160,00024a09)
ret=412c4608 fs=008f
Call comctl32.332: DPA_GetPtr(40d500a0,00000000) ret=4068f218 fs=008f
Ret comctl32.332: DPA_GetPtr() retval=40487434 ret=4068f218 fs=008f
Call comctl32.339:
DPA_Search(40d500a0,40885af8,ffffffff,4068eee0,00000000,00000000)
ret=4068f245 fs=008f
Ret comctl32.339: DPA_Search() retval=00000002 ret=4068f245 fs=008f
Call comctl32.332: DPA_GetPtr(40d500a0,00000002) ret=4068f2a6 fs=008f
Ret comctl32.332: DPA_GetPtr() retval=40488f14 ret=4068f2a6 fs=008f
Ret shell32.261: SHGetFileInfoA() retval=40d50150 ret=412c4608 fs=008f
trace:relay:WINPROC_CallWndProc
(wndproc=0x4007736c,hwnd=00000ab4,msg=CB_INSERTSTRING32,wp=00000004,lp=408860cc)
trace:relay:WINPROC_CallWndProc
(wndproc=0x40088cdc,hwnd=00000b40,msg=LB_INSERTSTRING32,wp=00000004,lp=408860cc)
trace:relay:WINPROC_CallWndProc
(wndproc=0x40088cdc,hwnd=00000b40,msg=WM_WINDOWPOSCHANGING,wp=00000000,lp=40885b84)
trace:relay:WINPROC_CallWndProc
(wndproc=0x40088cdc,hwnd=00000b40,msg=WM_NCCALCSIZE,wp=00000001,lp=40885a2c)
X Error of failed request: BadValue (integer parameter out of range for
operation)
Major opcode of failed request: 1 (X_CreateWindow)
Value in failed request: 0x0
Serial number of failed request: 9582
Current serial number in output stream: 9589
err:win32:EnterCriticalSection Critical section 0x402ccc50 wait timed
out, retrying (60 sec)
With -synchronous as well, I get:
Ret kernel32.693: TlsGetValue() retval=404a3dc4 ret=7ff6100e fs=008f
Call kernel32.195: EnterCriticalSection(404a7c80) ret=7ff679ce fs=008f
Ret kernel32.195: EnterCriticalSection() retval=080617d0 ret=7ff679ce
fs=008f
Call kernel32.501: LocalAlloc(00000000,00000010) ret=7ff6107d fs=008f
Ret kernel32.501: LocalAlloc() retval=404a5a98 ret=7ff6107d fs=008f
Call kernel32.293: GetComputerNameA(404a5a98,40885d5c) ret=7ff6f3f6
fs=008f
Ret kernel32.293: GetComputerNameA() retval=00000001 ret=7ff6f3f6
fs=008f
Call kernel32.534: MultiByteToWideChar(00000000,00000001,404a5a98
"tomato.home",ffffffff,7ffcd23c,0000000b) ret=7ff6f40f fs=008f
Ret kernel32.534: MultiByteToWideChar() retval=00000000 ret=7ff6f40f
fs=008f
Call kernel32.505: LocalFree(404a5a98) ret=7ff61161 fs=008f
Ret kernel32.505: LocalFree() retval=00000000 ret=7ff61161 fs=008f
Call kernel32.693: TlsGetValue(00000002) ret=7ff6100e fs=008f
Ret kernel32.693: TlsGetValue() retval=404a3dc4 ret=7ff6100e fs=008f
Call kernel32.501: LocalAlloc(00000000,00000028) ret=7ff6107d fs=008f
Ret kernel32.501: LocalAlloc() retval=404a5a98 ret=7ff6107d fs=008f
Call kernel32.727: WideCharToMultiByte(00000000,00000200,7ffd8038
L"%ws:%ws[OLE%-08.8X]",ffffffff,404a5a98,00000028,00000000,00000000)
ret=7ff6114f fs=008f
Ret kernel32.727: WideCharToMultiByte() retval=00000014 ret=7ff6114f
fs=008f
Call user32.587: wvsprintfA(40885d70,404a5a98
"%ws:%ws[OLE%-08.8X]",40885d58) ret=7ff6bb6d fs=008f
Ret user32.587: wvsprintfA() retval=0000001f ret=7ff6bb6d fs=008f
Call kernel32.501: LocalAlloc(00000000,00000040) ret=7ff6107d fs=008f
Ret kernel32.501: LocalAlloc() retval=404a5acc ret=7ff6107d fs=008f
Call kernel32.534: MultiByteToWideChar(00000000,00000001,40885d70
"mswmsg:tomato.home[OLE00000001]",ffffffff,404a5acc,00000020)
ret=7ff6bb95 fs=008f
Ret kernel32.534: MultiByteToWideChar() retval=00000020 ret=7ff6bb95
fs=008f
Call kernel32.505: LocalFree(404a5acc) ret=7ff61161 fs=008f
Ret kernel32.505: LocalFree() retval=00000000 ret=7ff61161 fs=008f
Call kernel32.505: LocalFree(404a5a98) ret=7ff61161 fs=008f
Ret kernel32.505: LocalFree() retval=00000000 ret=7ff61161 fs=008f
Call kernel32.501: LocalAlloc(00000000,00000048) ret=7ff67be6 fs=008f
Ret kernel32.501: LocalAlloc() retval=404a5a98 ret=7ff67be6 fs=008f
Call kernel32.693: TlsGetValue(00000002) ret=7ff6100e fs=008f
Ret kernel32.693: TlsGetValue() retval=404a3dc4 ret=7ff6100e fs=008f
Call kernel32.309: GetCurrentThreadId() ret=7ff67961 fs=008f
Ret kernel32.309: GetCurrentThreadId() retval=080617d0 ret=7ff67961
fs=008f
Call user32.83: CreateWindowExA(00000000,7ffd81d0 "OleMainThreadWndClass
0x######## ",40885d48
"OleRpcNotify0x080617d0",c8000000,80000000,80000000,80000000,80000000,00000000,00000000,7ff60000,00000000)
ret=7ff6c9e2 fs=008f
Call kernel32.693: TlsGetValue(00000004) ret=004177d8 fs=008f
err:win32:SYSLEVEL_CheckNotLevel (2): Holding lock of level 2!
Call kernel32.693: TlsGetValue(00000004) ret=004177d8 fs=008f
err:win32:SYSLEVEL_CheckNotLevel (2): Holding lock of level 2!
Call kernel32.693: TlsGetValue(00000004) ret=004177d8 fs=008f
err:win32:SYSLEVEL_CheckNotLevel (2): Holding lock of level 2!
and a few more lines of the above, then: err:win32:EnterCriticalSection
Critical section 0x402ccc50 wait timed out, retrying (60 sec)
This is a lot (several hundred lines) further than without -synchronous,
so these two bugs may not be related.
Any ideas where to look for this bug? Running it under the debugger
doesn't help either. Its 100% repeatible, so I haven't attached any more
lines of debug output, although I will do so if someone asks. This isn't
related to my patches - there are no calls to msvideo functions before
this happens.
On a semi-related note, does anyone know of an avi player for windows
which uses the msvideo functions (not directX), and does not use MCI? If
it comes with source, thats a large bonus :)
Thanks,
Bradley