From 45789e00dad69a2609b6a104b71731fe483428b0 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 11 May 2020 22:30:09 -0500 Subject: [PATCH] quartz/vmr9: Allow the aspect ratio parameters to be NULL in IVMRWindowlessControl9::GetNativeVideoSize(). Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/quartz/tests/vmr9.c | 6 +++--- dlls/quartz/vmr9.c | 24 +++++++++++++----------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index fc2794c5cb7..93c2e504a07 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -3808,9 +3808,9 @@ static void test_windowless_size(void) width = height = 0xdeadbeef; hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, NULL, NULL); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(width == 32, "Got width %d.\n", width); - todo_wine ok(height == 16, "Got height %d.\n", height); + ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(width == 32, "Got width %d.\n", width); + ok(height == 16, "Got height %d.\n", height); aspect_width = aspect_height = 0xdeadbeef; hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, &aspect_width, &aspect_height); diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c index c7ebdc6c573..44ad2965122 100644 --- a/dlls/quartz/vmr9.c +++ b/dlls/quartz/vmr9.c @@ -1615,21 +1615,23 @@ static ULONG WINAPI VMR9WindowlessControl_Release(IVMRWindowlessControl9 *iface) 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); - TRACE("(%p/%p)->(%p, %p, %p, %p)\n", iface, This, width, height, arwidth, arheight); + struct quartz_vmr *filter = impl_from_IVMRWindowlessControl9(iface); - if (!width || !height || !arwidth || !arheight) - { - ERR("Got no pointer\n"); + TRACE("filter %p, width %p, height %p, aspect_width %p, aspect_height %p.\n", + filter, width, height, aspect_width, aspect_height); + + if (!width || !height) return E_POINTER; - } - *width = This->bmiheader.biWidth; - *height = This->bmiheader.biHeight; - *arwidth = This->bmiheader.biWidth; - *arheight = This->bmiheader.biHeight; + *width = filter->bmiheader.biWidth; + *height = filter->bmiheader.biHeight; + if (aspect_width) + *aspect_width = filter->bmiheader.biWidth; + if (aspect_height) + *aspect_height = filter->bmiheader.biHeight; return S_OK; }