diff options
author | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2018-04-27 14:26:58 +0200 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2018-08-29 13:48:49 +0000 |
commit | ad4d8d0f4e81796852f74209b023f17efda128b3 (patch) | |
tree | 66c6416a0ec8e43dd84819bb154f80208eef5b9a | |
parent | ec597d89320dd312382457a711ebddb085b16a59 (diff) |
Gstreamer: Allow to use gst specific features
Gstreamer implementation is located in a plugin.
In case if there is a need to use some internal features
QGstreamerPlayerControl and QGstreamerPlayerSession have been moved
from plugin to QtMultimediaGstTools library.
It allows to request media player control from QMediaService
and use it as QGstreamerPlayerControl.
Change-Id: I8e45480c4cd718b90b90d14a42bc56f6f924eae5
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
-rw-r--r-- | src/gsttools/gsttools.pro | 8 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayercontrol.cpp (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp) | 4 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayersession.cpp (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp) | 2 | ||||
-rw-r--r-- | src/multimedia/gsttools_headers/qgstreamerplayercontrol_p.h (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h) | 32 | ||||
-rw-r--r-- | src/multimedia/gsttools_headers/qgstreamerplayersession_p.h (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h) | 22 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/mediaplayer.pro | 4 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp | 2 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp | 4 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp | 2 |
9 files changed, 47 insertions, 33 deletions
diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro index f5e3fd96f..ca111b3f2 100644 --- a/src/gsttools/gsttools.pro +++ b/src/gsttools/gsttools.pro @@ -36,7 +36,9 @@ PRIVATE_HEADERS += \ qgstreameraudioprobecontrol_p.h \ qgstreamervideowindow_p.h \ qgstreamervideooverlay_p.h \ - qgsttools_global_p.h + qgsttools_global_p.h \ + qgstreamerplayersession_p.h \ + qgstreamerplayercontrol_p.h SOURCES += \ qgstreamerbushelper.cpp \ @@ -52,7 +54,9 @@ SOURCES += \ qgstreamervideoprobecontrol.cpp \ qgstreameraudioprobecontrol.cpp \ qgstreamervideowindow.cpp \ - qgstreamervideooverlay.cpp + qgstreamervideooverlay.cpp \ + qgstreamerplayersession.cpp \ + qgstreamerplayercontrol.cpp qtHaveModule(widgets) { QT += multimediawidgets diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp index 0bfe76f2f..91ba39ad9 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp +++ b/src/gsttools/qgstreamerplayercontrol.cpp @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#include "qgstreamerplayercontrol.h" -#include "qgstreamerplayersession.h" +#include <private/qgstreamerplayercontrol_p.h> +#include <private/qgstreamerplayersession_p.h> #include <private/qmediaplaylistnavigator_p.h> #include <private/qmediaresourcepolicy_p.h> diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp index a96da66f8..8ee099590 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp +++ b/src/gsttools/qgstreamerplayersession.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include "qgstreamerplayersession.h" +#include <private/qgstreamerplayersession_p.h> #include <private/qgstreamerbushelper_p.h> #include <private/qgstreameraudioprobecontrol_p.h> diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h b/src/multimedia/gsttools_headers/qgstreamerplayercontrol_p.h index 6067a68fc..e2252ea52 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h +++ b/src/multimedia/gsttools_headers/qgstreamerplayercontrol_p.h @@ -37,29 +37,29 @@ ** ****************************************************************************/ -#ifndef QGSTREAMERPLAYERCONTROL_H -#define QGSTREAMERPLAYERCONTROL_H +#ifndef QGSTREAMERPLAYERCONTROL_P_H +#define QGSTREAMERPLAYERCONTROL_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// -#include <QtCore/qobject.h> #include <QtCore/qstack.h> - #include <qmediaplayercontrol.h> -#include <qmediaplayer.h> - -#include <limits.h> +#include <private/qgsttools_global_p.h> QT_BEGIN_NAMESPACE class QMediaPlayerResourceSetInterface; - -class QMediaPlaylist; -class QMediaPlaylistNavigator; -class QSocketNotifier; - class QGstreamerPlayerSession; -class QGstreamerPlayerService; - -class QGstreamerPlayerControl : public QMediaPlayerControl +class Q_GSTTOOLS_EXPORT QGstreamerPlayerControl : public QMediaPlayerControl { Q_OBJECT @@ -67,6 +67,8 @@ public: QGstreamerPlayerControl(QGstreamerPlayerSession *session, QObject *parent = 0); ~QGstreamerPlayerControl(); + QGstreamerPlayerSession *session() { return m_session; } + QMediaPlayer::State state() const override; QMediaPlayer::MediaStatus mediaStatus() const override; diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/multimedia/gsttools_headers/qgstreamerplayersession_p.h index 7f46e8f41..81c385600 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h +++ b/src/multimedia/gsttools_headers/qgstreamerplayersession_p.h @@ -37,14 +37,25 @@ ** ****************************************************************************/ -#ifndef QGSTREAMERPLAYERSESSION_H -#define QGSTREAMERPLAYERSESSION_H +#ifndef QGSTREAMERPLAYERSESSION_P_H +#define QGSTREAMERPLAYERSESSION_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// #include <QtMultimedia/private/qtmultimediaglobal_p.h> #include <QObject> #include <QtCore/qmutex.h> #include <QtNetwork/qnetworkrequest.h> -#include "qgstreamerplayercontrol.h" +#include <private/qgstreamerplayercontrol_p.h> #include <private/qgstreamerbushelper_p.h> #include <qmediaplayer.h> #include <qmediastreamscontrol.h> @@ -71,8 +82,9 @@ typedef enum { GST_AUTOPLUG_SELECT_SKIP } GstAutoplugSelectResult; -class QGstreamerPlayerSession : public QObject, - public QGstreamerBusMessageFilter +class Q_GSTTOOLS_EXPORT QGstreamerPlayerSession + : public QObject + , public QGstreamerBusMessageFilter { Q_OBJECT Q_INTERFACES(QGstreamerBusMessageFilter) diff --git a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro index 5ccf89bfd..8150d8f5b 100644 --- a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro +++ b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro @@ -5,18 +5,14 @@ include(../common.pri) INCLUDEPATH += $$PWD HEADERS += \ - $$PWD/qgstreamerplayercontrol.h \ $$PWD/qgstreamerplayerservice.h \ - $$PWD/qgstreamerplayersession.h \ $$PWD/qgstreamerstreamscontrol.h \ $$PWD/qgstreamermetadataprovider.h \ $$PWD/qgstreameravailabilitycontrol.h \ $$PWD/qgstreamerplayerserviceplugin.h SOURCES += \ - $$PWD/qgstreamerplayercontrol.cpp \ $$PWD/qgstreamerplayerservice.cpp \ - $$PWD/qgstreamerplayersession.cpp \ $$PWD/qgstreamerstreamscontrol.cpp \ $$PWD/qgstreamermetadataprovider.cpp \ $$PWD/qgstreameravailabilitycontrol.cpp \ diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp index b9e29245f..50ab0256b 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qgstreamermetadataprovider.h" -#include "qgstreamerplayersession.h" +#include <private/qgstreamerplayersession_p.h> #include <QDebug> #include <QtMultimedia/qmediametadata.h> diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp index 2c2de1bbc..0712f6e6c 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp @@ -46,8 +46,6 @@ #endif #include "qgstreamerplayerservice.h" -#include "qgstreamerplayercontrol.h" -#include "qgstreamerplayersession.h" #include "qgstreamermetadataprovider.h" #include "qgstreameravailabilitycontrol.h" @@ -64,6 +62,8 @@ #include "qgstreamerstreamscontrol.h" #include <private/qgstreameraudioprobecontrol_p.h> #include <private/qgstreamervideoprobecontrol_p.h> +#include <private/qgstreamerplayersession_p.h> +#include <private/qgstreamerplayercontrol_p.h> #include <private/qmediaplaylistnavigator_p.h> #include <qmediaplaylist.h> diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp index 99caa2ae0..4f5c3f0b2 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qgstreamerstreamscontrol.h" -#include "qgstreamerplayersession.h" +#include <private/qgstreamerplayersession_p.h> QGstreamerStreamsControl::QGstreamerStreamsControl(QGstreamerPlayerSession *session, QObject *parent) :QMediaStreamsControl(parent), m_session(session) |