On Sat, 9 Apr 2005 06:17 pm, Eric Pouech wrote:
Robert Lunnon a écrit :
sounds like the callback for the wave header is not called, so +audioio,+winmm,+mmtime would be helpful. A+
More insight,
Perhaps the problem isn't specifically audio related even though it ONLY happens when the audio driver is loaded and a driver (wodPlayer) thread is running
I seems to be getting lots of sections like below, note the DDERR_SURFACEBUSY returns from almost all of the direct draw calls Dunno how this ties in with DSOUND but it's mighty suspicious.
0009:Call winmm.timeGetTime() ret=00439301 0009:Call kernel32.GetTickCount() ret=7f5e9c03 0009:Ret kernel32.GetTickCount() retval=000014c9 ret=7f5e9c03 0009:Ret winmm.timeGetTime() retval=000014c9 ret=00439301 0009:Call winmm.timeGetTime() ret=0043930a 0009:Call kernel32.GetTickCount() ret=7f5e9c03 0009:Ret kernel32.GetTickCount() retval=000014c9 ret=7f5e9c03 0009:Ret winmm.timeGetTime() retval=000014c9 ret=0043930a 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(0,0,0,01000400,7fd8fb44) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_COLORFILL DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f708,0,0,01000400,7fd8f718) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt destrect :0x0-794x550 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_COLORFILL DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7ffeb6e0,7fd8f704,01000000,0) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt destrect :155x135-651x215 0009:trace:ddraw:DIB_DirectDrawSurface_Blt srcrect :0x41-496x121 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7ffeb6e0,7fd8f704,01000000,0) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt destrect :263x242-545x361 0009:trace:ddraw:DIB_DirectDrawSurface_Blt srcrect :0x125-282x244 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:Main_DirectDrawSurface_GetDC (7ff307c8)->(7fd8f77c) 0009:trace:ddraw:Main_DirectDrawSurface_Lock (7ff307c8)->Lock(0,7fd8f6c0,00000000,00000000) 0009:trace:ddraw:Main_DirectDrawSurface_Lock - locking flags : DDLOCK_SURFACEMEMORYPTR 0009:warn:ddraw:Main_DirectDrawSurface_Lock Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:Main_DirectDrawSurface_GetDC (7ff307c8)->(7fd8f764) 0009:trace:ddraw:Main_DirectDrawSurface_Lock (7ff307c8)->Lock(0,7fd8f6a8,00000000,00000000) 0009:trace:ddraw:Main_DirectDrawSurface_Lock - locking flags : DDLOCK_SURFACEMEMORYPTR 0009:warn:ddraw:Main_DirectDrawSurface_Lock Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:Main_DirectDrawSurface_GetDC (7ff307c8)->(7fd8f74c) 0009:trace:ddraw:Main_DirectDrawSurface_Lock (7ff307c8)->Lock(0,7fd8f690,00000000,00000000) 0009:trace:ddraw:Main_DirectDrawSurface_Lock - locking flags : DDLOCK_SURFACEMEMORYPTR 0009:warn:ddraw:Main_DirectDrawSurface_Lock Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7da71080,7fd8f6f0,01008000,0) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt destrect :581x462-592x481 0009:trace:ddraw:DIB_DirectDrawSurface_Blt srcrect :0x0-11x19 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_KEYSRC DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7da71080,7fd8f704,01008000,0) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt destrect :581x462-794x550 0009:trace:ddraw:DIB_DirectDrawSurface_Blt srcrect :1431655765x1431655765-1431655978x1431655853 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_KEYSRC DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff301d0)->(44e1d8,7ff307c8,0,01000000,0) 0009:trace:ddraw:DIB_DirectDrawSurface_Blt destrect :3x22-797x572 0009:trace:ddraw:DIB_DirectDrawSurface_Blt flags: DDBLT_WAIT 0009:warn:ddraw:DIB_DirectDrawSurface_Blt Surface is busy, returning DDERR_SURFACEBUSY 0009:Call user32.PeekMessageA(7fd8fd10,00000000,00000000,00000000,00000000) ret=004392c9 0009:Call kernel32._CheckNotSysLevel(7fb44c80) ret=7fa9f995 0009:Ret kernel32._CheckNotSysLevel() retval=00000009 ret=7fa9f995 0009:Call x11drv.MsgWaitForMultipleObjectsEx(00000000,00000000,00000000,000000ff,00000000) ret=7faec89b 0009:Call ntdll.NtCurrentTeb() ret=7f37fdd0 0009:Ret ntdll.NtCurrentTeb() retval=d1d10000 ret=7f37fdd0 0009:Call ntdll.RtlEnterCriticalSection(7f3cbf80) ret=7f39ae49 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=7f39ae49 0009:Call ntdll.RtlLeaveCriticalSection(7f3cbf80) ret=7f39ae6a 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=7f39ae6a 0009:Call ntdll.RtlEnterCriticalSection(7f3cbf80) ret=7f39ae49 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=7f39ae49 0009:Call ntdll.RtlLeaveCriticalSection(7f3cbf80) ret=7f39ae6a 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=7f39ae6a 0009:Call kernel32.WaitForMultipleObjectsEx(00000001,7fd8f9d8,00000000,00000000,00000000) ret=7f37feef 0009:Call ntdll.NtWaitForMultipleObjects(00000001,7fd8f7e4,00000000,00000000,7fd8f7d8) ret=7fe2e4a1 0009: select( flags=12, cookie=7fd8f6c8, timeout=1113085739.911636 (-0.000036), handles={60} ) 0009: select() = TIMEOUT 0009:Ret ntdll.NtWaitForMultipleObjects() retval=00000102 ret=7fe2e4a1 0009:Ret kernel32.WaitForMultipleObjectsEx() retval=00000102 ret=7f37feef 0009:Ret x11drv.MsgWaitForMultipleObjectsEx() retval=00000102 ret=7faec89b 0009:Call ntdll.NtCurrentTeb() ret=7fa9bc7a 0009:Ret ntdll.NtCurrentTeb() retval=d1d10000 ret=7fa9bc7a 0009:Call kernel32.GlobalLock16(00001117) ret=7fa9bcb8 0009:Ret kernel32.GlobalLock16() retval=7ff1c858 ret=7fa9bcb8 0009: get_message( flags=0, get_win=0, get_first=00000000, get_last=ffffffff, get_next_hw=0 ) 0009: get_message() = PENDING { type=0, win=0, msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, hook=0, hook_proc=0, time=00000000, info=00000000, total=0, data={} }