Module: wine Branch: master Commit: a5798fc96caa6610ffcceaae3584ea5b67b758ad URL: http://source.winehq.org/git/wine.git/?a=commit;h=a5798fc96caa6610ffcceaae35...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Tue Nov 9 23:42:41 2010 +0100
quartz: Fix video renderer EndOfStream.
---
dlls/quartz/videorenderer.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c index 9645d83..2ad75c4 100644 --- a/dlls/quartz/videorenderer.c +++ b/dlls/quartz/videorenderer.c @@ -939,11 +939,14 @@ static HRESULT WINAPI VideoRenderer_InputPin_EndOfStream(IPin * iface) BaseInputPin* This = (BaseInputPin*)iface; VideoRendererImpl *pFilter; IMediaEventSink* pEventSink; - HRESULT hr; + HRESULT hr = S_OK;
TRACE("(%p/%p)->()\n", This, iface);
+ EnterCriticalSection(This->pin.pCritSec); pFilter = (VideoRendererImpl*)This->pin.pinInfo.pFilter; + if (This->flushing || This->end_of_stream) + goto out; hr = IFilterGraph_QueryInterface(pFilter->filter.filterInfo.pGraph, &IID_IMediaEventSink, (LPVOID*)&pEventSink); if (SUCCEEDED(hr)) { @@ -951,6 +954,9 @@ static HRESULT WINAPI VideoRenderer_InputPin_EndOfStream(IPin * iface) IMediaEventSink_Release(pEventSink); } MediaSeekingPassThru_EOS(pFilter->seekthru_unk); + This->end_of_stream = 1; +out: + LeaveCriticalSection(This->pin.pCritSec);
return hr; }