[PATCH 1/2] mfplay: Do not clear media item when playback ends.

Nikolay Sivov nsivov at codeweavers.com
Fri Oct 22 00:22:58 CDT 2021


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/mfplay/player.c | 17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/dlls/mfplay/player.c b/dlls/mfplay/player.c
index f7832598ae6..42b40b99ea1 100644
--- a/dlls/mfplay/player.c
+++ b/dlls/mfplay/player.c
@@ -1860,21 +1860,6 @@ static void media_player_create_forward_event(struct media_player *player, HRESU
     LeaveCriticalSection(&player->cs);
 }
 
-static void media_player_create_playback_ended_event(struct media_player *player, HRESULT event_status,
-        struct media_event **event)
-{
-    EnterCriticalSection(&player->cs);
-
-    if (SUCCEEDED(media_event_create(player, MFP_EVENT_TYPE_PLAYBACK_ENDED, event_status, player->item, event)))
-    {
-        if (player->item)
-            IMFPMediaItem_Release(player->item);
-        player->item = NULL;
-    }
-
-    LeaveCriticalSection(&player->cs);
-}
-
 static HRESULT WINAPI media_player_session_events_callback_Invoke(IMFAsyncCallback *iface,
         IMFAsyncResult *result)
 {
@@ -1936,7 +1921,7 @@ static HRESULT WINAPI media_player_session_events_callback_Invoke(IMFAsyncCallba
             if (SUCCEEDED(IMFMediaEvent_GetUINT32(session_event, &MF_EVENT_TOPOLOGY_STATUS, &status)) &&
                     status == MF_TOPOSTATUS_ENDED)
             {
-                media_player_create_playback_ended_event(player, event_status, &event);
+                media_event_create(player, MFP_EVENT_TYPE_PLAYBACK_ENDED, event_status, player->item, &event);
             }
 
             break;
-- 
2.33.0




More information about the wine-devel mailing list