[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    [PATCH] winegstreamer: Always set the initial video type for the WMF reader to WG_VIDEO_FORMAT_BGR.
From:       Zebediah Figura <zfigura () codeweavers ! com>
Date:       2021-12-30 4:04:35
Message-ID: 20211230040435.49005-1-zfigura () codeweavers ! com
[Download RAW message or body]

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52273
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
---
 dlls/winegstreamer/wm_reader.c | 8 +++++---
 dlls/wmvcore/tests/wmvcore.c   | 2 ++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/winegstreamer/wm_reader.c b/dlls/winegstreamer/wm_reader.c
index 3a1f1684fdc..693e9adfc19 100644
--- a/dlls/winegstreamer/wm_reader.c
+++ b/dlls/winegstreamer/wm_reader.c
@@ -1503,9 +1503,11 @@ static HRESULT init_stream(struct wm_reader *reader, QWORD \
file_size)  {
             /* Call of Juarez: Bound in Blood breaks if I420 is enumerated.
              * Some native decoders output I420, but the msmpeg4v3 decoder
-             * never does. */
-            if (stream->format.u.video.format == WG_VIDEO_FORMAT_I420)
-                stream->format.u.video.format = WG_VIDEO_FORMAT_YV12;
+             * never does.
+             *
+             * Shadowgrounds provides wmv3 video and assumes that the initial
+             * video type will be BGR. */
+            stream->format.u.video.format = WG_VIDEO_FORMAT_BGR;
         }
         wg_parser_stream_enable(stream->wg_stream, &stream->format);
     }
diff --git a/dlls/wmvcore/tests/wmvcore.c b/dlls/wmvcore/tests/wmvcore.c
index 66ad89a185e..1b9cffaee1d 100644
--- a/dlls/wmvcore/tests/wmvcore.c
+++ b/dlls/wmvcore/tests/wmvcore.c
@@ -2388,6 +2388,8 @@ static void test_async_reader_types(void)
         else
         {
             ok(IsEqualGUID(&majortype, &MEDIATYPE_Video), "Got major type %s.\n", \
debugstr_guid(&majortype)); +            /* Shadowgrounds assumes that the initial \
video type will be RGB24. */ +            ok(IsEqualGUID(&mt->subtype, \
&MEDIASUBTYPE_RGB24), "Got subtype %s.\n", debugstr_guid(&mt->subtype));  got_video = \
true;  check_video_type(mt);
         }
-- 
2.34.1


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic