Nikolay Sivov : mf: Send format invalidation event when new type is set for SAR stream.

Alexandre Julliard julliard at winehq.org
Tue Apr 21 15:59:48 CDT 2020


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Apr 21 16:43:04 2020 +0300

mf: Send format invalidation event when new type is set for SAR stream.

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

---

 dlls/mf/sar.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/dlls/mf/sar.c b/dlls/mf/sar.c
index e426020a08..d14a903eea 100644
--- a/dlls/mf/sar.c
+++ b/dlls/mf/sar.c
@@ -1271,6 +1271,7 @@ static HRESULT WINAPI audio_renderer_stream_type_handler_SetCurrentMediaType(IMF
 {
     struct audio_renderer *renderer = impl_from_IMFMediaTypeHandler(iface);
     const unsigned int test_flags = MF_MEDIATYPE_EQUAL_MAJOR_TYPES | MF_MEDIATYPE_EQUAL_FORMAT_TYPES;
+    BOOL compare_result;
     unsigned int flags;
     HRESULT hr = S_OK;
 
@@ -1287,7 +1288,16 @@ static HRESULT WINAPI audio_renderer_stream_type_handler_SetCurrentMediaType(IMF
         renderer->current_media_type = media_type;
         IMFMediaType_AddRef(renderer->current_media_type);
 
-        hr = audio_renderer_create_audio_client(renderer);
+        if (SUCCEEDED(hr = audio_renderer_create_audio_client(renderer)))
+        {
+            if (SUCCEEDED(IMFMediaType_Compare(renderer->media_type, (IMFAttributes *)media_type, MF_ATTRIBUTES_MATCH_OUR_ITEMS,
+                    &compare_result)) && !compare_result)
+            {
+                IMFMediaEventQueue_QueueEventParamVar(renderer->stream_event_queue, MEStreamSinkFormatInvalidated, &GUID_NULL,
+                        S_OK, NULL);
+                audio_renderer_preroll(renderer);
+            }
+        }
     }
     else
         hr = MF_E_INVALIDMEDIATYPE;




More information about the wine-cvs mailing list