Zebediah Figura : quartz/videorenderer: Set the source rect at connection time.
Alexandre Julliard
julliard at winehq.org
Wed May 6 15:34:28 CDT 2020
Module: wine
Branch: master
Commit: e5729cf8ebe4e9616b5e9963fc5304777a7c47b5
URL: https://source.winehq.org/git/wine.git/?a=commit;h=e5729cf8ebe4e9616b5e9963fc5304777a7c47b5
Author: Zebediah Figura <z.figura12 at 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 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at 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 =
More information about the wine-cvs
mailing list