Module: wine Branch: master Commit: edc843d36ffab840a406359832930770f27b6f65 URL: https://gitlab.winehq.org/wine/wine/-/commit/edc843d36ffab840a40635983293077...
Author: Zebediah Figura zfigura@codeweavers.com Date: Wed Dec 6 13:40:54 2023 -0600
quartz: Do not forward IVMRWindowlessControl::SetVideoClippingWindow() to IVMRWindowlessControl9.
---
dlls/quartz/vmr9.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c index 38ebfbfa3bb..38380e05b76 100644 --- a/dlls/quartz/vmr9.c +++ b/dlls/quartz/vmr9.c @@ -1578,10 +1578,31 @@ static HRESULT WINAPI VMR7WindowlessControl_SetAspectRatioMode(IVMRWindowlessCon static HRESULT WINAPI VMR7WindowlessControl_SetVideoClippingWindow(IVMRWindowlessControl *iface, HWND window) { struct quartz_vmr *filter = impl_from_IVMRWindowlessControl(iface); + HRESULT hr; + + TRACE("filter %p, window %p.\n", filter, window); + + if (!IsWindow(window)) + { + WARN("Invalid window %p, returning E_INVALIDARG.\n", window); + return E_INVALIDARG; + } + + EnterCriticalSection(&filter->renderer.filter.filter_cs);
- TRACE("iface %p, window %p.\n", iface, window); + if (filter->renderer.sink.pin.peer) + { + LeaveCriticalSection(&filter->renderer.filter.filter_cs); + WARN("Attempt to set the clipping window while connected; returning VFW_E_WRONG_STATE.\n"); + return VFW_E_WRONG_STATE; + }
- return IVMRWindowlessControl9_SetVideoClippingWindow(&filter->IVMRWindowlessControl9_iface, window); + filter->clipping_window = window; + + hr = IVMRFilterConfig_SetNumberOfStreams(&filter->IVMRFilterConfig_iface, 4); + + LeaveCriticalSection(&filter->renderer.filter.filter_cs); + return hr; }
static HRESULT WINAPI VMR7WindowlessControl_RepaintVideo(IVMRWindowlessControl *iface,