summaryrefslogtreecommitdiffstats
path: root/src/plugins/wmf/player/mfplayersession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/wmf/player/mfplayersession.cpp')
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index ef359b5e5..2d56aff3d 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -418,7 +418,7 @@ MFPlayerSession::MFPlayerSession(MFPlayerService *playerService)
, m_mediaTypes(0)
{
m_hCloseEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
- m_sourceResolver = new SourceResolver(this);
+ m_sourceResolver = new SourceResolver();
QObject::connect(m_sourceResolver, SIGNAL(mediaSourceReady()), this, SLOT(handleMediaSourceReady()));
QObject::connect(m_sourceResolver, SIGNAL(error(long)), this, SLOT(handleSourceError(long)));
QObject::connect(this, SIGNAL(sessionEvent(IMFMediaEvent *)), this, SLOT(handleSessionEvent(IMFMediaEvent *)));
@@ -456,9 +456,13 @@ void MFPlayerSession::close()
if (SUCCEEDED(hr)) {
if (m_session)
m_session->Shutdown();
- m_sourceResolver->shutdown();
+ if (m_sourceResolver)
+ m_sourceResolver->shutdown();
+ }
+ if (m_sourceResolver) {
+ m_sourceResolver->Release();
+ m_sourceResolver = 0;
}
- m_sourceResolver->Release();
if (m_session)
m_session->Release();