Module: wine Branch: master Commit: b3c4d6eee63b53da1e29b757645b11794e15d975 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b3c4d6eee63b53da1e29b75764...
Author: Chris Robinson chris.kcat@gmail.com Date: Fri Mar 30 05:36:21 2007 -0700
quartz: Remove errant parser output pins on input connection failure.
---
dlls/quartz/parser.c | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c index e1f2c62..01d215f 100644 --- a/dlls/quartz/parser.c +++ b/dlls/quartz/parser.c @@ -762,13 +762,32 @@ static HRESULT WINAPI Parser_InputPin_Disconnect(IPin * iface) return hr; }
+HRESULT WINAPI Parser_PullPin_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) +{ + HRESULT hr; + + TRACE("()\n"); + + hr = PullPin_ReceiveConnection(iface, pReceivePin, pmt); + if (FAILED(hr)) + { + IPinImpl *This = (IPinImpl *)iface; + + EnterCriticalSection(This->pCritSec); + Parser_RemoveOutputPins((ParserImpl *)This->pinInfo.pFilter); + LeaveCriticalSection(This->pCritSec); + } + + return hr; +} + static const IPinVtbl Parser_InputPin_Vtbl = { PullPin_QueryInterface, IPinImpl_AddRef, PullPin_Release, OutputPin_Connect, - PullPin_ReceiveConnection, + Parser_PullPin_ReceiveConnection, Parser_InputPin_Disconnect, IPinImpl_ConnectedTo, IPinImpl_ConnectionMediaType,