diff options
45 files changed, 242 insertions, 159 deletions
diff --git a/config.tests/widgets/main.cpp b/config.tests/widgets/main.cpp new file mode 100644 index 000000000..20a7c56e3 --- /dev/null +++ b/config.tests/widgets/main.cpp @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QMainWindow> + +int main(int, char**) +{ + QMainWindow m; + return 0; +} diff --git a/config.tests/widgets/widgets.pro b/config.tests/widgets/widgets.pro new file mode 100644 index 000000000..b7ae2d957 --- /dev/null +++ b/config.tests/widgets/widgets.pro @@ -0,0 +1,5 @@ +TEMPLATE = app +QT += gui widgets + +# Input +SOURCES += main.cpp diff --git a/examples/examples.pro b/examples/examples.pro index 923380eda..ef1cc1147 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -1,22 +1,27 @@ TEMPLATE = subdirs -SUBDIRS += \ - radio \ - camera \ - slideshow \ - spectrum \ - audiorecorder \ - audiodevices \ - audioinput \ - audiooutput \ - videographicsitem \ - videowidget \ - video \ - player \ +# These examples all need widgets for now (using creator templates that use widgets) +contains(config_test_widgets, yes) { + SUBDIRS += \ + radio \ + camera \ + slideshow \ + spectrum \ + audiorecorder \ + audiodevices \ + audioinput \ + audiooutput \ + videographicsitem \ + videowidget \ + player -contains(QT_CONFIG, declarative) { - disabled:SUBDIRS += declarative-camera - SUBDIRS += declarative-radio + contains(QT_CONFIG, declarative) { + disabled:SUBDIRS += declarative-camera + SUBDIRS += \ + declarative-radio \ + video + } + + QT += widgets } -QT+=widgets diff --git a/examples/video/video.pro b/examples/video/video.pro index 4f911b2b2..a731a3468 100644 --- a/examples/video/video.pro +++ b/examples/video/video.pro @@ -1,15 +1,3 @@ TEMPLATE = subdirs -SUBDIRS += qmlvideo - -# qmlvideofx requires QtOpenGL and ShaderEffectItem (added in Qt 4.7.4) -contains(QT_CONFIG, opengl) { - lessThan(QT_MAJOR_VERSION, 5) { - !lessThan(QT_MAJOR_VERSION, 4) { - SUBDIRS += qmlvideofx - } - } else { - SUBDIRS += qmlvideofx - } -} - +SUBDIRS += qmlvideo qmlvideofx diff --git a/modules/qt_multimediawidgets.pri b/modules/qt_multimediawidgets.pri index 4dcbf4143..669a58bcb 100644 --- a/modules/qt_multimediawidgets.pri +++ b/modules/qt_multimediawidgets.pri @@ -11,7 +11,7 @@ QT.multimediawidgets.sources = $$QT_MODULE_BASE/src/multimediawidgets QT.multimediawidgets.libs = $$QT_MODULE_LIB_BASE QT.multimediawidgets.plugins = $$QT_MODULE_PLUGIN_BASE QT.multimediawidgets.imports = $$QT_MODULE_IMPORT_BASE -QT.multimediawidgets.depends = gui network +QT.multimediawidgets.depends = gui network widgets QT.multimediawidgets.DEFINES = QT_MULTIMEDIAWIDGETS_LIB QT_CONFIG += multimediawidgets diff --git a/src/imports/multimedia/qsgvideonode_i420.cpp b/src/imports/multimedia/qsgvideonode_i420.cpp index 931c62c8d..fae2c8723 100644 --- a/src/imports/multimedia/qsgvideonode_i420.cpp +++ b/src/imports/multimedia/qsgvideonode_i420.cpp @@ -44,7 +44,7 @@ #include <QtQuick/qsgmaterial.h> #include <QtGui/QOpenGLContext> #include <QtGui/QOpenGLFunctions> -#include <QtOpenGL/qglshaderprogram.h> +#include <QtGui/QOpenGLShaderProgram> QList<QVideoFrame::PixelFormat> QSGVideoNodeFactory_I420::supportedPixelFormats( QAbstractVideoBuffer::HandleType handleType) const diff --git a/src/imports/multimedia/qsgvideonode_p.h b/src/imports/multimedia/qsgvideonode_p.h index e0ae5ee5a..77075ab3c 100644 --- a/src/imports/multimedia/qsgvideonode_p.h +++ b/src/imports/multimedia/qsgvideonode_p.h @@ -46,7 +46,7 @@ #include <QtMultimedia/qvideoframe.h> #include <QtMultimedia/qvideosurfaceformat.h> -#include <QtOpenGL/qglfunctions.h> +#include <QtGui/qopenglfunctions.h> class QSGVideoNode : public QSGGeometryNode { diff --git a/src/imports/multimedia/qsgvideonode_rgb.cpp b/src/imports/multimedia/qsgvideonode_rgb.cpp index a4aed1245..a581291ce 100644 --- a/src/imports/multimedia/qsgvideonode_rgb.cpp +++ b/src/imports/multimedia/qsgvideonode_rgb.cpp @@ -44,7 +44,7 @@ #include <QtCore/qmutex.h> #include <QtGui/QOpenGLContext> #include <QtGui/QOpenGLFunctions> -#include <QtOpenGL/qglshaderprogram.h> +#include <QtGui/QOpenGLShaderProgram> QList<QVideoFrame::PixelFormat> QSGVideoNodeFactory_RGB::supportedPixelFormats( QAbstractVideoBuffer::HandleType handleType) const diff --git a/src/multimedia/controls/qvideodevicecontrol.cpp b/src/multimedia/controls/qvideodevicecontrol.cpp index a864fd580..e352eafd6 100644 --- a/src/multimedia/controls/qvideodevicecontrol.cpp +++ b/src/multimedia/controls/qvideodevicecontrol.cpp @@ -106,13 +106,6 @@ QVideoDeviceControl::~QVideoDeviceControl() */ /*! - \fn QVideoDeviceControl::deviceIcon(int index) const - - Returns an icon for the video device at \a index. - \since 1.0 -*/ - -/*! \fn QVideoDeviceControl::defaultDevice() const Returns the index of the default video device. diff --git a/src/multimedia/controls/qvideodevicecontrol.h b/src/multimedia/controls/qvideodevicecontrol.h index 6f44c4671..9fc247e01 100644 --- a/src/multimedia/controls/qvideodevicecontrol.h +++ b/src/multimedia/controls/qvideodevicecontrol.h @@ -61,7 +61,6 @@ public: virtual QString deviceName(int index) const = 0; virtual QString deviceDescription(int index) const = 0; - virtual QIcon deviceIcon(int index) const = 0; virtual int defaultDevice() const = 0; virtual int selectedDevice() const = 0; diff --git a/src/plugins/directshow/camera/camera.pri b/src/plugins/directshow/camera/camera.pri index 42f5999a2..3067497bd 100644 --- a/src/plugins/directshow/camera/camera.pri +++ b/src/plugins/directshow/camera/camera.pri @@ -13,19 +13,21 @@ HEADERS += \ $$PWD/dsvideodevicecontrol.h \ $$PWD/dsimagecapturecontrol.h \ $$PWD/dscamerasession.h \ - $$PWD/dsvideowidgetcontrol.h \ $$PWD/dscameraservice.h \ $$PWD/directshowglobal.h - SOURCES += \ $$PWD/dscameraservice.cpp \ $$PWD/dscameracontrol.cpp \ $$PWD/dsvideorenderer.cpp \ $$PWD/dsvideodevicecontrol.cpp \ $$PWD/dsimagecapturecontrol.cpp \ - $$PWD/dscamerasession.cpp \ - $$PWD/dsvideowidgetcontrol.cpp + $$PWD/dscamerasession.cpp + +contains(config_test_widgets, yes) { + HEADERS += $$PWD/dsvideowidgetcontrol.h + SOURCES += $$PWD/dsvideowidgetcontrol.cpp +} INCLUDEPATH += $(DXSDK_DIR)/include LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 diff --git a/src/plugins/directshow/camera/dscameraservice.cpp b/src/plugins/directshow/camera/dscameraservice.cpp index 3b42a18d1..83ff0c965 100644 --- a/src/plugins/directshow/camera/dscameraservice.cpp +++ b/src/plugins/directshow/camera/dscameraservice.cpp @@ -41,9 +41,11 @@ #include <QtCore/qvariant.h> #include <QtCore/qdebug.h> + +#if defined(HAVE_WIDGETS) #include <QtWidgets/qwidget.h> #include <QVideoWidgetControl.h> - +#endif #include "dscameraservice.h" #include "dscameracontrol.h" @@ -51,7 +53,10 @@ #include "dsvideorenderer.h" #include "dsvideodevicecontrol.h" #include "dsimagecapturecontrol.h" + +#if defined(HAVE_WIDGETS) #include "dsvideowidgetcontrol.h" +#endif QT_BEGIN_NAMESPACE @@ -68,7 +73,9 @@ DSCameraService::DSCameraService(QObject *parent): m_imageCapture = new DSImageCaptureControl(m_session); +#if defined(HAVE_WIDGETS) m_viewFinderWidget = new DSVideoWidgetControl(m_session); +#endif m_device = QByteArray("default"); } @@ -79,7 +86,9 @@ DSCameraService::~DSCameraService() delete m_videoDevice; delete m_videoRenderer; delete m_imageCapture; +#if defined(HAVE_WIDGETS) delete m_viewFinderWidget; +#endif delete m_session; } @@ -91,11 +100,13 @@ QMediaControl* DSCameraService::requestControl(const char *name) if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0) return m_imageCapture; +#if defined(HAVE_WIDGETS) if (qstrcmp(name, QVideoWidgetControl_iid) == 0) { if (m_viewFinderWidget) { return m_viewFinderWidget; } } +#endif if(qstrcmp(name,QVideoRendererControl_iid) == 0) return m_videoRenderer; diff --git a/src/plugins/directshow/camera/dscameraservice.h b/src/plugins/directshow/camera/dscameraservice.h index 2423801ed..2c8ef0ad6 100644 --- a/src/plugins/directshow/camera/dscameraservice.h +++ b/src/plugins/directshow/camera/dscameraservice.h @@ -74,7 +74,9 @@ private: DSCameraControl *m_control; DSCameraSession *m_session; DSVideoOutputControl *m_videoOutput; +#if defined(HAVE_WIDGETS) DSVideoWidgetControl *m_viewFinderWidget; +#endif DSVideoDeviceControl *m_videoDevice; DSVideoRendererControl *m_videoRenderer; DSImageCaptureControl *m_imageCapture; diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp index 11da5d357..1eef18b30 100644 --- a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp +++ b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp @@ -41,7 +41,6 @@ #include <QDebug> #include <QFile> -#include <QtWidgets/QIcon> #include "dsvideodevicecontrol.h" #include "dscamerasession.h" @@ -135,13 +134,6 @@ QString DSVideoDeviceControl::deviceDescription(int index) const return QString(); } -QIcon DSVideoDeviceControl::deviceIcon(int index) const -{ - Q_UNUSED(index) - - return QIcon(); -} - int DSVideoDeviceControl::defaultDevice() const { return 0; diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.h b/src/plugins/directshow/camera/dsvideodevicecontrol.h index 0711479e2..fa7e01596 100644 --- a/src/plugins/directshow/camera/dsvideodevicecontrol.h +++ b/src/plugins/directshow/camera/dsvideodevicecontrol.h @@ -60,7 +60,6 @@ public: int deviceCount() const; QString deviceName(int index) const; QString deviceDescription(int index) const; - QIcon deviceIcon(int index) const; int defaultDevice() const; int selectedDevice() const; diff --git a/src/plugins/directshow/directshow.pro b/src/plugins/directshow/directshow.pro index 80d588fd9..e027a2c7e 100644 --- a/src/plugins/directshow/directshow.pro +++ b/src/plugins/directshow/directshow.pro @@ -5,8 +5,6 @@ TARGET = $$qtLibraryTarget(dsengine) PLUGIN_TYPE=mediaservice -include (../../../common.pri) - QT += multimedia DEPENDPATH += . @@ -16,8 +14,13 @@ SOURCES += dsserviceplugin.cpp !contains(config_test_wmsdk, yes): DEFINES += QT_NO_WMSDK -contains(config_test_wmf, no): include (player/player.pri) -include (camera/camera.pri) +contains(config_test_widgets, yes) { + QT += multimediawidgets + DEFINES += HAVE_WIDGETS +} + +contains(config_test_wmf, no): include(player/player.pri) +include(camera/camera.pri) target.path += $$[QT_INSTALL_PLUGINS]/$${PLUGIN_TYPE} INSTALLS += target diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index 2ba142c28..ef1390fdd 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -46,7 +46,7 @@ #include "directshowmetadatacontrol.h" #include "directshowplayercontrol.h" #include "directshowvideorenderercontrol.h" -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) #include "vmr9videowindowcontrol.h" #endif @@ -83,7 +83,7 @@ DirectShowPlayerService::DirectShowPlayerService(QObject *parent) , m_playerControl(0) , m_metaDataControl(0) , m_videoRendererControl(0) -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) , m_videoWindowControl(0) #endif , m_audioEndpointControl(0) @@ -144,7 +144,7 @@ DirectShowPlayerService::~DirectShowPlayerService() delete m_audioEndpointControl; delete m_metaDataControl; delete m_videoRendererControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) delete m_videoWindowControl; #endif @@ -161,7 +161,7 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name) } else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) { return m_metaDataControl; } else if (qstrcmp(name, QVideoRendererControl_iid) == 0) { -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) if (!m_videoRendererControl && !m_videoWindowControl) { #else if (!m_videoRendererControl) { @@ -173,7 +173,7 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name) return m_videoRendererControl; } -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { if (!m_videoRendererControl && !m_videoWindowControl) { m_videoWindowControl = new Vmr9VideoWindowControl; @@ -198,7 +198,7 @@ void DirectShowPlayerService::releaseControl(QMediaControl *control) delete m_videoRendererControl; m_videoRendererControl = 0; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) } else if (control == m_videoWindowControl) { setVideoOutput(0); diff --git a/src/plugins/directshow/player/directshowplayerservice.h b/src/plugins/directshow/player/directshowplayerservice.h index 0f36bdf0c..6caad5fcf 100644 --- a/src/plugins/directshow/player/directshowplayerservice.h +++ b/src/plugins/directshow/player/directshowplayerservice.h @@ -59,7 +59,7 @@ class DirectShowAudioEndpointControl; class DirectShowMetaDataControl; class DirectShowPlayerControl; class DirectShowVideoRendererControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) class Vmr9VideoWindowControl; #endif @@ -180,7 +180,7 @@ private: DirectShowPlayerControl *m_playerControl; DirectShowMetaDataControl *m_metaDataControl; DirectShowVideoRendererControl *m_videoRendererControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) Vmr9VideoWindowControl *m_videoWindowControl; #endif DirectShowAudioEndpointControl *m_audioEndpointControl; diff --git a/src/plugins/directshow/player/player.pri b/src/plugins/directshow/player/player.pri index a058b0659..c30b28362 100644 --- a/src/plugins/directshow/player/player.pri +++ b/src/plugins/directshow/player/player.pri @@ -35,11 +35,11 @@ SOURCES += \ $$PWD/mediasamplevideobuffer.cpp \ $$PWD/videosurfacefilter.cpp -!simulator { -HEADERS += \ +contains(config_test_widgets, yes):!simulator { + HEADERS += \ $$PWD/vmr9videowindowcontrol.h -SOURCES += \ + SOURCES += \ $$PWD/vmr9videowindowcontrol.cpp } diff --git a/src/plugins/gstreamer/camerabin/camerabinservice.cpp b/src/plugins/gstreamer/camerabin/camerabinservice.cpp index e230d40f9..a401452ff 100644 --- a/src/plugins/gstreamer/camerabin/camerabinservice.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinservice.cpp @@ -61,16 +61,18 @@ #include "qgstreameraudioinputendpointselector.h" #include "qgstreamervideoinputdevicecontrol.h" +#if defined(HAVE_WIDGETS) #include "qgstreamervideooverlay.h" #include "qgstreamervideowindow.h" +#include "qgstreamervideowidget.h" +#endif + #include "qgstreamervideorenderer.h" #if defined(Q_WS_MAEMO_6) && defined(__arm__) #include "qgstreamergltexturerenderer.h" #endif -#include "qgstreamervideowidget.h" - #include <qmediaserviceprovider.h> #include <QtCore/qdebug.h> @@ -92,9 +94,11 @@ CameraBinService::CameraBinService(const QString &service, QObject *parent): m_videoOutput = 0; m_videoRenderer = 0; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) m_videoWindow = 0; m_videoWidgetControl = 0; - m_imageCaptureControl = 0; +#endif + m_imageCaptureControl = 0; if (service == Q_MEDIASERVICE_CAMERA) { m_captureSession = new CameraBinSession(this); @@ -106,29 +110,24 @@ CameraBinService::CameraBinService(const QString &service, QObject *parent): m_captureSession, SLOT(setDevice(QString))); if (m_videoInputDevice->deviceCount()) - m_captureSession->setDevice(m_videoInputDevice->deviceName(m_videoInputDevice->selectedDevice())); + m_captureSession->setDevice(m_videoInputDevice->deviceName(m_videoInputDevice->selectedDevice())); -#if defined(Q_WS_MAEMO_6) && defined(__arm__) +#if defined(Q_WS_MAEMO_6) && defined(__arm__) && defined(HAVE_WIDGETS) m_videoRenderer = new QGstreamerGLTextureRenderer(this); #else m_videoRenderer = new QGstreamerVideoRenderer(this); #endif -#ifdef HAVE_XVIDEO - +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) #ifdef Q_WS_MAEMO_6 m_videoWindow = new QGstreamerVideoWindow(this, "omapxvsink"); - //m_videoWindow = new QGstreamerVideoWindow(this); #else m_videoWindow = new QGstreamerVideoOverlay(this); #endif - m_videoWidgetControl = new QGstreamerVideoWidgetControl(this); - #endif } - if (!m_captureSession) { qWarning() << Q_FUNC_INFO << "Service type is not supported:" << service; return; @@ -163,11 +162,14 @@ QMediaControl *CameraBinService::requestControl(const char *name) if (!m_videoOutput) { if (qstrcmp(name, QVideoRendererControl_iid) == 0) { m_videoOutput = m_videoRenderer; - } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { + } +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) + else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { m_videoOutput = m_videoWindow; } else if (qstrcmp(name, QVideoWidgetControl_iid) == 0) { m_videoOutput = m_videoWidgetControl; } +#endif if (m_videoOutput) { m_captureSession->setViewfinder(m_videoOutput); diff --git a/src/plugins/gstreamer/camerabin/camerabinservice.h b/src/plugins/gstreamer/camerabin/camerabinservice.h index 5513dd80e..dd8ceba87 100644 --- a/src/plugins/gstreamer/camerabin/camerabinservice.h +++ b/src/plugins/gstreamer/camerabin/camerabinservice.h @@ -79,7 +79,7 @@ private: void setAudioPreview(GstElement*); CameraBinSession *m_captureSession; - CameraBinControl *m_cameraControl; + CameraBinControl *m_cameraControl; CameraBinMetaData *m_metaDataControl; QAudioEndpointSelector *m_audioInputEndpointSelector; @@ -88,8 +88,10 @@ private: QMediaControl *m_videoOutput; QMediaControl *m_videoRenderer; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) QMediaControl *m_videoWindow; QGstreamerVideoWidgetControl *m_videoWidgetControl; +#endif CameraBinImageCapture *m_imageCaptureControl; }; diff --git a/src/plugins/gstreamer/gstreamer.pro b/src/plugins/gstreamer/gstreamer.pro index 2cc0a0ee8..137b61c55 100644 --- a/src/plugins/gstreamer/gstreamer.pro +++ b/src/plugins/gstreamer/gstreamer.pro @@ -2,7 +2,14 @@ load(qt_module) TARGET = qgstengine -QT += multimedia-private network multimediawidgets-private +QT += multimedia-private network +CONFIG += no_private_qt_headers_warning + +contains(config_test_widgets, yes) { + QT += widgets multimediawidgets-private + DEFINES += HAVE_WIDGETS +} + PLUGIN_TYPE=mediaservice load(qt_plugin) @@ -11,9 +18,8 @@ DESTDIR = $$QT.multimedia.plugins/$${PLUGIN_TYPE} LIBS += -lqgsttools_p unix:!maemo*:contains(QT_CONFIG, alsa) { -DEFINES += HAVE_ALSA -LIBS += \ - -lasound + DEFINES += HAVE_ALSA + LIBS += -lasound } CONFIG += link_pkgconfig @@ -40,7 +46,7 @@ maemo6 { PKGCONFIG += qmsystem2 - isEqual(QT_ARCH,armv6) { + isEqual(QT_ARCH,armv6):contains(config_test_widgets, yes) { HEADERS += qgstreamergltexturerenderer.h SOURCES += qgstreamergltexturerenderer.cpp QT += opengl @@ -68,7 +74,7 @@ SOURCES += \ gstvideoconnector.c \ -contains(config_test_xvideo, yes) { +contains(config_test_xvideo, yes):contains(config_test_widgets, yes): { DEFINES += HAVE_XVIDEO LIBS += -lXv -lX11 -lXext diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp index f1516885a..55357d21a 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp @@ -55,10 +55,12 @@ #include "qgstreamervideoinputdevicecontrol.h" #include "qgstreamerimagecapturecontrol.h" -#include "qgstreamervideooverlay.h" #include "qgstreamervideorenderer.h" +#if defined(HAVE_WIDGETS) +#include "qgstreamervideooverlay.h" #include "qgstreamervideowidget.h" +#endif #include <qmediaserviceprovider.h> @@ -77,8 +79,10 @@ QGstreamerCaptureService::QGstreamerCaptureService(const QString &service, QObje m_videoOutput = 0; m_videoRenderer = 0; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) m_videoWindow = 0; m_videoWidgetControl = 0; +#endif m_imageCaptureControl = 0; if (service == Q_MEDIASERVICE_AUDIOSOURCE) { @@ -100,10 +104,10 @@ QGstreamerCaptureService::QGstreamerCaptureService(const QString &service, QObje m_videoRenderer = new QGstreamerVideoRenderer(this); -#ifdef HAVE_XVIDEO +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) m_videoWindow = new QGstreamerVideoOverlay(this); m_videoWidgetControl = new QGstreamerVideoWidgetControl(this); -#endif +#endif m_imageCaptureControl = new QGstreamerImageCaptureControl(m_captureSession); } @@ -125,8 +129,8 @@ QGstreamerCaptureService::~QGstreamerCaptureService() QMediaControl *QGstreamerCaptureService::requestControl(const char *name) { if (!m_captureSession) - return 0; - + return 0; + if (qstrcmp(name,QAudioEndpointSelector_iid) == 0) return m_audioInputEndpointSelector; @@ -157,15 +161,18 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name) if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0) return m_imageCaptureControl; - + if (!m_videoOutput) { if (qstrcmp(name, QVideoRendererControl_iid) == 0) { m_videoOutput = m_videoRenderer; - } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { + } +#if defined(HAVE_WIDGETS) && defined(HAVE_XVIDEO) + else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { m_videoOutput = m_videoWindow; } else if (qstrcmp(name, QVideoWidgetControl_iid) == 0) { m_videoOutput = m_videoWidgetControl; } +#endif if (m_videoOutput) { m_captureSession->setVideoPreview(m_videoOutput); diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h index ab01faace..5fd129d70 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h +++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h @@ -87,8 +87,10 @@ private: QMediaControl *m_videoOutput; QGstreamerVideoRenderer *m_videoRenderer; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) QMediaControl *m_videoWindow; QMediaControl *m_videoWidgetControl; +#endif QGstreamerImageCaptureControl *m_imageCaptureControl; }; diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp index c5c860778..6d65b4c57 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp @@ -41,22 +41,28 @@ #include <QtCore/qvariant.h> #include <QtCore/qdebug.h> + +#if defined(HAVE_WIDGETS) #include <QtWidgets/qwidget.h> +#endif #include "qgstreamerplayerservice.h" #include "qgstreamerplayercontrol.h" #include "qgstreamerplayersession.h" #include "qgstreamermetadataprovider.h" +#if defined(HAVE_WIDGETS) #include "qgstreamervideooverlay.h" #include "qgstreamervideowindow.h" +#include "qgstreamervideowidget.h" +#endif + #include "qgstreamervideorenderer.h" #if defined(Q_WS_MAEMO_6) && defined(__arm__) #include "qgstreamergltexturerenderer.h" #endif -#include "qgstreamervideowidget.h" #include "qgstreamerstreamscontrol.h" #include <qmediaplaylistnavigator.h> @@ -65,11 +71,13 @@ QT_BEGIN_NAMESPACE QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent): - QMediaService(parent), - m_videoOutput(0), - m_videoRenderer(0), - m_videoWindow(0), - m_videoWidget(0) + QMediaService(parent) + , m_videoOutput(0) + , m_videoRenderer(0) +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) + , m_videoWindow(0) + , m_videoWidget(0) +#endif { m_session = new QGstreamerPlayerSession(this); m_control = new QGstreamerPlayerControl(m_session, this); @@ -82,14 +90,12 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent): m_videoRenderer = new QGstreamerVideoRenderer(this); #endif -#ifdef HAVE_XVIDEO - +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) #ifdef Q_WS_MAEMO_6 m_videoWindow = new QGstreamerVideoWindow(this, "omapxvsink"); #else m_videoWindow = new QGstreamerVideoOverlay(this); #endif - m_videoWidget = new QGstreamerVideoWidgetControl(this); #endif } @@ -110,12 +116,14 @@ QMediaControl *QGstreamerPlayerService::requestControl(const char *name) return m_streamsControl; if (!m_videoOutput) { - if (qstrcmp(name, QVideoWidgetControl_iid) == 0) - m_videoOutput = m_videoWidget; - else if (qstrcmp(name, QVideoRendererControl_iid) == 0) + if (qstrcmp(name, QVideoRendererControl_iid) == 0) m_videoOutput = m_videoRenderer; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) + else if (qstrcmp(name, QVideoWidgetControl_iid) == 0) + m_videoOutput = m_videoWidget; else if (qstrcmp(name, QVideoWindowControl_iid) == 0) m_videoOutput = m_videoWindow; +#endif if (m_videoOutput) { m_control->setVideoOutput(m_videoOutput); diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h index 7418406d6..1cc8d4183 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h @@ -80,8 +80,10 @@ private: QMediaControl *m_videoOutput; QMediaControl *m_videoRenderer; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) QMediaControl *m_videoWindow; QMediaControl *m_videoWidget; +#endif }; QT_END_NAMESPACE diff --git a/src/plugins/gstreamer/qgstreameraudioinputendpointselector.cpp b/src/plugins/gstreamer/qgstreameraudioinputendpointselector.cpp index 9433850bd..a89694362 100644 --- a/src/plugins/gstreamer/qgstreameraudioinputendpointselector.cpp +++ b/src/plugins/gstreamer/qgstreameraudioinputendpointselector.cpp @@ -41,7 +41,6 @@ #include "qgstreameraudioinputendpointselector.h" -#include <QtWidgets/QIcon> #include <QtCore/QDir> #include <QtCore/QDebug> diff --git a/src/plugins/gstreamer/qgstreamerserviceplugin.cpp b/src/plugins/gstreamer/qgstreamerserviceplugin.cpp index 64d71c550..bb77ce1b6 100644 --- a/src/plugins/gstreamer/qgstreamerserviceplugin.cpp +++ b/src/plugins/gstreamer/qgstreamerserviceplugin.cpp @@ -41,7 +41,6 @@ #include <QtCore/qstring.h> #include <QtCore/qdebug.h> -#include <QtWidgets/QIcon> #include <QtCore/QDir> #include <QtCore/QDebug> diff --git a/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.cpp b/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.cpp index ec9e9baf4..3e92efd28 100644 --- a/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.cpp +++ b/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.cpp @@ -41,7 +41,6 @@ #include "qgstreamervideoinputdevicecontrol.h" -#include <QtWidgets/QIcon> #include <QtCore/QDir> #include <QtCore/QDebug> @@ -82,12 +81,6 @@ QString QGstreamerVideoInputDeviceControl::deviceDescription(int index) const return m_descriptions[index]; } -QIcon QGstreamerVideoInputDeviceControl::deviceIcon(int index) const -{ - Q_UNUSED(index); - return QIcon(); -} - int QGstreamerVideoInputDeviceControl::defaultDevice() const { return 0; diff --git a/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.h b/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.h index feb24f07f..5c19a966a 100644 --- a/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.h +++ b/src/plugins/gstreamer/qgstreamervideoinputdevicecontrol.h @@ -58,7 +58,6 @@ public: QString deviceName(int index) const; QString deviceDescription(int index) const; - QIcon deviceIcon(int index) const; int defaultDevice() const; int selectedDevice() const; diff --git a/src/plugins/gstreamer/qgstreamervideorenderer.cpp b/src/plugins/gstreamer/qgstreamervideorenderer.cpp index ac3d4a192..529211ce8 100644 --- a/src/plugins/gstreamer/qgstreamervideorenderer.cpp +++ b/src/plugins/gstreamer/qgstreamervideorenderer.cpp @@ -43,8 +43,6 @@ #include <private/qvideosurfacegstsink_p.h> #include <qabstractvideosurface.h> -#include <QEvent> -#include <QtWidgets/QApplication> #include <QDebug> #include <gst/gst.h> diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 8f12a13ed..0317d7d13 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -36,6 +36,9 @@ unix:!mac { mac:!simulator { SUBDIRS += audiocapture - SUBDIRS += qt7 + + # Currently we need qmacdefines_mac.h from QtWidgets, so this depends on that :/ + # despite the code not really using them. + contains(config_test_widgets, yes):SUBDIRS += qt7 } diff --git a/src/plugins/qt7/qt7.pro b/src/plugins/qt7/qt7.pro index e58b19925..32f6d2184 100644 --- a/src/plugins/qt7/qt7.pro +++ b/src/plugins/qt7/qt7.pro @@ -1,7 +1,11 @@ load(qt_module) TARGET = qqt7engine -QT += multimedia-private multimediawidgets-private network widgets +QT += multimedia-private network +contains(config_test_widgets, yes) { + QT += multimediawidgets-private widgets +} + PLUGIN_TYPE = mediaservice load(qt_plugin) @@ -39,7 +43,6 @@ OBJECTIVE_SOURCES += \ !simulator { HEADERS += \ qt7movieviewoutput.h \ - qt7movievideowidget.h \ qt7movieviewrenderer.h \ qt7movierenderer.h \ qt7ciimagevideobuffer.h \ @@ -47,12 +50,19 @@ OBJECTIVE_SOURCES += \ OBJECTIVE_SOURCES += \ qt7movieviewoutput.mm \ - qt7movievideowidget.mm \ qt7movieviewrenderer.mm \ qt7movierenderer.mm \ qt7videooutput.mm \ qt7ciimagevideobuffer.mm \ qcvdisplaylink.mm + + contains(config_test_widgets, yes) { + HEADERS += \ + qt7movieviewwidget.h + + OBJECTIVE_SOURCES += \ + qt7movievideowidget.mm + } } include(mediaplayer/mediaplayer.pri) diff --git a/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.cpp b/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.cpp index 95c4e2da9..477b0c428 100644 --- a/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.cpp +++ b/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.cpp @@ -41,7 +41,6 @@ #include "simulatorvideoinputdevicecontrol.h" -#include <QtWidgets/QIcon> #include <QtCore/QDir> #include <QtCore/QDebug> #include <QtCore/QStringList> @@ -77,12 +76,6 @@ QString QSimulatorVideoInputDeviceControl::deviceDescription(int index) const return mDescriptions[index]; } -QIcon QSimulatorVideoInputDeviceControl::deviceIcon(int index) const -{ - Q_UNUSED(index); - return QIcon(); -} - int QSimulatorVideoInputDeviceControl::defaultDevice() const { if (mDevices.isEmpty()) diff --git a/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.h b/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.h index 2d3ddd0e9..02ee85e14 100644 --- a/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.h +++ b/src/plugins/simulator/camera/simulatorvideoinputdevicecontrol.h @@ -61,7 +61,6 @@ public: QString deviceName(int index) const; QString deviceDescription(int index) const; - QIcon deviceIcon(int index) const; int defaultDevice() const; int selectedDevice() const; diff --git a/src/plugins/simulator/qsimulatorserviceplugin.cpp b/src/plugins/simulator/qsimulatorserviceplugin.cpp index e0e6d1293..5ce040192 100644 --- a/src/plugins/simulator/qsimulatorserviceplugin.cpp +++ b/src/plugins/simulator/qsimulatorserviceplugin.cpp @@ -41,7 +41,6 @@ #include <QtCore/qstring.h> #include <QtCore/qdebug.h> -#include <QtWidgets/QIcon> #include <QtCore/QDir> #include <QtCore/QDebug> diff --git a/src/plugins/wmf/player/mfplayerservice.cpp b/src/plugins/wmf/player/mfplayerservice.cpp index 62964663a..0e1f02014 100644 --- a/src/plugins/wmf/player/mfplayerservice.cpp +++ b/src/plugins/wmf/player/mfplayerservice.cpp @@ -95,7 +95,7 @@ QMediaControl* MFPlayerService::requestControl(const char *name) } else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) { return m_metaDataControl; } else if (qstrcmp(name, QVideoRendererControl_iid) == 0) { -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) if (!m_videoRendererControl && !m_videoWindowControl) { #else if (!m_videoRendererControl) { @@ -103,7 +103,7 @@ QMediaControl* MFPlayerService::requestControl(const char *name) m_videoRendererControl = new MFVideoRendererControl; return m_videoRendererControl; } -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { if (!m_videoRendererControl && !m_videoWindowControl) { m_videoWindowControl = new Evr9VideoWindowControl; @@ -124,7 +124,7 @@ void MFPlayerService::releaseControl(QMediaControl *control) m_videoRendererControl->setSurface(0); delete m_videoRendererControl; m_videoRendererControl = 0; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) } else if (control == m_videoWindowControl) { delete m_videoWindowControl; m_videoWindowControl = 0; @@ -142,7 +142,7 @@ MFVideoRendererControl* MFPlayerService::videoRendererControl() const return m_videoRendererControl; } -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) Evr9VideoWindowControl* MFPlayerService::videoWindowControl() const { return m_videoWindowControl; diff --git a/src/plugins/wmf/player/mfplayerservice.h b/src/plugins/wmf/player/mfplayerservice.h index a1eb5048e..fd98c0222 100644 --- a/src/plugins/wmf/player/mfplayerservice.h +++ b/src/plugins/wmf/player/mfplayerservice.h @@ -56,7 +56,7 @@ QT_END_NAMESPACE QT_USE_NAMESPACE -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) class Evr9VideoWindowControl; #endif class MFAudioEndpointControl; @@ -77,7 +77,7 @@ public: MFAudioEndpointControl* audioEndpointControl() const; MFVideoRendererControl* videoRendererControl() const; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) Evr9VideoWindowControl* videoWindowControl() const; #endif MFMetaDataControl* metaDataControl() const; @@ -86,7 +86,7 @@ private: MFPlayerSession *m_session; MFVideoRendererControl *m_videoRendererControl; MFAudioEndpointControl *m_audioEndpointControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) Evr9VideoWindowControl *m_videoWindowControl; #endif MFPlayerControl *m_player; diff --git a/src/plugins/wmf/player/player.pri b/src/plugins/wmf/player/player.pri index 58375ba44..07142130c 100644 --- a/src/plugins/wmf/player/player.pri +++ b/src/plugins/wmf/player/player.pri @@ -24,7 +24,7 @@ SOURCES += \ $$PWD/mfaudioendpointcontrol.cpp \ $$PWD/mfmetadatacontrol.cpp -!simulator { +contains(config_test_widgets, yes):!simulator { HEADERS += $$PWD/evr9videowindowcontrol.h SOURCES += $$PWD/evr9videowindowcontrol.cpp } diff --git a/src/plugins/wmf/wmf.pro b/src/plugins/wmf/wmf.pro index d0b4ec347..7c2e0abe9 100644 --- a/src/plugins/wmf/wmf.pro +++ b/src/plugins/wmf/wmf.pro @@ -1,7 +1,11 @@ load(qt_module) TARGET = wmfengine -QT += multimedia-private network multimediawidgets-private +QT += multimedia-private network +contains(config_test_widgets, yes) { + QT += multimediawidgets-private + DEFINES += HAVE_WIDGETS +} PLUGIN_TYPE=mediaservice load(qt_plugin) diff --git a/src/src.pro b/src/src.pro index f29fb118a..14b6c7072 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,19 +1,30 @@ TEMPLATE = subdirs -CONFIG += ordered -library_qgsttools.subdir = $$IN_PWD/gsttools -library_qgsttools.depends = multimedia +SUBDIRS += multimedia -library_qtmmwidgets.subdir = $$IN_PWD/multimediawidgets -library_qtmmwidgets.depends = multimedia +# Everything else depends on multimedia +src_qgsttools.subdir = $$IN_PWD/gsttools +src_qgsttools.depends = multimedia -SUBDIRS += multimedia +src_qtmmwidgets.subdir = $$IN_PWD/multimediawidgets +src_qtmmwidgets.depends = multimedia + +src_plugins.subdir = $$IN_PWD/plugins +src_plugins.depends = multimedia + +src_imports.subdir = $$IN_PWD/imports +src_imports.depends = multimedia + +SUBDIRS += src_imports + +# Optional bits +contains(config_test_gstreamer, yes):SUBDIRS += src_qgsttools +contains(config_test_widgets, yes) { + SUBDIRS += src_qtmmwidgets -contains(config_test_gstreamer, yes) { - SUBDIRS += library_qgsttools + # If widgets is around, plugins depends on widgets too (imports does not) + src_plugins.depends += src_qtmmwidgets } -SUBDIRS += library_qtmmwidgets -SUBDIRS += imports -SUBDIRS += plugins +SUBDIRS += src_plugins diff --git a/sync.profile b/sync.profile index a7796a951..24fa993c7 100644 --- a/sync.profile +++ b/sync.profile @@ -36,6 +36,9 @@ ); # Compile tests %configtests = ( + # Widgets (to make things easier) + "widgets" => {message => "Disabling widget related code. To enable, make sure that QtWidgets exists."}, + # Windows tests "directshow" => {}, "wmsdk" => {}, diff --git a/tests/auto/integration/qcamerabackend/qcamerabackend.pro b/tests/auto/integration/qcamerabackend/qcamerabackend.pro index 147885ffc..a856570bd 100644 --- a/tests/auto/integration/qcamerabackend/qcamerabackend.pro +++ b/tests/auto/integration/qcamerabackend/qcamerabackend.pro @@ -1,7 +1,7 @@ CONFIG += testcase TARGET = tst_qcamerabackend -QT += multimedia-private multimediawidgets-private testlib +QT += multimedia-private testlib CONFIG += no_private_qt_headers_warning # This is more of a system test diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp index a72daecce..090bd98df 100644 --- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp +++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp @@ -59,10 +59,7 @@ #include <qmediaservice.h> #include <qcamera.h> #include <qcameraimagecapture.h> -#include <qgraphicsvideoitem.h> #include <qvideorenderercontrol.h> -#include <qvideowidget.h> -#include <qvideowindowcontrol.h> QT_USE_NAMESPACE diff --git a/tests/auto/unit/unit.pro b/tests/auto/unit/unit.pro index 1043abf08..d9e496972 100644 --- a/tests/auto/unit/unit.pro +++ b/tests/auto/unit/unit.pro @@ -1,4 +1,4 @@ TEMPLATE = subdirs SUBDIRS += multimedia.pro -contains(QT_CONFIG,multimediawidgets): SUBDIRS += multimediawidgets.pro +contains(config_test_widgets, yes): SUBDIRS += multimediawidgets.pro |