Maarten Lankhorst : quartz: Make parser start even if some of the pins aren 't connected.

Alexandre Julliard julliard at winehq.org
Thu Jul 10 08:58:51 CDT 2008


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

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Wed Jul  9 13:00:43 2008 -0700

quartz: Make parser start even if some of the pins aren't connected.

---

 dlls/quartz/parser.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c
index 0848e84..6883e47 100644
--- a/dlls/quartz/parser.c
+++ b/dlls/quartz/parser.c
@@ -277,7 +277,8 @@ HRESULT WINAPI Parser_Pause(IBaseFilter * iface)
         EnterCriticalSection(&This->csFilter);
     }
 
-    This->state = State_Paused;
+    if (SUCCEEDED(hr))
+        This->state = State_Paused;
 
     LeaveCriticalSection(&This->csFilter);
     LeaveCriticalSection(&pin->thread_lock);
@@ -298,6 +299,8 @@ HRESULT WINAPI Parser_Run(IBaseFilter * iface, REFERENCE_TIME tStart)
     EnterCriticalSection(&pin->thread_lock);
     EnterCriticalSection(&This->csFilter);
     {
+        HRESULT hr_any = VFW_E_NOT_CONNECTED;
+
         if (This->state == State_Running || This->state == State_Paused)
         {
             This->state = State_Running;
@@ -311,10 +314,11 @@ HRESULT WINAPI Parser_Run(IBaseFilter * iface, REFERENCE_TIME tStart)
         for (i = 1; i < (This->cStreams + 1); i++)
         {
             hr = OutputPin_CommitAllocator((OutputPin *)This->ppPins[i]);
-            if (FAILED(hr))
-                break;
+            if (SUCCEEDED(hr))
+                hr_any = hr;
         }
 
+        hr_any = hr;
         if (SUCCEEDED(hr))
         {
             LeaveCriticalSection(&This->csFilter);




More information about the wine-cvs mailing list