Maarten Lankhorst : quartz: Make sure at least 1 sample is processed before returning.
Module: wine Branch: master Commit: 97b9e9c3add01235817b172b19626718fc2a02e7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=97b9e9c3add01235817b172b19... Author: Maarten Lankhorst <m.b.lankhorst(a)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);
participants (1)
-
Alexandre Julliard