Module: wine Branch: master Commit: 907bb7ae1fe44468f3051527978949b7c90f63ba URL: http://source.winehq.org/git/wine.git/?a=commit;h=907bb7ae1fe44468f305152797...
Author: Maarten Lankhorst maarten@codeweavers.com Date: Thu Sep 18 17:56:05 2008 +0200
quartz: Requeue in pullpin if request for data timed out.
If the filter is paused, no additional data will be queued and VFW_E_TIMEOUT is legitimately returned. Don't make this a fatal error, but instead try again. If flushing the thing will still abort.
---
dlls/quartz/pin.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c index 8f78fc3..5689015 100644 --- a/dlls/quartz/pin.c +++ b/dlls/quartz/pin.c @@ -1526,6 +1526,7 @@ static void CALLBACK PullPin_Thread_Process(PullPin *This)
TRACE("Process sample\n");
+ pSample = NULL; hr = IAsyncReader_WaitForNext(This->pReader, 10000, &pSample, &dwUser);
/* Return an empty sample on error to the implementation in case it does custom parsing, so it knows it's gone */ @@ -1537,6 +1538,12 @@ static void CALLBACK PullPin_Thread_Process(PullPin *This) { /* FIXME: This is not well handled yet! */ ERR("Processing error: %x\n", hr); + if (hr == VFW_E_TIMEOUT) + { + assert(!pSample); + hr = S_OK; + continue; + } }
if (pSample)