summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/wmf/player/mfplayerservice.cpp3
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp2
-rw-r--r--src/plugins/wmf/wmfserviceplugin.cpp2
3 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/wmf/player/mfplayerservice.cpp b/src/plugins/wmf/player/mfplayerservice.cpp
index 2ca74ad3e..5bda9f983 100644
--- a/src/plugins/wmf/player/mfplayerservice.cpp
+++ b/src/plugins/wmf/player/mfplayerservice.cpp
@@ -71,6 +71,8 @@ MFPlayerService::MFPlayerService(QObject *parent)
MFPlayerService::~MFPlayerService()
{
+ m_session->close();
+
#ifndef Q_WS_SIMULATOR
if (m_videoWindowControl)
delete m_videoWindowControl;
@@ -79,7 +81,6 @@ MFPlayerService::~MFPlayerService()
if (m_videoRendererControl)
delete m_videoRendererControl;
- m_session->close();
m_session->Release();
}
diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index e9c40567c..150958660 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -454,7 +454,7 @@ void MFPlayerSession::close()
if (m_session) {
hr = m_session->Close();
if (SUCCEEDED(hr)) {
- DWORD dwWaitResult = WaitForSingleObject(m_hCloseEvent, 5000);
+ DWORD dwWaitResult = WaitForSingleObject(m_hCloseEvent, 100);
if (dwWaitResult == WAIT_TIMEOUT) {
qWarning() << "session close time out!";
}
diff --git a/src/plugins/wmf/wmfserviceplugin.cpp b/src/plugins/wmf/wmfserviceplugin.cpp
index 9d1a359db..8cff66f30 100644
--- a/src/plugins/wmf/wmfserviceplugin.cpp
+++ b/src/plugins/wmf/wmfserviceplugin.cpp
@@ -92,8 +92,8 @@ QMediaService* WMFServicePlugin::create(QString const& key)
void WMFServicePlugin::release(QMediaService *service)
{
- releaseRefCount();
delete service;
+ releaseRefCount();
}
QMediaServiceProviderHint::Features WMFServicePlugin::supportedFeatures(