[PATCH v5 0/1] MR3789: Improve media session handling of unexpected errors.
-- v5: mf: Handle errors with source event generator in session. https://gitlab.winehq.org/wine/wine/-/merge_requests/3789
From: Santino Mazza <smazza(a)codeweavers.com> --- dlls/mf/session.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dlls/mf/session.c b/dlls/mf/session.c index b5b631fb00a..db742350161 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -3679,7 +3679,9 @@ static HRESULT WINAPI session_events_callback_Invoke(IMFAsyncCallback *iface, IM if (FAILED(hr = IMFMediaEventGenerator_EndGetEvent(event_source, result, &event))) { WARN("Failed to get event from %p, hr %#lx.\n", event_source, hr); - goto failed; + IMFMediaEventQueue_QueueEventParamVar(session->event_queue, MEError, &GUID_NULL, hr, NULL); + IMFMediaEventGenerator_Release(event_source); + return hr; } if (FAILED(hr = IMFMediaEvent_GetType(event, &event_type))) @@ -3872,11 +3874,15 @@ static HRESULT WINAPI session_events_callback_Invoke(IMFAsyncCallback *iface, IM PropVariantClear(&value); failed: - if (event) - IMFMediaEvent_Release(event); if (FAILED(hr = IMFMediaEventGenerator_BeginGetEvent(event_source, iface, (IUnknown *)event_source))) + { WARN("Failed to re-subscribe, hr %#lx.\n", hr); + IMFMediaEventQueue_QueueEvent(session->event_queue, event); + } + + if (event) + IMFMediaEvent_Release(event); IMFMediaEventGenerator_Release(event_source); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3789
On Fri Oct 20 17:47:26 2023 +0000, Santino Mazza wrote:
mmm, apparently if an error occurs when trying to re-subscribe it emits an event, but it doesn't emit MEError, it emits the same event as the one it received. [0001-mf-test-Test-error-cases-in-media-sesssion.patch](/uploads/b31f11708d6d9276c99f4de292b82b7d/0001-mf-test-Test-error-cases-in-media-sesssion.patch) This are the tests.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3789#note_49437
This merge request was approved by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3789
participants (3)
-
Nikolay Sivov (@nsivov) -
Santino Mazza -
Santino Mazza (@tati1454)