summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-04-27 14:26:58 +0200
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-08-29 13:48:49 +0000
commitad4d8d0f4e81796852f74209b023f17efda128b3 (patch)
tree66c6416a0ec8e43dd84819bb154f80208eef5b9a
parentec597d89320dd312382457a711ebddb085b16a59 (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.pro8
-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.pro4
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp2
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp4
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp2
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)