From: "Rémi Bernon" rbernon@codeweavers.com
Signed-off-by: Rémi Bernon rbernon@codeweavers.com Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mfplat/main.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index de2b5c6ee51..e23c648c823 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -7006,6 +7006,13 @@ static IMFMediaEvent *queue_pop_event(struct event_queue *queue) return event; }
+static void event_queue_clear_subscriber(struct event_queue *queue) +{ + if (queue->subscriber) + IRtwqAsyncResult_Release(queue->subscriber); + queue->subscriber = NULL; +} + static void event_queue_cleanup(struct event_queue *queue) { IMFMediaEvent *event; @@ -7258,6 +7265,7 @@ static HRESULT WINAPI eventqueue_Shutdown(IMFMediaEventQueue *iface) if (!queue->is_shut_down) { event_queue_cleanup(queue); + event_queue_clear_subscriber(queue); queue->is_shut_down = TRUE; }