summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp3
-rw-r--r--tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp11
2 files changed, 11 insertions, 3 deletions
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index 9cbb62969..8ee5d67a1 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -402,7 +402,6 @@ void DirectShowPlayerService::doSetUrlSource(QMutexLocker *locker)
} else if (!m_resources.isEmpty()) {
m_pendingTasks |= SetUrlSource;
} else {
- m_pendingTasks = 0;
m_graphStatus = InvalidMedia;
switch (hr) {
@@ -1688,8 +1687,6 @@ void DirectShowPlayerService::run()
QMutexLocker locker(&m_mutex);
for (;;) {
- ::ResetEvent(m_taskHandle);
-
while (m_pendingTasks == 0) {
DWORD result = 0;
diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
index 5a703f2e1..9fe0a39ec 100644
--- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
+++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
@@ -59,6 +59,7 @@ private slots:
void construction();
void loadMedia();
void unloadMedia();
+ void loadMediaInLoadingState();
void playPauseStop();
void processEOS();
void deleteLaterAtEOS();
@@ -325,6 +326,16 @@ void tst_QMediaPlayerBackend::unloadMedia()
QVERIFY(!positionSpy.isEmpty());
}
+void tst_QMediaPlayerBackend::loadMediaInLoadingState()
+{
+ const QUrl url("http://unavailable.media/");
+ QMediaPlayer player;
+ player.setMedia(QMediaContent(url));
+ player.play();
+ // Sets new media while old has not been finished.
+ player.setMedia(QMediaContent(url));
+ QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::InvalidMedia);
+}
void tst_QMediaPlayerBackend::playPauseStop()
{