[PATCH] quartz/filtergraph: Don't prevent the same filter from being used multiple times in IGraphBuilder_Connect().
Zebediah Figura
z.figura12 at gmail.com
Sun Oct 7 17:18:29 CDT 2018
This reverts part of 6301fec0e.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
Should fix extant test failures, e.g.
http://test.winehq.org/data/2e754a652725c067bc44445cebe8b96487ec4a6e/linux_cw1-hd6800-wow64/quartz:filtergraph.html
dlls/quartz/filtergraph.c | 25 -------------------------
dlls/quartz/tests/filtergraph.c | 1 +
2 files changed, 1 insertion(+), 25 deletions(-)
diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index c859564..07d40db 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -1091,7 +1091,6 @@ static HRESULT WINAPI FilterGraph2_Connect(IFilterGraph2 *iface, IPin *ppinOut,
GUID tab[2];
IMoniker* pMoniker;
PIN_INFO PinInfo;
- CLSID FilterCLSID;
PIN_DIRECTION dir;
IFilterMapper2 *pFilterMapper2 = NULL;
@@ -1184,15 +1183,6 @@ static HRESULT WINAPI FilterGraph2_Connect(IFilterGraph2 *iface, IPin *ppinOut,
IEnumPins_Release(penumpins);
}
- hr = IPin_QueryPinInfo(ppinIn, &PinInfo);
- if (FAILED(hr))
- goto out;
-
- hr = IBaseFilter_GetClassID(PinInfo.pFilter, &FilterCLSID);
- IBaseFilter_Release(PinInfo.pFilter);
- if (FAILED(hr))
- goto out;
-
/* Find the appropriate transform filter than can transform the minor media type of output pin of the upstream
* filter to the minor mediatype of input pin of the renderer */
hr = IPin_EnumMediaTypes(ppinOut, &penummt);
@@ -1236,7 +1226,6 @@ static HRESULT WINAPI FilterGraph2_Connect(IFilterGraph2 *iface, IPin *ppinOut,
while (IEnumMoniker_Next(pEnumMoniker, 1, &pMoniker, NULL) == S_OK)
{
VARIANT var;
- GUID clsid;
IPin* ppinfilter = NULL;
IBaseFilter* pfilter = NULL;
IAMGraphBuilderCallback *callback = NULL;
@@ -1254,20 +1243,6 @@ static HRESULT WINAPI FilterGraph2_Connect(IFilterGraph2 *iface, IPin *ppinOut,
goto error;
}
- hr = IBaseFilter_GetClassID(pfilter, &clsid);
- if (FAILED(hr))
- {
- IBaseFilter_Release(pfilter);
- goto error;
- }
-
- if (IsEqualGUID(&clsid, &FilterCLSID)) {
- /* Skip filter (same as the one the output pin belongs to) */
- IBaseFilter_Release(pfilter);
- pfilter = NULL;
- goto error;
- }
-
if (This->pSite)
{
IUnknown_QueryInterface(This->pSite, &IID_IAMGraphBuilderCallback, (LPVOID*)&callback);
diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c
index e64a9fa..897ba3a 100644
--- a/dlls/quartz/tests/filtergraph.c
+++ b/dlls/quartz/tests/filtergraph.c
@@ -1271,6 +1271,7 @@ static ULONG WINAPI testfilter_Release(IBaseFilter *iface)
static HRESULT WINAPI testfilter_GetClassID(IBaseFilter *iface, CLSID *clsid)
{
if (winetest_debug > 1) trace("%p->GetClassID()\n", iface);
+ memset(clsid, 0xde, sizeof(*clsid));
return S_OK;
}
--
2.7.4
More information about the wine-devel
mailing list