[PATCH 0/2] MR2815: winegstreamer: Fix IV50 video playback.
From: Anton Baskanov <baskanov(a)gmail.com> videoflip can't handle 15/16-bit RGB. Fixes video playback in multiple games (e.g. Hard Truck 2, Firestarter). --- dlls/winegstreamer/wg_transform.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/winegstreamer/wg_transform.c b/dlls/winegstreamer/wg_transform.c index 2f21e601e0b..94a9b136073 100644 --- a/dlls/winegstreamer/wg_transform.c +++ b/dlls/winegstreamer/wg_transform.c @@ -390,6 +390,9 @@ NTSTATUS wg_transform_create(void *args) case WG_MAJOR_TYPE_VIDEO: case WG_MAJOR_TYPE_VIDEO_WMV: + if (!(element = create_element("videoconvert", "base")) + || !append_element(transform->container, element, &first, &last)) + goto out; if (!(transform->video_flip = create_element("videoflip", "base")) || !append_element(transform->container, transform->video_flip, &first, &last)) goto out; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2815
From: Anton Baskanov <baskanov(a)gmail.com> Flipping is done in ir50_32. Fixes upside-down videos in multiple games (e.g. Hard Truck 2, Firestarter). --- dlls/winegstreamer/video_decoder.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/winegstreamer/video_decoder.c b/dlls/winegstreamer/video_decoder.c index 1fdabd46b96..7db79bc8032 100644 --- a/dlls/winegstreamer/video_decoder.c +++ b/dlls/winegstreamer/video_decoder.c @@ -83,6 +83,7 @@ static HRESULT try_create_wg_transform(struct video_decoder *decoder) if (output_format.major_type == WG_MAJOR_TYPE_UNKNOWN) return MF_E_INVALIDMEDIATYPE; + output_format.u.video.height = abs(output_format.u.video.height); output_format.u.video.fps_d = 0; output_format.u.video.fps_n = 0; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2815
Zebediah Figura (@zfigura) commented about dlls/winegstreamer/video_decoder.c:
if (output_format.major_type == WG_MAJOR_TYPE_UNKNOWN) return MF_E_INVALIDMEDIATYPE;
+ output_format.u.video.height = abs(output_format.u.video.height);
This feels wrong. Unless we have a good reason to do otherwise, we should be respecting the requested stride. If the problem is that ir50_32 is also flipping, it should be fixed to not do that. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2815#note_32823
participants (3)
-
Anton Baskanov -
Anton Baskanov (@baskanov) -
Zebediah Figura (@zfigura)