summaryrefslogtreecommitdiffstats
path: root/src/plugins/multimedia/windows
diff options
context:
space:
mode:
authorAndré de la Rocha <andre.rocha@qt.io>2022-03-16 22:00:33 -0300
committerAndré de la Rocha <andre.rocha@qt.io>2022-03-17 05:54:18 -0300
commit6ed6d0ab838c8e9a808105376c5a92747f1a252c (patch)
treeded5ff94242621fb0bf3bc43dccf68c612817106 /src/plugins/multimedia/windows
parent067d937560a50a51f3d80bc65dda1b83225e91ff (diff)
Windows: Avoid WMF error with some specific video files
Some specific video files cause a WMF error when played, possibly due to an issue in WMF, likely triggered by a non-standard setting in the files. However, the video files play fine when the error is ignored, which seems to cause no other issues. Fixes: QTBUG-100835 Pick-to: 6.3 6.2 Change-Id: I7227c0bfbe3c1504e57ce3aec1c92c433879e618 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/plugins/multimedia/windows')
-rw-r--r--src/plugins/multimedia/windows/player/mfplayersession.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/multimedia/windows/player/mfplayersession.cpp b/src/plugins/multimedia/windows/player/mfplayersession.cpp
index d64ece5a7..544567e5b 100644
--- a/src/plugins/multimedia/windows/player/mfplayersession.cpp
+++ b/src/plugins/multimedia/windows/player/mfplayersession.cpp
@@ -1639,6 +1639,14 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
changeStatus(QMediaPlayer::InvalidMedia);
break;
case MEError:
+ if (hrStatus == MF_E_ALREADY_INITIALIZED) {
+ // Workaround for a possible WMF issue that causes an error
+ // with some specific videos, which play fine otherwise.
+#ifdef DEBUG_MEDIAFOUNDATION
+ qDebug() << "handleSessionEvent: ignoring MF_E_ALREADY_INITIALIZED";
+#endif
+ break;
+ }
changeStatus(QMediaPlayer::InvalidMedia);
qWarning() << "handleSessionEvent: serious error = " << hrStatus;
emit error(QMediaPlayer::ResourceError, tr("Media session serious error."), true);