From: Ziqing Hui zhui@codeweavers.com
--- 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);