diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/wmf/mfstream.cpp (renamed from src/plugins/wmf/player/mfstream.cpp) | 0 | ||||
-rw-r--r-- | src/plugins/wmf/mfstream.h (renamed from src/plugins/wmf/player/mfstream.h) | 0 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayerservice.cpp | 12 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayerservice.h | 1 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayersession.cpp | 2 | ||||
-rw-r--r-- | src/plugins/wmf/player/player.pri | 4 | ||||
-rw-r--r-- | src/plugins/wmf/sourceresolver.cpp (renamed from src/plugins/wmf/player/sourceresolver.cpp) | 0 | ||||
-rw-r--r-- | src/plugins/wmf/sourceresolver.h (renamed from src/plugins/wmf/player/sourceresolver.h) | 0 | ||||
-rw-r--r-- | src/plugins/wmf/wmf.pro | 14 | ||||
-rw-r--r-- | src/plugins/wmf/wmfserviceplugin.cpp | 31 |
10 files changed, 42 insertions, 22 deletions
diff --git a/src/plugins/wmf/player/mfstream.cpp b/src/plugins/wmf/mfstream.cpp index 99033b046..99033b046 100644 --- a/src/plugins/wmf/player/mfstream.cpp +++ b/src/plugins/wmf/mfstream.cpp diff --git a/src/plugins/wmf/player/mfstream.h b/src/plugins/wmf/mfstream.h index ef854b56f..ef854b56f 100644 --- a/src/plugins/wmf/player/mfstream.h +++ b/src/plugins/wmf/mfstream.h diff --git a/src/plugins/wmf/player/mfplayerservice.cpp b/src/plugins/wmf/player/mfplayerservice.cpp index 20e056108..33720550e 100644 --- a/src/plugins/wmf/player/mfplayerservice.cpp +++ b/src/plugins/wmf/player/mfplayerservice.cpp @@ -52,7 +52,6 @@ #include "mfplayerservice.h" #include "mfplayersession.h" #include "mfmetadatacontrol.h" -int MFPlayerService::s_refCount = 0; MFPlayerService::MFPlayerService(QObject *parent) : QMediaService(parent) @@ -62,11 +61,6 @@ MFPlayerService::MFPlayerService(QObject *parent) #endif , m_videoRendererControl(0) { - s_refCount++; - if (s_refCount == 1) { - CoInitialize(NULL); - MFStartup(MF_VERSION); - } m_audioEndpointControl = new MFAudioEndpointControl(this); m_session = new MFPlayerSession(this); m_player = new MFPlayerControl(m_session); @@ -85,12 +79,6 @@ MFPlayerService::~MFPlayerService() m_session->close(); m_session->Release(); - - s_refCount--; - if (s_refCount == 0) { - MFShutdown(); - CoUninitialize(); - } } QMediaControl* MFPlayerService::requestControl(const char *name) diff --git a/src/plugins/wmf/player/mfplayerservice.h b/src/plugins/wmf/player/mfplayerservice.h index 65f3b34d5..587e5925f 100644 --- a/src/plugins/wmf/player/mfplayerservice.h +++ b/src/plugins/wmf/player/mfplayerservice.h @@ -91,7 +91,6 @@ private: #endif MFPlayerControl *m_player; MFMetaDataControl *m_metaDataControl; - static int s_refCount; }; #endif diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp index c8c99e29a..ef359b5e5 100644 --- a/src/plugins/wmf/player/mfplayersession.cpp +++ b/src/plugins/wmf/player/mfplayersession.cpp @@ -62,7 +62,7 @@ #include "mfmetadatacontrol.h" #include <Mferror.h> #include <nserror.h> -#include <sourceresolver.h> +#include "sourceresolver.h" //#define DEBUG_MEDIAFOUNDATION //#define TEST_STREAMING diff --git a/src/plugins/wmf/player/player.pri b/src/plugins/wmf/player/player.pri index 57cca77e9..733c790ed 100644 --- a/src/plugins/wmf/player/player.pri +++ b/src/plugins/wmf/player/player.pri @@ -7,8 +7,6 @@ DEFINES += QMEDIA_MEDIAFOUNDATION_PLAYER HEADERS += \ $$PWD/mfplayerservice.h \ $$PWD/mfplayersession.h \ - $$PWD/mfstream.h \ - $$PWD/sourceresolver.h \ $$PWD/mfplayercontrol.h \ $$PWD/mfvideorenderercontrol.h \ $$PWD/mfaudioendpointcontrol.h \ @@ -17,8 +15,6 @@ HEADERS += \ SOURCES += \ $$PWD/mfplayerservice.cpp \ $$PWD/mfplayersession.cpp \ - $$PWD/mfstream.cpp \ - $$PWD/sourceresolver.cpp \ $$PWD/mfplayercontrol.cpp \ $$PWD/mfvideorenderercontrol.cpp \ $$PWD/mfaudioendpointcontrol.cpp \ diff --git a/src/plugins/wmf/player/sourceresolver.cpp b/src/plugins/wmf/sourceresolver.cpp index 8db973a24..8db973a24 100644 --- a/src/plugins/wmf/player/sourceresolver.cpp +++ b/src/plugins/wmf/sourceresolver.cpp diff --git a/src/plugins/wmf/player/sourceresolver.h b/src/plugins/wmf/sourceresolver.h index f0568555a..f0568555a 100644 --- a/src/plugins/wmf/player/sourceresolver.h +++ b/src/plugins/wmf/sourceresolver.h diff --git a/src/plugins/wmf/wmf.pro b/src/plugins/wmf/wmf.pro index 8daabf582..f7e1acf1d 100644 --- a/src/plugins/wmf/wmf.pro +++ b/src/plugins/wmf/wmf.pro @@ -12,8 +12,18 @@ load(qt_plugin) DESTDIR = $$QT.multimedia.plugins/$${PLUGIN_TYPE} -HEADERS += wmfserviceplugin.h -SOURCES += wmfserviceplugin.cpp +DEPENDPATH += . +INCLUDEPATH += . + +HEADERS += \ + wmfserviceplugin.h \ + mfstream.h \ + sourceresolver.h + +SOURCES += \ + wmfserviceplugin.cpp \ + mfstream.cpp \ + sourceresolver.cpp include (player/player.pri) diff --git a/src/plugins/wmf/wmfserviceplugin.cpp b/src/plugins/wmf/wmfserviceplugin.cpp index 34536ba96..a796b81ea 100644 --- a/src/plugins/wmf/wmfserviceplugin.cpp +++ b/src/plugins/wmf/wmfserviceplugin.cpp @@ -48,19 +48,46 @@ #include "mfplayerservice.h" #endif +#include <mfapi.h> + +namespace +{ +static int g_refCount = 0; +void addRefCount() +{ + g_refCount++; + if (g_refCount == 1) { + CoInitialize(NULL); + MFStartup(MF_VERSION); + } +} + +void releaseRefCount() +{ + g_refCount--; + if (g_refCount == 0) { + MFShutdown(); + CoUninitialize(); + } +} + +} + QMediaService* WMFServicePlugin::create(QString const& key) { #ifdef QMEDIA_MEDIAFOUNDATION_PLAYER - if (key == QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)) + if (key == QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)) { + addRefCount(); return new MFPlayerService; + } #endif - //qDebug() << "unsupported key:" << key; return 0; } void WMFServicePlugin::release(QMediaService *service) { + releaseRefCount(); delete service; } |