diff options
author | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-01-08 13:30:25 +0100 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-01-14 09:20:49 +0000 |
commit | 4eb0a083cbadca2d24d2382e159864b2980e425f (patch) | |
tree | a57a268908bdcb6f4d8cd54d4ed7bd60525e2c2a | |
parent | 509dedc662a46e37a5024ce357978b8cf70b4988 (diff) | |
download | qtmultimedia-4eb0a083cbadca2d24d2382e159864b2980e425f.tar.gz |
Windows: Build directshow media player with wmf if available
Removed -mediaplayer-backend configure param.
It allows to build directshow media player together with wmf's one,
if the last is available.
It is useful to switch to another backend without rebuilding.
By default directshow media player will be used.
[ChangeLog][Platform Specific Changes][Windows] Removed
-mediaplayer-backend config param which allowed to build wmf
together with DirectShow.
Task-number: QTBUG-32783
Change-Id: I486a93d9493407af3793cfe338b35daab7c642db
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
-rw-r--r-- | config_help.txt | 2 | ||||
-rw-r--r-- | src/multimedia/configure.json | 27 | ||||
-rw-r--r-- | src/plugins/directshow/directshow.pro | 5 | ||||
-rw-r--r-- | src/plugins/directshow/directshow_camera.json | 4 | ||||
-rw-r--r-- | src/plugins/directshow/dsserviceplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/directshow/dsserviceplugin.h | 6 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayersession.h | 3 | ||||
-rw-r--r-- | src/plugins/wmf/wmf.pro | 5 | ||||
-rw-r--r-- | src/plugins/wmf/wmf_audiodecode.json | 4 | ||||
-rw-r--r-- | src/plugins/wmf/wmfserviceplugin.cpp | 9 | ||||
-rw-r--r-- | src/plugins/wmf/wmfserviceplugin.h | 5 |
11 files changed, 9 insertions, 66 deletions
diff --git a/config_help.txt b/config_help.txt index 341f53506..f21d54402 100644 --- a/config_help.txt +++ b/config_help.txt @@ -5,6 +5,4 @@ Multimedia options: -no-gstreamer ........ Disable support for GStreamer -gstreamer [version] . Enable GStreamer support [auto] With no parameter, 1.0 is tried first, then 0.10. - -mediaplayer-backend <name> ... Select media player backend (Windows only) - Supported backends: directshow (default), wmf -evr ................. Enables EVR in DirectShow and WMF [auto] diff --git a/src/multimedia/configure.json b/src/multimedia/configure.json index ba800fac5..b50272424 100644 --- a/src/multimedia/configure.json +++ b/src/multimedia/configure.json @@ -12,9 +12,7 @@ "directshow": { "type": "boolean" }, "wmf": { "type": "boolean" }, "gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] }, - "pulseaudio": "boolean", - "mediaplayer-backend": { "type": "string", "values": [ "directshow", "wmf" ] }, - "wmf-backend": { "type": "void", "name": "mediaplayer-backend", "value": "wmf" } + "pulseaudio": "boolean" } }, @@ -190,13 +188,6 @@ "condition": "config.win32 && libs.directshow", "output": [ "feature", "privateFeature" ] }, - "directshow-player": { - "label": "DirectShow", - "enable": "input.mediaplayer-backend == 'directshow'", - "disable": "input.mediaplayer-backend == 'wmf'", - "condition": "features.directshow && !features.wmf-player", - "output": [ "privateFeature" ] - }, "evr": { "label": "evr.h", "condition": "config.win32 && tests.evr", @@ -286,13 +277,6 @@ "label": "Windows Media Foundation", "condition": "config.win32 && libs.wmf", "output": [ "privateFeature" ] - }, - "wmf-player": { - "label": "Windows Media Foundation", - "enable": "input.mediaplayer-backend == 'wmf'", - "disable": "input.mediaplayer-backend != 'wmf'", - "condition": "features.wmf", - "output": [ "privateFeature" ] } }, @@ -314,14 +298,7 @@ "avfoundation", "wasapi", "directshow", - "wmf", - { - "message": "Media player backend", - "type": "firstAvailableFeature", - "args": "directshow-player wmf-player", - "condition": "config.win32" - } - + "wmf" ] } ] diff --git a/src/plugins/directshow/directshow.pro b/src/plugins/directshow/directshow.pro index 54d617166..e531efc53 100644 --- a/src/plugins/directshow/directshow.pro +++ b/src/plugins/directshow/directshow.pro @@ -17,12 +17,11 @@ mingw { } include(common/common.pri) -qtConfig(directshow-player): include(player/player.pri) +include(player/player.pri) include(camera/camera.pri) OTHER_FILES += \ - directshow.json \ - directshow_camera.json + directshow.json PLUGIN_TYPE = mediaservice PLUGIN_CLASS_NAME = DSServicePlugin diff --git a/src/plugins/directshow/directshow_camera.json b/src/plugins/directshow/directshow_camera.json deleted file mode 100644 index c37ce2c9a..000000000 --- a/src/plugins/directshow/directshow_camera.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Keys": ["directshow"], - "Services": ["org.qt-project.qt.camera"] -} diff --git a/src/plugins/directshow/dsserviceplugin.cpp b/src/plugins/directshow/dsserviceplugin.cpp index 64b30f561..727a11b55 100644 --- a/src/plugins/directshow/dsserviceplugin.cpp +++ b/src/plugins/directshow/dsserviceplugin.cpp @@ -51,9 +51,7 @@ #include <dshow.h> #include "dscameraservice.h" -#if QT_CONFIG(directshow_player) #include "directshowplayerservice.h" -#endif #include <qmediaserviceproviderplugin.h> @@ -95,12 +93,11 @@ QMediaService* DSServicePlugin::create(QString const& key) addRefCount(); return new DSCameraService; } -#if QT_CONFIG(directshow_player) + if (key == QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)) { addRefCount(); return new DirectShowPlayerService; } -#endif return 0; } diff --git a/src/plugins/directshow/dsserviceplugin.h b/src/plugins/directshow/dsserviceplugin.h index 2e87058c3..55db9310c 100644 --- a/src/plugins/directshow/dsserviceplugin.h +++ b/src/plugins/directshow/dsserviceplugin.h @@ -55,13 +55,7 @@ class DSServicePlugin Q_INTERFACES(QMediaServiceSupportedDevicesInterface) Q_INTERFACES(QMediaServiceDefaultDeviceInterface) Q_INTERFACES(QMediaServiceFeaturesInterface) - // The player service provided by the WMF-plugin should preferably be used. - // DirectShow should then only provide the camera (see QTBUG-29172, QTBUG-29175). -#if QT_CONFIG(directshow_player) Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "directshow.json") -#else - Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "directshow_camera.json") -#endif public: QMediaService* create(QString const& key) override; diff --git a/src/plugins/wmf/player/mfplayersession.h b/src/plugins/wmf/player/mfplayersession.h index 72dc99d02..21fabbd92 100644 --- a/src/plugins/wmf/player/mfplayersession.h +++ b/src/plugins/wmf/player/mfplayersession.h @@ -62,9 +62,6 @@ QT_END_NAMESPACE QT_USE_NAMESPACE class SourceResolver; -#ifndef Q_WS_SIMULATOR -class EvrVideoWindowControl; -#endif class MFAudioEndpointControl; class MFVideoRendererControl; class MFPlayerControl; diff --git a/src/plugins/wmf/wmf.pro b/src/plugins/wmf/wmf.pro index b202ff2a1..7c712233d 100644 --- a/src/plugins/wmf/wmf.pro +++ b/src/plugins/wmf/wmf.pro @@ -17,12 +17,11 @@ SOURCES += \ mfstream.cpp \ sourceresolver.cpp -qtConfig(wmf-player): include (player/player.pri) +include (player/player.pri) include (decoder/decoder.pri) OTHER_FILES += \ - wmf.json \ - wmf_audiodecode.json + wmf.json PLUGIN_TYPE = mediaservice PLUGIN_CLASS_NAME = WMFServicePlugin diff --git a/src/plugins/wmf/wmf_audiodecode.json b/src/plugins/wmf/wmf_audiodecode.json deleted file mode 100644 index 2a65dd758..000000000 --- a/src/plugins/wmf/wmf_audiodecode.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Keys": ["windowsmediafoundation"], - "Services": ["org.qt-project.qt.audiodecode"] -} diff --git a/src/plugins/wmf/wmfserviceplugin.cpp b/src/plugins/wmf/wmfserviceplugin.cpp index 1eeb22428..740067600 100644 --- a/src/plugins/wmf/wmfserviceplugin.cpp +++ b/src/plugins/wmf/wmfserviceplugin.cpp @@ -42,9 +42,7 @@ #include <QtCore/QFile> #include "wmfserviceplugin.h" -#if QT_CONFIG(wmf_player) #include "mfplayerservice.h" -#endif #include "mfdecoderservice.h" #include <mfapi.h> @@ -74,12 +72,11 @@ void releaseRefCount() QMediaService* WMFServicePlugin::create(QString const& key) { -#if QT_CONFIG(wmf_player) if (key == QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)) { addRefCount(); return new MFPlayerService; } -#endif + if (key == QLatin1String(Q_MEDIASERVICE_AUDIODECODER)) { addRefCount(); return new MFAudioDecoderService; @@ -97,13 +94,9 @@ void WMFServicePlugin::release(QMediaService *service) QMediaServiceProviderHint::Features WMFServicePlugin::supportedFeatures( const QByteArray &service) const { -#if QT_CONFIG(wmf_player) if (service == Q_MEDIASERVICE_MEDIAPLAYER) return QMediaServiceProviderHint::StreamPlayback; else -#else - Q_UNUSED(service); -#endif return QMediaServiceProviderHint::Features(); } diff --git a/src/plugins/wmf/wmfserviceplugin.h b/src/plugins/wmf/wmfserviceplugin.h index 826ca1d26..493a0b08c 100644 --- a/src/plugins/wmf/wmfserviceplugin.h +++ b/src/plugins/wmf/wmfserviceplugin.h @@ -55,11 +55,8 @@ class WMFServicePlugin Q_INTERFACES(QMediaServiceSupportedDevicesInterface) Q_INTERFACES(QMediaServiceDefaultDeviceInterface) Q_INTERFACES(QMediaServiceFeaturesInterface) -#if QT_CONFIG(wmf_player) Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "wmf.json") -#else - Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "wmf_audiodecode.json") -#endif + public: QMediaService* create(QString const& key); void release(QMediaService *service); |