mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-01 19:38:31 +00:00
mf: Handle errors with source event generator in session.
This commit is contained in:
parent
09c96907c1
commit
0170cd3a4c
|
@ -3679,7 +3679,9 @@ static HRESULT WINAPI session_events_callback_Invoke(IMFAsyncCallback *iface, IM
|
||||||
if (FAILED(hr = IMFMediaEventGenerator_EndGetEvent(event_source, result, &event)))
|
if (FAILED(hr = IMFMediaEventGenerator_EndGetEvent(event_source, result, &event)))
|
||||||
{
|
{
|
||||||
WARN("Failed to get event from %p, hr %#lx.\n", event_source, hr);
|
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)))
|
if (FAILED(hr = IMFMediaEvent_GetType(event, &event_type)))
|
||||||
|
@ -3872,11 +3874,15 @@ static HRESULT WINAPI session_events_callback_Invoke(IMFAsyncCallback *iface, IM
|
||||||
PropVariantClear(&value);
|
PropVariantClear(&value);
|
||||||
|
|
||||||
failed:
|
failed:
|
||||||
if (event)
|
|
||||||
IMFMediaEvent_Release(event);
|
|
||||||
|
|
||||||
if (FAILED(hr = IMFMediaEventGenerator_BeginGetEvent(event_source, iface, (IUnknown *)event_source)))
|
if (FAILED(hr = IMFMediaEventGenerator_BeginGetEvent(event_source, iface, (IUnknown *)event_source)))
|
||||||
|
{
|
||||||
WARN("Failed to re-subscribe, hr %#lx.\n", hr);
|
WARN("Failed to re-subscribe, hr %#lx.\n", hr);
|
||||||
|
IMFMediaEventQueue_QueueEvent(session->event_queue, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event)
|
||||||
|
IMFMediaEvent_Release(event);
|
||||||
|
|
||||||
IMFMediaEventGenerator_Release(event_source);
|
IMFMediaEventGenerator_Release(event_source);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue