quartz/vmr9: Allow the aspect ratio parameters to be NULL in IVMRWindowlessControl9::GetNativeVideoSize().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2020-05-11 22:30:09 -05:00 committed by Alexandre Julliard
parent f44e90d284
commit 45789e00da
2 changed files with 16 additions and 14 deletions

View File

@ -3808,9 +3808,9 @@ static void test_windowless_size(void)
width = height = 0xdeadbeef; width = height = 0xdeadbeef;
hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, NULL, NULL); hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, NULL, NULL);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(width == 32, "Got width %d.\n", width); ok(width == 32, "Got width %d.\n", width);
todo_wine ok(height == 16, "Got height %d.\n", height); ok(height == 16, "Got height %d.\n", height);
aspect_width = aspect_height = 0xdeadbeef; aspect_width = aspect_height = 0xdeadbeef;
hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, &aspect_width, &aspect_height); hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, &aspect_width, &aspect_height);

View File

@ -1615,21 +1615,23 @@ static ULONG WINAPI VMR9WindowlessControl_Release(IVMRWindowlessControl9 *iface)
return IUnknown_Release(This->renderer.filter.outer_unk); return IUnknown_Release(This->renderer.filter.outer_unk);
} }
static HRESULT WINAPI VMR9WindowlessControl_GetNativeVideoSize(IVMRWindowlessControl9 *iface, LONG *width, LONG *height, LONG *arwidth, LONG *arheight) static HRESULT WINAPI VMR9WindowlessControl_GetNativeVideoSize(IVMRWindowlessControl9 *iface,
LONG *width, LONG *height, LONG *aspect_width, LONG *aspect_height)
{ {
struct quartz_vmr *This = impl_from_IVMRWindowlessControl9(iface); struct quartz_vmr *filter = impl_from_IVMRWindowlessControl9(iface);
TRACE("(%p/%p)->(%p, %p, %p, %p)\n", iface, This, width, height, arwidth, arheight);
if (!width || !height || !arwidth || !arheight) TRACE("filter %p, width %p, height %p, aspect_width %p, aspect_height %p.\n",
{ filter, width, height, aspect_width, aspect_height);
ERR("Got no pointer\n");
if (!width || !height)
return E_POINTER; return E_POINTER;
}
*width = This->bmiheader.biWidth; *width = filter->bmiheader.biWidth;
*height = This->bmiheader.biHeight; *height = filter->bmiheader.biHeight;
*arwidth = This->bmiheader.biWidth; if (aspect_width)
*arheight = This->bmiheader.biHeight; *aspect_width = filter->bmiheader.biWidth;
if (aspect_height)
*aspect_height = filter->bmiheader.biHeight;
return S_OK; return S_OK;
} }