[PATCH] winecoreaudio.drv: Don't return 0 absolute position if AudioQueue call fails
Andrew Eikum
aeikum at codeweavers.com
Thu Nov 21 12:42:35 CST 2013
Some failures are temporary, for example if the user reconfigures their
audio setup while playing audio. Returning 0 could have bad "going
backward in time" effects which can break audio even after the call
starts to succeed again.
---
dlls/winecoreaudio.drv/mmdevdrv.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c
index 914baa9..5e32229 100644
--- a/dlls/winecoreaudio.drv/mmdevdrv.c
+++ b/dlls/winecoreaudio.drv/mmdevdrv.c
@@ -688,6 +688,8 @@ static UINT64 get_current_aqbuffer_position(ACImpl *This, int mode)
if(sc != noErr){
if(sc != kAudioQueueErr_InvalidRunState)
WARN("Unable to get current time: %lx\n", sc);
+ if(mode == BUFPOS_ABSOLUTE)
+ return This->highest_sampletime;
return 0;
}
--
1.8.4.2
More information about the wine-patches
mailing list