Module: wine Branch: master Commit: fe9840f213d12967d99deda02d1c703b77a3ac94 URL: http://source.winehq.org/git/wine.git/?a=commit;h=fe9840f213d12967d99deda02d...
Author: Maarten Lankhorst m.b.lankhorst@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);