quartz: Remove errant parser output pins on input connection failure.
This commit is contained in:
parent
4eea356e2d
commit
b3c4d6eee6
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user