Maarten Lankhorst : quartz: Fix video renderer EndOfStream.
Alexandre Julliard
julliard at winehq.org
Wed Nov 10 11:09:37 CST 2010
Module: wine
Branch: master
Commit: a5798fc96caa6610ffcceaae3584ea5b67b758ad
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a5798fc96caa6610ffcceaae3584ea5b67b758ad
Author: Maarten Lankhorst <m.b.lankhorst at 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;
}
More information about the wine-cvs
mailing list