Maarten Lankhorst : quartz: Make sure at least 1 sample is processed before returning.

Alexandre Julliard julliard at winehq.org
Thu Apr 17 07:38:34 CDT 2008


Module: wine
Branch: master
Commit: 97b9e9c3add01235817b172b19626718fc2a02e7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=97b9e9c3add01235817b172b19626718fc2a02e7

Author: Maarten Lankhorst <m.b.lankhorst at 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);




More information about the wine-cvs mailing list