Module: wine
Branch: master
Commit: c50ab1119371e41f8ed98242e8a94d9551cdbe2e
URL: https://gitlab.winehq.org/wine/wine/-/commit/c50ab1119371e41f8ed98242e8a94d…
Author: Ziqing Hui <zhui(a)codeweavers.com>
Date: Tue Jul 9 10:45:52 2024 +0800
winegstreamer/video_encoder: Set output info cbSize in SetOutputType.
---
dlls/winegstreamer/video_encoder.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/winegstreamer/video_encoder.c b/dlls/winegstreamer/video_encoder.c
index 1bfe26261af..e15c799d81f 100644
--- a/dlls/winegstreamer/video_encoder.c
+++ b/dlls/winegstreamer/video_encoder.c
@@ -367,6 +367,7 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
{
IMFMediaType_Release(encoder->output_type);
encoder->output_type = NULL;
+ memset(&encoder->output_info, 0, sizeof(encoder->output_info));
}
if (encoder->wg_transform)
{
@@ -412,6 +413,11 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
/* FIXME: Add MF_MT_MPEG_SEQUENCE_HEADER attribute. */
+ /* FIXME: Hardcode a size that native uses for 1920 * 1080.
+ * And hope it's large enough to make things work for now.
+ * The right way is to calculate it based on frame width and height. */
+ encoder->output_info.cbSize = 0x3bc400;
+
if (encoder->wg_transform)
{
wg_transform_destroy(encoder->wg_transform);
@@ -627,10 +633,6 @@ HRESULT h264_encoder_create(REFIID riid, void **out)
h264_encoder_output_types, ARRAY_SIZE(h264_encoder_output_types), &encoder)))
return hr;
- /* FIXME: Hardcode a size that is large enough to make things work for now.
- * The right way is to calculate the size based on output frame size. */
- encoder->output_info.cbSize = 0x3bc400;
-
TRACE("Created h264 encoder transform %p.\n", &encoder->IMFTransform_iface);
hr = IMFTransform_QueryInterface(&encoder->IMFTransform_iface, riid, out);