[PATCH 3/3] winegstreamer: Use the image size provided by GStreamer.

Andrew Eikum aeikum at codeweavers.com
Mon Mar 16 06:35:28 CDT 2020


On Fri, Mar 13, 2020 at 04:02:45PM -0500, Zebediah Figura wrote:
> If the stride is not equal to the width, this calculation will be invalid.
> 
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
> This fixes Dark Souls II: Scholar of the First Sin, which has an 854x480 video
> which we transcode to RGB24.
> 
>  dlls/winegstreamer/gstdemux.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
> index 6897eeda3f1..7595c8ec54e 100644
> --- a/dlls/winegstreamer/gstdemux.c
> +++ b/dlls/winegstreamer/gstdemux.c
> @@ -247,7 +247,7 @@ static gboolean amt_from_gst_caps_video_raw(const GstCaps *caps, AM_MEDIA_TYPE *
>          }
>          bih->biCompression = amt->subtype.Data1;
>      }
> -    bih->biSizeImage = width * height * bih->biBitCount / 8;
> +    bih->biSizeImage = vinfo.size;

I think this won't actually fix the game. I'm pretty sure the
calculation we use to determine the buffer size is the one in
amt_from_gst_caps.

(Also note the game's video does play back fine. It was my
substitution of a different OGG video with that resolution that broke
it.)

Andrew



More information about the wine-devel mailing list