Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mf/session.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c index 5bbd47b3418..d586f1c6be9 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -2910,6 +2910,7 @@ static HRESULT WINAPI session_events_callback_Invoke(IMFAsyncCallback *iface, IM IMFMediaEventGenerator *event_source; IMFMediaEvent *event = NULL; MediaEventType event_type; + IUnknown *object = NULL; IMFMediaSource *source; IMFMediaStream *stream; PROPVARIANT value; @@ -3057,6 +3058,21 @@ static HRESULT WINAPI session_events_callback_Invoke(IMFAsyncCallback *iface, IM (IMFStreamSink *)event_source); LeaveCriticalSection(&session->cs);
+ break; + case MEQualityNotify: + + if (session->quality_manager) + { + if (FAILED(IMFMediaEventGenerator_QueryInterface(event_source, &IID_IMFStreamSink, (void **)&object))) + IMFMediaEventGenerator_QueryInterface(event_source, &IID_IMFTransform, (void **)&object); + + if (object) + { + IMFQualityManager_NotifyQualityEvent(session->quality_manager, object, event); + IUnknown_Release(object); + } + } + break; default: ;