Commit b3c4d6ee authored by Chris Robinson's avatar Chris Robinson Committed by Alexandre Julliard

quartz: Remove errant parser output pins on input connection failure.

parent 4eea356e
...@@ -762,13 +762,32 @@ static HRESULT WINAPI Parser_InputPin_Disconnect(IPin * iface) ...@@ -762,13 +762,32 @@ static HRESULT WINAPI Parser_InputPin_Disconnect(IPin * iface)
return hr; 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 = static const IPinVtbl Parser_InputPin_Vtbl =
{ {
PullPin_QueryInterface, PullPin_QueryInterface,
IPinImpl_AddRef, IPinImpl_AddRef,
PullPin_Release, PullPin_Release,
OutputPin_Connect, OutputPin_Connect,
PullPin_ReceiveConnection, Parser_PullPin_ReceiveConnection,
Parser_InputPin_Disconnect, Parser_InputPin_Disconnect,
IPinImpl_ConnectedTo, IPinImpl_ConnectedTo,
IPinImpl_ConnectionMediaType, IPinImpl_ConnectionMediaType,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment