Module: wine Branch: master Commit: 7e575d681d8586b50c218bc6dd25c5260221234d URL: https://gitlab.winehq.org/wine/wine/-/commit/7e575d681d8586b50c218bc6dd25c52...
Author: Ziqing Hui zhui@codeweavers.com Date: Fri Nov 24 09:13:01 2023 +0800
winegstreamer: Avoid media sink command leaking.
---
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)