quartz: Remove errant parser output pins on input connection failure
Chris Robinson
chris.kcat at gmail.com
Fri Mar 30 07:38:57 CDT 2007
-------------- next part --------------
From 65a02916fc692c4c738e5ae26546010c6d10b29a Mon Sep 17 00:00:00 2001
From: Chris Robinson <chris.kcat at gmail.com>
Date: Fri, 30 Mar 2007 05:36:21 -0700
Subject: [PATCH] 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,
--
1.4.4.4
More information about the wine-patches
mailing list