summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVal Doroshchuk <valentyn.doroshchuk@qt.io>2019-01-08 13:30:25 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-01-14 09:20:49 +0000
commit4eb0a083cbadca2d24d2382e159864b2980e425f (patch)
treea57a268908bdcb6f4d8cd54d4ed7bd60525e2c2a
parent509dedc662a46e37a5024ce357978b8cf70b4988 (diff)
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.txt2
-rw-r--r--src/multimedia/configure.json27
-rw-r--r--src/plugins/directshow/directshow.pro5
-rw-r--r--src/plugins/directshow/directshow_camera.json4
-rw-r--r--src/plugins/directshow/dsserviceplugin.cpp5
-rw-r--r--src/plugins/directshow/dsserviceplugin.h6
-rw-r--r--src/plugins/wmf/player/mfplayersession.h3
-rw-r--r--src/plugins/wmf/wmf.pro5
-rw-r--r--src/plugins/wmf/wmf_audiodecode.json4
-rw-r--r--src/plugins/wmf/wmfserviceplugin.cpp9
-rw-r--r--src/plugins/wmf/wmfserviceplugin.h5
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);