Nikolay Sivov : mfmediaengine: Fully initialize error state.

Alexandre Julliard julliard at winehq.org
Thu Jun 4 16:08:00 CDT 2020


Module: wine
Branch: master
Commit: fae575cee92ed98b5084f64ed27fd5519e4d65bf
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=fae575cee92ed98b5084f64ed27fd5519e4d65bf

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Jun  4 13:41:46 2020 +0300

mfmediaengine: Fully initialize error state.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mfmediaengine/main.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c
index dba55bb937..7693205238 100644
--- a/dlls/mfmediaengine/main.c
+++ b/dlls/mfmediaengine/main.c
@@ -85,6 +85,7 @@ struct media_engine
     double volume;
     double duration;
     MF_MEDIA_ENGINE_ERR error_code;
+    HRESULT extended_code;
     IMFMediaSession *session;
     IMFSourceResolver *resolver;
     CRITICAL_SECTION cs;
@@ -440,8 +441,12 @@ static HRESULT WINAPI media_engine_load_handler_Invoke(IMFAsyncCallback *iface,
     }
 
     if (FAILED(hr))
-        IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_ERROR,
-            MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED, hr);
+    {
+        engine->error_code = MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED;
+        engine->extended_code = hr;
+        IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_ERROR, engine->error_code,
+                engine->extended_code);
+    }
 
     LeaveCriticalSection(&engine->cs);
 
@@ -526,7 +531,10 @@ static HRESULT WINAPI media_engine_GetError(IMFMediaEngine *iface, IMFMediaError
     else if (engine->error_code)
     {
         if (SUCCEEDED(hr = create_media_error(error)))
+        {
             IMFMediaError_SetErrorCode(*error, engine->error_code);
+            IMFMediaError_SetExtendedErrorCode(*error, engine->extended_code);
+        }
     }
     LeaveCriticalSection(&engine->cs);
 




More information about the wine-cvs mailing list