From: Torge Matthies <tmatthies(a)codeweavers.com> --- dlls/winegstreamer/media_sink.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/dlls/winegstreamer/media_sink.c b/dlls/winegstreamer/media_sink.c index 5f824033527..4ccf9b3bb51 100644 --- a/dlls/winegstreamer/media_sink.c +++ b/dlls/winegstreamer/media_sink.c @@ -446,6 +446,8 @@ static HRESULT WINAPI stream_sink_type_handler_SetCurrentMediaType(IMFMediaTypeH static HRESULT WINAPI stream_sink_type_handler_GetCurrentMediaType(IMFMediaTypeHandler *iface, IMFMediaType **type) { struct stream_sink *stream_sink = impl_from_IMFMediaTypeHandler(iface); + IMFMediaType *type_copy = NULL; + HRESULT hr; TRACE("iface %p, type %p.\n", iface, type); @@ -454,9 +456,15 @@ static HRESULT WINAPI stream_sink_type_handler_GetCurrentMediaType(IMFMediaTypeH if (!stream_sink->type) return MF_E_NOT_INITIALIZED; - IMFMediaType_AddRef((*type = stream_sink->type)); - - return S_OK; + hr = MFCreateMediaType(&type_copy); + if (FAILED(hr)) + return hr; + hr = IMFMediaType_CopyAllItems(stream_sink->type, (IMFAttributes*)type_copy); + if (FAILED(hr)) + IMFMediaType_Release(type_copy); + else + *type = type_copy; + return hr; } static HRESULT WINAPI stream_sink_type_handler_GetMajorType(IMFMediaTypeHandler *iface, GUID *type) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5159