From a5ddec658526e47e5783a89c1fd1c463d464fbe7 Mon Sep 17 00:00:00 2001 From: Antti Kokko Date: Tue, 30 Jul 2019 11:25:43 +0300 Subject: Add changes file for Qt 5.13.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I57e7aa684f589159f7957d68122c0ae983b2a70c Reviewed-by: Christian Strømme --- dist/changes-5.13.1 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 dist/changes-5.13.1 diff --git a/dist/changes-5.13.1 b/dist/changes-5.13.1 new file mode 100644 index 000000000..5167a49b8 --- /dev/null +++ b/dist/changes-5.13.1 @@ -0,0 +1,46 @@ +Qt 5.13.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.13.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.13 series is binary compatible with the 5.12.x series. +Applications compiled for 5.12 will continue to run with 5.13. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.13.1 Changes * +**************************************************************************** + +- [QTBUG-76090] Fixed crash when an app is destroyed before QSample::load finishes. +- [QTBUG-76205] Added fix to only update the VideoOutput's geometry when the surface is active. + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + + - DirectShow: + * [QTBUG-65574] Added error when attempting to play a video without a video output set. + * [QTBUG-65574] Added fix to prevent the same media content from being set twice. + * [QTBUG-65574] Returns QMediaPlayer::NoMedia if an empty url is provided. + * [QTBUG-75959] Mapped MEDIASUBTYPE_RGB24 to QVideoFrame::Format_BGR24. + * [QTBUG-70655] Fixed build issues with newer MinGW versions. + * Fixed memory leak introduced by using GetFrameRateList. + + - AVFoundation: + * [QTBUG-75287] QMediaRecorder will now only send state changes when the state actually changes. + + - GStreamer: + * [QTBUG-76236] Now busy cameras are also returned in availableCameras. + * Fixed a crash when the bus helper is destroyed but is still receiving events. + * GstUDPSrc caps can now be passed via the url's query item. + * Added implementation for fetching audio/video codecs by container and vice versa. -- cgit v1.2.3 From a409efbc5530ad1e8becb018e1ad3319b931b2f3 Mon Sep 17 00:00:00 2001 From: VaL Doroshchuk Date: Mon, 19 Aug 2019 12:46:41 +0200 Subject: CameraBinV4LImageProcessing: Show additional info in case of errors Change-Id: I1ed22d646c2ff230217e1ecefaf37a0a45fa4b54 Reviewed-by: Timur Pocheptsov --- src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp b/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp index 46b9e4616..5b0c0d234 100644 --- a/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp @@ -146,7 +146,7 @@ QVariant CameraBinV4LImageProcessing::parameter( qt_safe_close(fd); if (!ret) { - qWarning() << "Unable to get the parameter value:" << qt_error_string(errno); + qWarning() << "Unable to get the parameter value:" << parameter << ":" << qt_error_string(errno); return QVariant(); } @@ -229,7 +229,7 @@ void CameraBinV4LImageProcessing::setParameter( } if (::ioctl(fd, VIDIOC_S_CTRL, &control) != 0) - qWarning() << "Unable to set the parameter value:" << qt_error_string(errno); + qWarning() << "Unable to set the parameter value:" << parameter << ":" << qt_error_string(errno); qt_safe_close(fd); } @@ -266,7 +266,8 @@ void CameraBinV4LImageProcessing::updateParametersInfo( queryControl.id = supportedParametersEntries[i].cid; if (::ioctl(fd, VIDIOC_QUERYCTRL, &queryControl) != 0) { - qWarning() << "Unable to query the parameter info:" << qt_error_string(errno); + qWarning() << "Unable to query the parameter info:" << supportedParametersEntries[i].parameter + << ":" << qt_error_string(errno); continue; } -- cgit v1.2.3 From cdaaae4723518d7b29d8aa9f55e9cbfbae786b8e Mon Sep 17 00:00:00 2001 From: Antti Kokko Date: Tue, 20 Aug 2019 13:16:27 +0300 Subject: Add changes file for Qt 5.12.5 Change-Id: I282469f6c634283cec565b692b29b16cf0fdbea4 Reviewed-by: VaL Doroshchuk --- dist/changes-5.12.5 | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 dist/changes-5.12.5 diff --git a/dist/changes-5.12.5 b/dist/changes-5.12.5 new file mode 100644 index 000000000..34cf7eed4 --- /dev/null +++ b/dist/changes-5.12.5 @@ -0,0 +1,35 @@ +Qt 5.12.5 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0 through 5.12.4. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + - This release contains only minor code improvements. + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + +- GStreamer: + * Added "audio/x-raw" codec to use "audio/x-wav" container in QAudioRecorder. + * Fixed bug where a player, without its own video surface, would end up using + another players video surface. + * [QTBUG-65399] Added fix to prevent seeking to the beginning when playback + is started. + +- AVFoundation: + * [QTBUG-77270] Added fix to avoid showing black frames when the current + OpenGL context changes. -- cgit v1.2.3 From 012affe3194a48d8bb10d0a100f1d1bbb24ecf7e Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Tue, 27 Aug 2019 11:15:03 +0200 Subject: DirectShow: Fix crash when there is no surface on flush() When QDeclarativeRendererBackend is being destroyed, it clears the surface and postpones releasing IMediaControl, which is done on worker thread. It also calls flush() where null surface is used. Fixes: QTBUG-77829 Change-Id: I327583c1f8fb7585dbec3c3fb7e80d0155cc4819 Reviewed-by: Timur Pocheptsov --- src/plugins/common/evr/evrcustompresenter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/common/evr/evrcustompresenter.cpp b/src/plugins/common/evr/evrcustompresenter.cpp index 470f670e4..0265c431b 100644 --- a/src/plugins/common/evr/evrcustompresenter.cpp +++ b/src/plugins/common/evr/evrcustompresenter.cpp @@ -1143,7 +1143,7 @@ HRESULT EVRCustomPresenter::flush() sample->Release(); m_frameStep.samples.clear(); - if (m_renderState == RenderStopped && m_surface->isActive()) { + if (m_renderState == RenderStopped && m_surface && m_surface->isActive()) { // Repaint with black. presentSample(NULL); } -- cgit v1.2.3 From 94852a47c130c3dc265d900390bf0d7b53cbab3e Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Thu, 29 Aug 2019 12:46:33 +0200 Subject: DirectShow: Add startTime and endTime to QVideoFrame MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the application seeks to a new position, the Media Session restarts the presentation clock at the specified seek time. The media source might deliver samples with a slightly earlier time stamp if the seek time does not fall on a key-frame boundary. And IMFSample->GetSampleTime will return time that is related to a position when the clock has been restarted, and can be also negative. So if it needs to have times from the beginning, it would require to add seeked position to times from IMFSample. It also reverts c4de056a6aa44567cdbf2ce91a464e597ad4af8f Fixes: QTBUG-77849 Change-Id: I1a7cb7bd18aee73087a61d2ed2c3d644ad0fbd50 Reviewed-by: Christian Strømme --- src/plugins/common/evr/evrcustompresenter.cpp | 15 +++++++++++++++ src/plugins/common/evr/evrcustompresenter.h | 4 ++++ src/plugins/common/evr/evrd3dpresentengine.cpp | 11 +++++++++++ src/plugins/directshow/player/directshowplayerservice.cpp | 3 +++ .../directshow/player/directshowvideorenderercontrol.cpp | 1 + .../directshow/player/directshowvideorenderercontrol.h | 1 + 6 files changed, 35 insertions(+) diff --git a/src/plugins/common/evr/evrcustompresenter.cpp b/src/plugins/common/evr/evrcustompresenter.cpp index 0265c431b..ca4b26ded 100644 --- a/src/plugins/common/evr/evrcustompresenter.cpp +++ b/src/plugins/common/evr/evrcustompresenter.cpp @@ -557,6 +557,7 @@ EVRCustomPresenter::EVRCustomPresenter(QAbstractVideoSurface *surface) , m_mediaType(0) , m_surface(0) , m_canRenderToSurface(false) + , m_positionOffset(0) { // Initial source rectangle = (0,0,1,1) m_sourceRect.top = 0; @@ -1930,6 +1931,15 @@ void EVRCustomPresenter::presentSample(IMFSample *sample) QVideoFrame frame = m_presentEngine->makeVideoFrame(sample); + // Since start/end times are related to a position when the clock is started, + // to have times from the beginning, need to adjust it by adding seeked position. + if (m_positionOffset) { + if (frame.startTime()) + frame.setStartTime(frame.startTime() + m_positionOffset); + if (frame.endTime()) + frame.setEndTime(frame.endTime() + m_positionOffset); + } + if (!m_surface->isActive() || m_surface->surfaceFormat() != m_presentEngine->videoSurfaceFormat()) { m_surface->stop(); if (!m_surface->start(m_presentEngine->videoSurfaceFormat())) @@ -1939,6 +1949,11 @@ void EVRCustomPresenter::presentSample(IMFSample *sample) m_surface->present(frame); } +void EVRCustomPresenter::positionChanged(qint64 position) +{ + m_positionOffset = position * 1000; +} + HRESULT setDesiredSampleTime(IMFSample *sample, const LONGLONG &sampleTime, const LONGLONG &duration) { if (!sample) diff --git a/src/plugins/common/evr/evrcustompresenter.h b/src/plugins/common/evr/evrcustompresenter.h index bd04bd952..9e1ee88d6 100644 --- a/src/plugins/common/evr/evrcustompresenter.h +++ b/src/plugins/common/evr/evrcustompresenter.h @@ -264,6 +264,9 @@ public: bool event(QEvent *) override; +public Q_SLOTS: + void positionChanged(qint64 position); + private: HRESULT checkShutdown() const { @@ -364,6 +367,7 @@ private: QAbstractVideoSurface *m_surface; bool m_canRenderToSurface; + qint64 m_positionOffset; // Seek position in microseconds. }; bool qt_evr_setCustomPresenter(IUnknown *evr, EVRCustomPresenter *presenter); diff --git a/src/plugins/common/evr/evrd3dpresentengine.cpp b/src/plugins/common/evr/evrd3dpresentengine.cpp index 4ce5a99d7..d8e2da6d3 100644 --- a/src/plugins/common/evr/evrd3dpresentengine.cpp +++ b/src/plugins/common/evr/evrd3dpresentengine.cpp @@ -593,6 +593,17 @@ QVideoFrame D3DPresentEngine::makeVideoFrame(IMFSample *sample) m_surfaceFormat.frameSize(), m_surfaceFormat.pixelFormat()); + // WMF uses 100-nanosecond units, Qt uses microseconds + LONGLONG startTime = 0; + auto hr = sample->GetSampleTime(&startTime); + if (SUCCEEDED(hr)) { + frame.setStartTime(startTime * 0.1); + + LONGLONG duration = -1; + if (SUCCEEDED(sample->GetSampleDuration(&duration))) + frame.setEndTime((startTime + duration) * 0.1); + } + return frame; } diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index 0d44da722..aed03f9de 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -1457,6 +1457,9 @@ void DirectShowPlayerService::customEvent(QEvent *event) if (m_playerControl->mediaStatus() == QMediaPlayer::EndOfMedia) m_playerControl->updateStatus(QMediaPlayer::LoadedMedia); m_playerControl->updatePosition(m_position); + // Emits only when seek has been performed. + if (m_videoRendererControl) + emit m_videoRendererControl->positionChanged(m_position); } else { QMediaService::customEvent(event); } diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp index 88b5a51eb..bbf7cf8b9 100644 --- a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp +++ b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp @@ -101,6 +101,7 @@ void DirectShowVideoRendererControl::setSurface(QAbstractVideoSurface *surface) if (!qgetenv("QT_DIRECTSHOW_NO_EVR").toInt()) { m_filter = com_new(clsid_EnhancedVideoRenderer); m_evrPresenter = new EVRCustomPresenter(m_surface); + connect(this, &DirectShowVideoRendererControl::positionChanged, m_evrPresenter, &EVRCustomPresenter::positionChanged); if (!m_evrPresenter->isValid() || !qt_evr_setCustomPresenter(m_filter, m_evrPresenter)) { m_filter->Release(); m_filter = 0; diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.h b/src/plugins/directshow/player/directshowvideorenderercontrol.h index b2abeeaed..930f8a6b1 100644 --- a/src/plugins/directshow/player/directshowvideorenderercontrol.h +++ b/src/plugins/directshow/player/directshowvideorenderercontrol.h @@ -68,6 +68,7 @@ public: Q_SIGNALS: void filterChanged(); + void positionChanged(qint64 position); private: DirectShowEventLoop *m_loop; -- cgit v1.2.3 From f5a115a2a49d8eb92b45997879be05b5c8f259f0 Mon Sep 17 00:00:00 2001 From: VaL Doroshchuk Date: Thu, 29 Aug 2019 09:55:11 +0200 Subject: Fix crash when VideoOutput.sourceRect is requested but playback is stopped When the playback is stopped, QAbstractVideoSurface::stop is called where current surface format is reset. And when sourceRect is requested before QAbstractVideoSurface::surfaceFormatChanged() is handled, it produces an ASSERT. Suggesting to use cached surfaceFormat instead of removing the ASSERT. To reproduce: MediaPlayer { onStatusChanged: console.log(output.sourceRect) } Change-Id: I73ad72f1e4968fe45266827ec5c7e3b36333ee30 Reviewed-by: Timur Pocheptsov --- src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp b/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp index 5cb4689cc..40568d118 100644 --- a/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp +++ b/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp @@ -390,8 +390,8 @@ QAbstractVideoSurface *QDeclarativeVideoRendererBackend::videoSurface() const QRectF QDeclarativeVideoRendererBackend::adjustedViewport() const { - const QRectF viewport = m_surface->surfaceFormat().viewport(); - const QSizeF pixelAspectRatio = m_surface->surfaceFormat().pixelAspectRatio(); + const QRectF viewport = m_surfaceFormat.viewport(); + const QSizeF pixelAspectRatio = m_surfaceFormat.pixelAspectRatio(); if (pixelAspectRatio.isValid()) { const qreal ratio = pixelAspectRatio.width() / pixelAspectRatio.height(); -- cgit v1.2.3 From c9058d90d0b08781f14a494780c3094594c81f22 Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Tue, 3 Sep 2019 14:58:30 +0200 Subject: Deprecate QMediaServiceProviderPlugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts c018d5affdfca9c94a9797894c4092db53b7b101 [ChangeLog] QMediaServiceProviderHint, QMediaServiceProvider, QMediaServiceProviderPlugin, QMediaServiceSupportedFormatsInterface, QMediaServiceSupportedDevicesInterface,QMediaServiceDefaultDeviceInterface, QMediaServiceCameraInfoInterface, QMediaServiceFeaturesInterface classes are now deprecated. Task-number: QTBUG-75943 Change-Id: I3e19166e3c7405beee1d93546d8982981e14cedb Reviewed-by: Sona Kurazyan Reviewed-by: Christian Strømme --- src/multimedia/qmediaserviceprovider.cpp | 8 ++++++++ src/multimedia/qmediaserviceproviderplugin.h | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/multimedia/qmediaserviceprovider.cpp b/src/multimedia/qmediaserviceprovider.cpp index 023c13008..355f91bf2 100644 --- a/src/multimedia/qmediaserviceprovider.cpp +++ b/src/multimedia/qmediaserviceprovider.cpp @@ -85,6 +85,7 @@ public: /*! \class QMediaServiceProviderHint + \obsolete \brief The QMediaServiceProviderHint class describes what is required of a QMediaService. @@ -670,6 +671,7 @@ Q_GLOBAL_STATIC(QPluginServiceProvider, pluginProvider); /*! \class QMediaServiceProvider + \obsolete \ingroup multimedia \ingroup multimedia_control \ingroup multimedia_core @@ -827,6 +829,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() /*! \class QMediaServiceProviderPlugin + \obsolete \inmodule QtMultimedia \brief The QMediaServiceProviderPlugin class interface provides an interface for QMediaService plug-ins. @@ -854,6 +857,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() /*! \class QMediaServiceSupportedFormatsInterface + \obsolete \inmodule QtMultimedia \brief The QMediaServiceSupportedFormatsInterface class interface identifies if a media service plug-in supports a media format. @@ -882,6 +886,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() /*! \class QMediaServiceSupportedDevicesInterface + \obsolete \inmodule QtMultimedia \brief The QMediaServiceSupportedDevicesInterface class interface identifies the devices supported by a media service plug-in. @@ -909,6 +914,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() /*! \class QMediaServiceDefaultDeviceInterface + \obsolete \inmodule QtMultimedia \brief The QMediaServiceDefaultDeviceInterface class interface identifies the default device used by a media service plug-in. @@ -932,6 +938,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() /*! \class QMediaServiceCameraInfoInterface + \obsolete \inmodule QtMultimedia \since 5.3 \brief The QMediaServiceCameraInfoInterface class interface @@ -961,6 +968,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() /*! \class QMediaServiceFeaturesInterface + \obsolete \inmodule QtMultimedia \brief The QMediaServiceFeaturesInterface class interface identifies features supported by a media service plug-in. diff --git a/src/multimedia/qmediaserviceproviderplugin.h b/src/multimedia/qmediaserviceproviderplugin.h index 9afb4f4cd..6447e319a 100644 --- a/src/multimedia/qmediaserviceproviderplugin.h +++ b/src/multimedia/qmediaserviceproviderplugin.h @@ -50,8 +50,6 @@ # pragma Q_MOC_EXPAND_MACROS #endif -#if QT_DEPRECATED_SINCE(5, 14) - QT_BEGIN_NAMESPACE // Required for QDoc workaround @@ -254,5 +252,4 @@ public: QT_END_NAMESPACE -#endif // #if QT_DEPRECATED_SINCE(5, 14) #endif // QMEDIASERVICEPROVIDERPLUGIN_H -- cgit v1.2.3 From 97177277a2fcca974d7599ab8ea12ad80ab30efc Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Mon, 2 Sep 2019 14:37:39 +0200 Subject: Include moc files after QT_END_NAMESPACE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: QTBUG-76574 Change-Id: I69ef47bbd01967c3d7a0c5d1554fcdd29619ebfa Reviewed-by: Christian Strømme --- src/multimedia/audio/qaudiodecoder.cpp | 2 +- src/multimedia/camera/qcameraexposure.cpp | 3 ++- src/multimedia/camera/qcamerafocus.cpp | 2 +- src/multimedia/camera/qcameraimagecapture.cpp | 3 +-- src/multimedia/controls/qaudiodecodercontrol.cpp | 2 +- src/multimedia/controls/qaudioencodersettingscontrol.cpp | 2 +- src/multimedia/controls/qaudioinputselectorcontrol.cpp | 2 +- src/multimedia/controls/qaudiooutputselectorcontrol.cpp | 2 +- src/multimedia/controls/qaudiorolecontrol.cpp | 2 +- src/multimedia/controls/qcameracapturebufferformatcontrol.cpp | 2 +- src/multimedia/controls/qcameracapturedestinationcontrol.cpp | 2 +- src/multimedia/controls/qcameracontrol.cpp | 3 ++- src/multimedia/controls/qcameraexposurecontrol.cpp | 3 +-- src/multimedia/controls/qcameraflashcontrol.cpp | 2 +- src/multimedia/controls/qcamerafocuscontrol.cpp | 2 +- src/multimedia/controls/qcameraimagecapturecontrol.cpp | 2 +- src/multimedia/controls/qcameraimageprocessingcontrol.cpp | 2 +- src/multimedia/controls/qcamerainfocontrol.cpp | 4 ++-- src/multimedia/controls/qcameraviewfindersettingscontrol.cpp | 2 +- src/multimedia/controls/qcamerazoomcontrol.cpp | 2 +- src/multimedia/controls/qcustomaudiorolecontrol.cpp | 3 ++- src/multimedia/controls/qimageencodercontrol.cpp | 2 +- src/multimedia/controls/qmediaaudioprobecontrol.cpp | 4 ++-- src/multimedia/controls/qmediaavailabilitycontrol.cpp | 3 ++- src/multimedia/controls/qmediacontainercontrol.cpp | 2 +- src/multimedia/controls/qmedianetworkaccesscontrol.cpp | 3 +-- src/multimedia/controls/qmediaplayercontrol.cpp | 2 +- src/multimedia/controls/qmediaplaylistcontrol.cpp | 2 +- src/multimedia/controls/qmediaplaylistsourcecontrol.cpp | 2 +- src/multimedia/controls/qmediarecordercontrol.cpp | 2 +- src/multimedia/controls/qmediastreamscontrol.cpp | 2 +- src/multimedia/controls/qmediavideoprobecontrol.cpp | 4 ++-- src/multimedia/controls/qmetadatareadercontrol.cpp | 2 +- src/multimedia/controls/qmetadatawritercontrol.cpp | 2 +- src/multimedia/controls/qradiodatacontrol.cpp | 2 +- src/multimedia/controls/qvideodeviceselectorcontrol.cpp | 2 +- src/multimedia/controls/qvideoencodersettingscontrol.cpp | 2 +- src/multimedia/controls/qvideorenderercontrol.cpp | 2 +- src/multimedia/controls/qvideowindowcontrol.cpp | 2 +- src/multimedia/playback/qmedianetworkplaylistprovider.cpp | 3 +-- src/multimedia/playback/qmediaplayer.cpp | 2 +- src/multimedia/playback/qmediaplaylist.cpp | 4 ++-- src/multimedia/playback/qmediaplaylistioplugin.cpp | 2 +- src/multimedia/playback/qmediaplaylistnavigator.cpp | 2 +- src/multimedia/playback/qmediaplaylistprovider.cpp | 2 +- src/multimedia/qmediacontrol.cpp | 2 +- src/multimedia/qmediaobject.cpp | 3 +-- src/multimedia/qmediaservice.cpp | 3 +-- src/multimedia/qmediaserviceprovider.cpp | 4 ++-- src/multimedia/radio/qradiodata.cpp | 2 +- src/multimedia/radio/qradiotuner.cpp | 2 +- src/multimedia/recording/qaudiorecorder.cpp | 4 +--- src/multimedia/recording/qmediarecorder.cpp | 2 +- src/multimediawidgets/qgraphicsvideoitem.cpp | 3 ++- src/multimediawidgets/qpaintervideosurface.cpp | 3 +-- src/multimediawidgets/qvideowidget.cpp | 4 ++-- src/multimediawidgets/qvideowidgetcontrol.cpp | 2 +- 57 files changed, 68 insertions(+), 72 deletions(-) diff --git a/src/multimedia/audio/qaudiodecoder.cpp b/src/multimedia/audio/qaudiodecoder.cpp index b4ba854e1..0286e9a85 100644 --- a/src/multimedia/audio/qaudiodecoder.cpp +++ b/src/multimedia/audio/qaudiodecoder.cpp @@ -545,6 +545,6 @@ QAudioBuffer QAudioDecoder::read() const \brief whether there is a decoded audio buffer available */ -#include "moc_qaudiodecoder.cpp" QT_END_NAMESPACE +#include "moc_qaudiodecoder.cpp" diff --git a/src/multimedia/camera/qcameraexposure.cpp b/src/multimedia/camera/qcameraexposure.cpp index 91950c7d2..022dea28c 100644 --- a/src/multimedia/camera/qcameraexposure.cpp +++ b/src/multimedia/camera/qcameraexposure.cpp @@ -702,5 +702,6 @@ void QCameraExposure::setAutoShutterSpeed() Signal emitted when the exposure compensation changes to \a value. */ -#include "moc_qcameraexposure.cpp" QT_END_NAMESPACE + +#include "moc_qcameraexposure.cpp" diff --git a/src/multimedia/camera/qcamerafocus.cpp b/src/multimedia/camera/qcamerafocus.cpp index e73a8ea46..33e280205 100644 --- a/src/multimedia/camera/qcamerafocus.cpp +++ b/src/multimedia/camera/qcamerafocus.cpp @@ -613,6 +613,6 @@ void QCameraFocus::zoomTo(qreal optical, qreal digital) have been detected. */ +QT_END_NAMESPACE #include "moc_qcamerafocus.cpp" -QT_END_NAMESPACE diff --git a/src/multimedia/camera/qcameraimagecapture.cpp b/src/multimedia/camera/qcameraimagecapture.cpp index 8f364a686..502812f76 100644 --- a/src/multimedia/camera/qcameraimagecapture.cpp +++ b/src/multimedia/camera/qcameraimagecapture.cpp @@ -643,7 +643,6 @@ void QCameraImageCapture::cancelCapture() Signal emitted when the frame with request \a id was saved to \a fileName. */ - -#include "moc_qcameraimagecapture.cpp" QT_END_NAMESPACE +#include "moc_qcameraimagecapture.cpp" diff --git a/src/multimedia/controls/qaudiodecodercontrol.cpp b/src/multimedia/controls/qaudiodecodercontrol.cpp index 09448ca41..4d6d36a2f 100644 --- a/src/multimedia/controls/qaudiodecodercontrol.cpp +++ b/src/multimedia/controls/qaudiodecodercontrol.cpp @@ -261,6 +261,6 @@ QAudioDecoderControl::QAudioDecoderControl(QObject *parent): or -1 if not available. */ -#include "moc_qaudiodecodercontrol.cpp" QT_END_NAMESPACE +#include "moc_qaudiodecodercontrol.cpp" diff --git a/src/multimedia/controls/qaudioencodersettingscontrol.cpp b/src/multimedia/controls/qaudioencodersettingscontrol.cpp index ad0437c6e..42f20201c 100644 --- a/src/multimedia/controls/qaudioencodersettingscontrol.cpp +++ b/src/multimedia/controls/qaudioencodersettingscontrol.cpp @@ -134,6 +134,6 @@ QAudioEncoderSettingsControl::~QAudioEncoderSettingsControl() Sets the selected audio \a settings. */ -#include "moc_qaudioencodersettingscontrol.cpp" QT_END_NAMESPACE +#include "moc_qaudioencodersettingscontrol.cpp" diff --git a/src/multimedia/controls/qaudioinputselectorcontrol.cpp b/src/multimedia/controls/qaudioinputselectorcontrol.cpp index 7f32de3e4..0f8843808 100644 --- a/src/multimedia/controls/qaudioinputselectorcontrol.cpp +++ b/src/multimedia/controls/qaudioinputselectorcontrol.cpp @@ -125,6 +125,6 @@ QAudioInputSelectorControl::~QAudioInputSelectorControl() Signals that list of available inputs has changed. */ -#include "moc_qaudioinputselectorcontrol.cpp" QT_END_NAMESPACE +#include "moc_qaudioinputselectorcontrol.cpp" diff --git a/src/multimedia/controls/qaudiooutputselectorcontrol.cpp b/src/multimedia/controls/qaudiooutputselectorcontrol.cpp index 728ec22ce..20c792f8d 100644 --- a/src/multimedia/controls/qaudiooutputselectorcontrol.cpp +++ b/src/multimedia/controls/qaudiooutputselectorcontrol.cpp @@ -125,6 +125,6 @@ QAudioOutputSelectorControl::~QAudioOutputSelectorControl() Signals that list of available outputs has changed. */ -#include "moc_qaudiooutputselectorcontrol.cpp" QT_END_NAMESPACE +#include "moc_qaudiooutputselectorcontrol.cpp" diff --git a/src/multimedia/controls/qaudiorolecontrol.cpp b/src/multimedia/controls/qaudiorolecontrol.cpp index 0ea2aea53..7b2341846 100644 --- a/src/multimedia/controls/qaudiorolecontrol.cpp +++ b/src/multimedia/controls/qaudiorolecontrol.cpp @@ -112,6 +112,6 @@ QAudioRoleControl::~QAudioRoleControl() Signal emitted when the audio \a role has changed. */ +QT_END_NAMESPACE #include "moc_qaudiorolecontrol.cpp" -QT_END_NAMESPACE diff --git a/src/multimedia/controls/qcameracapturebufferformatcontrol.cpp b/src/multimedia/controls/qcameracapturebufferformatcontrol.cpp index e513e1416..553414681 100644 --- a/src/multimedia/controls/qcameracapturebufferformatcontrol.cpp +++ b/src/multimedia/controls/qcameracapturebufferformatcontrol.cpp @@ -107,6 +107,6 @@ QCameraCaptureBufferFormatControl::~QCameraCaptureBufferFormatControl() Signals the buffer image capture format changed to \a format. */ -#include "moc_qcameracapturebufferformatcontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameracapturebufferformatcontrol.cpp" diff --git a/src/multimedia/controls/qcameracapturedestinationcontrol.cpp b/src/multimedia/controls/qcameracapturedestinationcontrol.cpp index e3ec10374..e037ab5a9 100644 --- a/src/multimedia/controls/qcameracapturedestinationcontrol.cpp +++ b/src/multimedia/controls/qcameracapturedestinationcontrol.cpp @@ -109,6 +109,6 @@ QCameraCaptureDestinationControl::~QCameraCaptureDestinationControl() Signals the image capture \a destination changed. */ -#include "moc_qcameracapturedestinationcontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameracapturedestinationcontrol.cpp" diff --git a/src/multimedia/controls/qcameracontrol.cpp b/src/multimedia/controls/qcameracontrol.cpp index 0e562c853..03a7a073c 100644 --- a/src/multimedia/controls/qcameracontrol.cpp +++ b/src/multimedia/controls/qcameracontrol.cpp @@ -199,5 +199,6 @@ QCameraControl::~QCameraControl() \value ViewfinderSettings Viewfinder settings are changed. */ -#include "moc_qcameracontrol.cpp" QT_END_NAMESPACE + +#include "moc_qcameracontrol.cpp" diff --git a/src/multimedia/controls/qcameraexposurecontrol.cpp b/src/multimedia/controls/qcameraexposurecontrol.cpp index c13be0d5d..1434f0976 100644 --- a/src/multimedia/controls/qcameraexposurecontrol.cpp +++ b/src/multimedia/controls/qcameraexposurecontrol.cpp @@ -201,7 +201,6 @@ QCameraExposureControl::~QCameraExposureControl() \since 5.0 */ - -#include "moc_qcameraexposurecontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameraexposurecontrol.cpp" diff --git a/src/multimedia/controls/qcameraflashcontrol.cpp b/src/multimedia/controls/qcameraflashcontrol.cpp index d77984dad..d5d9b564f 100644 --- a/src/multimedia/controls/qcameraflashcontrol.cpp +++ b/src/multimedia/controls/qcameraflashcontrol.cpp @@ -128,6 +128,6 @@ QCameraFlashControl::~QCameraFlashControl() Signal emitted when flash state changes to \a ready. */ -#include "moc_qcameraflashcontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameraflashcontrol.cpp" diff --git a/src/multimedia/controls/qcamerafocuscontrol.cpp b/src/multimedia/controls/qcamerafocuscontrol.cpp index 6884ab617..d963c95d4 100644 --- a/src/multimedia/controls/qcamerafocuscontrol.cpp +++ b/src/multimedia/controls/qcamerafocuscontrol.cpp @@ -192,6 +192,6 @@ QCameraFocusControl::~QCameraFocusControl() -#include "moc_qcamerafocuscontrol.cpp" QT_END_NAMESPACE +#include "moc_qcamerafocuscontrol.cpp" diff --git a/src/multimedia/controls/qcameraimagecapturecontrol.cpp b/src/multimedia/controls/qcameraimagecapturecontrol.cpp index bfc973aba..3c110eb68 100644 --- a/src/multimedia/controls/qcameraimagecapturecontrol.cpp +++ b/src/multimedia/controls/qcameraimagecapturecontrol.cpp @@ -189,6 +189,6 @@ QCameraImageCaptureControl::~QCameraImageCaptureControl() */ -#include "moc_qcameraimagecapturecontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameraimagecapturecontrol.cpp" diff --git a/src/multimedia/controls/qcameraimageprocessingcontrol.cpp b/src/multimedia/controls/qcameraimageprocessingcontrol.cpp index a72fc7bb5..a39846642 100644 --- a/src/multimedia/controls/qcameraimageprocessingcontrol.cpp +++ b/src/multimedia/controls/qcameraimageprocessingcontrol.cpp @@ -183,6 +183,6 @@ QCameraImageProcessingControl::~QCameraImageProcessingControl() The base value for platform specific extended parameters. */ -#include "moc_qcameraimageprocessingcontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameraimageprocessingcontrol.cpp" diff --git a/src/multimedia/controls/qcamerainfocontrol.cpp b/src/multimedia/controls/qcamerainfocontrol.cpp index e69e0c3eb..de6dc4277 100644 --- a/src/multimedia/controls/qcamerainfocontrol.cpp +++ b/src/multimedia/controls/qcamerainfocontrol.cpp @@ -97,6 +97,6 @@ QCameraInfoControl::~QCameraInfoControl() in relation to the display in its natural orientation. */ -#include "moc_qcamerainfocontrol.cpp" - QT_END_NAMESPACE + +#include "moc_qcamerainfocontrol.cpp" diff --git a/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp b/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp index c7610dd8f..6fa0ded82 100644 --- a/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp +++ b/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp @@ -200,6 +200,6 @@ QCameraViewfinderSettingsControl2::~QCameraViewfinderSettingsControl2() Sets the camera viewfinder \a settings. */ -#include "moc_qcameraviewfindersettingscontrol.cpp" QT_END_NAMESPACE +#include "moc_qcameraviewfindersettingscontrol.cpp" diff --git a/src/multimedia/controls/qcamerazoomcontrol.cpp b/src/multimedia/controls/qcamerazoomcontrol.cpp index 9a3de0542..9c8d8d289 100644 --- a/src/multimedia/controls/qcamerazoomcontrol.cpp +++ b/src/multimedia/controls/qcamerazoomcontrol.cpp @@ -182,6 +182,6 @@ QCameraZoomControl::~QCameraZoomControl() like capture mode or resolution. */ -#include "moc_qcamerazoomcontrol.cpp" QT_END_NAMESPACE +#include "moc_qcamerazoomcontrol.cpp" diff --git a/src/multimedia/controls/qcustomaudiorolecontrol.cpp b/src/multimedia/controls/qcustomaudiorolecontrol.cpp index 39431be01..046219687 100644 --- a/src/multimedia/controls/qcustomaudiorolecontrol.cpp +++ b/src/multimedia/controls/qcustomaudiorolecontrol.cpp @@ -113,5 +113,6 @@ QCustomAudioRoleControl::~QCustomAudioRoleControl() Signal emitted when the audio \a role has changed. */ -#include "moc_qcustomaudiorolecontrol.cpp" QT_END_NAMESPACE + +#include "moc_qcustomaudiorolecontrol.cpp" diff --git a/src/multimedia/controls/qimageencodercontrol.cpp b/src/multimedia/controls/qimageencodercontrol.cpp index 1d5c23441..c29a61662 100644 --- a/src/multimedia/controls/qimageencodercontrol.cpp +++ b/src/multimedia/controls/qimageencodercontrol.cpp @@ -131,6 +131,6 @@ QImageEncoderControl::~QImageEncoderControl() Sets the selected image encoder \a settings. */ -#include "moc_qimageencodercontrol.cpp" QT_END_NAMESPACE +#include "moc_qimageencodercontrol.cpp" diff --git a/src/multimedia/controls/qmediaaudioprobecontrol.cpp b/src/multimedia/controls/qmediaaudioprobecontrol.cpp index f71763c96..296f01888 100644 --- a/src/multimedia/controls/qmediaaudioprobecontrol.cpp +++ b/src/multimedia/controls/qmediaaudioprobecontrol.cpp @@ -97,6 +97,6 @@ QMediaAudioProbeControl::~QMediaAudioProbeControl() This signal should be emitted when it is required to release all frames. */ -#include "moc_qmediaaudioprobecontrol.cpp" - QT_END_NAMESPACE + +#include "moc_qmediaaudioprobecontrol.cpp" diff --git a/src/multimedia/controls/qmediaavailabilitycontrol.cpp b/src/multimedia/controls/qmediaavailabilitycontrol.cpp index 163d71a3f..1a6d73a8a 100644 --- a/src/multimedia/controls/qmediaavailabilitycontrol.cpp +++ b/src/multimedia/controls/qmediaavailabilitycontrol.cpp @@ -103,5 +103,6 @@ QMediaAvailabilityControl::~QMediaAvailabilityControl() Signal emitted when the current \a availability value changed. */ -#include "moc_qmediaavailabilitycontrol.cpp" QT_END_NAMESPACE + +#include "moc_qmediaavailabilitycontrol.cpp" diff --git a/src/multimedia/controls/qmediacontainercontrol.cpp b/src/multimedia/controls/qmediacontainercontrol.cpp index 0f130645f..b15c8acdc 100644 --- a/src/multimedia/controls/qmediacontainercontrol.cpp +++ b/src/multimedia/controls/qmediacontainercontrol.cpp @@ -116,6 +116,6 @@ QMediaContainerControl::~QMediaContainerControl() Returns a description of the container \a formatMimeType. */ -#include "moc_qmediacontainercontrol.cpp" QT_END_NAMESPACE +#include "moc_qmediacontainercontrol.cpp" diff --git a/src/multimedia/controls/qmedianetworkaccesscontrol.cpp b/src/multimedia/controls/qmedianetworkaccesscontrol.cpp index 222bee216..9e9ad239d 100644 --- a/src/multimedia/controls/qmedianetworkaccesscontrol.cpp +++ b/src/multimedia/controls/qmedianetworkaccesscontrol.cpp @@ -96,7 +96,6 @@ QMediaNetworkAccessControl::~QMediaNetworkAccessControl() to \a configuration. */ - +QT_END_NAMESPACE #include "moc_qmedianetworkaccesscontrol.cpp" -QT_END_NAMESPACE diff --git a/src/multimedia/controls/qmediaplayercontrol.cpp b/src/multimedia/controls/qmediaplayercontrol.cpp index 15f9e7d49..28b217af8 100644 --- a/src/multimedia/controls/qmediaplayercontrol.cpp +++ b/src/multimedia/controls/qmediaplayercontrol.cpp @@ -380,6 +380,6 @@ QMediaPlayerControl::QMediaPlayerControl(QObject *parent): Signal emitted when playback rate changes to \a rate. */ -#include "moc_qmediaplayercontrol.cpp" QT_END_NAMESPACE +#include "moc_qmediaplayercontrol.cpp" diff --git a/src/multimedia/controls/qmediaplaylistcontrol.cpp b/src/multimedia/controls/qmediaplaylistcontrol.cpp index a9144e404..61e20e170 100644 --- a/src/multimedia/controls/qmediaplaylistcontrol.cpp +++ b/src/multimedia/controls/qmediaplaylistcontrol.cpp @@ -201,6 +201,6 @@ QMediaPlaylistControl::~QMediaPlaylistControl() Signal emitted when current media changes to \a content. */ -#include "moc_qmediaplaylistcontrol_p.cpp" QT_END_NAMESPACE +#include "moc_qmediaplaylistcontrol_p.cpp" diff --git a/src/multimedia/controls/qmediaplaylistsourcecontrol.cpp b/src/multimedia/controls/qmediaplaylistsourcecontrol.cpp index 3c1ee4565..f95c4b508 100644 --- a/src/multimedia/controls/qmediaplaylistsourcecontrol.cpp +++ b/src/multimedia/controls/qmediaplaylistsourcecontrol.cpp @@ -121,6 +121,6 @@ QMediaPlaylistSourceControl::~QMediaPlaylistSourceControl() Signal emitted when the playlist has changed to \a playlist. */ -#include "moc_qmediaplaylistsourcecontrol_p.cpp" QT_END_NAMESPACE +#include "moc_qmediaplaylistsourcecontrol_p.cpp" diff --git a/src/multimedia/controls/qmediarecordercontrol.cpp b/src/multimedia/controls/qmediarecordercontrol.cpp index e4667d369..f078073ef 100644 --- a/src/multimedia/controls/qmediarecordercontrol.cpp +++ b/src/multimedia/controls/qmediarecordercontrol.cpp @@ -217,6 +217,6 @@ QMediaRecorderControl::~QMediaRecorderControl() Signals that an \a error has occurred. The \a errorString describes the error. */ -#include "moc_qmediarecordercontrol.cpp" QT_END_NAMESPACE +#include "moc_qmediarecordercontrol.cpp" diff --git a/src/multimedia/controls/qmediastreamscontrol.cpp b/src/multimedia/controls/qmediastreamscontrol.cpp index 2daf50de8..aa5fe007d 100644 --- a/src/multimedia/controls/qmediastreamscontrol.cpp +++ b/src/multimedia/controls/qmediastreamscontrol.cpp @@ -155,6 +155,6 @@ QMediaStreamsControl::~QMediaStreamsControl() The signal is emitted when the active streams list is changed. */ -#include "moc_qmediastreamscontrol.cpp" QT_END_NAMESPACE +#include "moc_qmediastreamscontrol.cpp" diff --git a/src/multimedia/controls/qmediavideoprobecontrol.cpp b/src/multimedia/controls/qmediavideoprobecontrol.cpp index 57bfbc78b..ea27ab057 100644 --- a/src/multimedia/controls/qmediavideoprobecontrol.cpp +++ b/src/multimedia/controls/qmediavideoprobecontrol.cpp @@ -96,6 +96,6 @@ QMediaVideoProbeControl::~QMediaVideoProbeControl() This signal should be emitted when it is required to release all frames. */ -#include "moc_qmediavideoprobecontrol.cpp" - QT_END_NAMESPACE + +#include "moc_qmediavideoprobecontrol.cpp" diff --git a/src/multimedia/controls/qmetadatareadercontrol.cpp b/src/multimedia/controls/qmetadatareadercontrol.cpp index 8e9880c68..e728353f6 100644 --- a/src/multimedia/controls/qmetadatareadercontrol.cpp +++ b/src/multimedia/controls/qmetadatareadercontrol.cpp @@ -143,6 +143,6 @@ QMetaDataReaderControl::~QMetaDataReaderControl() be true if the multimedia object has meta-data. */ -#include "moc_qmetadatareadercontrol.cpp" QT_END_NAMESPACE +#include "moc_qmetadatareadercontrol.cpp" diff --git a/src/multimedia/controls/qmetadatawritercontrol.cpp b/src/multimedia/controls/qmetadatawritercontrol.cpp index e9d7dc793..053597b88 100644 --- a/src/multimedia/controls/qmetadatawritercontrol.cpp +++ b/src/multimedia/controls/qmetadatawritercontrol.cpp @@ -163,6 +163,6 @@ QMetaDataWriterControl::~QMetaDataWriterControl() true if meta-data elements can be added or adjusted. */ -#include "moc_qmetadatawritercontrol.cpp" QT_END_NAMESPACE +#include "moc_qmetadatawritercontrol.cpp" diff --git a/src/multimedia/controls/qradiodatacontrol.cpp b/src/multimedia/controls/qradiodatacontrol.cpp index eaa9aaed6..df0046b5e 100644 --- a/src/multimedia/controls/qradiodatacontrol.cpp +++ b/src/multimedia/controls/qradiodatacontrol.cpp @@ -187,6 +187,6 @@ QRadioDataControl::~QRadioDataControl() Signals that the Radio Text \a radioText has changed */ -#include "moc_qradiodatacontrol.cpp" QT_END_NAMESPACE +#include "moc_qradiodatacontrol.cpp" diff --git a/src/multimedia/controls/qvideodeviceselectorcontrol.cpp b/src/multimedia/controls/qvideodeviceselectorcontrol.cpp index ccdb3e798..8c4ee7ba4 100644 --- a/src/multimedia/controls/qvideodeviceselectorcontrol.cpp +++ b/src/multimedia/controls/qvideodeviceselectorcontrol.cpp @@ -137,6 +137,6 @@ QVideoDeviceSelectorControl::~QVideoDeviceSelectorControl() Signals that the selected video device \a name has changed. */ -#include "moc_qvideodeviceselectorcontrol.cpp" QT_END_NAMESPACE +#include "moc_qvideodeviceselectorcontrol.cpp" diff --git a/src/multimedia/controls/qvideoencodersettingscontrol.cpp b/src/multimedia/controls/qvideoencodersettingscontrol.cpp index c06bf7387..52ae51382 100644 --- a/src/multimedia/controls/qvideoencodersettingscontrol.cpp +++ b/src/multimedia/controls/qvideoencodersettingscontrol.cpp @@ -155,6 +155,6 @@ QVideoEncoderSettingsControl::~QVideoEncoderSettingsControl() Sets the selected video encoder \a settings. */ -#include "moc_qvideoencodersettingscontrol.cpp" QT_END_NAMESPACE +#include "moc_qvideoencodersettingscontrol.cpp" diff --git a/src/multimedia/controls/qvideorenderercontrol.cpp b/src/multimedia/controls/qvideorenderercontrol.cpp index 92973e5f8..e722dfa38 100644 --- a/src/multimedia/controls/qvideorenderercontrol.cpp +++ b/src/multimedia/controls/qvideorenderercontrol.cpp @@ -103,6 +103,6 @@ QVideoRendererControl::~QVideoRendererControl() Sets the \a surface a video producer renders to. */ -#include "moc_qvideorenderercontrol.cpp" QT_END_NAMESPACE +#include "moc_qvideorenderercontrol.cpp" diff --git a/src/multimedia/controls/qvideowindowcontrol.cpp b/src/multimedia/controls/qvideowindowcontrol.cpp index c41490694..e971a6925 100644 --- a/src/multimedia/controls/qvideowindowcontrol.cpp +++ b/src/multimedia/controls/qvideowindowcontrol.cpp @@ -253,6 +253,6 @@ QVideoWindowControl::~QVideoWindowControl() Signals that a video overlay's \a saturation adjustment has changed. */ -#include "moc_qvideowindowcontrol.cpp" QT_END_NAMESPACE +#include "moc_qvideowindowcontrol.cpp" diff --git a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp index 3f24d0f55..3156081e7 100644 --- a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp +++ b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp @@ -276,7 +276,6 @@ void QMediaNetworkPlaylistProvider::shuffle() } -#include "moc_qmedianetworkplaylistprovider_p.cpp" - QT_END_NAMESPACE +#include "moc_qmedianetworkplaylistprovider_p.cpp" diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index c4d574d4e..bfc8bcdc3 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -1643,6 +1643,6 @@ QStringList QMediaPlayer::supportedCustomAudioRoles() const QAbstractVideoSurface \l {setVideoOutput()}{output}. */ -#include "moc_qmediaplayer.cpp" QT_END_NAMESPACE +#include "moc_qmediaplayer.cpp" diff --git a/src/multimedia/playback/qmediaplaylist.cpp b/src/multimedia/playback/qmediaplaylist.cpp index 7618827da..7c21a599b 100644 --- a/src/multimedia/playback/qmediaplaylist.cpp +++ b/src/multimedia/playback/qmediaplaylist.cpp @@ -818,7 +818,7 @@ void QMediaPlaylist::setCurrentIndex(int playlistPosition) \value AccessDeniedError Access denied error. */ -#include "moc_qmediaplaylist.cpp" -#include "moc_qmediaplaylist_p.cpp" QT_END_NAMESPACE +#include "moc_qmediaplaylist.cpp" +#include "moc_qmediaplaylist_p.cpp" diff --git a/src/multimedia/playback/qmediaplaylistioplugin.cpp b/src/multimedia/playback/qmediaplaylistioplugin.cpp index a0f0e8321..957c7c79d 100644 --- a/src/multimedia/playback/qmediaplaylistioplugin.cpp +++ b/src/multimedia/playback/qmediaplaylistioplugin.cpp @@ -183,6 +183,6 @@ QMediaPlaylistIOPlugin::~QMediaPlaylistIOPlugin() If the device is invalid or the format is unsupported this will return a null pointer. */ -#include "moc_qmediaplaylistioplugin_p.cpp" QT_END_NAMESPACE +#include "moc_qmediaplaylistioplugin_p.cpp" diff --git a/src/multimedia/playback/qmediaplaylistnavigator.cpp b/src/multimedia/playback/qmediaplaylistnavigator.cpp index 120f621f5..9b25f968a 100644 --- a/src/multimedia/playback/qmediaplaylistnavigator.cpp +++ b/src/multimedia/playback/qmediaplaylistnavigator.cpp @@ -539,6 +539,6 @@ void QMediaPlaylistNavigatorPrivate::_q_mediaChanged(int start, int end) Signals that media immediately surrounding the current position has changed. */ -#include "moc_qmediaplaylistnavigator_p.cpp" QT_END_NAMESPACE +#include "moc_qmediaplaylistnavigator_p.cpp" diff --git a/src/multimedia/playback/qmediaplaylistprovider.cpp b/src/multimedia/playback/qmediaplaylistprovider.cpp index f441052c1..b146fb7b3 100644 --- a/src/multimedia/playback/qmediaplaylistprovider.cpp +++ b/src/multimedia/playback/qmediaplaylistprovider.cpp @@ -316,6 +316,6 @@ void QMediaPlaylistProvider::shuffle() Signals that a load failed() due to an \a error. The \a errorMessage provides more information. */ -#include "moc_qmediaplaylistprovider_p.cpp" QT_END_NAMESPACE +#include "moc_qmediaplaylistprovider_p.cpp" diff --git a/src/multimedia/qmediacontrol.cpp b/src/multimedia/qmediacontrol.cpp index 939b9f393..b8f980aa0 100644 --- a/src/multimedia/qmediacontrol.cpp +++ b/src/multimedia/qmediacontrol.cpp @@ -130,6 +130,6 @@ QMediaControl::QMediaControl(QMediaControlPrivate &dd, QObject *parent) d_ptr->q_ptr = this; } -#include "moc_qmediacontrol.cpp" QT_END_NAMESPACE +#include "moc_qmediacontrol.cpp" diff --git a/src/multimedia/qmediaobject.cpp b/src/multimedia/qmediaobject.cpp index a12cab404..ec2bebb34 100644 --- a/src/multimedia/qmediaobject.cpp +++ b/src/multimedia/qmediaobject.cpp @@ -430,7 +430,6 @@ void QMediaObject::setupControls() Signal emitted when the availability of the service has changed to \a availability. */ - -#include "moc_qmediaobject.cpp" QT_END_NAMESPACE +#include "moc_qmediaobject.cpp" diff --git a/src/multimedia/qmediaservice.cpp b/src/multimedia/qmediaservice.cpp index 4d6b3c039..7580ecce7 100644 --- a/src/multimedia/qmediaservice.cpp +++ b/src/multimedia/qmediaservice.cpp @@ -142,7 +142,6 @@ QMediaService::~QMediaService() Releases a \a control back to the service. */ -#include "moc_qmediaservice.cpp" - QT_END_NAMESPACE +#include "moc_qmediaservice.cpp" diff --git a/src/multimedia/qmediaserviceprovider.cpp b/src/multimedia/qmediaserviceprovider.cpp index 023c13008..af09c406f 100644 --- a/src/multimedia/qmediaserviceprovider.cpp +++ b/src/multimedia/qmediaserviceprovider.cpp @@ -979,7 +979,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider() Returns a set of features supported by a plug-in \a service. */ -#include "moc_qmediaserviceprovider_p.cpp" -#include "moc_qmediaserviceproviderplugin.cpp" QT_END_NAMESPACE +#include "moc_qmediaserviceprovider_p.cpp" +#include "moc_qmediaserviceproviderplugin.cpp" diff --git a/src/multimedia/radio/qradiodata.cpp b/src/multimedia/radio/qradiodata.cpp index d71488b52..4c824a4f8 100644 --- a/src/multimedia/radio/qradiodata.cpp +++ b/src/multimedia/radio/qradiodata.cpp @@ -473,6 +473,6 @@ QString QRadioData::errorString() const \value College */ -#include "moc_qradiodata.cpp" QT_END_NAMESPACE +#include "moc_qradiodata.cpp" diff --git a/src/multimedia/radio/qradiotuner.cpp b/src/multimedia/radio/qradiotuner.cpp index cc9abdbf8..2af0d0f02 100644 --- a/src/multimedia/radio/qradiotuner.cpp +++ b/src/multimedia/radio/qradiotuner.cpp @@ -654,6 +654,6 @@ QRadioData *QRadioTuner::radioData() const This signal is emitted when the state changes to \a state. */ -#include "moc_qradiotuner.cpp" QT_END_NAMESPACE +#include "moc_qradiotuner.cpp" diff --git a/src/multimedia/recording/qaudiorecorder.cpp b/src/multimedia/recording/qaudiorecorder.cpp index dcbdabc17..1db5c54a2 100644 --- a/src/multimedia/recording/qaudiorecorder.cpp +++ b/src/multimedia/recording/qaudiorecorder.cpp @@ -243,8 +243,6 @@ void QAudioRecorder::setAudioInput(const QString& name) Signal is emitted when the available audio inputs change. */ - - -#include "moc_qaudiorecorder.cpp" QT_END_NAMESPACE +#include "moc_qaudiorecorder.cpp" diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp index 2b7729481..1d562a00e 100644 --- a/src/multimedia/recording/qmediarecorder.cpp +++ b/src/multimedia/recording/qmediarecorder.cpp @@ -1105,6 +1105,6 @@ QStringList QMediaRecorder::availableMetaData() const Signal the changes of one meta-data element \a value with the given \a key. */ -#include "moc_qmediarecorder.cpp" QT_END_NAMESPACE +#include "moc_qmediarecorder.cpp" diff --git a/src/multimediawidgets/qgraphicsvideoitem.cpp b/src/multimediawidgets/qgraphicsvideoitem.cpp index 38f5c0e5b..2db8987fb 100644 --- a/src/multimediawidgets/qgraphicsvideoitem.cpp +++ b/src/multimediawidgets/qgraphicsvideoitem.cpp @@ -415,5 +415,6 @@ void QGraphicsVideoItem::timerEvent(QTimerEvent *event) QGraphicsObject::timerEvent(event); } -#include "moc_qgraphicsvideoitem.cpp" QT_END_NAMESPACE + +#include "moc_qgraphicsvideoitem.cpp" diff --git a/src/multimediawidgets/qpaintervideosurface.cpp b/src/multimediawidgets/qpaintervideosurface.cpp index 6af0c7588..944ea23a7 100644 --- a/src/multimediawidgets/qpaintervideosurface.cpp +++ b/src/multimediawidgets/qpaintervideosurface.cpp @@ -1761,7 +1761,6 @@ void QPainterVideoSurface::createPainter() #endif } -#include "moc_qpaintervideosurface_p.cpp" QT_END_NAMESPACE - +#include "moc_qpaintervideosurface_p.cpp" diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index 7d26a8534..bae0efd22 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -1023,7 +1023,7 @@ bool QVideoWidget::nativeEvent(const QByteArray &eventType, void *message, long } #endif -#include "moc_qvideowidget.cpp" -#include "moc_qvideowidget_p.cpp" QT_END_NAMESPACE +#include "moc_qvideowidget.cpp" +#include "moc_qvideowidget_p.cpp" diff --git a/src/multimediawidgets/qvideowidgetcontrol.cpp b/src/multimediawidgets/qvideowidgetcontrol.cpp index a71500dbd..7f72c620e 100644 --- a/src/multimediawidgets/qvideowidgetcontrol.cpp +++ b/src/multimediawidgets/qvideowidgetcontrol.cpp @@ -219,6 +219,6 @@ QVideoWidgetControl::~QVideoWidgetControl() Returns the QWidget. */ -#include "moc_qvideowidgetcontrol.cpp" QT_END_NAMESPACE +#include "moc_qvideowidgetcontrol.cpp" -- cgit v1.2.3 From cb06ede8ba9a33adbbfdc690faa1a83be4e70b55 Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Fri, 30 Aug 2019 12:59:29 +0200 Subject: DirectShow: Allow QMediaPlayer in secondary thread MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since using of any COM objects must be only after CoInitialize(), otherwise CoCreateInstance() returns nothing which causes a crash. If QMediaPlayer is moved to another thread, loading of any content will also cause a crash because of COM is not initialized. Proposing to use thread_local ref counter to keep each thread initialized and avoid double initialization. Fixes: QTBUG-77163 Change-Id: I81c67d6407b853c824edd3b42454fddf792fd90c Reviewed-by: Christian Strømme --- src/plugins/directshow/common/directshowutils.cpp | 13 +++++++++ src/plugins/directshow/common/directshowutils.h | 4 +++ src/plugins/directshow/dsserviceplugin.cpp | 32 +++++++--------------- .../directshow/player/directshowplayerservice.cpp | 2 ++ 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/plugins/directshow/common/directshowutils.cpp b/src/plugins/directshow/common/directshowutils.cpp index 48d5dbd8d..13b51deb5 100644 --- a/src/plugins/directshow/common/directshowutils.cpp +++ b/src/plugins/directshow/common/directshowutils.cpp @@ -309,4 +309,17 @@ bool DirectShowUtils::connectFilters(IGraphBuilder *graph, return false; } +thread_local static int g_refCount = 0; +void DirectShowUtils::CoInitializeIfNeeded() +{ + if (++g_refCount == 1) + ::CoInitialize(nullptr); +} + +void DirectShowUtils::CoUninitializeIfNeeded() +{ + if (--g_refCount == 0) + ::CoUninitialize(); +} + QT_END_NAMESPACE diff --git a/src/plugins/directshow/common/directshowutils.h b/src/plugins/directshow/common/directshowutils.h index 09c81c257..5f2cfaa23 100644 --- a/src/plugins/directshow/common/directshowutils.h +++ b/src/plugins/directshow/common/directshowutils.h @@ -80,6 +80,10 @@ bool connectFilters(IGraphBuilder *graph, IBaseFilter *downstreamFilter, bool autoConnect = false, HRESULT *hrOut = nullptr); + +void CoInitializeIfNeeded(); +void CoUninitializeIfNeeded(); + } QT_END_NAMESPACE diff --git a/src/plugins/directshow/dsserviceplugin.cpp b/src/plugins/directshow/dsserviceplugin.cpp index f92e37c00..cc25e35b7 100644 --- a/src/plugins/directshow/dsserviceplugin.cpp +++ b/src/plugins/directshow/dsserviceplugin.cpp @@ -54,6 +54,7 @@ #include "directshowplayerservice.h" #include +#include "directshowutils.h" extern const CLSID CLSID_VideoInputDeviceCategory; @@ -74,28 +75,15 @@ extern const CLSID CLSID_VideoInputDeviceCategory; QT_BEGIN_NAMESPACE Q_LOGGING_CATEGORY(qtDirectShowPlugin, "qt.multimedia.plugins.directshow") -static int g_refCount = 0; -void addRefCount() -{ - if (++g_refCount == 1) - CoInitialize(nullptr); -} - -void releaseRefCount() -{ - if (--g_refCount == 0) - CoUninitialize(); -} - QMediaService* DSServicePlugin::create(QString const& key) { if (key == QLatin1String(Q_MEDIASERVICE_CAMERA)) { - addRefCount(); + DirectShowUtils::CoInitializeIfNeeded(); return new DSCameraService; } if (key == QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)) { - addRefCount(); + DirectShowUtils::CoInitializeIfNeeded(); return new DirectShowPlayerService; } @@ -105,7 +93,7 @@ QMediaService* DSServicePlugin::create(QString const& key) void DSServicePlugin::release(QMediaService *service) { delete service; - releaseRefCount(); + DirectShowUtils::CoUninitializeIfNeeded(); } QMediaServiceProviderHint::Features DSServicePlugin::supportedFeatures( @@ -119,9 +107,9 @@ QMediaServiceProviderHint::Features DSServicePlugin::supportedFeatures( QByteArray DSServicePlugin::defaultDevice(const QByteArray &service) const { if (service == Q_MEDIASERVICE_CAMERA) { - addRefCount(); + DirectShowUtils::CoInitializeIfNeeded(); const QList &devs = DSVideoDeviceControl::availableDevices(); - releaseRefCount(); + DirectShowUtils::CoUninitializeIfNeeded(); if (!devs.isEmpty()) return devs.first().first; } @@ -133,9 +121,9 @@ QList DSServicePlugin::devices(const QByteArray &service) const QList result; if (service == Q_MEDIASERVICE_CAMERA) { - addRefCount(); + DirectShowUtils::CoInitializeIfNeeded(); const QList &devs = DSVideoDeviceControl::availableDevices(); - releaseRefCount(); + DirectShowUtils::CoUninitializeIfNeeded(); for (const DSVideoDeviceInfo &info : devs) result.append(info.first); } @@ -146,9 +134,9 @@ QList DSServicePlugin::devices(const QByteArray &service) const QString DSServicePlugin::deviceDescription(const QByteArray &service, const QByteArray &device) { if (service == Q_MEDIASERVICE_CAMERA) { - addRefCount(); + DirectShowUtils::CoInitializeIfNeeded(); const QList &devs = DSVideoDeviceControl::availableDevices(); - releaseRefCount(); + DirectShowUtils::CoUninitializeIfNeeded(); for (const DSVideoDeviceInfo &info : devs) { if (info.first == device) return info.second; diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index def18be74..f5899cb6a 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -327,6 +327,7 @@ void DirectShowPlayerService::load(const QMediaContent &media, QIODevice *stream 0x36b73882, 0xc2c8, 0x11cf, {0x8b, 0x46, 0x00, 0x80, 0x5f, 0x6c, 0xef, 0x60} }; m_graphStatus = Loading; + DirectShowUtils::CoInitializeIfNeeded(); m_graph = com_new(CLSID_FilterGraph, iid_IFilterGraph2); m_graphBuilder = com_new(CLSID_CaptureGraphBuilder2, IID_ICaptureGraphBuilder2); @@ -664,6 +665,7 @@ void DirectShowPlayerService::releaseGraph() ::SetEvent(m_taskHandle); m_loop->wait(&m_mutex); + DirectShowUtils::CoUninitializeIfNeeded(); } } -- cgit v1.2.3 From a1bf811b1dd287fbb75b6d27dbc163f15001e28f Mon Sep 17 00:00:00 2001 From: VaL Doroshchuk Date: Tue, 10 Sep 2019 12:48:38 +0200 Subject: GStreamer: Use member initialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I96026828c357677c84e880ea85e6e82b8c0495c7 Reviewed-by: Mårten Nordheim Reviewed-by: Timur Pocheptsov --- src/gsttools/qgstappsrc.cpp | 10 +--- src/gsttools/qgstappsrc_p.h | 18 +++--- src/gsttools/qgstreamerbufferprobe.cpp | 8 +-- src/gsttools/qgstreamerbufferprobe_p.h | 6 +- src/gsttools/qgstreamerbushelper_p.h | 2 +- src/gsttools/qgstreamermessage.cpp | 6 -- src/gsttools/qgstreamermessage_p.h | 4 +- src/gsttools/qgstreamerplayercontrol.cpp | 7 --- src/gsttools/qgstreamerplayercontrol_p.h | 18 +++--- src/gsttools/qgstreamerplayersession.cpp | 34 +---------- src/gsttools/qgstreamerplayersession_p.h | 68 +++++++++++----------- src/gsttools/qgstreamervideoinputdevicecontrol.cpp | 5 +- src/gsttools/qgstreamervideoinputdevicecontrol_p.h | 4 +- src/gsttools/qgstreamervideoprobecontrol.cpp | 2 - src/gsttools/qgstreamervideoprobecontrol_p.h | 6 +- src/gsttools/qgstreamervideowidget.cpp | 4 -- src/gsttools/qgstreamervideowidget_p.h | 8 +-- src/gsttools/qgstreamervideowindow.cpp | 3 - src/gsttools/qgstreamervideowindow_p.h | 6 +- src/gsttools/qgstvideobuffer.cpp | 2 - src/gsttools/qgstvideobuffer_p.h | 6 +- src/gsttools/qgstvideorenderersink.cpp | 9 --- src/gsttools/qgstvideorenderersink_p.h | 22 +++---- src/gsttools/qvideosurfacegstsink.cpp | 4 -- src/gsttools/qvideosurfacegstsink_p.h | 18 +++--- .../mediaplayer/qgstreameravailabilitycontrol.h | 2 +- .../mediaplayer/qgstreamermetadataprovider.h | 2 +- .../mediaplayer/qgstreamerplayerservice.cpp | 13 +---- .../mediaplayer/qgstreamerplayerservice.h | 24 ++++---- .../mediaplayer/qgstreamerstreamscontrol.h | 2 +- 30 files changed, 116 insertions(+), 207 deletions(-) diff --git a/src/gsttools/qgstappsrc.cpp b/src/gsttools/qgstappsrc.cpp index 823f95655..3e8b8b9b3 100644 --- a/src/gsttools/qgstappsrc.cpp +++ b/src/gsttools/qgstappsrc.cpp @@ -42,15 +42,7 @@ #include "qgstappsrc_p.h" QGstAppSrc::QGstAppSrc(QObject *parent) - :QObject(parent) - ,m_stream(0) - ,m_appSrc(0) - ,m_sequential(false) - ,m_maxBytes(0) - ,m_dataRequestSize(~0) - ,m_dataRequested(false) - ,m_enoughData(false) - ,m_forceData(false) + : QObject(parent) { m_callbacks.need_data = &QGstAppSrc::on_need_data; m_callbacks.enough_data = &QGstAppSrc::on_enough_data; diff --git a/src/gsttools/qgstappsrc_p.h b/src/gsttools/qgstappsrc_p.h index c7e87037d..c1c8cdabe 100644 --- a/src/gsttools/qgstappsrc_p.h +++ b/src/gsttools/qgstappsrc_p.h @@ -104,16 +104,16 @@ private: void sendEOS(); - QIODevice *m_stream; - GstAppSrc *m_appSrc; - bool m_sequential; - GstAppStreamType m_streamType; + QIODevice *m_stream = nullptr; + GstAppSrc *m_appSrc = nullptr; + bool m_sequential = false; + GstAppStreamType m_streamType = GST_APP_STREAM_TYPE_RANDOM_ACCESS; GstAppSrcCallbacks m_callbacks; - qint64 m_maxBytes; - unsigned int m_dataRequestSize; - bool m_dataRequested; - bool m_enoughData; - bool m_forceData; + qint64 m_maxBytes = 0; + unsigned int m_dataRequestSize = ~0; + bool m_dataRequested = false; + bool m_enoughData = false; + bool m_forceData = false; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamerbufferprobe.cpp b/src/gsttools/qgstreamerbufferprobe.cpp index f420290ce..d95de4c63 100644 --- a/src/gsttools/qgstreamerbufferprobe.cpp +++ b/src/gsttools/qgstreamerbufferprobe.cpp @@ -43,13 +43,7 @@ QT_BEGIN_NAMESPACE QGstreamerBufferProbe::QGstreamerBufferProbe(Flags flags) -#if GST_CHECK_VERSION(1,0,0) - : m_capsProbeId(-1) -#else - : m_caps(0) -#endif - , m_bufferProbeId(-1) - , m_flags(flags) + : m_flags(flags) { } diff --git a/src/gsttools/qgstreamerbufferprobe_p.h b/src/gsttools/qgstreamerbufferprobe_p.h index 35644f934..2dda73e40 100644 --- a/src/gsttools/qgstreamerbufferprobe_p.h +++ b/src/gsttools/qgstreamerbufferprobe_p.h @@ -83,12 +83,12 @@ private: #if GST_CHECK_VERSION(1,0,0) static GstPadProbeReturn capsProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data); static GstPadProbeReturn bufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data); - int m_capsProbeId; + int m_capsProbeId = -1; #else static gboolean bufferProbe(GstElement *element, GstBuffer *buffer, gpointer user_data); - GstCaps *m_caps; + GstCaps *m_caps = nullptr; #endif - int m_bufferProbeId; + int m_bufferProbeId = -1; const Flags m_flags; }; diff --git a/src/gsttools/qgstreamerbushelper_p.h b/src/gsttools/qgstreamerbushelper_p.h index c7d06faf8..e784f6e41 100644 --- a/src/gsttools/qgstreamerbushelper_p.h +++ b/src/gsttools/qgstreamerbushelper_p.h @@ -96,7 +96,7 @@ signals: void message(QGstreamerMessage const& message); private: - QGstreamerBusHelperPrivate* d; + QGstreamerBusHelperPrivate *d = nullptr; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamermessage.cpp b/src/gsttools/qgstreamermessage.cpp index 6855c285c..7191565e1 100644 --- a/src/gsttools/qgstreamermessage.cpp +++ b/src/gsttools/qgstreamermessage.cpp @@ -51,12 +51,6 @@ static int wuchi = qRegisterMetaType(); \internal */ -QGstreamerMessage::QGstreamerMessage(): - m_message(0) -{ - Q_UNUSED(wuchi); -} - QGstreamerMessage::QGstreamerMessage(GstMessage* message): m_message(message) { diff --git a/src/gsttools/qgstreamermessage_p.h b/src/gsttools/qgstreamermessage_p.h index 2f9d1745c..baeecc360 100644 --- a/src/gsttools/qgstreamermessage_p.h +++ b/src/gsttools/qgstreamermessage_p.h @@ -64,7 +64,7 @@ class QString; class Q_GSTTOOLS_EXPORT QGstreamerMessage { public: - QGstreamerMessage(); + QGstreamerMessage() = default; QGstreamerMessage(GstMessage* message); QGstreamerMessage(QGstreamerMessage const& m); ~QGstreamerMessage(); @@ -74,7 +74,7 @@ public: QGstreamerMessage& operator=(QGstreamerMessage const& rhs); private: - GstMessage* m_message; + GstMessage* m_message = nullptr; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp index d49b09af4..9c7aa3102 100644 --- a/src/gsttools/qgstreamerplayercontrol.cpp +++ b/src/gsttools/qgstreamerplayercontrol.cpp @@ -60,13 +60,6 @@ QT_BEGIN_NAMESPACE QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *session, QObject *parent) : QMediaPlayerControl(parent) , m_session(session) - , m_userRequestedState(QMediaPlayer::StoppedState) - , m_currentState(QMediaPlayer::StoppedState) - , m_mediaStatus(QMediaPlayer::NoMedia) - , m_bufferProgress(-1) - , m_pendingSeekPosition(-1) - , m_setMediaPending(false) - , m_stream(0) { m_resources = QMediaResourcePolicy::createResourceSet(); Q_ASSERT(m_resources); diff --git a/src/gsttools/qgstreamerplayercontrol_p.h b/src/gsttools/qgstreamerplayercontrol_p.h index e2252ea52..ef94df925 100644 --- a/src/gsttools/qgstreamerplayercontrol_p.h +++ b/src/gsttools/qgstreamerplayercontrol_p.h @@ -124,20 +124,20 @@ private: void pushState(); void popAndNotifyState(); - QGstreamerPlayerSession *m_session; - QMediaPlayer::State m_userRequestedState; - QMediaPlayer::State m_currentState; - QMediaPlayer::MediaStatus m_mediaStatus; + QGstreamerPlayerSession *m_session = nullptr; + QMediaPlayer::State m_userRequestedState = QMediaPlayer::StoppedState; + QMediaPlayer::State m_currentState = QMediaPlayer::StoppedState; + QMediaPlayer::MediaStatus m_mediaStatus = QMediaPlayer::NoMedia; QStack m_stateStack; QStack m_mediaStatusStack; - int m_bufferProgress; - qint64 m_pendingSeekPosition; - bool m_setMediaPending; + int m_bufferProgress = -1; + qint64 m_pendingSeekPosition = -1; + bool m_setMediaPending = false; QMediaContent m_currentResource; - QIODevice *m_stream; + QIODevice *m_stream = nullptr; - QMediaPlayerResourceSetInterface *m_resources; + QMediaPlayerResourceSetInterface *m_resources = nullptr; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp index 15587f0ce..ff171f4b2 100644 --- a/src/gsttools/qgstreamerplayersession.cpp +++ b/src/gsttools/qgstreamerplayersession.cpp @@ -111,39 +111,7 @@ static GstStaticCaps static_RawCaps = GST_STATIC_CAPS(DEFAULT_RAW_CAPS); #endif QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) - :QObject(parent), - m_state(QMediaPlayer::StoppedState), - m_pendingState(QMediaPlayer::StoppedState), - m_busHelper(0), - m_videoSink(0), -#if !GST_CHECK_VERSION(1,0,0) - m_usingColorspaceElement(false), -#endif - m_pendingVideoSink(0), - m_nullVideoSink(0), - m_audioSink(0), - m_volumeElement(0), - m_bus(0), - m_videoOutput(0), - m_renderer(0), -#if QT_CONFIG(gstreamer_app) - m_appSrc(0), -#endif - m_videoProbe(0), - m_audioProbe(0), - m_volume(100), - m_playbackRate(1.0), - m_muted(false), - m_audioAvailable(false), - m_videoAvailable(false), - m_seekable(false), - m_lastPosition(0), - m_duration(0), - m_durationQueries(0), - m_displayPrerolledFrame(true), - m_sourceType(UnknownSrc), - m_everPlayed(false), - m_isLiveSource(false) + : QObject(parent) { m_playbin = gst_element_factory_make(QT_GSTREAMER_PLAYBIN_ELEMENT_NAME, NULL); if (m_playbin) { diff --git a/src/gsttools/qgstreamerplayersession_p.h b/src/gsttools/qgstreamerplayersession_p.h index d4b050272..69027eeb2 100644 --- a/src/gsttools/qgstreamerplayersession_p.h +++ b/src/gsttools/qgstreamerplayersession_p.h @@ -212,32 +212,32 @@ private: bool setPipeline(GstElement *pipeline); QNetworkRequest m_request; - QMediaPlayer::State m_state; - QMediaPlayer::State m_pendingState; - QGstreamerBusHelper* m_busHelper; - GstElement *m_playbin = nullptr; // Can be null - GstElement *m_pipeline = nullptr; // Never null + QMediaPlayer::State m_state = QMediaPlayer::StoppedState; + QMediaPlayer::State m_pendingState = QMediaPlayer::StoppedState; + QGstreamerBusHelper *m_busHelper = nullptr; + GstElement *m_playbin = nullptr; + GstElement *m_pipeline = nullptr; - GstElement* m_videoSink; + GstElement *m_videoSink = nullptr; - GstElement* m_videoOutputBin; - GstElement* m_videoIdentity; + GstElement *m_videoOutputBin = nullptr; + GstElement *m_videoIdentity = nullptr; #if !GST_CHECK_VERSION(1,0,0) - GstElement* m_colorSpace; - bool m_usingColorspaceElement; + GstElement *m_colorSpace = nullptr; + bool m_usingColorspaceElement = false; #endif - GstElement* m_pendingVideoSink; - GstElement* m_nullVideoSink; + GstElement *m_pendingVideoSink = nullptr; + GstElement *m_nullVideoSink = nullptr; - GstElement* m_audioSink; - GstElement* m_volumeElement; + GstElement *m_audioSink = nullptr; + GstElement *m_volumeElement = nullptr; - GstBus* m_bus; - QObject *m_videoOutput; - QGstreamerVideoRendererInterface *m_renderer; + GstBus *m_bus = nullptr; + QObject *m_videoOutput = nullptr; + QGstreamerVideoRendererInterface *m_renderer = nullptr; #if QT_CONFIG(gstreamer_app) - QGstAppSrc *m_appSrc; + QGstAppSrc *m_appSrc = nullptr; #endif QMap m_tags; @@ -245,21 +245,21 @@ private: QList m_streamTypes; QMap m_playbin2StreamOffset; - QGstreamerVideoProbeControl *m_videoProbe; - QGstreamerAudioProbeControl *m_audioProbe; + QGstreamerVideoProbeControl *m_videoProbe = nullptr; + QGstreamerAudioProbeControl *m_audioProbe = nullptr; - int m_volume; - qreal m_playbackRate; - bool m_muted; - bool m_audioAvailable; - bool m_videoAvailable; - bool m_seekable; + int m_volume = 100; + qreal m_playbackRate = 1.0; + bool m_muted = false; + bool m_audioAvailable = false; + bool m_videoAvailable = false; + bool m_seekable = false; - mutable qint64 m_lastPosition; - qint64 m_duration; - int m_durationQueries; + mutable qint64 m_lastPosition = 0; + qint64 m_duration = 0; + int m_durationQueries = 0; - bool m_displayPrerolledFrame; + bool m_displayPrerolledFrame = true; enum SourceType { @@ -269,11 +269,11 @@ private: MMSSrc, RTSPSrc, }; - SourceType m_sourceType; - bool m_everPlayed; - bool m_isLiveSource; + SourceType m_sourceType = UnknownSrc; + bool m_everPlayed = false; + bool m_isLiveSource = false; - gulong pad_probe_id; + gulong pad_probe_id = 0; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamervideoinputdevicecontrol.cpp b/src/gsttools/qgstreamervideoinputdevicecontrol.cpp index 86e6772b7..4d98afa62 100644 --- a/src/gsttools/qgstreamervideoinputdevicecontrol.cpp +++ b/src/gsttools/qgstreamervideoinputdevicecontrol.cpp @@ -45,13 +45,14 @@ #include QGstreamerVideoInputDeviceControl::QGstreamerVideoInputDeviceControl(QObject *parent) - :QVideoDeviceSelectorControl(parent), m_factory(0), m_selectedDevice(0) + : QVideoDeviceSelectorControl(parent) { } QGstreamerVideoInputDeviceControl::QGstreamerVideoInputDeviceControl( GstElementFactory *factory, QObject *parent) - : QVideoDeviceSelectorControl(parent), m_factory(factory), m_selectedDevice(0) + : QVideoDeviceSelectorControl(parent) + , m_factory(factory) { if (m_factory) gst_object_ref(GST_OBJECT(m_factory)); diff --git a/src/gsttools/qgstreamervideoinputdevicecontrol_p.h b/src/gsttools/qgstreamervideoinputdevicecontrol_p.h index b660cc7b3..9d8dffd72 100644 --- a/src/gsttools/qgstreamervideoinputdevicecontrol_p.h +++ b/src/gsttools/qgstreamervideoinputdevicecontrol_p.h @@ -83,9 +83,9 @@ public Q_SLOTS: void setSelectedDevice(int index) override; private: - GstElementFactory *m_factory; + GstElementFactory *m_factory = nullptr; - int m_selectedDevice; + int m_selectedDevice = 0; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamervideoprobecontrol.cpp b/src/gsttools/qgstreamervideoprobecontrol.cpp index e18da2b4d..f9ce4e412 100644 --- a/src/gsttools/qgstreamervideoprobecontrol.cpp +++ b/src/gsttools/qgstreamervideoprobecontrol.cpp @@ -44,8 +44,6 @@ QGstreamerVideoProbeControl::QGstreamerVideoProbeControl(QObject *parent) : QMediaVideoProbeControl(parent) - , m_flushing(false) - , m_frameProbed(false) { } diff --git a/src/gsttools/qgstreamervideoprobecontrol_p.h b/src/gsttools/qgstreamervideoprobecontrol_p.h index b15b6099c..8f2101d74 100644 --- a/src/gsttools/qgstreamervideoprobecontrol_p.h +++ b/src/gsttools/qgstreamervideoprobecontrol_p.h @@ -89,10 +89,10 @@ private: #if GST_CHECK_VERSION(1,0,0) GstVideoInfo m_videoInfo; #else - int m_bytesPerLine; + int m_bytesPerLine = 0; #endif - bool m_flushing; - bool m_frameProbed; // true if at least one frame was probed + bool m_flushing = false; + bool m_frameProbed = false; // true if at least one frame was probed }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp index bb85e1eb7..46432a0a1 100644 --- a/src/gsttools/qgstreamervideowidget.cpp +++ b/src/gsttools/qgstreamervideowidget.cpp @@ -95,10 +95,6 @@ protected: QGstreamerVideoWidgetControl::QGstreamerVideoWidgetControl(QObject *parent, const QByteArray &elementName) : QVideoWidgetControl(parent) , m_videoOverlay(this, !elementName.isEmpty() ? elementName : qgetenv("QT_GSTREAMER_WIDGET_VIDEOSINK")) - , m_widget(0) - , m_stopped(false) - , m_windowId(0) - , m_fullScreen(false) { connect(&m_videoOverlay, &QGstreamerVideoOverlay::activeChanged, this, &QGstreamerVideoWidgetControl::onOverlayActiveChanged); diff --git a/src/gsttools/qgstreamervideowidget_p.h b/src/gsttools/qgstreamervideowidget_p.h index 1ddb738df..6eec6ae52 100644 --- a/src/gsttools/qgstreamervideowidget_p.h +++ b/src/gsttools/qgstreamervideowidget_p.h @@ -117,10 +117,10 @@ private: bool processBusMessage(const QGstreamerMessage &message) override; QGstreamerVideoOverlay m_videoOverlay; - QGstreamerVideoWidget *m_widget; - bool m_stopped; - WId m_windowId; - bool m_fullScreen; + QGstreamerVideoWidget *m_widget = nullptr; + bool m_stopped = false; + WId m_windowId = 0; + bool m_fullScreen = false; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstreamervideowindow.cpp b/src/gsttools/qgstreamervideowindow.cpp index f872df964..e7e3c5044 100644 --- a/src/gsttools/qgstreamervideowindow.cpp +++ b/src/gsttools/qgstreamervideowindow.cpp @@ -45,9 +45,6 @@ QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const QByteArray &elementName) : QVideoWindowControl(parent) , m_videoOverlay(this, !elementName.isEmpty() ? elementName : qgetenv("QT_GSTREAMER_WINDOW_VIDEOSINK")) - , m_windowId(0) - , m_fullScreen(false) - , m_colorKey(QColor::Invalid) { connect(&m_videoOverlay, &QGstreamerVideoOverlay::nativeVideoSizeChanged, this, &QGstreamerVideoWindow::nativeSizeChanged); diff --git a/src/gsttools/qgstreamervideowindow_p.h b/src/gsttools/qgstreamervideowindow_p.h index 5f893f10e..a0ed8599b 100644 --- a/src/gsttools/qgstreamervideowindow_p.h +++ b/src/gsttools/qgstreamervideowindow_p.h @@ -116,10 +116,10 @@ signals: private: QGstreamerVideoOverlay m_videoOverlay; - WId m_windowId; + WId m_windowId = 0; QRect m_displayRect; - bool m_fullScreen; - mutable QColor m_colorKey; + bool m_fullScreen = false; + mutable QColor m_colorKey = QColor::Invalid; }; QT_END_NAMESPACE diff --git a/src/gsttools/qgstvideobuffer.cpp b/src/gsttools/qgstvideobuffer.cpp index e174ab75d..245b7e024 100644 --- a/src/gsttools/qgstvideobuffer.cpp +++ b/src/gsttools/qgstvideobuffer.cpp @@ -51,7 +51,6 @@ QGstVideoBuffer::QGstVideoBuffer(GstBuffer *buffer, int bytesPerLine) , m_bytesPerLine(bytesPerLine) #endif , m_buffer(buffer) - , m_mode(NotMapped) { gst_buffer_ref(m_buffer); } @@ -70,7 +69,6 @@ QGstVideoBuffer::QGstVideoBuffer(GstBuffer *buffer, int bytesPerLine, , m_bytesPerLine(bytesPerLine) #endif , m_buffer(buffer) - , m_mode(NotMapped) , m_handle(handle) { gst_buffer_ref(m_buffer); diff --git a/src/gsttools/qgstvideobuffer_p.h b/src/gsttools/qgstvideobuffer_p.h index 6681070da..b7de17e19 100644 --- a/src/gsttools/qgstvideobuffer_p.h +++ b/src/gsttools/qgstvideobuffer_p.h @@ -95,10 +95,10 @@ private: GstVideoInfo m_videoInfo; GstVideoFrame m_frame; #else - int m_bytesPerLine; + int m_bytesPerLine = 0; #endif - GstBuffer *m_buffer; - MapMode m_mode; + GstBuffer *m_buffer = nullptr; + MapMode m_mode = NotMapped; QVariant m_handle; }; diff --git a/src/gsttools/qgstvideorenderersink.cpp b/src/gsttools/qgstvideorenderersink.cpp index 597b97410..119fc55a1 100644 --- a/src/gsttools/qgstvideorenderersink.cpp +++ b/src/gsttools/qgstvideorenderersink.cpp @@ -59,7 +59,6 @@ QT_BEGIN_NAMESPACE QGstDefaultVideoRenderer::QGstDefaultVideoRenderer() - : m_flushed(true) { } @@ -116,14 +115,6 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, rendererLoader, QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate(QAbstractVideoSurface *surface) : m_surface(surface) - , m_renderer(0) - , m_activeRenderer(0) - , m_surfaceCaps(0) - , m_startCaps(0) - , m_renderBuffer(0) - , m_notified(false) - , m_stop(false) - , m_flush(false) { const auto instances = rendererLoader()->instances(QGstVideoRendererPluginKey); for (QObject *instance : instances) { diff --git a/src/gsttools/qgstvideorenderersink_p.h b/src/gsttools/qgstvideorenderersink_p.h index d2417a7c9..b1e333566 100644 --- a/src/gsttools/qgstvideorenderersink_p.h +++ b/src/gsttools/qgstvideorenderersink_p.h @@ -88,7 +88,7 @@ public: private: QVideoSurfaceFormat m_format; GstVideoInfo m_videoInfo; - bool m_flushed; + bool m_flushed = true; }; class QVideoSurfaceGstDelegate : public QObject @@ -124,18 +124,18 @@ private: QMutex m_mutex; QWaitCondition m_setupCondition; QWaitCondition m_renderCondition; - GstFlowReturn m_renderReturn; + GstFlowReturn m_renderReturn = GST_FLOW_OK; QList m_renderers; - QGstVideoRenderer *m_renderer; - QGstVideoRenderer *m_activeRenderer; + QGstVideoRenderer *m_renderer = nullptr; + QGstVideoRenderer *m_activeRenderer = nullptr; - GstCaps *m_surfaceCaps; - GstCaps *m_startCaps; - GstBuffer *m_renderBuffer; + GstCaps *m_surfaceCaps = nullptr; + GstCaps *m_startCaps = nullptr; + GstBuffer *m_renderBuffer = nullptr; - bool m_notified; - bool m_stop; - bool m_flush; + bool m_notified = false; + bool m_stop = false; + bool m_flush = false; }; class Q_GSTTOOLS_EXPORT QGstVideoRendererSink @@ -170,7 +170,7 @@ private: static GstFlowReturn show_frame(GstVideoSink *sink, GstBuffer *buffer); private: - QVideoSurfaceGstDelegate *delegate; + QVideoSurfaceGstDelegate *delegate = nullptr; }; diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp index 9655a2191..c63eea9a6 100644 --- a/src/gsttools/qvideosurfacegstsink.cpp +++ b/src/gsttools/qvideosurfacegstsink.cpp @@ -65,10 +65,6 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, bufferPoolLoader, QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate( QAbstractVideoSurface *surface) : m_surface(surface) - , m_pool(0) - , m_renderReturn(GST_FLOW_ERROR) - , m_bytesPerLine(0) - , m_startCanceled(false) { if (m_surface) { const auto instances = bufferPoolLoader()->instances(QGstBufferPoolPluginKey); diff --git a/src/gsttools/qvideosurfacegstsink_p.h b/src/gsttools/qvideosurfacegstsink_p.h index 961cf91d2..dd758ff82 100644 --- a/src/gsttools/qvideosurfacegstsink_p.h +++ b/src/gsttools/qvideosurfacegstsink_p.h @@ -119,7 +119,7 @@ private: QList m_supportedPixelFormats; //pixel formats of buffers pool native type QList m_supportedPoolPixelFormats; - QGstBufferPoolInterface *m_pool; + QGstBufferPoolInterface *m_pool = nullptr; QList m_pools; QMutex m_poolMutex; QMutex m_mutex; @@ -127,10 +127,10 @@ private: QWaitCondition m_renderCondition; QVideoSurfaceFormat m_format; QVideoFrame m_frame; - GstFlowReturn m_renderReturn; - int m_bytesPerLine; - bool m_started; - bool m_startCanceled; + GstFlowReturn m_renderReturn = GST_FLOW_ERROR; + int m_bytesPerLine = 0; + bool m_started = false; + bool m_startCanceled = false; }; class QVideoSurfaceGstSink @@ -172,11 +172,11 @@ private: #endif private: - QVideoSurfaceGstDelegate *delegate; + QVideoSurfaceGstDelegate *delegate = nullptr; - GstCaps *lastRequestedCaps; - GstCaps *lastBufferCaps; - QVideoSurfaceFormat *lastSurfaceFormat; + GstCaps *lastRequestedCaps = nullptr; + GstCaps *lastBufferCaps = nullptr; + QVideoSurfaceFormat *lastSurfaceFormat = nullptr; }; class QVideoSurfaceGstSinkClass diff --git a/src/plugins/gstreamer/mediaplayer/qgstreameravailabilitycontrol.h b/src/plugins/gstreamer/mediaplayer/qgstreameravailabilitycontrol.h index 78299b608..e100fccc8 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreameravailabilitycontrol.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreameravailabilitycontrol.h @@ -57,7 +57,7 @@ private Q_SLOTS: void handleAvailabilityChanged(); private: - QMediaPlayerResourceSetInterface *m_resources; + QMediaPlayerResourceSetInterface *m_resources = nullptr; }; QT_END_NAMESPACE diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.h b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.h index bf8f7e842..691453a42 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.h @@ -63,7 +63,7 @@ private slots: void updateTags(); private: - QGstreamerPlayerSession *m_session; + QGstreamerPlayerSession *m_session = nullptr; QVariantMap m_tags; }; diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp index 0712f6e6c..44cb5439b 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp @@ -71,17 +71,8 @@ QT_BEGIN_NAMESPACE -QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent): - QMediaService(parent) - , m_audioProbeControl(0) - , m_videoProbeControl(0) - , m_videoOutput(0) - , m_videoRenderer(0) - , m_videoWindow(0) -#if defined(HAVE_WIDGETS) - , m_videoWidget(0) -#endif - , m_videoReferenceCount(0) +QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent) + : QMediaService(parent) { m_session = new QGstreamerPlayerSession(this); m_control = new QGstreamerPlayerControl(m_session, this); diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h index ec0c0944b..f88f0ae38 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h @@ -73,25 +73,25 @@ public: void releaseControl(QMediaControl *control) override; private: - QGstreamerPlayerControl *m_control; - QGstreamerPlayerSession *m_session; - QGstreamerMetaDataProvider *m_metaData; - QGstreamerStreamsControl *m_streamsControl; - QGStreamerAvailabilityControl *m_availabilityControl; + QGstreamerPlayerControl *m_control = nullptr; + QGstreamerPlayerSession *m_session = nullptr; + QGstreamerMetaDataProvider *m_metaData = nullptr; + QGstreamerStreamsControl *m_streamsControl = nullptr; + QGStreamerAvailabilityControl *m_availabilityControl = nullptr; - QGstreamerAudioProbeControl *m_audioProbeControl; - QGstreamerVideoProbeControl *m_videoProbeControl; + QGstreamerAudioProbeControl *m_audioProbeControl = nullptr; + QGstreamerVideoProbeControl *m_videoProbeControl = nullptr; - QMediaControl *m_videoOutput; - QMediaControl *m_videoRenderer; - QGstreamerVideoWindow *m_videoWindow; + QMediaControl *m_videoOutput = nullptr; + QMediaControl *m_videoRenderer = nullptr; + QGstreamerVideoWindow *m_videoWindow = nullptr; #if defined(HAVE_WIDGETS) - QGstreamerVideoWidgetControl *m_videoWidget; + QGstreamerVideoWidgetControl *m_videoWidget = nullptr; #endif void increaseVideoRef(); void decreaseVideoRef(); - int m_videoReferenceCount; + int m_videoReferenceCount = 0; }; QT_END_NAMESPACE diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.h b/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.h index 6f332c160..41932095c 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.h @@ -62,7 +62,7 @@ public: void setActive(int streamNumber, bool state) override; private: - QGstreamerPlayerSession *m_session; + QGstreamerPlayerSession *m_session = nullptr; }; QT_END_NAMESPACE -- cgit v1.2.3