Module: wine Branch: master Commit: 97b9e9c3add01235817b172b19626718fc2a02e7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=97b9e9c3add01235817b172b19...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Wed Apr 16 14:26:15 2008 -0700
quartz: Make sure at least 1 sample is processed before returning.
---
dlls/quartz/pin.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c index 71f33ec..0c333f7 100644 --- a/dlls/quartz/pin.c +++ b/dlls/quartz/pin.c @@ -1382,7 +1382,11 @@ static void CALLBACK PullPin_Thread_Process(ULONG_PTR iface)
TRACE("Start\n");
- while (This->rtCurrent < This->rtStop && hr == S_OK && !This->stop_playback) + if (This->rtCurrent >= This->rtStop) + { + FIXME("Send an EndOfStream?\n"); + } + else do { /* FIXME: to improve performance by quite a bit this should be changed * so that one sample is processed while one sample is fetched. However, @@ -1427,7 +1431,7 @@ static void CALLBACK PullPin_Thread_Process(ULONG_PTR iface)
if (pSample) IMediaSample_Release(pSample); - } + } while (This->rtCurrent < This->rtStop && hr == S_OK && !This->stop_playback);
CoUninitialize(); EnterCriticalSection(This->pin.pCritSec);