Module: wine Branch: master Commit: e5729cf8ebe4e9616b5e9963fc5304777a7c47b5 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e5729cf8ebe4e9616b5e9963f...
Author: Zebediah Figura z.figura12@gmail.com Date: Tue May 5 19:03:42 2020 -0500
quartz/videorenderer: Set the source rect at connection time.
Filter state should not be modified in IPin::QueryAccept().
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/quartz/videorenderer.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c index 77afc9fcef..15a7d59eb1 100644 --- a/dlls/quartz/videorenderer.c +++ b/dlls/quartz/videorenderer.c @@ -193,9 +193,6 @@ static HRESULT WINAPI VideoRenderer_DoRenderSample(struct strmbase_renderer *ifa
static HRESULT WINAPI VideoRenderer_CheckMediaType(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt) { - struct video_renderer *filter = impl_from_strmbase_renderer(iface); - const BITMAPINFOHEADER *bitmap_header; - if (!IsEqualGUID(&mt->majortype, &MEDIATYPE_Video)) return S_FALSE;
@@ -209,12 +206,6 @@ static HRESULT WINAPI VideoRenderer_CheckMediaType(struct strmbase_renderer *ifa && !IsEqualGUID(&mt->formattype, &FORMAT_VideoInfo2)) return S_FALSE;
- bitmap_header = get_bitmap_header(mt); - - filter->VideoWidth = bitmap_header->biWidth; - filter->VideoHeight = abs(bitmap_header->biHeight); - SetRect(&filter->SourceRect, 0, 0, filter->VideoWidth, filter->VideoHeight); - return S_OK; }
@@ -285,6 +276,18 @@ static void video_renderer_init_stream(struct strmbase_renderer *iface) VideoRenderer_AutoShowWindow(filter); }
+static HRESULT video_renderer_connect(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt) +{ + struct video_renderer *filter = impl_from_strmbase_renderer(iface); + const BITMAPINFOHEADER *bitmap_header = get_bitmap_header(mt); + + filter->VideoWidth = bitmap_header->biWidth; + filter->VideoHeight = abs(bitmap_header->biHeight); + SetRect(&filter->SourceRect, 0, 0, filter->VideoWidth, filter->VideoHeight); + + return S_OK; +} + static RECT video_renderer_get_default_rect(struct video_window *iface) { struct video_renderer *This = impl_from_video_window(iface); @@ -321,6 +324,7 @@ static const struct strmbase_renderer_ops renderer_ops = .renderer_destroy = video_renderer_destroy, .renderer_query_interface = video_renderer_query_interface, .renderer_pin_query_interface = video_renderer_pin_query_interface, + .renderer_connect = video_renderer_connect, };
static const struct video_window_ops window_ops =