From 163846dba1ef9171699b5203cf9bfbb91a609df0 Mon Sep 17 00:00:00 2001
From: Val Doroshchuk <valentyn.doroshchuk@qt.io>
Date: Fri, 13 Sep 2019 13:18:57 +0200
Subject: [PATCH] DirectShow: Emit media status before error

Media status should be emitted before any error.
Since error can cause changing the media and changing to new media
status.

Fixes
BFAIL  : tst_QMediaPlayerBackend::playlistObject() Compared values are not the same
   Actual   (mediaStatusSpy.count()): 4
   Expected (6)                     : 6

Task-number: QTBUG-46368
Change-Id: I8eb82e7a551d78abd143baa594cfda9bacd7e544
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
---
 src/plugins/directshow/player/directshowplayercontrol.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/plugins/directshow/player/directshowplayercontrol.cpp b/src/plugins/directshow/player/directshowplayercontrol.cpp
index 7de0a686f..14f272f17 100644
--- a/src/plugins/directshow/player/directshowplayercontrol.cpp
+++ b/src/plugins/directshow/player/directshowplayercontrol.cpp
@@ -293,6 +293,9 @@ void DirectShowPlayerControl::emitPropertyChanges()
     int properties = m_updateProperties;
     m_updateProperties = 0;
 
+    if (properties & StatusProperty)
+        emit mediaStatusChanged(m_status);
+
     if ((properties & ErrorProperty) && m_error != QMediaPlayer::NoError)
         emit error(m_error, m_errorString);
 
@@ -313,9 +316,6 @@ void DirectShowPlayerControl::emitPropertyChanges()
     if (properties & SeekableProperty)
         emit seekableChanged(m_seekable);
 
-    if (properties & StatusProperty)
-        emit mediaStatusChanged(m_status);
-
     if (properties & StateProperty)
         emit stateChanged(m_state);
 }
-- 
GitLab