[DSHOW] Misc fixes and traces improvements
Christian Costa
titan.costa at wanadoo.fr
Sun Jan 9 03:02:12 CST 2005
Hi,
Changelog:
Fixed error handling in Graphbuilder_RenderFile.
Improved traces.
Christian Costa titan.costa at wanadoo.fr
-------------- next part --------------
Index: dlls/devenum/mediacatenum.c
===================================================================
RCS file: /home/wine/wine/dlls/devenum/mediacatenum.c,v
retrieving revision 1.12
diff -u -r1.12 mediacatenum.c
--- dlls/devenum/mediacatenum.c 23 Dec 2004 18:33:44 -0000 1.12
+++ dlls/devenum/mediacatenum.c 9 Jan 2005 07:32:07 -0000
@@ -717,10 +717,11 @@
static ULONG WINAPI DEVENUM_IEnumMoniker_AddRef(LPENUMMONIKER iface)
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
+ ULONG ref = InterlockedIncrement(&This->ref);
- TRACE("\n");
+ TRACE("(%p)->() AddRef from %ld\n", iface, ref - 1);
- return InterlockedIncrement(&This->ref);
+ return ref;
}
/**********************************************************************
@@ -729,17 +730,18 @@
static ULONG WINAPI DEVENUM_IEnumMoniker_Release(LPENUMMONIKER iface)
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
+ ULONG ref = InterlockedDecrement(&This->ref);
- TRACE("\n");
+ TRACE("(%p)->() Release from %ld\n", iface, ref + 1);
- if (!InterlockedDecrement(&This->ref))
+ if (!ref)
{
RegCloseKey(This->hkey);
CoTaskMemFree(This);
DEVENUM_UnlockModule();
return 0;
}
- return This->ref;
+ return ref;
}
static HRESULT WINAPI DEVENUM_IEnumMoniker_Next(LPENUMMONIKER iface, ULONG celt, IMoniker ** rgelt, ULONG * pceltFetched)
@@ -750,7 +752,7 @@
MediaCatMoniker * pMoniker;
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
- TRACE("(%ld, %p, %p)\n", celt, rgelt, pceltFetched);
+ TRACE("(%p)->(%ld, %p, %p)\n", iface, celt, rgelt, pceltFetched);
while (fetched < celt)
{
@@ -789,7 +791,7 @@
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
- TRACE("(%ld)\n", celt);
+ TRACE("(%p)->(%ld)\n", iface, celt);
This->index += celt;
@@ -800,7 +802,7 @@
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
- TRACE("()\n");
+ TRACE("(%p)->()\n", iface);
This->index = 0;
@@ -809,7 +811,7 @@
static HRESULT WINAPI DEVENUM_IEnumMoniker_Clone(LPENUMMONIKER iface, IEnumMoniker ** ppenum)
{
- FIXME("(%p): stub\n", ppenum);
+ FIXME("(%p)->(%p): stub\n", iface, ppenum);
return E_NOTIMPL;
}
Index: dlls/quartz/enummoniker.c
===================================================================
RCS file: /home/wine/wine/dlls/quartz/enummoniker.c,v
retrieving revision 1.9
diff -u -r1.9 enummoniker.c
--- dlls/quartz/enummoniker.c 6 Jan 2005 19:36:47 -0000 1.9
+++ dlls/quartz/enummoniker.c 9 Jan 2005 07:32:11 -0000
@@ -106,12 +106,15 @@
static ULONG WINAPI EnumMonikerImpl_AddRef(LPENUMMONIKER iface)
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
-
- TRACE("\n");
+ ULONG ref;
if (This == NULL) return E_POINTER;
- return InterlockedIncrement(&This->ref);
+ ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p)->() AddRef from %ld\n", iface, ref - 1);
+
+ return ref;
}
/**********************************************************************
@@ -122,7 +125,7 @@
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
ULONG ref = InterlockedDecrement(&This->ref);
- TRACE("\n");
+ TRACE("(%p)->() Release from %ld\n", iface, ref + 1);
if (!ref)
{
@@ -139,7 +142,7 @@
ULONG fetched;
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
- TRACE("(%ld, %p, %p)\n", celt, rgelt, pceltFetched);
+ TRACE("(%p)->(%ld, %p, %p)\n", iface, celt, rgelt, pceltFetched);
for (fetched = 0; (This->index + fetched < This->nMonikerCount) && (fetched < celt); fetched++)
{
@@ -149,6 +152,8 @@
This->index += fetched;
+ TRACE("-- fetched %ld\n", fetched);
+
if (pceltFetched)
*pceltFetched = fetched;
@@ -162,7 +167,7 @@
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
- TRACE("(%ld)\n", celt);
+ TRACE("(%p)->(%ld)\n", iface, celt);
This->index += celt;
@@ -173,7 +178,7 @@
{
EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
- TRACE("()\n");
+ TRACE("(%p)->()\n", iface);
This->index = 0;
@@ -182,7 +187,7 @@
static HRESULT WINAPI EnumMonikerImpl_Clone(LPENUMMONIKER iface, IEnumMoniker ** ppenum)
{
- FIXME("(%p): stub\n", ppenum);
+ FIXME("(%p)->(%p): stub\n", iface, ppenum);
return E_NOTIMPL;
}
Index: dlls/quartz/filtergraph.c
===================================================================
RCS file: /home/wine/wine/dlls/quartz/filtergraph.c,v
retrieving revision 1.24
diff -u -r1.24 filtergraph.c
--- dlls/quartz/filtergraph.c 6 Jan 2005 19:36:47 -0000 1.24
+++ dlls/quartz/filtergraph.c 9 Jan 2005 07:32:16 -0000
@@ -875,7 +875,10 @@
tab[0] = mt.majortype;
tab[1] = mt.subtype;
hr = IFilterMapper2_EnumMatchingFilters(This->pFilterMapper2, &pEnumMoniker, 0, FALSE, 0, TRUE, 1, tab, NULL, NULL, FALSE, FALSE, 0, NULL, NULL, NULL);
- } else {
+ }
+
+ if (FAILED(hr))
+ {
if (preader) {
IGraphBuilder_RemoveFilter(iface, preader);
IBaseFilter_Release(preader);
@@ -883,6 +886,7 @@
return hr;
}
+ hr = E_FAIL;
while(IEnumMoniker_Next(pEnumMoniker, 1, &pMoniker, &nb) == S_OK)
{
VARIANT var;
Index: dlls/quartz/filtermapper.c
===================================================================
RCS file: /home/wine/wine/dlls/quartz/filtermapper.c,v
retrieving revision 1.19
diff -u -r1.19 filtermapper.c
--- dlls/quartz/filtermapper.c 6 Jan 2005 19:36:47 -0000 1.19
+++ dlls/quartz/filtermapper.c 9 Jan 2005 07:32:19 -0000
@@ -949,6 +949,15 @@
ZeroMemory(&rf2, sizeof(rf2));
hrSub = IMoniker_BindToStorage(pMoniker, NULL, NULL, &IID_IPropertyBag, (LPVOID*)&pPropBag);
+
+ if (TRACE_ON(quartz))
+ {
+ VARIANT temp;
+ V_VT(&temp) = VT_EMPTY;
+ IPropertyBag_Read(pPropBag, wszFriendlyName, &temp, NULL);
+ TRACE("Considering filter %s\n", debugstr_w(V_UNION(&temp, bstrVal)));
+ VariantClear(&temp);
+ }
if (SUCCEEDED(hrSub))
hrSub = FM2_ReadFilterData(pPropBag, &rf2);
More information about the wine-patches
mailing list