[PATCH 3/7] quartz/vmr9: Don't query for IVMRSurfaceAllocatorEx9.
Zebediah Figura
z.figura12 at gmail.com
Wed May 27 11:47:34 CDT 2020
From: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/quartz/tests/vmr9.c | 1 +
dlls/quartz/vmr9.c | 33 ++++++++++++---------------------
2 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c
index b25b8df8cb7..89515ad38f7 100644
--- a/dlls/quartz/tests/vmr9.c
+++ b/dlls/quartz/tests/vmr9.c
@@ -2852,6 +2852,7 @@ static HRESULT WINAPI allocator_QueryInterface(IVMRSurfaceAllocator9 *iface, REF
IVMRImagePresenter9_AddRef(&presenter_iface);
return S_OK;
}
+ ok(!IsEqualGUID(iid, &IID_IVMRSurfaceAllocatorEx9), "Unexpected query for IVMRSurfaceAllocatorEx9.\n");
*out = NULL;
return E_NOTIMPL;
}
diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c
index 7fca3550d1b..e02b642dbc1 100644
--- a/dlls/quartz/vmr9.c
+++ b/dlls/quartz/vmr9.c
@@ -79,9 +79,8 @@ struct quartz_vmr
IOverlay IOverlay_iface;
- IVMRSurfaceAllocatorEx9 *allocator;
+ IVMRSurfaceAllocator9 *allocator;
IVMRImagePresenter9 *presenter;
- BOOL allocator_is_ex;
DWORD stream_count;
DWORD mixing_prefs;
@@ -345,7 +344,7 @@ static HRESULT initialize_device(struct quartz_vmr *filter, VMR9AllocationInfo *
HRESULT hr;
DWORD i;
- if (FAILED(hr = IVMRSurfaceAllocatorEx9_InitializeDevice(filter->allocator,
+ if (FAILED(hr = IVMRSurfaceAllocator9_InitializeDevice(filter->allocator,
filter->cookie, info, &count)))
{
WARN("Failed to initialize device (flags %#x), hr %#x.\n", info->dwFlags, hr);
@@ -354,13 +353,13 @@ static HRESULT initialize_device(struct quartz_vmr *filter, VMR9AllocationInfo *
for (i = 0; i < count; ++i)
{
- if (FAILED(hr = IVMRSurfaceAllocatorEx9_GetSurface(filter->allocator,
+ if (FAILED(hr = IVMRSurfaceAllocator9_GetSurface(filter->allocator,
filter->cookie, i, 0, &filter->surfaces[i])))
{
ERR("Failed to get surface %u, hr %#x.\n", i, hr);
while (i--)
IDirect3DSurface9_Release(filter->surfaces[i]);
- IVMRSurfaceAllocatorEx9_TerminateDevice(filter->allocator, filter->cookie);
+ IVMRSurfaceAllocator9_TerminateDevice(filter->allocator, filter->cookie);
return hr;
}
}
@@ -533,7 +532,7 @@ static HRESULT WINAPI VMR9_BreakConnect(struct strmbase_renderer *This)
for (i = 0; i < pVMR9->num_surfaces; ++i)
IDirect3DSurface9_Release(pVMR9->surfaces[i]);
free(pVMR9->surfaces);
- IVMRSurfaceAllocatorEx9_TerminateDevice(pVMR9->allocator, pVMR9->cookie);
+ IVMRSurfaceAllocator9_TerminateDevice(pVMR9->allocator, pVMR9->cookie);
pVMR9->num_surfaces = 0;
}
return hr;
@@ -558,8 +557,8 @@ static void vmr_destroy(struct strmbase_renderer *iface)
if (filter->allocator)
{
- IVMRSurfaceAllocatorEx9_TerminateDevice(filter->allocator, filter->cookie);
- IVMRSurfaceAllocatorEx9_Release(filter->allocator);
+ IVMRSurfaceAllocator9_TerminateDevice(filter->allocator, filter->cookie);
+ IVMRSurfaceAllocator9_Release(filter->allocator);
}
if (filter->presenter)
IVMRImagePresenter9_Release(filter->presenter);
@@ -1353,7 +1352,7 @@ static HRESULT WINAPI VMR9FilterConfig_SetRenderingMode(IVMRFilterConfig9 *iface
}
if (This->allocator)
- IVMRSurfaceAllocatorEx9_Release(This->allocator);
+ IVMRSurfaceAllocator9_Release(This->allocator);
if (This->presenter)
IVMRImagePresenter9_Release(This->presenter);
@@ -1364,7 +1363,6 @@ static HRESULT WINAPI VMR9FilterConfig_SetRenderingMode(IVMRFilterConfig9 *iface
{
case VMR9Mode_Windowed:
case VMR9Mode_Windowless:
- This->allocator_is_ex = 0;
This->cookie = ~0;
hr = VMR9DefaultAllocatorPresenterImpl_create(This, (LPVOID*)&This->presenter);
@@ -1378,7 +1376,7 @@ static HRESULT WINAPI VMR9FilterConfig_SetRenderingMode(IVMRFilterConfig9 *iface
This->presenter = NULL;
}
else
- hr = IVMRSurfaceAllocatorEx9_AdviseNotify(This->allocator, &This->IVMRSurfaceAllocatorNotify9_iface);
+ hr = IVMRSurfaceAllocator9_AdviseNotify(This->allocator, &This->IVMRSurfaceAllocatorNotify9_iface);
break;
case VMR9Mode_Renderless:
break;
@@ -1971,15 +1969,8 @@ static HRESULT WINAPI VMR9SurfaceAllocatorNotify_AdviseSurfaceAllocator(
if (FAILED(IVMRSurfaceAllocator9_QueryInterface(allocator, &IID_IVMRImagePresenter9, (void **)&filter->presenter)))
return E_NOINTERFACE;
- if (SUCCEEDED(IVMRSurfaceAllocator9_QueryInterface(allocator,
- &IID_IVMRSurfaceAllocatorEx9, (void **)&filter->allocator)))
- filter->allocator_is_ex = 1;
- else
- {
- filter->allocator = (IVMRSurfaceAllocatorEx9 *)allocator;
- IVMRSurfaceAllocator9_AddRef(allocator);
- filter->allocator_is_ex = 0;
- }
+ filter->allocator = allocator;
+ IVMRSurfaceAllocator9_AddRef(allocator);
return S_OK;
}
@@ -2827,7 +2818,7 @@ static BOOL CreateRenderingWindow(struct default_presenter *This, VMR9Allocation
if (FAILED(hr))
{
- IVMRSurfaceAllocatorEx9_TerminateDevice(This->pVMR9->allocator, This->pVMR9->cookie);
+ IVMRSurfaceAllocator9_TerminateDevice(This->pVMR9->allocator, This->pVMR9->cookie);
return FALSE;
}
--
2.26.2
More information about the wine-devel
mailing list