From: Ziqing Hui <zhui(a)codeweavers.com> --- dlls/winegstreamer/media_sink.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/winegstreamer/media_sink.c b/dlls/winegstreamer/media_sink.c index 6996d689e83..c24e9b9a13f 100644 --- a/dlls/winegstreamer/media_sink.c +++ b/dlls/winegstreamer/media_sink.c @@ -344,8 +344,9 @@ static HRESULT WINAPI stream_sink_ProcessSample(IMFStreamSink *iface, IMFSample IMFSample_AddRef((command->u.process.sample = sample)); command->u.process.stream_id = stream_sink->id; - if (FAILED(hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, &media_sink->async_callback, &command->IUnknown_iface))) - IUnknown_Release(&command->IUnknown_iface); + hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, + &media_sink->async_callback, &command->IUnknown_iface); + IUnknown_Release(&command->IUnknown_iface); LeaveCriticalSection(&media_sink->cs); @@ -525,7 +526,11 @@ static HRESULT media_sink_queue_command(struct media_sink *media_sink, enum asyn if (FAILED(hr = async_command_create(op, &command))) return hr; - return MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, &media_sink->async_callback, &command->IUnknown_iface); + hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, + &media_sink->async_callback, &command->IUnknown_iface); + IUnknown_Release(&command->IUnknown_iface); + + return hr; } static HRESULT media_sink_queue_stream_event(struct media_sink *media_sink, MediaEventType type) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4479