summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/alsa/qalsaaudiodeviceinfo.cpp2
-rw-r--r--src/plugins/alsa/qalsaaudiodeviceinfo.h2
-rw-r--r--src/plugins/alsa/qalsaaudioinput.h6
-rw-r--r--src/plugins/alsa/qalsaaudiooutput.h6
-rw-r--r--src/plugins/android/src/common/qandroidvideooutput.cpp2
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp2
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp4
-rw-r--r--src/plugins/android/src/wrappers/jni/androidcamera.cpp95
-rw-r--r--src/plugins/avfoundation/camera/avfcamerasession.mm2
-rw-r--r--src/plugins/avfoundation/camera/avfvideoencodersettingscontrol.mm2
-rw-r--r--src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm6
-rw-r--r--src/plugins/common/evr/evrcustompresenter.cpp30
-rw-r--r--src/plugins/common/evr/evrcustompresenter.h2
-rw-r--r--src/plugins/directshow/camera/dscameracontrol.cpp2
-rw-r--r--src/plugins/directshow/camera/dscameracontrol.h6
-rw-r--r--src/plugins/directshow/camera/dscameraservice.cpp6
-rw-r--r--src/plugins/directshow/camera/dscameraservice.h6
-rw-r--r--src/plugins/directshow/camera/dscamerasession.cpp51
-rw-r--r--src/plugins/directshow/camera/dscamerasession.h37
-rw-r--r--src/plugins/directshow/camera/dsvideodevicecontrol.cpp6
-rw-r--r--src/plugins/directshow/camera/dsvideodevicecontrol.h4
-rw-r--r--src/plugins/directshow/camera/dsvideorenderer.cpp1
-rw-r--r--src/plugins/directshow/camera/dsvideorenderer.h4
-rw-r--r--src/plugins/directshow/common/directshowbasefilter.cpp30
-rw-r--r--src/plugins/directshow/common/directshowbasefilter.h12
-rw-r--r--src/plugins/directshow/common/directshoweventloop.cpp7
-rw-r--r--src/plugins/directshow/common/directshoweventloop.h6
-rw-r--r--src/plugins/directshow/common/directshowglobal.h12
-rw-r--r--src/plugins/directshow/common/directshowmediatypeenum.cpp8
-rw-r--r--src/plugins/directshow/common/directshowmediatypeenum.h4
-rw-r--r--src/plugins/directshow/common/directshowpin.cpp31
-rw-r--r--src/plugins/directshow/common/directshowpin.h14
-rw-r--r--src/plugins/directshow/common/directshowpinenum.cpp5
-rw-r--r--src/plugins/directshow/common/directshowpinenum.h4
-rw-r--r--src/plugins/directshow/common/directshowsamplegrabber.cpp6
-rw-r--r--src/plugins/directshow/common/directshowsamplegrabber.h8
-rw-r--r--src/plugins/directshow/common/directshowutils.cpp2
-rw-r--r--src/plugins/directshow/common/directshowvideobuffer.cpp4
-rw-r--r--src/plugins/directshow/dsserviceplugin.cpp2
-rw-r--r--src/plugins/directshow/player/directshowaudioendpointcontrol.cpp22
-rw-r--r--src/plugins/directshow/player/directshowaudioendpointcontrol.h6
-rw-r--r--src/plugins/directshow/player/directshowevrvideowindowcontrol.cpp1
-rw-r--r--src/plugins/directshow/player/directshowevrvideowindowcontrol.h4
-rw-r--r--src/plugins/directshow/player/directshowioreader.cpp34
-rw-r--r--src/plugins/directshow/player/directshowioreader.h24
-rw-r--r--src/plugins/directshow/player/directshowiosource.cpp19
-rw-r--r--src/plugins/directshow/player/directshowiosource.h18
-rw-r--r--src/plugins/directshow/player/directshowmetadatacontrol.cpp21
-rw-r--r--src/plugins/directshow/player/directshowmetadatacontrol.h4
-rw-r--r--src/plugins/directshow/player/directshowplayercontrol.cpp14
-rw-r--r--src/plugins/directshow/player/directshowplayercontrol.h30
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp114
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.h66
-rw-r--r--src/plugins/directshow/player/directshowvideorenderercontrol.cpp13
-rw-r--r--src/plugins/directshow/player/directshowvideorenderercontrol.h8
-rw-r--r--src/plugins/directshow/player/videosurfacefilter.cpp61
-rw-r--r--src/plugins/directshow/player/videosurfacefilter.h24
-rw-r--r--src/plugins/directshow/player/vmr9videowindowcontrol.cpp13
-rw-r--r--src/plugins/directshow/player/vmr9videowindowcontrol.h20
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincontrol.cpp2
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp4
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp8
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp8
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp5
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp10
-rw-r--r--src/plugins/m3u/qm3uhandler.cpp2
-rw-r--r--src/plugins/pulseaudio/qaudioinput_pulse.h6
-rw-r--r--src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp2
-rw-r--r--src/plugins/windowsaudio/qwindowsaudioinput.cpp1
-rw-r--r--src/plugins/windowsaudio/qwindowsaudioinput.h6
-rw-r--r--src/plugins/windowsaudio/qwindowsaudiooutput.cpp1
-rw-r--r--src/plugins/windowsaudio/qwindowsaudiooutput.h6
-rw-r--r--src/plugins/winrt/qwinrtmediaplayercontrol.cpp19
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp2
-rw-r--r--src/plugins/wmf/player/mftvideo.cpp2
75 files changed, 441 insertions, 598 deletions
diff --git a/src/plugins/alsa/qalsaaudiodeviceinfo.cpp b/src/plugins/alsa/qalsaaudiodeviceinfo.cpp
index 5e8edc3fc..474fd6bde 100644
--- a/src/plugins/alsa/qalsaaudiodeviceinfo.cpp
+++ b/src/plugins/alsa/qalsaaudiodeviceinfo.cpp
@@ -54,7 +54,7 @@
QT_BEGIN_NAMESPACE
-QAlsaAudioDeviceInfo::QAlsaAudioDeviceInfo(QByteArray dev, QAudio::Mode mode)
+QAlsaAudioDeviceInfo::QAlsaAudioDeviceInfo(const QByteArray &dev, QAudio::Mode mode)
{
handle = 0;
diff --git a/src/plugins/alsa/qalsaaudiodeviceinfo.h b/src/plugins/alsa/qalsaaudiodeviceinfo.h
index 21e30f49b..65675df54 100644
--- a/src/plugins/alsa/qalsaaudiodeviceinfo.h
+++ b/src/plugins/alsa/qalsaaudiodeviceinfo.h
@@ -74,7 +74,7 @@ class QAlsaAudioDeviceInfo : public QAbstractAudioDeviceInfo
{
Q_OBJECT
public:
- QAlsaAudioDeviceInfo(QByteArray dev,QAudio::Mode mode);
+ QAlsaAudioDeviceInfo(const QByteArray &dev,QAudio::Mode mode);
~QAlsaAudioDeviceInfo();
bool testSettings(const QAudioFormat& format) const;
diff --git a/src/plugins/alsa/qalsaaudioinput.h b/src/plugins/alsa/qalsaaudioinput.h
index 09f615fea..fa9c954d7 100644
--- a/src/plugins/alsa/qalsaaudioinput.h
+++ b/src/plugins/alsa/qalsaaudioinput.h
@@ -59,7 +59,7 @@
#include <QtCore/qtimer.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
-#include <QtCore/qdatetime.h>
+#include <QtCore/qelapsedtimer.h>
#include <QtCore/qiodevice.h>
#include <QtMultimedia/qaudio.h>
@@ -144,8 +144,8 @@ private:
void drain();
QTimer* timer;
- QTime timeStamp;
- QTime clockStamp;
+ QElapsedTimer timeStamp;
+ QElapsedTimer clockStamp;
qint64 elapsedTimeOffset;
int intervalTime;
RingBuffer ringBuffer;
diff --git a/src/plugins/alsa/qalsaaudiooutput.h b/src/plugins/alsa/qalsaaudiooutput.h
index d38e3d5d4..8002322cb 100644
--- a/src/plugins/alsa/qalsaaudiooutput.h
+++ b/src/plugins/alsa/qalsaaudiooutput.h
@@ -58,7 +58,7 @@
#include <QtCore/qtimer.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
-#include <QtCore/qdatetime.h>
+#include <QtCore/qelapsedtimer.h>
#include <QtCore/qiodevice.h>
#include <QtMultimedia/qaudio.h>
@@ -132,8 +132,8 @@ private:
QTimer* timer;
QByteArray m_device;
int bytesAvailable;
- QTime timeStamp;
- QTime clockStamp;
+ QElapsedTimer timeStamp;
+ QElapsedTimer clockStamp;
qint64 elapsedTimeOffset;
char* audioBuffer;
snd_pcm_t* handle;
diff --git a/src/plugins/android/src/common/qandroidvideooutput.cpp b/src/plugins/android/src/common/qandroidvideooutput.cpp
index 083ceff24..25e67e865 100644
--- a/src/plugins/android/src/common/qandroidvideooutput.cpp
+++ b/src/plugins/android/src/common/qandroidvideooutput.cpp
@@ -110,7 +110,7 @@ public:
m_image = m_output->m_fbo->toImage();
if (numBytes)
- *numBytes = m_image.byteCount();
+ *numBytes = static_cast<int>(m_image.sizeInBytes());
if (bytesPerLine)
*bytesPerLine = m_image.bytesPerLine();
diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
index 13a8cdbbb..82250b654 100644
--- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
+++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
@@ -384,7 +384,7 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent,
if ((mMediaPlayer->display() == 0) && mVideoOutput)
mMediaPlayer->setDisplay(mVideoOutput->surfaceTexture());
- mMediaPlayer->setDataSource(mediaContent.canonicalRequest());
+ mMediaPlayer->setDataSource(mediaContent.request());
mMediaPlayer->prepareAsync();
}
diff --git a/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp
index 1185e63dc..ef86af896 100644
--- a/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp
+++ b/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp
@@ -126,7 +126,7 @@ void QAndroidMetaDataReaderControl::onUpdateMetaData()
if (m_mediaContent.isNull())
return;
- const QUrl &url = m_mediaContent.canonicalUrl();
+ const QUrl &url = m_mediaContent.request().url();
QtConcurrent::run(&extractMetadata, this, url);
}
@@ -134,7 +134,7 @@ void QAndroidMetaDataReaderControl::updateData(const QVariantMap &metadata, cons
{
const QMutexLocker l(&m_mtx);
- if (m_mediaContent.canonicalUrl() != url)
+ if (m_mediaContent.request().url() != url)
return;
const bool oldAvailable = m_available;
diff --git a/src/plugins/android/src/wrappers/jni/androidcamera.cpp b/src/plugins/android/src/wrappers/jni/androidcamera.cpp
index 90af0119a..2f32fb742 100644
--- a/src/plugins/android/src/wrappers/jni/androidcamera.cpp
+++ b/src/plugins/android/src/wrappers/jni/androidcamera.cpp
@@ -52,6 +52,8 @@
#include <QtCore/qmutex.h>
#include <QtMultimedia/private/qmemoryvideobuffer_p.h>
+#include <mutex>
+
QT_BEGIN_NAMESPACE
static const char QtCameraListenerClassName[] = "org/qtproject/qt5/android/multimedia/QtCameraListener";
@@ -263,7 +265,7 @@ public:
Q_INVOKABLE QStringList callParametersStringListMethod(const QByteArray &methodName);
int m_cameraId;
- QMutex m_parametersMutex;
+ QRecursiveMutex m_parametersMutex;
QSize m_previewSize;
int m_rotation;
QJNIObjectPrivate m_info;
@@ -823,8 +825,7 @@ void AndroidCamera::stopPreviewSynchronous()
}
AndroidCameraPrivate::AndroidCameraPrivate()
- : QObject(),
- m_parametersMutex(QMutex::Recursive)
+ : QObject()
{
}
@@ -911,7 +912,7 @@ int AndroidCameraPrivate::getNativeOrientation()
QSize AndroidCameraPrivate::getPreferredPreviewSizeForVideo()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return QSize();
@@ -929,7 +930,7 @@ QList<QSize> AndroidCameraPrivate::getSupportedPreviewSizes()
{
QList<QSize> list;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (m_parameters.isValid()) {
QJNIObjectPrivate sizeList = m_parameters.callObjectMethod("getSupportedPreviewSizes",
@@ -942,7 +943,7 @@ QList<QSize> AndroidCameraPrivate::getSupportedPreviewSizes()
list.append(QSize(size.getField<jint>("width"), size.getField<jint>("height")));
}
- qSort(list.begin(), list.end(), qt_sizeLessThan);
+ std::sort(list.begin(), list.end(), qt_sizeLessThan);
}
return list;
@@ -950,7 +951,7 @@ QList<QSize> AndroidCameraPrivate::getSupportedPreviewSizes()
QList<AndroidCamera::FpsRange> AndroidCameraPrivate::getSupportedPreviewFpsRange()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QJNIEnvironmentPrivate env;
@@ -987,7 +988,7 @@ QList<AndroidCamera::FpsRange> AndroidCameraPrivate::getSupportedPreviewFpsRange
AndroidCamera::FpsRange AndroidCameraPrivate::getPreviewFpsRange()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QJNIEnvironmentPrivate env;
@@ -1012,7 +1013,7 @@ AndroidCamera::FpsRange AndroidCameraPrivate::getPreviewFpsRange()
void AndroidCameraPrivate::setPreviewFpsRange(int min, int max)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1024,7 +1025,7 @@ void AndroidCameraPrivate::setPreviewFpsRange(int min, int max)
AndroidCamera::ImageFormat AndroidCameraPrivate::getPreviewFormat()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return AndroidCamera::UnknownImageFormat;
@@ -1034,7 +1035,7 @@ AndroidCamera::ImageFormat AndroidCameraPrivate::getPreviewFormat()
void AndroidCameraPrivate::setPreviewFormat(AndroidCamera::ImageFormat fmt)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1047,7 +1048,7 @@ QList<AndroidCamera::ImageFormat> AndroidCameraPrivate::getSupportedPreviewForma
{
QList<AndroidCamera::ImageFormat> list;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (m_parameters.isValid()) {
QJNIObjectPrivate formatList = m_parameters.callObjectMethod("getSupportedPreviewFormats",
@@ -1066,7 +1067,7 @@ QList<AndroidCamera::ImageFormat> AndroidCameraPrivate::getSupportedPreviewForma
QSize AndroidCameraPrivate::getPreviewSize()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return QSize();
@@ -1082,7 +1083,7 @@ QSize AndroidCameraPrivate::getPreviewSize()
void AndroidCameraPrivate::updatePreviewSize()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (m_previewSize.isValid()) {
m_parameters.callMethod<void>("setPreviewSize", "(II)V", m_previewSize.width(), m_previewSize.height());
@@ -1117,7 +1118,7 @@ void AndroidCameraPrivate::setDisplayOrientation(int degrees)
bool AndroidCameraPrivate::isZoomSupported()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return false;
@@ -1127,7 +1128,7 @@ bool AndroidCameraPrivate::isZoomSupported()
int AndroidCameraPrivate::getMaxZoom()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1137,7 +1138,7 @@ int AndroidCameraPrivate::getMaxZoom()
QList<int> AndroidCameraPrivate::getZoomRatios()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QList<int> ratios;
@@ -1159,7 +1160,7 @@ QList<int> AndroidCameraPrivate::getZoomRatios()
int AndroidCameraPrivate::getZoom()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1169,7 +1170,7 @@ int AndroidCameraPrivate::getZoom()
void AndroidCameraPrivate::setZoom(int value)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1180,7 +1181,7 @@ void AndroidCameraPrivate::setZoom(int value)
QString AndroidCameraPrivate::getFlashMode()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QString value;
@@ -1196,7 +1197,7 @@ QString AndroidCameraPrivate::getFlashMode()
void AndroidCameraPrivate::setFlashMode(const QString &value)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1209,7 +1210,7 @@ void AndroidCameraPrivate::setFlashMode(const QString &value)
QString AndroidCameraPrivate::getFocusMode()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QString value;
@@ -1225,7 +1226,7 @@ QString AndroidCameraPrivate::getFocusMode()
void AndroidCameraPrivate::setFocusMode(const QString &value)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1241,7 +1242,7 @@ int AndroidCameraPrivate::getMaxNumFocusAreas()
if (QtAndroidPrivate::androidSdkVersion() < 14)
return 0;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1256,7 +1257,7 @@ QList<QRect> AndroidCameraPrivate::getFocusAreas()
if (QtAndroidPrivate::androidSdkVersion() < 14)
return areas;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (m_parameters.isValid()) {
QJNIObjectPrivate list = m_parameters.callObjectMethod("getFocusAreas",
@@ -1282,7 +1283,7 @@ void AndroidCameraPrivate::setFocusAreas(const QList<QRect> &areas)
if (QtAndroidPrivate::androidSdkVersion() < 14)
return;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1330,7 +1331,7 @@ bool AndroidCameraPrivate::isAutoExposureLockSupported()
if (QtAndroidPrivate::androidSdkVersion() < 14)
return false;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return false;
@@ -1343,7 +1344,7 @@ bool AndroidCameraPrivate::getAutoExposureLock()
if (QtAndroidPrivate::androidSdkVersion() < 14)
return false;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return false;
@@ -1356,7 +1357,7 @@ void AndroidCameraPrivate::setAutoExposureLock(bool toggle)
if (QtAndroidPrivate::androidSdkVersion() < 14)
return;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1370,7 +1371,7 @@ bool AndroidCameraPrivate::isAutoWhiteBalanceLockSupported()
if (QtAndroidPrivate::androidSdkVersion() < 14)
return false;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return false;
@@ -1383,7 +1384,7 @@ bool AndroidCameraPrivate::getAutoWhiteBalanceLock()
if (QtAndroidPrivate::androidSdkVersion() < 14)
return false;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return false;
@@ -1396,7 +1397,7 @@ void AndroidCameraPrivate::setAutoWhiteBalanceLock(bool toggle)
if (QtAndroidPrivate::androidSdkVersion() < 14)
return;
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1407,7 +1408,7 @@ void AndroidCameraPrivate::setAutoWhiteBalanceLock(bool toggle)
int AndroidCameraPrivate::getExposureCompensation()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1417,7 +1418,7 @@ int AndroidCameraPrivate::getExposureCompensation()
void AndroidCameraPrivate::setExposureCompensation(int value)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1428,7 +1429,7 @@ void AndroidCameraPrivate::setExposureCompensation(int value)
float AndroidCameraPrivate::getExposureCompensationStep()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1438,7 +1439,7 @@ float AndroidCameraPrivate::getExposureCompensationStep()
int AndroidCameraPrivate::getMinExposureCompensation()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1448,7 +1449,7 @@ int AndroidCameraPrivate::getMinExposureCompensation()
int AndroidCameraPrivate::getMaxExposureCompensation()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return 0;
@@ -1458,7 +1459,7 @@ int AndroidCameraPrivate::getMaxExposureCompensation()
QString AndroidCameraPrivate::getSceneMode()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QString value;
@@ -1474,7 +1475,7 @@ QString AndroidCameraPrivate::getSceneMode()
void AndroidCameraPrivate::setSceneMode(const QString &value)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1487,7 +1488,7 @@ void AndroidCameraPrivate::setSceneMode(const QString &value)
QString AndroidCameraPrivate::getWhiteBalance()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QString value;
@@ -1503,7 +1504,7 @@ QString AndroidCameraPrivate::getWhiteBalance()
void AndroidCameraPrivate::setWhiteBalance(const QString &value)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1518,7 +1519,7 @@ void AndroidCameraPrivate::setWhiteBalance(const QString &value)
void AndroidCameraPrivate::updateRotation()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
m_parameters.callMethod<void>("setRotation", "(I)V", m_rotation);
applyParameters();
@@ -1526,7 +1527,7 @@ void AndroidCameraPrivate::updateRotation()
QList<QSize> AndroidCameraPrivate::getSupportedPictureSizes()
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QList<QSize> list;
@@ -1541,7 +1542,7 @@ QList<QSize> AndroidCameraPrivate::getSupportedPictureSizes()
list.append(QSize(size.getField<jint>("width"), size.getField<jint>("height")));
}
- qSort(list.begin(), list.end(), qt_sizeLessThan);
+ std::sort(list.begin(), list.end(), qt_sizeLessThan);
}
return list;
@@ -1549,7 +1550,7 @@ QList<QSize> AndroidCameraPrivate::getSupportedPictureSizes()
void AndroidCameraPrivate::setPictureSize(const QSize &size)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1560,7 +1561,7 @@ void AndroidCameraPrivate::setPictureSize(const QSize &size)
void AndroidCameraPrivate::setJpegQuality(int quality)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
if (!m_parameters.isValid())
return;
@@ -1669,7 +1670,7 @@ void AndroidCameraPrivate::applyParameters()
QStringList AndroidCameraPrivate::callParametersStringListMethod(const QByteArray &methodName)
{
- QMutexLocker parametersLocker(&m_parametersMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_parametersMutex);
QStringList stringList;
diff --git a/src/plugins/avfoundation/camera/avfcamerasession.mm b/src/plugins/avfoundation/camera/avfcamerasession.mm
index 8ed627774..a3263badc 100644
--- a/src/plugins/avfoundation/camera/avfcamerasession.mm
+++ b/src/plugins/avfoundation/camera/avfcamerasession.mm
@@ -234,7 +234,7 @@ void AVFCameraSession::updateCameraDevices()
break;
case AVCaptureDevicePositionFront:
info.position = QCamera::FrontFace;
- info.orientation = 90;
+ info.orientation = 270;
break;
default:
info.position = QCamera::UnspecifiedPosition;
diff --git a/src/plugins/avfoundation/camera/avfvideoencodersettingscontrol.mm b/src/plugins/avfoundation/camera/avfvideoencodersettingscontrol.mm
index bbb16e709..ddf833fd3 100644
--- a/src/plugins/avfoundation/camera/avfvideoencodersettingscontrol.mm
+++ b/src/plugins/avfoundation/camera/avfvideoencodersettingscontrol.mm
@@ -76,7 +76,7 @@ static bool format_supports_framerate(AVCaptureDeviceFormat *format, qreal fps)
static bool real_list_contains(const QList<qreal> &list, qreal value)
{
- Q_FOREACH (qreal r, list) {
+ for (qreal r : list) {
if (qFuzzyCompare(r, value))
return true;
}
diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm
index 3b25a5801..3c59419e7 100644
--- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm
+++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm
@@ -491,7 +491,7 @@ const QIODevice *AVFMediaPlayerSession::mediaStream() const
void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *stream)
{
#ifdef QT_DEBUG_AVF
- qDebug() << Q_FUNC_INFO << content.canonicalUrl();
+ qDebug() << Q_FUNC_INFO << content.request().url();
#endif
[static_cast<AVFMediaPlayerSessionObserver*>(m_observer) unloadMedia];
@@ -508,7 +508,7 @@ void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *st
const QMediaPlayer::MediaStatus oldMediaStatus = m_mediaStatus;
const QMediaPlayer::State oldState = m_state;
- if (content.isNull() || content.canonicalUrl().isEmpty()) {
+ if (content.isNull() || content.request().url().isEmpty()) {
m_mediaStatus = QMediaPlayer::NoMedia;
if (m_mediaStatus != oldMediaStatus)
Q_EMIT mediaStatusChanged(m_mediaStatus);
@@ -526,7 +526,7 @@ void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *st
//Load AVURLAsset
//initialize asset using content's URL
- NSString *urlString = [NSString stringWithUTF8String:content.canonicalUrl().toEncoded().constData()];
+ NSString *urlString = [NSString stringWithUTF8String:content.request().url().toEncoded().constData()];
NSURL *url = [NSURL URLWithString:urlString];
[static_cast<AVFMediaPlayerSessionObserver*>(m_observer) setURL:url];
diff --git a/src/plugins/common/evr/evrcustompresenter.cpp b/src/plugins/common/evr/evrcustompresenter.cpp
index 2bc761c45..b2dd0426c 100644
--- a/src/plugins/common/evr/evrcustompresenter.cpp
+++ b/src/plugins/common/evr/evrcustompresenter.cpp
@@ -50,6 +50,9 @@
#include <qcoreapplication.h>
#include <qmath.h>
#include <QtCore/qdebug.h>
+
+#include <mutex>
+
#include <float.h>
#include <evcode.h>
@@ -542,7 +545,6 @@ EVRCustomPresenter::EVRCustomPresenter(QAbstractVideoSurface *surface)
, m_sampleFreeCB(this, &EVRCustomPresenter::onSampleFree)
, m_refCount(1)
, m_renderState(RenderShutdown)
- , m_mutex(QMutex::Recursive)
, m_scheduler(this)
, m_tokenCounter(0)
, m_sampleNotify(false)
@@ -659,7 +661,7 @@ HRESULT EVRCustomPresenter::InitServicePointers(IMFTopologyServiceLookup *lookup
HRESULT hr = S_OK;
DWORD objectCount = 0;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
// Do not allow initializing when playing or paused.
if (isActive())
@@ -739,7 +741,7 @@ HRESULT EVRCustomPresenter::ProcessMessage(MFVP_MESSAGE_TYPE message, ULONG_PTR
{
HRESULT hr = S_OK;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
hr = checkShutdown();
if (FAILED(hr))
@@ -806,7 +808,7 @@ HRESULT EVRCustomPresenter::GetCurrentMediaType(IMFVideoMediaType **mediaType)
*mediaType = NULL;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
hr = checkShutdown();
if (FAILED(hr))
@@ -820,7 +822,7 @@ HRESULT EVRCustomPresenter::GetCurrentMediaType(IMFVideoMediaType **mediaType)
HRESULT EVRCustomPresenter::OnClockStart(MFTIME, LONGLONG clockStartOffset)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
// We cannot start after shutdown.
HRESULT hr = checkShutdown();
@@ -855,7 +857,7 @@ HRESULT EVRCustomPresenter::OnClockStart(MFTIME, LONGLONG clockStartOffset)
HRESULT EVRCustomPresenter::OnClockRestart(MFTIME)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
HRESULT hr = checkShutdown();
if (FAILED(hr))
@@ -879,7 +881,7 @@ HRESULT EVRCustomPresenter::OnClockRestart(MFTIME)
HRESULT EVRCustomPresenter::OnClockStop(MFTIME)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
HRESULT hr = checkShutdown();
if (FAILED(hr))
@@ -899,7 +901,7 @@ HRESULT EVRCustomPresenter::OnClockStop(MFTIME)
HRESULT EVRCustomPresenter::OnClockPause(MFTIME)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
// We cannot pause the clock after shutdown.
HRESULT hr = checkShutdown();
@@ -916,7 +918,7 @@ HRESULT EVRCustomPresenter::OnClockSetRate(MFTIME, float rate)
// The presenter reports its maximum rate through the IMFRateSupport interface.
// Here, we assume that the EVR honors the maximum rate.
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
HRESULT hr = checkShutdown();
if (FAILED(hr))
@@ -944,7 +946,7 @@ HRESULT EVRCustomPresenter::GetSlowestRate(MFRATE_DIRECTION, BOOL, float *rate)
if (!rate)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
HRESULT hr = checkShutdown();
@@ -961,7 +963,7 @@ HRESULT EVRCustomPresenter::GetFastestRate(MFRATE_DIRECTION direction, BOOL thin
if (!rate)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
float maxRate = 0.0f;
@@ -983,7 +985,7 @@ HRESULT EVRCustomPresenter::GetFastestRate(MFRATE_DIRECTION direction, BOOL thin
HRESULT EVRCustomPresenter::IsRateSupported(BOOL thin, float rate, float *nearestSupportedRate)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
float maxRate = 0.0f;
float nearestRate = rate; // If we support rate, that is the nearest.
@@ -1017,7 +1019,7 @@ HRESULT EVRCustomPresenter::IsRateSupported(BOOL thin, float rate, float *neares
void EVRCustomPresenter::supportedFormatsChanged()
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
m_canRenderToSurface = false;
m_presentEngine->setHint(D3DPresentEngine::RenderToTexture, false);
@@ -1030,7 +1032,7 @@ void EVRCustomPresenter::supportedFormatsChanged()
m_canRenderToSurface = true;
} else {
formats = m_surface->supportedPixelFormats(QAbstractVideoBuffer::NoHandle);
- Q_FOREACH (QVideoFrame::PixelFormat format, formats) {
+ for (QVideoFrame::PixelFormat format : qAsConst(formats)) {
if (SUCCEEDED(m_presentEngine->checkFormat(qt_evr_D3DFormatFromPixelFormat(format)))) {
m_canRenderToSurface = true;
break;
diff --git a/src/plugins/common/evr/evrcustompresenter.h b/src/plugins/common/evr/evrcustompresenter.h
index 9e1ee88d6..c1c21580e 100644
--- a/src/plugins/common/evr/evrcustompresenter.h
+++ b/src/plugins/common/evr/evrcustompresenter.h
@@ -342,7 +342,7 @@ private:
RenderState m_renderState;
FrameStep m_frameStep;
- QMutex m_mutex;
+ QRecursiveMutex m_mutex;
// Samples and scheduling
Scheduler m_scheduler; // Manages scheduling of samples.
diff --git a/src/plugins/directshow/camera/dscameracontrol.cpp b/src/plugins/directshow/camera/dscameracontrol.cpp
index 67971d1b5..3f60ec848 100644
--- a/src/plugins/directshow/camera/dscameracontrol.cpp
+++ b/src/plugins/directshow/camera/dscameracontrol.cpp
@@ -47,8 +47,6 @@ QT_BEGIN_NAMESPACE
DSCameraControl::DSCameraControl(QObject *parent)
: QCameraControl(parent)
- , m_state(QCamera::UnloadedState)
- , m_captureMode(QCamera::CaptureStillImage)
{
m_session = qobject_cast<DSCameraSession*>(parent);
connect(m_session, &DSCameraSession::statusChanged, this,
diff --git a/src/plugins/directshow/camera/dscameracontrol.h b/src/plugins/directshow/camera/dscameracontrol.h
index b9fb2766d..2087623d1 100644
--- a/src/plugins/directshow/camera/dscameracontrol.h
+++ b/src/plugins/directshow/camera/dscameracontrol.h
@@ -52,7 +52,7 @@ class DSCameraControl : public QCameraControl
{
Q_OBJECT
public:
- DSCameraControl(QObject *parent = 0);
+ DSCameraControl(QObject *parent = nullptr);
~DSCameraControl() override;
QCamera::State state() const override { return m_state; }
@@ -69,8 +69,8 @@ public:
private:
DSCameraSession *m_session;
- QCamera::State m_state;
- QCamera::CaptureModes m_captureMode;
+ QCamera::State m_state = QCamera::UnloadedState;
+ QCamera::CaptureModes m_captureMode = QCamera::CaptureStillImage;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/camera/dscameraservice.cpp b/src/plugins/directshow/camera/dscameraservice.cpp
index 8115ef385..ff488cf09 100644
--- a/src/plugins/directshow/camera/dscameraservice.cpp
+++ b/src/plugins/directshow/camera/dscameraservice.cpp
@@ -62,14 +62,12 @@ DSCameraService::DSCameraService(QObject *parent):
, m_session(new DSCameraSession(this))
, m_control(new DSCameraControl(m_session))
, m_videoDevice(new DSVideoDeviceControl(m_session))
- , m_videoRenderer(0)
, m_imageCapture(new DSImageCaptureControl(m_session))
, m_viewfinderSettings(new DSCameraViewfinderSettingsControl(m_session))
, m_imageProcessingControl(new DSCameraImageProcessingControl(m_session))
, m_exposureControl(new DirectShowCameraExposureControl(m_session))
, m_captureDestinationControl(new DirectShowCameraCaptureDestinationControl(m_session))
, m_captureBufferFormatControl(new DirectShowCameraCaptureBufferFormatControl)
- , m_videoProbeControl(nullptr)
, m_zoomControl(new DirectShowCameraZoomControl(m_session))
, m_imageEncoderControl(new DirectShowCameraImageEncoderControl(m_session))
{
@@ -140,14 +138,14 @@ QMediaControl* DSCameraService::requestControl(const char *name)
if (qstrcmp(name, QImageEncoderControl_iid) == 0)
return m_imageEncoderControl;
- return 0;
+ return nullptr;
}
void DSCameraService::releaseControl(QMediaControl *control)
{
if (control == m_videoRenderer) {
delete m_videoRenderer;
- m_videoRenderer = 0;
+ m_videoRenderer = nullptr;
return;
}
diff --git a/src/plugins/directshow/camera/dscameraservice.h b/src/plugins/directshow/camera/dscameraservice.h
index 9a8f745f6..6ea85b725 100644
--- a/src/plugins/directshow/camera/dscameraservice.h
+++ b/src/plugins/directshow/camera/dscameraservice.h
@@ -64,7 +64,7 @@ class DSCameraService : public QMediaService
Q_OBJECT
public:
- DSCameraService(QObject *parent = 0);
+ DSCameraService(QObject *parent = nullptr);
~DSCameraService() override;
QMediaControl* requestControl(const char *name) override;
@@ -74,14 +74,14 @@ private:
DSCameraSession *m_session;
DSCameraControl *m_control;
DSVideoDeviceControl *m_videoDevice;
- QMediaControl *m_videoRenderer;
+ QMediaControl *m_videoRenderer = nullptr;
DSImageCaptureControl *m_imageCapture;
DSCameraViewfinderSettingsControl *m_viewfinderSettings;
DSCameraImageProcessingControl *m_imageProcessingControl;
DirectShowCameraExposureControl *m_exposureControl;
DirectShowCameraCaptureDestinationControl *m_captureDestinationControl;
DirectShowCameraCaptureBufferFormatControl *m_captureBufferFormatControl;
- DirectShowVideoProbeControl *m_videoProbeControl;
+ DirectShowVideoProbeControl *m_videoProbeControl = nullptr;
DirectShowCameraZoomControl *m_zoomControl;
DirectShowCameraImageEncoderControl *m_imageEncoderControl;
};
diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp
index 267e7a9a4..a0c120816 100644
--- a/src/plugins/directshow/camera/dscamerasession.cpp
+++ b/src/plugins/directshow/camera/dscamerasession.cpp
@@ -58,23 +58,6 @@ QT_BEGIN_NAMESPACE
DSCameraSession::DSCameraSession(QObject *parent)
: QObject(parent)
- , m_graphBuilder(nullptr)
- , m_filterGraph(nullptr)
- , m_sourceDeviceName(QLatin1String("default"))
- , m_sourceFilter(nullptr)
- , m_needsHorizontalMirroring(false)
- , m_previewSampleGrabber(nullptr)
- , m_nullRendererFilter(nullptr)
- , m_previewStarted(false)
- , m_surface(nullptr)
- , m_previewPixelFormat(QVideoFrame::Format_Invalid)
- , m_stride(-1)
- , m_readyForCapture(false)
- , m_imageIdCounter(0)
- , m_currentImageId(-1)
- , m_captureDestinations(QCameraImageCapture::CaptureToFile)
- , m_videoProbeControl(nullptr)
- , m_status(QCamera::UnloadedStatus)
{
connect(this, &DSCameraSession::statusChanged,
this, &DSCameraSession::updateReadyForCapture);
@@ -284,7 +267,7 @@ void DSCameraSession::setImageProcessingParameter(
ImageProcessingParameterInfo>::iterator sourceValueInfo =
m_imageProcessingParametersInfos.find(resultingParameter);
- if (sourceValueInfo == m_imageProcessingParametersInfos.constEnd())
+ if (sourceValueInfo == m_imageProcessingParametersInfos.end())
return;
LONG sourceValue = 0;
@@ -464,7 +447,7 @@ bool DSCameraSession::startPreview()
QString errorString;
HRESULT hr = S_OK;
- IMediaControl* pControl = 0;
+ IMediaControl* pControl = nullptr;
if (!configurePreviewFormat()) {
errorString = tr("Failed to configure preview format");
@@ -516,7 +499,7 @@ bool DSCameraSession::stopPreview()
m_previewSampleGrabber->stop();
QString errorString;
- IMediaControl* pControl = 0;
+ IMediaControl* pControl = nullptr;
HRESULT hr = m_filterGraph->QueryInterface(IID_IMediaControl,
reinterpret_cast<void**>(&pControl));
if (FAILED(hr)) {
@@ -740,12 +723,12 @@ bool DSCameraSession::createFilterGraph()
pDevEnum->Release();
if (S_OK == hr) {
pEnum->Reset();
- IMalloc *mallocInterface = 0;
+ IMalloc *mallocInterface = nullptr;
CoGetMalloc(1, (LPMALLOC*)&mallocInterface);
//go through and find all video capture devices
while (pEnum->Next(1, &pMoniker, nullptr) == S_OK) {
- BSTR strName = 0;
+ BSTR strName = nullptr;
hr = pMoniker->GetDisplayName(nullptr, nullptr, &strName);
if (SUCCEEDED(hr)) {
QString output = QString::fromWCharArray(strName);
@@ -769,7 +752,7 @@ bool DSCameraSession::createFilterGraph()
pEnum->Reset();
// still have to loop to discard bind to storage failure case
while (pEnum->Next(1, &pMoniker, nullptr) == S_OK) {
- IPropertyBag *pPropBag = 0;
+ IPropertyBag *pPropBag = nullptr;
hr = pMoniker->BindToStorage(nullptr, nullptr, IID_IPropertyBag,
reinterpret_cast<void**>(&pPropBag));
@@ -780,17 +763,13 @@ bool DSCameraSession::createFilterGraph()
// No need to get the description, just grab it
- hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter,
+ hr = pMoniker->BindToObject(nullptr, nullptr, IID_IBaseFilter,
reinterpret_cast<void**>(&m_sourceFilter));
pPropBag->Release();
pMoniker->Release();
- if (SUCCEEDED(hr)) {
+ if (SUCCEEDED(hr))
break; // done, stop looping through
- }
- else
- {
- qWarning() << "Object bind failed";
- }
+ qWarning("Object bind failed");
}
}
}
@@ -898,7 +877,7 @@ bool DSCameraSession::configurePreviewFormat()
m_stride = DirectShowMediaType::bytesPerLine(m_previewSurfaceFormat);
HRESULT hr;
- IAMStreamConfig* pConfig = 0;
+ IAMStreamConfig* pConfig = nullptr;
hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
m_sourceFilter, IID_IAMStreamConfig,
reinterpret_cast<void**>(&pConfig));
@@ -1064,21 +1043,21 @@ void DSCameraSession::updateSourceCapabilities()
AM_MEDIA_TYPE *pmt = nullptr;
VIDEOINFOHEADER *pvi = nullptr;
VIDEO_STREAM_CONFIG_CAPS scc;
- IAMStreamConfig* pConfig = 0;
+ IAMStreamConfig* pConfig = nullptr;
m_supportedViewfinderSettings.clear();
m_needsHorizontalMirroring = false;
m_supportedFormats.clear();
m_imageProcessingParametersInfos.clear();
- IAMVideoControl *pVideoControl = 0;
+ IAMVideoControl *pVideoControl = nullptr;
hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
m_sourceFilter, IID_IAMVideoControl,
reinterpret_cast<void**>(&pVideoControl));
if (FAILED(hr)) {
qWarning() << "Failed to get the video control";
} else {
- IPin *pPin = 0;
+ IPin *pPin = nullptr;
if (!DirectShowUtils::getPin(m_sourceFilter, PINDIR_OUTPUT, &pPin, &hr)) {
qWarning() << "Failed to get the pin for the video control";
} else {
@@ -1130,12 +1109,12 @@ void DSCameraSession::updateSourceCapabilities()
QList<QCamera::FrameRateRange> frameRateRanges;
if (pVideoControl) {
- IPin *pPin = 0;
+ IPin *pPin = nullptr;
if (!DirectShowUtils::getPin(m_sourceFilter, PINDIR_OUTPUT, &pPin, &hr)) {
qWarning() << "Failed to get the pin for the video control";
} else {
long listSize = 0;
- LONGLONG *frameRates = 0;
+ LONGLONG *frameRates = nullptr;
SIZE size = { resolution.width(), resolution.height() };
hr = pVideoControl->GetFrameRateList(pPin, iIndex, size, &listSize, &frameRates);
if (hr == S_OK && listSize > 0 && frameRates) {
diff --git a/src/plugins/directshow/camera/dscamerasession.h b/src/plugins/directshow/camera/dscamerasession.h
index 18fc0cca7..5e7d026c2 100644
--- a/src/plugins/directshow/camera/dscamerasession.h
+++ b/src/plugins/directshow/camera/dscamerasession.h
@@ -84,7 +84,7 @@ class DSCameraSession : public QObject
{
Q_OBJECT
public:
- DSCameraSession(QObject *parent = 0);
+ DSCameraSession(QObject *parent = nullptr);
~DSCameraSession() override;
QCamera::Status status() const { return m_status; }
@@ -185,49 +185,48 @@ private:
QMutex m_presentMutex;
QMutex m_captureMutex;
- // Capture Graph
- ICaptureGraphBuilder2* m_graphBuilder;
- IGraphBuilder* m_filterGraph;
+ ICaptureGraphBuilder2* m_graphBuilder = nullptr;
+ IGraphBuilder* m_filterGraph = nullptr;
// Source (camera)
- QString m_sourceDeviceName;
- IBaseFilter* m_sourceFilter;
- bool m_needsHorizontalMirroring;
+ QString m_sourceDeviceName = QLatin1String("default");
+ IBaseFilter* m_sourceFilter = nullptr;
+ bool m_needsHorizontalMirroring = false;
QList<DirectShowMediaType> m_supportedFormats;
QList<QCameraViewfinderSettings> m_supportedViewfinderSettings;
DirectShowMediaType m_sourceFormat;
QMap<QCameraImageProcessingControl::ProcessingParameter, ImageProcessingParameterInfo> m_imageProcessingParametersInfos;
// Preview
- DirectShowSampleGrabber *m_previewSampleGrabber;
- IBaseFilter *m_nullRendererFilter;
+ DirectShowSampleGrabber *m_previewSampleGrabber = nullptr;
+ IBaseFilter *m_nullRendererFilter = nullptr;
QVideoFrame m_currentFrame;
- bool m_previewStarted;
- QAbstractVideoSurface* m_surface;
+ bool m_previewStarted = false;
+ QAbstractVideoSurface* m_surface = nullptr;
QVideoSurfaceFormat m_previewSurfaceFormat;
- QVideoFrame::PixelFormat m_previewPixelFormat;
+ QVideoFrame::PixelFormat m_previewPixelFormat = QVideoFrame::Format_RGB32;
QSize m_previewSize;
- int m_stride;
+ int m_stride = -1;
QCameraViewfinderSettings m_viewfinderSettings;
QCameraViewfinderSettings m_actualViewfinderSettings;
// Image capture
QString m_imageCaptureFileName;
QMediaStorageLocation m_fileNameGenerator;
- bool m_readyForCapture;
- int m_imageIdCounter;
- int m_currentImageId;
+ bool m_readyForCapture = false;
+ int m_imageIdCounter = 0;
+ int m_currentImageId = -1;
QVideoFrame m_capturedFrame;
- QCameraImageCapture::CaptureDestinations m_captureDestinations;
+ QCameraImageCapture::CaptureDestinations m_captureDestinations = QCameraImageCapture::CaptureToFile;
// Video probe
QMutex m_probeMutex;
- DirectShowVideoProbeControl *m_videoProbeControl;
+ DirectShowVideoProbeControl *m_videoProbeControl = nullptr;
QImageEncoderSettings m_imageEncoderSettings;
// Internal state
- QCamera::Status m_status;
+ QCamera::Status m_status = QCamera::UnloadedStatus;
QTimer m_deviceLostEventTimer;
QMap<QCameraImageProcessingControl::ProcessingParameter, QVariant> m_pendingImageProcessingParametrs;
diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp
index 7285d0fb3..0f08154f1 100644
--- a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp
+++ b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp
@@ -143,10 +143,10 @@ void DSVideoDeviceControl::updateDevices()
pEnum->Reset();
// go through and find all video capture devices
IMoniker* pMoniker = nullptr;
- IMalloc *mallocInterface = 0;
+ IMalloc *mallocInterface = nullptr;
CoGetMalloc(1, (LPMALLOC*)&mallocInterface);
while (pEnum->Next(1, &pMoniker, nullptr) == S_OK) {
- BSTR strName = 0;
+ BSTR strName = nullptr;
hr = pMoniker->GetDisplayName(nullptr, nullptr, &strName);
if (SUCCEEDED(hr)) {
QString output(QString::fromWCharArray(strName));
@@ -162,7 +162,7 @@ void DSVideoDeviceControl::updateDevices()
// Find the description
VARIANT varName;
varName.vt = VT_BSTR;
- hr = pPropBag->Read(L"FriendlyName", &varName, 0);
+ hr = pPropBag->Read(L"FriendlyName", &varName, nullptr);
if (SUCCEEDED(hr)) {
output = QString::fromWCharArray(varName.bstrVal);
}
diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.h b/src/plugins/directshow/camera/dsvideodevicecontrol.h
index 7a7a0af1e..24a5b61a1 100644
--- a/src/plugins/directshow/camera/dsvideodevicecontrol.h
+++ b/src/plugins/directshow/camera/dsvideodevicecontrol.h
@@ -48,13 +48,13 @@ class DSCameraSession;
//QTM_USE_NAMESPACE
-typedef QPair<QByteArray, QString> DSVideoDeviceInfo;
+using DSVideoDeviceInfo = QPair<QByteArray, QString>;
class DSVideoDeviceControl : public QVideoDeviceSelectorControl
{
Q_OBJECT
public:
- DSVideoDeviceControl(QObject *parent = 0);
+ DSVideoDeviceControl(QObject *parent = nullptr);
int deviceCount() const override;
QString deviceName(int index) const override;
diff --git a/src/plugins/directshow/camera/dsvideorenderer.cpp b/src/plugins/directshow/camera/dsvideorenderer.cpp
index bf0aa2684..cde63af65 100644
--- a/src/plugins/directshow/camera/dsvideorenderer.cpp
+++ b/src/plugins/directshow/camera/dsvideorenderer.cpp
@@ -45,7 +45,6 @@ QT_BEGIN_NAMESPACE
DSVideoRendererControl::DSVideoRendererControl(DSCameraSession* session, QObject *parent)
:QVideoRendererControl(parent),
- m_surface(0),
m_session(session)
{
}
diff --git a/src/plugins/directshow/camera/dsvideorenderer.h b/src/plugins/directshow/camera/dsvideorenderer.h
index 3a4570b4c..a6a1f8103 100644
--- a/src/plugins/directshow/camera/dsvideorenderer.h
+++ b/src/plugins/directshow/camera/dsvideorenderer.h
@@ -50,7 +50,7 @@ class DSVideoRendererControl : public QVideoRendererControl
{
Q_OBJECT
public:
- DSVideoRendererControl(DSCameraSession* session, QObject *parent = 0);
+ DSVideoRendererControl(DSCameraSession* session, QObject *parent = nullptr);
~DSVideoRendererControl() override;
QAbstractVideoSurface *surface() const override;
@@ -59,7 +59,7 @@ public:
void setSession(DSCameraSession* session);
private:
- QAbstractVideoSurface* m_surface;
+ QAbstractVideoSurface* m_surface = nullptr;
DSCameraSession* m_session;
};
diff --git a/src/plugins/directshow/common/directshowbasefilter.cpp b/src/plugins/directshow/common/directshowbasefilter.cpp
index d64021ed6..3a13dce0e 100644
--- a/src/plugins/directshow/common/directshowbasefilter.cpp
+++ b/src/plugins/directshow/common/directshowbasefilter.cpp
@@ -41,17 +41,12 @@
#include "directshowpinenum.h"
+#include <mutex>
+
QT_BEGIN_NAMESPACE
DirectShowBaseFilter::DirectShowBaseFilter()
- : m_mutex(QMutex::Recursive)
- , m_state(State_Stopped)
- , m_graph(nullptr)
- , m_clock(nullptr)
- , m_sink(nullptr)
-{
-
-}
+ = default;
DirectShowBaseFilter::~DirectShowBaseFilter()
{
@@ -75,15 +70,14 @@ HRESULT DirectShowBaseFilter::NotifyEvent(long eventCode, LONG_PTR eventParam1,
eventParam2 = (LONG_PTR)(IBaseFilter*)this;
return sink->Notify(eventCode, eventParam1, eventParam2);
- } else {
- return E_NOTIMPL;
}
+ return E_NOTIMPL;
}
HRESULT DirectShowBaseFilter::Run(REFERENCE_TIME tStart)
{
Q_UNUSED(tStart)
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
m_startTime = tStart;
@@ -100,7 +94,7 @@ HRESULT DirectShowBaseFilter::Run(REFERENCE_TIME tStart)
HRESULT DirectShowBaseFilter::Pause()
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (m_state == State_Stopped) {
const QList<DirectShowPin *> pinList = pins();
@@ -120,7 +114,7 @@ HRESULT DirectShowBaseFilter::Pause()
HRESULT DirectShowBaseFilter::Stop()
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
HRESULT hr = S_OK;
@@ -147,7 +141,7 @@ HRESULT DirectShowBaseFilter::GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *p
if (!pState) {
return E_POINTER;
} else {
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
*pState = m_state;
@@ -157,7 +151,7 @@ HRESULT DirectShowBaseFilter::GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *p
HRESULT DirectShowBaseFilter::SetSyncSource(IReferenceClock *pClock)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (m_clock)
m_clock->Release();
@@ -197,7 +191,7 @@ HRESULT DirectShowBaseFilter::FindPin(LPCWSTR Id, IPin **ppPin)
if (!ppPin || !Id)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
const QList<DirectShowPin *> pinList = pins();
for (DirectShowPin *pin : pinList) {
if (pin->name() == QStringView(Id)) {
@@ -207,13 +201,13 @@ HRESULT DirectShowBaseFilter::FindPin(LPCWSTR Id, IPin **ppPin)
}
}
- *ppPin = 0;
+ *ppPin = nullptr;
return VFW_E_NOT_FOUND;
}
HRESULT DirectShowBaseFilter::JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName)
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
m_filterName = QString::fromWCharArray(pName);
m_graph = pGraph;
diff --git a/src/plugins/directshow/common/directshowbasefilter.h b/src/plugins/directshow/common/directshowbasefilter.h
index fe78f96b2..ce30891d7 100644
--- a/src/plugins/directshow/common/directshowbasefilter.h
+++ b/src/plugins/directshow/common/directshowbasefilter.h
@@ -78,13 +78,13 @@ public:
STDMETHODIMP QueryVendorInfo(LPWSTR *pVendorInfo) override;
protected:
- QMutex m_mutex;
- FILTER_STATE m_state;
- IFilterGraph *m_graph;
- IReferenceClock *m_clock;
- IMediaEventSink *m_sink;
+ QRecursiveMutex m_mutex;
+ FILTER_STATE m_state = State_Stopped;
+ IFilterGraph *m_graph = nullptr;
+ IReferenceClock *m_clock = nullptr;
+ IMediaEventSink *m_sink = nullptr;
QString m_filterName;
- REFERENCE_TIME m_startTime;
+ REFERENCE_TIME m_startTime = 0;
private:
Q_DISABLE_COPY(DirectShowBaseFilter)
diff --git a/src/plugins/directshow/common/directshoweventloop.cpp b/src/plugins/directshow/common/directshoweventloop.cpp
index 843a78422..692c873cf 100644
--- a/src/plugins/directshow/common/directshoweventloop.cpp
+++ b/src/plugins/directshow/common/directshoweventloop.cpp
@@ -51,7 +51,6 @@ public:
DirectShowPostedEvent(QObject *receiver, QEvent *event)
: receiver(receiver)
, event(event)
- , next(0)
{
}
@@ -62,13 +61,11 @@ public:
QObject *receiver;
QEvent *event;
- DirectShowPostedEvent *next;
+ DirectShowPostedEvent *next = nullptr;
};
DirectShowEventLoop::DirectShowEventLoop(QObject *parent)
: QObject(parent)
- , m_postsHead(0)
- , m_postsTail(0)
, m_eventHandle(::CreateEvent(nullptr, FALSE, FALSE, nullptr))
, m_waitHandle(::CreateEvent(nullptr, FALSE, FALSE, nullptr))
{
@@ -141,7 +138,7 @@ void DirectShowEventLoop::processEvents()
m_postsHead = m_postsHead->next;
if (!m_postsHead)
- m_postsTail = 0;
+ m_postsTail = nullptr;
locker.unlock();
QCoreApplication::sendEvent(post->receiver, post->event);
diff --git a/src/plugins/directshow/common/directshoweventloop.h b/src/plugins/directshow/common/directshoweventloop.h
index a29274b7b..984bd23a4 100644
--- a/src/plugins/directshow/common/directshoweventloop.h
+++ b/src/plugins/directshow/common/directshoweventloop.h
@@ -54,7 +54,7 @@ class DirectShowEventLoop : public QObject
{
Q_OBJECT
public:
- DirectShowEventLoop(QObject *parent = 0);
+ DirectShowEventLoop(QObject *parent = nullptr);
~DirectShowEventLoop() override;
void wait(QMutex *mutex);
@@ -68,8 +68,8 @@ protected:
private:
void processEvents();
- DirectShowPostedEvent *m_postsHead;
- DirectShowPostedEvent *m_postsTail;
+ DirectShowPostedEvent *m_postsHead = nullptr;
+ DirectShowPostedEvent *m_postsTail = nullptr;
HANDLE m_eventHandle;
HANDLE m_waitHandle;
QMutex m_mutex;
diff --git a/src/plugins/directshow/common/directshowglobal.h b/src/plugins/directshow/common/directshowglobal.h
index d98dd36ee..12693e4f1 100644
--- a/src/plugins/directshow/common/directshowglobal.h
+++ b/src/plugins/directshow/common/directshowglobal.h
@@ -53,27 +53,27 @@ QT_END_NAMESPACE
template <typename T> T *com_cast(IUnknown *unknown, const IID &iid)
{
- T *iface = 0;
+ T *iface = nullptr;
return unknown && unknown->QueryInterface(iid, reinterpret_cast<void **>(&iface)) == S_OK
? iface
- : 0;
+ : nullptr;
}
template <typename T> T *com_new(const IID &clsid)
{
- T *object = 0;
+ T *object = nullptr;
return CoCreateInstance(
clsid,
nullptr,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&object)) == S_OK
? object
- : 0;
+ : nullptr;
}
template <typename T> T *com_new(const IID &clsid, const IID &iid)
{
- T *object = 0;
+ T *object = nullptr;
return CoCreateInstance(
clsid,
nullptr,
@@ -81,7 +81,7 @@ template <typename T> T *com_new(const IID &clsid, const IID &iid)
iid,
reinterpret_cast<void **>(&object)) == S_OK
? object
- : 0;
+ : nullptr;
}
DEFINE_GUID(MEDIASUBTYPE_I420,
diff --git a/src/plugins/directshow/common/directshowmediatypeenum.cpp b/src/plugins/directshow/common/directshowmediatypeenum.cpp
index 56716ed75..0ff147fea 100644
--- a/src/plugins/directshow/common/directshowmediatypeenum.cpp
+++ b/src/plugins/directshow/common/directshowmediatypeenum.cpp
@@ -42,17 +42,13 @@
#include "directshowpin.h"
DirectShowMediaTypeEnum::DirectShowMediaTypeEnum(DirectShowPin *pin)
- : m_pin(pin)
- , m_mediaTypes(pin->supportedMediaTypes())
- , m_index(0)
+ : m_mediaTypes(pin->supportedMediaTypes())
{
m_pin->AddRef();
}
DirectShowMediaTypeEnum::DirectShowMediaTypeEnum(const QList<DirectShowMediaType> &types)
- : m_pin(nullptr)
- , m_mediaTypes(types)
- , m_index(0)
+ : m_mediaTypes(types)
{
}
diff --git a/src/plugins/directshow/common/directshowmediatypeenum.h b/src/plugins/directshow/common/directshowmediatypeenum.h
index e78e0a0f2..a5c347004 100644
--- a/src/plugins/directshow/common/directshowmediatypeenum.h
+++ b/src/plugins/directshow/common/directshowmediatypeenum.h
@@ -67,9 +67,9 @@ public:
private:
Q_DISABLE_COPY(DirectShowMediaTypeEnum)
- DirectShowPin *m_pin;
+ DirectShowPin *m_pin = nullptr;
QList<DirectShowMediaType> m_mediaTypes;
- int m_index;
+ int m_index = 0;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowpin.cpp b/src/plugins/directshow/common/directshowpin.cpp
index 617cc2cf2..d8129748c 100644
--- a/src/plugins/directshow/common/directshowpin.cpp
+++ b/src/plugins/directshow/common/directshowpin.cpp
@@ -45,14 +45,14 @@
#include <qdebug.h>
+#include <mutex>
+
QT_BEGIN_NAMESPACE
DirectShowPin::DirectShowPin(DirectShowBaseFilter *filter, const QString &name, PIN_DIRECTION direction)
- : m_mutex(QMutex::Recursive)
- , m_filter(filter)
+ : m_filter(filter)
, m_name(name)
, m_direction(direction)
- , m_peerPin(nullptr)
{
}
@@ -64,7 +64,7 @@ HRESULT DirectShowPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
return E_POINTER;
HRESULT hr = E_FAIL;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (m_peerPin)
return VFW_E_ALREADY_CONNECTED;
@@ -170,7 +170,7 @@ HRESULT DirectShowPin::ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *
if (!pConnector || !pmt)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (m_peerPin)
return VFW_E_ALREADY_CONNECTED;
@@ -207,7 +207,7 @@ HRESULT DirectShowPin::ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *
HRESULT DirectShowPin::Disconnect()
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (m_filter->state() != State_Stopped)
return VFW_E_NOT_STOPPED;
@@ -233,9 +233,9 @@ HRESULT DirectShowPin::ConnectedTo(IPin **ppPin)
if (!ppPin)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (!m_peerPin) {
- *ppPin = 0;
+ *ppPin = nullptr;
return VFW_E_NOT_CONNECTED;
}
m_peerPin->AddRef();
@@ -248,7 +248,7 @@ HRESULT DirectShowPin::ConnectionMediaType(AM_MEDIA_TYPE *pmt)
if (!pmt)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (!m_peerPin) {
DirectShowMediaType::init(pmt);
return VFW_E_NOT_CONNECTED;
@@ -380,8 +380,6 @@ HRESULT DirectShowPin::setActive(bool active)
DirectShowOutputPin::DirectShowOutputPin(DirectShowBaseFilter *filter, const QString &name)
: DirectShowPin(filter, name, PINDIR_OUTPUT)
- , m_allocator(nullptr)
- , m_inputPin(nullptr)
{
}
@@ -485,9 +483,6 @@ HRESULT DirectShowOutputPin::EndOfStream()
DirectShowInputPin::DirectShowInputPin(DirectShowBaseFilter *filter, const QString &name)
: DirectShowPin(filter, name, PINDIR_INPUT)
- , m_allocator(nullptr)
- , m_flushing(false)
- , m_inErrorState(false)
{
ZeroMemory(&m_sampleProperties, sizeof(m_sampleProperties));
}
@@ -537,14 +532,14 @@ HRESULT DirectShowInputPin::EndOfStream()
HRESULT DirectShowInputPin::BeginFlush()
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
m_flushing = true;
return S_OK;
}
HRESULT DirectShowInputPin::EndFlush()
{
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
m_flushing = false;
m_inErrorState = false;
return S_OK;
@@ -555,7 +550,7 @@ HRESULT DirectShowInputPin::GetAllocator(IMemAllocator **ppAllocator)
if (!ppAllocator)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (!m_allocator) {
m_allocator = com_new<IMemAllocator>(CLSID_MemoryAllocator);;
@@ -576,7 +571,7 @@ HRESULT DirectShowInputPin::NotifyAllocator(IMemAllocator *pAllocator, BOOL bRea
if (!pAllocator)
return E_POINTER;
- QMutexLocker locker(&m_mutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_mutex);
if (m_allocator)
m_allocator->Release();
diff --git a/src/plugins/directshow/common/directshowpin.h b/src/plugins/directshow/common/directshowpin.h
index 6370fd367..160191ef3 100644
--- a/src/plugins/directshow/common/directshowpin.h
+++ b/src/plugins/directshow/common/directshowpin.h
@@ -96,13 +96,13 @@ public:
protected:
DirectShowPin(DirectShowBaseFilter *filter, const QString &name, PIN_DIRECTION direction);
- QMutex m_mutex;
+ QRecursiveMutex m_mutex;
DirectShowBaseFilter *m_filter;
QString m_name;
PIN_DIRECTION m_direction;
- IPin *m_peerPin;
+ IPin *m_peerPin = nullptr;
DirectShowMediaType m_mediaType;
private:
@@ -128,8 +128,8 @@ public:
protected:
DirectShowOutputPin(DirectShowBaseFilter *filter, const QString &name);
- IMemAllocator *m_allocator;
- IMemInputPin *m_inputPin;
+ IMemAllocator *m_allocator = nullptr;
+ IMemInputPin *m_inputPin = nullptr;
private:
Q_DISABLE_COPY(DirectShowOutputPin)
@@ -166,9 +166,9 @@ public:
protected:
DirectShowInputPin(DirectShowBaseFilter *filter, const QString &name);
- IMemAllocator *m_allocator;
- bool m_flushing;
- bool m_inErrorState;
+ IMemAllocator *m_allocator = nullptr;
+ bool m_flushing = false;
+ bool m_inErrorState = false;
AM_SAMPLE2_PROPERTIES m_sampleProperties;
private:
diff --git a/src/plugins/directshow/common/directshowpinenum.cpp b/src/plugins/directshow/common/directshowpinenum.cpp
index a340c0903..7ba1bb6e9 100644
--- a/src/plugins/directshow/common/directshowpinenum.cpp
+++ b/src/plugins/directshow/common/directshowpinenum.cpp
@@ -44,7 +44,6 @@ QT_BEGIN_NAMESPACE
DirectShowPinEnum::DirectShowPinEnum(DirectShowBaseFilter *filter)
: m_filter(filter)
- , m_index(0)
{
m_filter->AddRef();
const QList<DirectShowPin *> pinList = filter->pins();
@@ -55,9 +54,7 @@ DirectShowPinEnum::DirectShowPinEnum(DirectShowBaseFilter *filter)
}
DirectShowPinEnum::DirectShowPinEnum(const QList<IPin *> &pins)
- : m_filter(nullptr)
- , m_pins(pins)
- , m_index(0)
+ : m_pins(pins)
{
for (IPin *pin : qAsConst(m_pins))
pin->AddRef();
diff --git a/src/plugins/directshow/common/directshowpinenum.h b/src/plugins/directshow/common/directshowpinenum.h
index d89f140b1..aada1a71e 100644
--- a/src/plugins/directshow/common/directshowpinenum.h
+++ b/src/plugins/directshow/common/directshowpinenum.h
@@ -68,9 +68,9 @@ public:
private:
Q_DISABLE_COPY(DirectShowPinEnum)
- DirectShowBaseFilter *m_filter;
+ DirectShowBaseFilter *m_filter = nullptr;
QList<IPin *> m_pins;
- int m_index;
+ int m_index = 0;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowsamplegrabber.cpp b/src/plugins/directshow/common/directshowsamplegrabber.cpp
index 254066d4e..a9e74f9db 100644
--- a/src/plugins/directshow/common/directshowsamplegrabber.cpp
+++ b/src/plugins/directshow/common/directshowsamplegrabber.cpp
@@ -82,7 +82,8 @@ public:
AddRef();
*ppvObject = static_cast<IUnknown *>(this);
return S_OK;
- } else if (riid == IID_ISampleGrabberCB /*__uuidof(ISampleGrabberCB)*/ ) {
+ }
+ if (riid == IID_ISampleGrabberCB /*__uuidof(ISampleGrabberCB)*/ ) {
AddRef();
*ppvObject = static_cast<ISampleGrabberCB *>(this);
return S_OK;
@@ -115,9 +116,6 @@ private:
DirectShowSampleGrabber::DirectShowSampleGrabber(QObject *p)
: QObject(p)
- , m_sampleGrabber(nullptr)
- , m_sampleGabberCb(nullptr)
- , m_callbackType(CallbackMethod::BufferCB)
{
// Create sample grabber filter
HRESULT hr = CoCreateInstance(cLSID_SampleGrabber, nullptr, CLSCTX_INPROC, iID_ISampleGrabber, reinterpret_cast<void **>(&m_sampleGrabber));
diff --git a/src/plugins/directshow/common/directshowsamplegrabber.h b/src/plugins/directshow/common/directshowsamplegrabber.h
index a9b72fcd1..5fc61de14 100644
--- a/src/plugins/directshow/common/directshowsamplegrabber.h
+++ b/src/plugins/directshow/common/directshowsamplegrabber.h
@@ -78,10 +78,10 @@ Q_SIGNALS:
void bufferAvailable(double time, const QByteArray &data);
private:
- IBaseFilter *m_filter;
- ISampleGrabber *m_sampleGrabber;
- SampleGrabberCallbackPrivate *m_sampleGabberCb;
- CallbackMethod m_callbackType;
+ IBaseFilter *m_filter = nullptr;
+ ISampleGrabber *m_sampleGrabber = nullptr;
+ SampleGrabberCallbackPrivate *m_sampleGabberCb = nullptr;
+ CallbackMethod m_callbackType= CallbackMethod::BufferCB;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowutils.cpp b/src/plugins/directshow/common/directshowutils.cpp
index 13b51deb5..1457837ce 100644
--- a/src/plugins/directshow/common/directshowutils.cpp
+++ b/src/plugins/directshow/common/directshowutils.cpp
@@ -300,7 +300,7 @@ bool DirectShowUtils::connectFilters(IGraphBuilder *graph,
}
IBaseFilter *nextFilter = nullptr;
- while (S_OK == filters->Next(1, &nextFilter, 0)) {
+ while (S_OK == filters->Next(1, &nextFilter, nullptr)) {
const ScopedSafeRelease<IBaseFilter> releaseNextFilter { &nextFilter };
if (nextFilter && findAndConnect(nextFilter))
return true;
diff --git a/src/plugins/directshow/common/directshowvideobuffer.cpp b/src/plugins/directshow/common/directshowvideobuffer.cpp
index 7f94da97e..fc329f58a 100644
--- a/src/plugins/directshow/common/directshowvideobuffer.cpp
+++ b/src/plugins/directshow/common/directshowvideobuffer.cpp
@@ -64,7 +64,7 @@ uchar *DirectShowVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine
if (bytesPerLine)
*bytesPerLine = m_bytesPerLine;
- BYTE *bytes = 0;
+ BYTE *bytes = nullptr;
if (m_sample->GetPointer(&bytes) == S_OK) {
m_mapMode = mode;
@@ -72,7 +72,7 @@ uchar *DirectShowVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine
return reinterpret_cast<uchar *>(bytes);
}
}
- return 0;
+ return nullptr;
}
void DirectShowVideoBuffer::unmap()
diff --git a/src/plugins/directshow/dsserviceplugin.cpp b/src/plugins/directshow/dsserviceplugin.cpp
index cc25e35b7..18a807fd1 100644
--- a/src/plugins/directshow/dsserviceplugin.cpp
+++ b/src/plugins/directshow/dsserviceplugin.cpp
@@ -87,7 +87,7 @@ QMediaService* DSServicePlugin::create(QString const& key)
return new DirectShowPlayerService;
}
- return 0;
+ return nullptr;
}
void DSServicePlugin::release(QMediaService *service)
diff --git a/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp b/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp
index 78733972a..f4e45cdd8 100644
--- a/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp
+++ b/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp
@@ -48,8 +48,6 @@ DirectShowAudioEndpointControl::DirectShowAudioEndpointControl(
DirectShowPlayerService *service, QObject *parent)
: QAudioOutputSelectorControl(parent)
, m_service(service)
- , m_bindContext(0)
- , m_deviceEnumerator(0)
{
if (CreateBindCtx(0, &m_bindContext) == S_OK) {
m_deviceEnumerator = com_new<ICreateDevEnum>(CLSID_SystemDeviceEnum);
@@ -83,12 +81,12 @@ QString DirectShowAudioEndpointControl::outputDescription(const QString &name) c
QString description;
if (IMoniker *moniker = m_devices.value(name, 0)) {
- IPropertyBag *propertyBag = 0;
+ IPropertyBag *propertyBag = nullptr;
if (SUCCEEDED(moniker->BindToStorage(
- 0, 0, IID_IPropertyBag, reinterpret_cast<void **>(&propertyBag)))) {
+ nullptr, nullptr, IID_IPropertyBag, reinterpret_cast<void **>(&propertyBag)))) {
VARIANT name;
VariantInit(&name);
- if (SUCCEEDED(propertyBag->Read(L"FriendlyName", &name, 0)))
+ if (SUCCEEDED(propertyBag->Read(L"FriendlyName", &name, nullptr)))
description = QString::fromWCharArray(name.bstrVal);
VariantClear(&name);
propertyBag->Release();
@@ -117,11 +115,11 @@ void DirectShowAudioEndpointControl::setActiveOutput(const QString &name)
return;
if (IMoniker *moniker = m_devices.value(name, 0)) {
- IBaseFilter *filter = 0;
+ IBaseFilter *filter = nullptr;
if (moniker->BindToObject(
m_bindContext,
- 0,
+ nullptr,
IID_IBaseFilter,
reinterpret_cast<void **>(&filter)) == S_OK) {
m_service->setAudioOutput(filter);
@@ -133,15 +131,15 @@ void DirectShowAudioEndpointControl::setActiveOutput(const QString &name)
void DirectShowAudioEndpointControl::updateEndpoints()
{
- IMalloc *oleMalloc = 0;
+ IMalloc *oleMalloc = nullptr;
if (m_deviceEnumerator && CoGetMalloc(1, &oleMalloc) == S_OK) {
- IEnumMoniker *monikers = 0;
+ IEnumMoniker *monikers = nullptr;
if (m_deviceEnumerator->CreateClassEnumerator(
CLSID_AudioRendererCategory, &monikers, 0) == S_OK) {
- for (IMoniker *moniker = 0; monikers->Next(1, &moniker, 0) == S_OK; moniker->Release()) {
- OLECHAR *string = 0;
- if (moniker->GetDisplayName(m_bindContext, 0, &string) == S_OK) {
+ for (IMoniker *moniker = nullptr; monikers->Next(1, &moniker, nullptr) == S_OK; moniker->Release()) {
+ OLECHAR *string = nullptr;
+ if (moniker->GetDisplayName(m_bindContext, nullptr, &string) == S_OK) {
QString deviceId = QString::fromWCharArray(string);
oleMalloc->Free(string);
diff --git a/src/plugins/directshow/player/directshowaudioendpointcontrol.h b/src/plugins/directshow/player/directshowaudioendpointcontrol.h
index b6f8a6724..05c4eb990 100644
--- a/src/plugins/directshow/player/directshowaudioendpointcontrol.h
+++ b/src/plugins/directshow/player/directshowaudioendpointcontrol.h
@@ -52,7 +52,7 @@ class DirectShowAudioEndpointControl : public QAudioOutputSelectorControl
{
Q_OBJECT
public:
- DirectShowAudioEndpointControl(DirectShowPlayerService *service, QObject *parent = 0);
+ DirectShowAudioEndpointControl(DirectShowPlayerService *service, QObject *parent = nullptr);
~DirectShowAudioEndpointControl() override;
QList<QString> availableOutputs() const override;
@@ -68,8 +68,8 @@ private:
void updateEndpoints();
DirectShowPlayerService *m_service;
- IBindCtx *m_bindContext;
- ICreateDevEnum *m_deviceEnumerator;
+ IBindCtx *m_bindContext = nullptr;
+ ICreateDevEnum *m_deviceEnumerator = nullptr;
QMap<QString, IMoniker *> m_devices;
QString m_defaultEndpoint;
diff --git a/src/plugins/directshow/player/directshowevrvideowindowcontrol.cpp b/src/plugins/directshow/player/directshowevrvideowindowcontrol.cpp
index 57d88326c..89bfc1467 100644
--- a/src/plugins/directshow/player/directshowevrvideowindowcontrol.cpp
+++ b/src/plugins/directshow/player/directshowevrvideowindowcontrol.cpp
@@ -43,7 +43,6 @@
DirectShowEvrVideoWindowControl::DirectShowEvrVideoWindowControl(QObject *parent)
: EvrVideoWindowControl(parent)
- , m_evrFilter(nullptr)
{
}
diff --git a/src/plugins/directshow/player/directshowevrvideowindowcontrol.h b/src/plugins/directshow/player/directshowevrvideowindowcontrol.h
index fb661780f..edbde78d6 100644
--- a/src/plugins/directshow/player/directshowevrvideowindowcontrol.h
+++ b/src/plugins/directshow/player/directshowevrvideowindowcontrol.h
@@ -49,13 +49,13 @@ QT_BEGIN_NAMESPACE
class DirectShowEvrVideoWindowControl : public EvrVideoWindowControl
{
public:
- DirectShowEvrVideoWindowControl(QObject *parent = 0);
+ DirectShowEvrVideoWindowControl(QObject *parent = nullptr);
~DirectShowEvrVideoWindowControl();
IBaseFilter *filter();
private:
- IBaseFilter *m_evrFilter;
+ IBaseFilter *m_evrFilter = nullptr;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/player/directshowioreader.cpp b/src/plugins/directshow/player/directshowioreader.cpp
index c10d9a239..ced10ea10 100644
--- a/src/plugins/directshow/player/directshowioreader.cpp
+++ b/src/plugins/directshow/player/directshowioreader.cpp
@@ -55,25 +55,23 @@ class DirectShowSampleRequest
public:
DirectShowSampleRequest(
IMediaSample *sample, DWORD_PTR userData, LONGLONG position, LONG length, BYTE *buffer)
- : next(0)
- , sample(sample)
+ : sample(sample)
, userData(userData)
, position(position)
, length(length)
, buffer(buffer)
- , result(S_FALSE)
{
}
DirectShowSampleRequest *remove() { DirectShowSampleRequest *n = next; delete this; return n; }
- DirectShowSampleRequest *next;
+ DirectShowSampleRequest *next = nullptr;
IMediaSample *sample;
DWORD_PTR userData;
LONGLONG position;
LONG length;
BYTE *buffer;
- HRESULT result;
+ HRESULT result = S_FALSE;
};
DirectShowIOReader::DirectShowIOReader(
@@ -81,18 +79,6 @@ DirectShowIOReader::DirectShowIOReader(
: m_source(source)
, m_device(device)
, m_loop(loop)
- , m_pendingHead(0)
- , m_pendingTail(0)
- , m_readyHead(0)
- , m_readyTail(0)
- , m_synchronousPosition(0)
- , m_synchronousLength(0)
- , m_synchronousBytesRead(0)
- , m_synchronousBuffer(0)
- , m_synchronousResult(S_OK)
- , m_totalLength(0)
- , m_availableLength(0)
- , m_flushing(false)
{
moveToThread(device->thread());
@@ -204,21 +190,21 @@ HRESULT DirectShowIOReader::WaitForNext(
m_readyHead = request->next;
if (!m_readyHead)
- m_readyTail = 0;
+ m_readyTail = nullptr;
delete request;
return hr;
}
if (m_flushing) {
- *ppSample = 0;
+ *ppSample = nullptr;
*pdwUser = 0;
return VFW_E_WRONG_STATE;
}
} while (m_wait.wait(&m_mutex, dwTimeout));
- *ppSample = 0;
+ *ppSample = nullptr;
*pdwUser = 0;
return VFW_E_TIMEOUT;
@@ -373,10 +359,10 @@ void DirectShowIOReader::readyRead()
m_pendingHead = m_pendingHead->next;
- m_readyTail->next = 0;
+ m_readyTail->next = nullptr;
if (!m_pendingHead)
- m_pendingTail = 0;
+ m_pendingTail = nullptr;
if (!m_readyHead)
m_readyHead = m_readyTail;
@@ -463,10 +449,10 @@ void DirectShowIOReader::flushRequests()
m_pendingHead = m_pendingHead->next;
- m_readyTail->next = 0;
+ m_readyTail->next = nullptr;
if (!m_pendingHead)
- m_pendingTail = 0;
+ m_pendingTail = nullptr;
if (!m_readyHead)
m_readyHead = m_readyTail;
diff --git a/src/plugins/directshow/player/directshowioreader.h b/src/plugins/directshow/player/directshowioreader.h
index 550990648..a0f2d7adb 100644
--- a/src/plugins/directshow/player/directshowioreader.h
+++ b/src/plugins/directshow/player/directshowioreader.h
@@ -99,18 +99,18 @@ private:
DirectShowIOSource *m_source;
QIODevice *m_device;
DirectShowEventLoop *m_loop;
- DirectShowSampleRequest *m_pendingHead;
- DirectShowSampleRequest *m_pendingTail;
- DirectShowSampleRequest *m_readyHead;
- DirectShowSampleRequest *m_readyTail;
- LONGLONG m_synchronousPosition;
- LONG m_synchronousLength;
- qint64 m_synchronousBytesRead;
- BYTE *m_synchronousBuffer;
- HRESULT m_synchronousResult;
- LONGLONG m_totalLength;
- LONGLONG m_availableLength;
- bool m_flushing;
+ DirectShowSampleRequest *m_pendingHead = nullptr;
+ DirectShowSampleRequest *m_pendingTail = nullptr;
+ DirectShowSampleRequest *m_readyHead = nullptr;
+ DirectShowSampleRequest *m_readyTail = nullptr;
+ LONGLONG m_synchronousPosition = 0;
+ LONG m_synchronousLength = 0;
+ qint64 m_synchronousBytesRead = 0;
+ BYTE *m_synchronousBuffer = nullptr;
+ HRESULT m_synchronousResult = S_OK;
+ LONGLONG m_totalLength = 0;
+ LONGLONG m_availableLength = 0;
+ bool m_flushing = false;
QMutex m_mutex;
QWaitCondition m_wait;
};
diff --git a/src/plugins/directshow/player/directshowiosource.cpp b/src/plugins/directshow/player/directshowiosource.cpp
index d5833fafc..5144710b7 100644
--- a/src/plugins/directshow/player/directshowiosource.cpp
+++ b/src/plugins/directshow/player/directshowiosource.cpp
@@ -66,16 +66,7 @@ static const GUID directshow_subtypes[] =
};
DirectShowIOSource::DirectShowIOSource(DirectShowEventLoop *loop)
- : m_ref(1)
- , m_state(State_Stopped)
- , m_reader(0)
- , m_loop(loop)
- , m_graph(0)
- , m_clock(0)
- , m_allocator(0)
- , m_peerPin(0)
- , m_pinId(QLatin1String("Data"))
- , m_queriedForAsyncReader(false)
+ : m_loop(loop)
{
// This filter has only one possible output type, that is, a stream of data
// with no particular subtype. The graph builder will try every demux/decode filters
@@ -92,9 +83,9 @@ DirectShowIOSource::DirectShowIOSource(DirectShowEventLoop *loop)
FALSE, // bTemporalCompression
1, // lSampleSize
GUID_NULL, // formattype
- 0, // pUnk
+ nullptr, // pUnk
0, // cbFormat
- 0, // pbFormat
+ nullptr, // pbFormat
};
for (const auto &directshowSubtype : directshow_subtypes) {
@@ -152,7 +143,7 @@ HRESULT DirectShowIOSource::QueryInterface(REFIID riid, void **ppvObject)
m_queriedForAsyncReader = true;
*ppvObject = static_cast<IAsyncReader *>(m_reader);
} else {
- *ppvObject = 0;
+ *ppvObject = nullptr;
return E_NOINTERFACE;
}
@@ -381,7 +372,7 @@ HRESULT DirectShowIOSource::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
pReceivePin->Disconnect();
if (m_allocator) {
m_allocator->Release();
- m_allocator = 0;
+ m_allocator = nullptr;
}
if (!m_queriedForAsyncReader)
hr = VFW_E_NO_TRANSPORT;
diff --git a/src/plugins/directshow/player/directshowiosource.h b/src/plugins/directshow/player/directshowiosource.h
index 02639de7c..837842518 100644
--- a/src/plugins/directshow/player/directshowiosource.h
+++ b/src/plugins/directshow/player/directshowiosource.h
@@ -119,19 +119,19 @@ public:
HRESULT STDMETHODCALLTYPE QueryDirection(PIN_DIRECTION *pPinDir) override;
private:
- volatile LONG m_ref;
- FILTER_STATE m_state;
- DirectShowIOReader *m_reader;
+ volatile LONG m_ref = 1;
+ FILTER_STATE m_state = State_Stopped;
+ DirectShowIOReader *m_reader = nullptr;
DirectShowEventLoop *m_loop;
- IFilterGraph *m_graph;
- IReferenceClock *m_clock;
- IMemAllocator *m_allocator;
- IPin *m_peerPin;
+ IFilterGraph *m_graph = nullptr;
+ IReferenceClock *m_clock = nullptr;
+ IMemAllocator *m_allocator = nullptr;
+ IPin *m_peerPin = nullptr;
DirectShowMediaType m_connectionMediaType;
QList<DirectShowMediaType> m_supportedMediaTypes;
QString m_filterName;
- const QString m_pinId;
- bool m_queriedForAsyncReader;
+ const QString m_pinId = QLatin1String("Data");
+ bool m_queriedForAsyncReader = false;
QMutex m_mutex;
};
diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.cpp b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
index 52b73a7df..46674143e 100644
--- a/src/plugins/directshow/player/directshowmetadatacontrol.cpp
+++ b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
@@ -209,7 +209,7 @@ static QString nameForGUIDString(const QString &guid)
}
typedef HRESULT (WINAPI *q_SHCreateItemFromParsingName)(PCWSTR, IBindCtx *, const GUID&, void **);
-static q_SHCreateItemFromParsingName sHCreateItemFromParsingName = 0;
+static q_SHCreateItemFromParsingName sHCreateItemFromParsingName = nullptr;
#endif
#if QT_CONFIG(wmsdk)
@@ -225,7 +225,7 @@ namespace
};
}
-typedef QList<QWMMetaDataKey> QWMMetaDataKeys;
+using QWMMetaDataKeys = QList<QWMMetaDataKey>;
Q_GLOBAL_STATIC(QWMMetaDataKeys, metadataKeys)
static const QWMMetaDataKeys *qt_wmMetaDataKeys()
@@ -299,7 +299,7 @@ static QVariant getValue(IWMHeaderInfo *header, const wchar_t *key)
WMT_ATTR_DATATYPE type = WMT_TYPE_DWORD;
WORD size = 0;
- if (header->GetAttributeByName(&streamNumber, key, &type, 0, &size) == S_OK) {
+ if (header->GetAttributeByName(&streamNumber, key, &type, nullptr, &size) == S_OK) {
switch (type) {
case WMT_TYPE_DWORD:
if (size == sizeof(DWORD)) {
@@ -445,7 +445,6 @@ static QVariant convertValue(const PROPVARIANT& var)
DirectShowMetaDataControl::DirectShowMetaDataControl(QObject *parent)
: QMetaDataReaderControl(parent)
- , m_available(false)
{
}
@@ -472,7 +471,7 @@ static QString convertBSTR(BSTR *string)
::SysStringLen(*string));
::SysFreeString(*string);
- string = 0;
+ string = nullptr;
return value;
}
@@ -492,11 +491,11 @@ void DirectShowMetaDataControl::updateMetadata(const QString &fileSrc, QVariantM
}
if (!fileSrc.isEmpty() && sHCreateItemFromParsingName) {
- IShellItem2* shellItem = 0;
+ IShellItem2* shellItem = nullptr;
if (sHCreateItemFromParsingName(reinterpret_cast<const WCHAR*>(fileSrc.utf16()),
- 0, IID_PPV_ARGS(&shellItem)) == S_OK) {
+ nullptr, IID_PPV_ARGS(&shellItem)) == S_OK) {
- IPropertyStore *pStore = 0;
+ IPropertyStore *pStore = nullptr;
if (shellItem->GetPropertyStore(GPS_DEFAULT, IID_PPV_ARGS(&pStore)) == S_OK) {
DWORD cProps;
if (SUCCEEDED(pStore->GetCount(&cProps))) {
@@ -651,17 +650,17 @@ void DirectShowMetaDataControl::updateMetadata(IFilterGraph2 *graph, IBaseFilter
return;
#endif
{
- IAMMediaContent *content = 0;
+ IAMMediaContent *content = nullptr;
if ((!graph || graph->QueryInterface(
IID_IAMMediaContent, reinterpret_cast<void **>(&content)) != S_OK)
&& (!source || source->QueryInterface(
IID_IAMMediaContent, reinterpret_cast<void **>(&content)) != S_OK)) {
- content = 0;
+ content = nullptr;
}
if (content) {
- BSTR string = 0;
+ BSTR string = nullptr;
if (content->get_AuthorName(&string) == S_OK)
metadata.insert(QMediaMetaData::Author, convertBSTR(&string));
diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.h b/src/plugins/directshow/player/directshowmetadatacontrol.h
index 4196a7950..e66127ab3 100644
--- a/src/plugins/directshow/player/directshowmetadatacontrol.h
+++ b/src/plugins/directshow/player/directshowmetadatacontrol.h
@@ -54,7 +54,7 @@ class DirectShowMetaDataControl : public QMetaDataReaderControl
{
Q_OBJECT
public:
- DirectShowMetaDataControl(QObject *parent = 0);
+ DirectShowMetaDataControl(QObject *parent = nullptr);
~DirectShowMetaDataControl() override;
bool isMetaDataAvailable() const override;
@@ -76,7 +76,7 @@ private:
};
QVariantMap m_metadata;
- bool m_available;
+ bool m_available = false;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/player/directshowplayercontrol.cpp b/src/plugins/directshow/player/directshowplayercontrol.cpp
index 8fddc2102..50e8d6421 100644
--- a/src/plugins/directshow/player/directshowplayercontrol.cpp
+++ b/src/plugins/directshow/player/directshowplayercontrol.cpp
@@ -50,20 +50,6 @@
DirectShowPlayerControl::DirectShowPlayerControl(DirectShowPlayerService *service, QObject *parent)
: QMediaPlayerControl(parent)
, m_service(service)
- , m_audio(0)
- , m_stream(0)
- , m_updateProperties(0)
- , m_state(QMediaPlayer::StoppedState)
- , m_status(QMediaPlayer::NoMedia)
- , m_error(QMediaPlayer::NoError)
- , m_streamTypes(0)
- , m_volume(100)
- , m_muted(false)
- , m_emitPosition(-1)
- , m_pendingPosition(-1)
- , m_duration(0)
- , m_playbackRate(0)
- , m_seekable(false)
{
}
diff --git a/src/plugins/directshow/player/directshowplayercontrol.h b/src/plugins/directshow/player/directshowplayercontrol.h
index dba9ab9a0..122f5be2f 100644
--- a/src/plugins/directshow/player/directshowplayercontrol.h
+++ b/src/plugins/directshow/player/directshowplayercontrol.h
@@ -55,7 +55,7 @@ class DirectShowPlayerControl : public QMediaPlayerControl
{
Q_OBJECT
public:
- DirectShowPlayerControl(DirectShowPlayerService *service, QObject *parent = 0);
+ DirectShowPlayerControl(DirectShowPlayerService *service, QObject *parent = nullptr);
~DirectShowPlayerControl() override;
QMediaPlayer::State state() const override;
@@ -129,20 +129,20 @@ private:
void setVolumeHelper(int volume);
DirectShowPlayerService *m_service;
- IBasicAudio *m_audio;
- QIODevice *m_stream;
- int m_updateProperties;
- QMediaPlayer::State m_state;
- QMediaPlayer::MediaStatus m_status;
- QMediaPlayer::Error m_error;
- int m_streamTypes;
- int m_volume;
- bool m_muted;
- qint64 m_emitPosition;
- qint64 m_pendingPosition;
- qint64 m_duration;
- qreal m_playbackRate;
- bool m_seekable;
+ IBasicAudio *m_audio = nullptr;
+ QIODevice *m_stream = nullptr;
+ int m_updateProperties = 0;
+ QMediaPlayer::State m_state = QMediaPlayer::StoppedState;
+ QMediaPlayer::MediaStatus m_status = QMediaPlayer::NoMedia;
+ QMediaPlayer::Error m_error = QMediaPlayer::NoError;
+ int m_streamTypes = 0;
+ int m_volume = 100;
+ bool m_muted = false;
+ qint64 m_emitPosition = -1;
+ qint64 m_pendingPosition = -1;
+ qint64 m_duration = 0;
+ qreal m_playbackRate = 0;
+ bool m_seekable = false;
QMediaContent m_media;
QString m_errorString;
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index ed131f0bd..3cc42dc21 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -123,37 +123,8 @@ private:
DirectShowPlayerService::DirectShowPlayerService(QObject *parent)
: QMediaService(parent)
- , m_playerControl(0)
- , m_metaDataControl(0)
- , m_videoRendererControl(0)
- , m_videoWindowControl(0)
- , m_audioEndpointControl(0)
- , m_audioProbeControl(nullptr)
- , m_videoProbeControl(nullptr)
- , m_audioSampleGrabber(nullptr)
- , m_videoSampleGrabber(nullptr)
- , m_taskThread(0)
, m_loop(qt_directShowEventLoop())
- , m_pendingTasks(0)
- , m_executingTask(0)
- , m_executedTasks(0)
, m_taskHandle(::CreateEvent(nullptr, FALSE, FALSE, nullptr))
- , m_eventHandle(0)
- , m_graphStatus(NoMedia)
- , m_stream(0)
- , m_graph(0)
- , m_graphBuilder(nullptr)
- , m_source(0)
- , m_audioOutput(0)
- , m_videoOutput(0)
- , m_rate(1.0)
- , m_position(0)
- , m_seekPosition(-1)
- , m_duration(0)
- , m_buffering(false)
- , m_seekable(false)
- , m_atEnd(false)
- , m_dontCacheNextSeekResult(false)
{
m_playerControl = new DirectShowPlayerControl(this);
m_metaDataControl = new DirectShowMetaDataControl(this);
@@ -179,12 +150,12 @@ DirectShowPlayerService::~DirectShowPlayerService()
if (m_audioOutput) {
m_audioOutput->Release();
- m_audioOutput = 0;
+ m_audioOutput = nullptr;
}
if (m_videoOutput) {
m_videoOutput->Release();
- m_videoOutput = 0;
+ m_videoOutput = nullptr;
}
delete m_playerControl;
@@ -200,13 +171,13 @@ DirectShowPlayerService::~DirectShowPlayerService()
QMediaControl *DirectShowPlayerService::requestControl(const char *name)
{
- if (qstrcmp(name, QMediaPlayerControl_iid) == 0) {
+ if (qstrcmp(name, QMediaPlayerControl_iid) == 0)
return m_playerControl;
- } else if (qstrcmp(name, QAudioOutputSelectorControl_iid) == 0) {
+ if (qstrcmp(name, QAudioOutputSelectorControl_iid) == 0)
return m_audioEndpointControl;
- } else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) {
+ if (qstrcmp(name, QMetaDataReaderControl_iid) == 0)
return m_metaDataControl;
- } else if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
+ if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
if (!m_videoRendererControl && !m_videoWindowControl) {
m_videoRendererControl = new DirectShowVideoRendererControl(m_loop);
@@ -215,7 +186,9 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name)
return m_videoRendererControl;
}
- } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) {
+ return nullptr;
+ }
+ if (qstrcmp(name, QVideoWindowControl_iid) == 0) {
if (!m_videoRendererControl && !m_videoWindowControl) {
IBaseFilter *filter{};
@@ -239,20 +212,23 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name)
return m_videoWindowControl;
}
- } else if (qstrcmp(name, QMediaAudioProbeControl_iid) == 0) {
+ return nullptr;
+ }
+ if (qstrcmp(name, QMediaAudioProbeControl_iid) == 0) {
if (!m_audioProbeControl)
m_audioProbeControl = new DirectShowAudioProbeControl();
m_audioProbeControl->ref();
updateAudioProbe();
return m_audioProbeControl;
- } else if (qstrcmp(name, QMediaVideoProbeControl_iid) == 0) {
+ }
+ if (qstrcmp(name, QMediaVideoProbeControl_iid) == 0) {
if (!m_videoProbeControl)
m_videoProbeControl = new DirectShowVideoProbeControl();
m_videoProbeControl->ref();
updateVideoProbe();
return m_videoProbeControl;
}
- return 0;
+ return nullptr;
}
void DirectShowPlayerService::releaseControl(QMediaControl *control)
@@ -261,17 +237,17 @@ void DirectShowPlayerService::releaseControl(QMediaControl *control)
qWarning("QMediaService::releaseControl():"
" Attempted release of null control");
} else if (control == m_videoRendererControl) {
- setVideoOutput(0);
+ setVideoOutput(nullptr);
delete m_videoRendererControl;
- m_videoRendererControl = 0;
+ m_videoRendererControl = nullptr;
} else if (control == m_videoWindowControl) {
- setVideoOutput(0);
+ setVideoOutput(nullptr);
delete m_videoWindowControl;
- m_videoWindowControl = 0;
+ m_videoWindowControl = nullptr;
} else if (control == m_audioProbeControl) {
if (!m_audioProbeControl->deref()) {
DirectShowAudioProbeControl *old = m_audioProbeControl;
@@ -298,7 +274,7 @@ void DirectShowPlayerService::load(const QMediaContent &media, QIODevice *stream
if (m_graph)
releaseGraph();
- m_url = media.canonicalUrl();
+ m_url = media.request().url();
m_stream = stream;
m_error = QMediaPlayer::NoError;
@@ -356,7 +332,7 @@ void DirectShowPlayerService::load(const QMediaContent &media, QIODevice *stream
void DirectShowPlayerService::doSetUrlSource(QMutexLocker *locker)
{
- IBaseFilter *source = 0;
+ IBaseFilter *source = nullptr;
HRESULT hr = E_FAIL;
if (m_url.scheme() == QLatin1String("http") || m_url.scheme() == QLatin1String("https")) {
@@ -369,14 +345,14 @@ void DirectShowPlayerService::doSetUrlSource(QMutexLocker *locker)
if (IFileSourceFilter *fileSource = com_new<IFileSourceFilter>(clsid_WMAsfReader, iid_IFileSourceFilter)) {
locker->unlock();
- hr = fileSource->Load(reinterpret_cast<const OLECHAR *>(m_url.toString().utf16()), 0);
+ hr = fileSource->Load(reinterpret_cast<const OLECHAR *>(m_url.toString().utf16()), nullptr);
if (SUCCEEDED(hr)) {
source = com_cast<IBaseFilter>(fileSource, IID_IBaseFilter);
if (!SUCCEEDED(hr = m_graph->AddFilter(source, L"Source")) && source) {
source->Release();
- source = 0;
+ source = nullptr;
}
}
fileSource->Release();
@@ -511,18 +487,18 @@ void DirectShowPlayerService::doRender(QMutexLocker *locker)
HRESULT renderHr = S_OK;
while (!filters.isEmpty()) {
- IEnumPins *pins = 0;
+ IEnumPins *pins = nullptr;
IBaseFilter *filter = filters[filters.size() - 1];
filters.removeLast();
if (!(m_pendingTasks & ReleaseFilters) && SUCCEEDED(filter->EnumPins(&pins))) {
int outputs = 0;
- for (IPin *pin = 0; pins->Next(1, &pin, 0) == S_OK; pin->Release()) {
+ for (IPin *pin = nullptr; pins->Next(1, &pin, nullptr) == S_OK; pin->Release()) {
PIN_DIRECTION direction;
if (pin->QueryDirection(&direction) == S_OK && direction == PINDIR_OUTPUT) {
++outputs;
- IPin *peer = 0;
+ IPin *peer = nullptr;
if (pin->ConnectedTo(&peer) == S_OK) {
PIN_INFO peerInfo;
if (SUCCEEDED(peer->QueryPinInfo(&peerInfo)))
@@ -530,7 +506,7 @@ void DirectShowPlayerService::doRender(QMutexLocker *locker)
peer->Release();
} else {
locker->unlock();
- HRESULT hr = graph->RenderEx(pin, /*AM_RENDEREX_RENDERTOEXISTINGRENDERERS*/ 1, 0);
+ HRESULT hr = graph->RenderEx(pin, /*AM_RENDEREX_RENDERTOEXISTINGRENDERERS*/ 1, nullptr);
if (SUCCEEDED(hr)) {
rendered = true;
m_error = QMediaPlayer::NoError;
@@ -686,13 +662,13 @@ void DirectShowPlayerService::doReleaseGraph(QMutexLocker *locker)
if (m_source) {
m_source->Release();
- m_source = 0;
+ m_source = nullptr;
}
- m_eventHandle = 0;
+ m_eventHandle = nullptr;
m_graph->Release();
- m_graph = 0;
+ m_graph = nullptr;
if (m_graphBuilder) {
m_graphBuilder->Release();
@@ -830,17 +806,17 @@ int DirectShowPlayerService::findStreamTypes(IBaseFilter *source) const
int streamTypes = 0;
while (!filters.isEmpty()) {
- IEnumPins *pins = 0;
+ IEnumPins *pins = nullptr;
IBaseFilter *filter = filters[filters.size() - 1];
filters.removeLast();
if (SUCCEEDED(filter->EnumPins(&pins))) {
- for (IPin *pin = 0; pins->Next(1, &pin, 0) == S_OK; pin->Release()) {
+ for (IPin *pin = nullptr; pins->Next(1, &pin, nullptr) == S_OK; pin->Release()) {
PIN_DIRECTION direction;
if (pin->QueryDirection(&direction) == S_OK && direction == PINDIR_OUTPUT) {
DirectShowMediaType connectionType;
if (SUCCEEDED(pin->ConnectionMediaType(&connectionType))) {
- IPin *peer = 0;
+ IPin *peer = nullptr;
if (connectionType->majortype == MEDIATYPE_Audio) {
streamTypes |= AudioStream;
@@ -873,8 +849,8 @@ int DirectShowPlayerService::findStreamType(IPin *pin) const
bool audio = false;
bool other = false;
- for (AM_MEDIA_TYPE *type = 0;
- types->Next(1, &type, 0) == S_OK;
+ for (AM_MEDIA_TYPE *type = nullptr;
+ types->Next(1, &type, nullptr) == S_OK;
DirectShowMediaType::deleteType(type)) {
if (type->majortype == MEDIATYPE_Audio)
audio = true;
@@ -1188,7 +1164,7 @@ void DirectShowPlayerService::doSeek(QMutexLocker *locker)
locker->unlock();
seeking->SetPositions(
- &seekPosition, AM_SEEKING_AbsolutePositioning, 0, AM_SEEKING_NoPositioning);
+ &seekPosition, AM_SEEKING_AbsolutePositioning, nullptr, AM_SEEKING_NoPositioning);
locker->relock();
if (!m_dontCacheNextSeekResult) {
@@ -1214,7 +1190,7 @@ int DirectShowPlayerService::bufferStatus() const
m_source, IID_IWMReaderAdvanced2)) {
DWORD percentage = 0;
- reader->GetBufferProgress(&percentage, 0);
+ reader->GetBufferProgress(&percentage, nullptr);
reader->Release();
return percentage;
@@ -1387,7 +1363,7 @@ void DirectShowPlayerService::doReleaseVideoOutput(QMutexLocker *locker)
control->Release();
}
- IBaseFilter *intermediate = 0;
+ IBaseFilter *intermediate = nullptr;
if (!SUCCEEDED(m_graph->FindFilterByName(L"Color Space Converter", &intermediate))) {
intermediate = m_videoOutput;
intermediate->AddRef();
@@ -1664,13 +1640,13 @@ bool DirectShowPlayerService::isConnected(IBaseFilter *filter, PIN_DIRECTION dir
{
bool connected = false;
- IEnumPins *pins = 0;
+ IEnumPins *pins = nullptr;
if (SUCCEEDED(filter->EnumPins(&pins))) {
- for (IPin *pin = 0; pins->Next(1, &pin, 0) == S_OK; pin->Release()) {
+ for (IPin *pin = nullptr; pins->Next(1, &pin, nullptr) == S_OK; pin->Release()) {
PIN_DIRECTION dir;
if (SUCCEEDED(pin->QueryDirection(&dir)) && dir == direction) {
- IPin *peer = 0;
+ IPin *peer = nullptr;
if (SUCCEEDED(pin->ConnectedTo(&peer))) {
connected = true;
@@ -1686,15 +1662,15 @@ bool DirectShowPlayerService::isConnected(IBaseFilter *filter, PIN_DIRECTION dir
IBaseFilter *DirectShowPlayerService::getConnected(
IBaseFilter *filter, PIN_DIRECTION direction) const
{
- IBaseFilter *connected = 0;
+ IBaseFilter *connected = nullptr;
- IEnumPins *pins = 0;
+ IEnumPins *pins = nullptr;
if (SUCCEEDED(filter->EnumPins(&pins))) {
- for (IPin *pin = 0; pins->Next(1, &pin, 0) == S_OK; pin->Release()) {
+ for (IPin *pin = nullptr; pins->Next(1, &pin, nullptr) == S_OK; pin->Release()) {
PIN_DIRECTION dir;
if (SUCCEEDED(pin->QueryDirection(&dir)) && dir == direction) {
- IPin *peer = 0;
+ IPin *peer = nullptr;
if (SUCCEEDED(pin->ConnectedTo(&peer))) {
PIN_INFO info;
diff --git a/src/plugins/directshow/player/directshowplayerservice.h b/src/plugins/directshow/player/directshowplayerservice.h
index a6eeb8a77..69b4b0a6c 100644
--- a/src/plugins/directshow/player/directshowplayerservice.h
+++ b/src/plugins/directshow/player/directshowplayerservice.h
@@ -78,7 +78,7 @@ public:
VideoStream = 0x02
};
- DirectShowPlayerService(QObject *parent = 0);
+ DirectShowPlayerService(QObject *parent = nullptr);
~DirectShowPlayerService() override;
QMediaControl *requestControl(const char *name) override;
@@ -193,44 +193,44 @@ private:
InvalidMedia
};
- DirectShowPlayerControl *m_playerControl;
- DirectShowMetaDataControl *m_metaDataControl;
- DirectShowVideoRendererControl *m_videoRendererControl;
- QVideoWindowControl *m_videoWindowControl;
- DirectShowAudioEndpointControl *m_audioEndpointControl;
- DirectShowAudioProbeControl *m_audioProbeControl;
- DirectShowVideoProbeControl *m_videoProbeControl;
- DirectShowSampleGrabber *m_audioSampleGrabber;
- DirectShowSampleGrabber *m_videoSampleGrabber;
-
- QThread *m_taskThread;
+ DirectShowPlayerControl *m_playerControl = nullptr;
+ DirectShowMetaDataControl *m_metaDataControl = nullptr;
+ DirectShowVideoRendererControl *m_videoRendererControl = nullptr;
+ QVideoWindowControl *m_videoWindowControl = nullptr;
+ DirectShowAudioEndpointControl *m_audioEndpointControl = nullptr;
+ DirectShowAudioProbeControl *m_audioProbeControl = nullptr;
+ DirectShowVideoProbeControl *m_videoProbeControl = nullptr;
+ DirectShowSampleGrabber *m_audioSampleGrabber = nullptr;
+ DirectShowSampleGrabber *m_videoSampleGrabber = nullptr;
+
+ QThread *m_taskThread = nullptr;
DirectShowEventLoop *m_loop;
- int m_pendingTasks;
- int m_executingTask;
- int m_executedTasks;
- int m_streamTypes;
+ int m_pendingTasks = 0;
+ int m_executingTask = 0;
+ int m_executedTasks = 0;
+ int m_streamTypes = 0;
HANDLE m_taskHandle;
- HANDLE m_eventHandle;
- GraphStatus m_graphStatus;
- QMediaPlayer::Error m_error;
- QIODevice *m_stream;
- IFilterGraph2 *m_graph;
- ICaptureGraphBuilder2 *m_graphBuilder;
- IBaseFilter *m_source;
- IBaseFilter *m_audioOutput;
- IBaseFilter *m_videoOutput;
- qreal m_rate;
- qint64 m_position;
- qint64 m_seekPosition;
- qint64 m_duration;
+ HANDLE m_eventHandle = nullptr;
+ GraphStatus m_graphStatus = NoMedia;
+ QMediaPlayer::Error m_error = QMediaPlayer::NoError;
+ QIODevice *m_stream = nullptr;
+ IFilterGraph2 *m_graph = nullptr;
+ ICaptureGraphBuilder2 *m_graphBuilder = nullptr;
+ IBaseFilter *m_source = nullptr;
+ IBaseFilter *m_audioOutput = nullptr;
+ IBaseFilter *m_videoOutput = nullptr;
+ qreal m_rate = 1;
+ qint64 m_position = 0;
+ qint64 m_seekPosition = -1;
+ qint64 m_duration = 0;
QMediaTimeRange m_playbackRange;
QUrl m_url;
QString m_errorString;
QMutex m_mutex;
- bool m_buffering;
- bool m_seekable;
- bool m_atEnd;
- bool m_dontCacheNextSeekResult;
+ bool m_buffering = false;
+ bool m_seekable = false;
+ bool m_atEnd = false;
+ bool m_dontCacheNextSeekResult = false;
QVariantMap m_metadata;
friend class DirectShowPlayerServiceThread;
diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
index bbf7cf8b9..0b1f0de2f 100644
--- a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
+++ b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
@@ -51,11 +51,6 @@
DirectShowVideoRendererControl::DirectShowVideoRendererControl(DirectShowEventLoop *loop, QObject *parent)
: QVideoRendererControl(parent)
, m_loop(loop)
- , m_surface(0)
- , m_filter(0)
-#if QT_CONFIG(evr)
- , m_evrPresenter(0)
-#endif
{
}
@@ -85,13 +80,13 @@ void DirectShowVideoRendererControl::setSurface(QAbstractVideoSurface *surface)
if (m_evrPresenter) {
m_evrPresenter->setSurface(nullptr);
m_evrPresenter->Release();
- m_evrPresenter = 0;
+ m_evrPresenter = nullptr;
}
#endif
if (m_filter) {
m_filter->Release();
- m_filter = 0;
+ m_filter = nullptr;
}
m_surface = surface;
@@ -104,9 +99,9 @@ void DirectShowVideoRendererControl::setSurface(QAbstractVideoSurface *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;
+ m_filter = nullptr;
m_evrPresenter->Release();
- m_evrPresenter = 0;
+ m_evrPresenter = nullptr;
}
}
diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.h b/src/plugins/directshow/player/directshowvideorenderercontrol.h
index 930f8a6b1..9326a2748 100644
--- a/src/plugins/directshow/player/directshowvideorenderercontrol.h
+++ b/src/plugins/directshow/player/directshowvideorenderercontrol.h
@@ -58,7 +58,7 @@ class DirectShowVideoRendererControl : public QVideoRendererControl
{
Q_OBJECT
public:
- DirectShowVideoRendererControl(DirectShowEventLoop *loop, QObject *parent = 0);
+ DirectShowVideoRendererControl(DirectShowEventLoop *loop, QObject *parent = nullptr);
~DirectShowVideoRendererControl() override;
QAbstractVideoSurface *surface() const override;
@@ -72,10 +72,10 @@ Q_SIGNALS:
private:
DirectShowEventLoop *m_loop;
- QAbstractVideoSurface *m_surface;
- IBaseFilter *m_filter;
+ QAbstractVideoSurface *m_surface = nullptr;
+ IBaseFilter *m_filter = nullptr;
#if QT_CONFIG(evr)
- EVRCustomPresenter *m_evrPresenter;
+ EVRCustomPresenter *m_evrPresenter = nullptr;
#endif
};
diff --git a/src/plugins/directshow/player/videosurfacefilter.cpp b/src/plugins/directshow/player/videosurfacefilter.cpp
index 4702d5908..4b7afc266 100644
--- a/src/plugins/directshow/player/videosurfacefilter.cpp
+++ b/src/plugins/directshow/player/videosurfacefilter.cpp
@@ -47,6 +47,8 @@
#include <QtCore/qloggingcategory.h>
#include <qabstractvideosurface.h>
+#include <mutex>
+
#include <initguid.h>
QT_BEGIN_NAMESPACE
@@ -154,7 +156,7 @@ HRESULT VideoSurfaceInputPin::Disconnect()
HRESULT VideoSurfaceInputPin::EndOfStream()
{
QMutexLocker lock(&m_videoSurfaceFilter->m_mutex);
- QMutexLocker renderLock(&m_videoSurfaceFilter->m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> renderLocker(m_videoSurfaceFilter->m_renderMutex);
HRESULT hr = DirectShowInputPin::EndOfStream();
if (hr != S_OK)
@@ -167,7 +169,7 @@ HRESULT VideoSurfaceInputPin::BeginFlush()
{
QMutexLocker lock(&m_videoSurfaceFilter->m_mutex);
{
- QMutexLocker renderLock(&m_videoSurfaceFilter->m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> renderLocker(m_videoSurfaceFilter->m_renderMutex);
DirectShowInputPin::BeginFlush();
m_videoSurfaceFilter->BeginFlush();
}
@@ -179,7 +181,7 @@ HRESULT VideoSurfaceInputPin::BeginFlush()
HRESULT VideoSurfaceInputPin::EndFlush()
{
QMutexLocker lock(&m_videoSurfaceFilter->m_mutex);
- QMutexLocker renderLock(&m_videoSurfaceFilter->m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> renderLocker(m_videoSurfaceFilter->m_renderMutex);
HRESULT hr = m_videoSurfaceFilter->EndFlush();
if (SUCCEEDED(hr))
@@ -207,7 +209,7 @@ HRESULT VideoSurfaceInputPin::Receive(IMediaSample *pMediaSample)
if (m_videoSurfaceFilter->state() != State_Stopped && !m_flushing && !m_inErrorState) {
m_videoSurfaceFilter->NotifyEvent(EC_ERRORABORT, hr, 0);
{
- QMutexLocker renderLocker(&m_videoSurfaceFilter->m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> renderLocker(m_videoSurfaceFilter->m_renderMutex);
if (m_videoSurfaceFilter->m_running && !m_videoSurfaceFilter->m_EOSDelivered)
m_videoSurfaceFilter->notifyEOS();
}
@@ -222,20 +224,9 @@ HRESULT VideoSurfaceInputPin::Receive(IMediaSample *pMediaSample)
VideoSurfaceFilter::VideoSurfaceFilter(QAbstractVideoSurface *surface, DirectShowEventLoop *loop, QObject *parent)
: QObject(parent)
, m_loop(loop)
- , m_pin(nullptr)
, m_surface(surface)
- , m_bytesPerLine(0)
- , m_surfaceStarted(false)
- , m_renderMutex(QMutex::Recursive)
- , m_running(false)
- , m_pendingSample(nullptr)
- , m_pendingSampleEndTime(0)
, m_renderEvent(CreateEvent(nullptr, FALSE, FALSE, nullptr))
, m_flushEvent(CreateEvent(nullptr, TRUE, FALSE, nullptr))
- , m_adviseCookie(0)
- , m_EOS(false)
- , m_EOSDelivered(false)
- , m_EOSTimer(0)
{
supportedFormatsChanged();
connect(surface, &QAbstractVideoSurface::supportedFormatsChanged,
@@ -376,7 +367,7 @@ HRESULT VideoSurfaceFilter::Run(REFERENCE_TIME tStart)
allocator->Release();
}
- QMutexLocker renderLocker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> renderLocker(m_renderMutex);
m_running = true;
@@ -453,7 +444,7 @@ HRESULT VideoSurfaceFilter::Stop()
HRESULT VideoSurfaceFilter::EndOfStream()
{
- QMutexLocker renderLocker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> renderLocker(m_renderMutex);
qCDebug(qLcRenderFilter, "EndOfStream");
@@ -509,7 +500,7 @@ HRESULT VideoSurfaceFilter::Receive(IMediaSample *pMediaSample)
}
{
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (m_pendingSample || m_EOS)
return E_UNEXPECTED;
@@ -553,13 +544,13 @@ HRESULT VideoSurfaceFilter::Receive(IMediaSample *pMediaSample)
return S_OK;
}
- QMutexLocker renderLock(&m_renderMutex);
+ std::unique_lock<QRecursiveMutex> renderLocker(m_renderMutex);
// Flush or pause might have happened just before the lock
if (m_pendingSample && m_running) {
- renderLock.unlock();
+ renderLocker.unlock();
renderPendingSample();
- renderLock.relock();
+ renderLocker.lock();
} else {
qCDebug(qLcRenderFilter, " discarding sample (%p)", pMediaSample);
}
@@ -612,7 +603,7 @@ void VideoSurfaceFilter::unscheduleSample()
void VideoSurfaceFilter::clearPendingSample()
{
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (m_pendingSample) {
qCDebug(qLcRenderFilter, "clearPendingSample");
m_pendingSample->Release();
@@ -628,7 +619,7 @@ void QT_WIN_CALLBACK EOSTimerCallback(UINT, UINT, DWORD_PTR dwUser, DWORD_PTR, D
void VideoSurfaceFilter::onEOSTimerTimeout()
{
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (m_EOSTimer) {
m_EOSTimer = 0;
@@ -638,7 +629,7 @@ void VideoSurfaceFilter::onEOSTimerTimeout()
void VideoSurfaceFilter::checkEOS()
{
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (!m_EOS || m_EOSDelivered || m_EOSTimer)
return;
@@ -673,7 +664,7 @@ void VideoSurfaceFilter::checkEOS()
void VideoSurfaceFilter::notifyEOS()
{
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (!m_running)
return;
@@ -689,7 +680,7 @@ void VideoSurfaceFilter::resetEOS()
{
resetEOSTimer();
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (m_EOS)
qCDebug(qLcRenderFilter, "resetEOS (delivered=%s)", m_EOSDelivered ? "true" : "false");
@@ -713,11 +704,10 @@ bool VideoSurfaceFilter::startSurface()
m_loop->postEvent(this, new QEvent(QEvent::Type(StartSurface)));
m_waitSurface.wait(&m_mutex);
return m_surfaceStarted;
- } else {
- m_surfaceStarted = m_surface->start(m_surfaceFormat);
- qCDebug(qLcRenderFilter, "startSurface %s", m_surfaceStarted ? "succeeded" : "failed");
- return m_surfaceStarted;
}
+ m_surfaceStarted = m_surface->start(m_surfaceFormat);
+ qCDebug(qLcRenderFilter, "startSurface %s", m_surfaceStarted ? "succeeded" : "failed");
+ return m_surfaceStarted;
}
void VideoSurfaceFilter::stopSurface()
@@ -741,12 +731,11 @@ bool VideoSurfaceFilter::restartSurface()
m_loop->postEvent(this, new QEvent(QEvent::Type(RestartSurface)));
m_waitSurface.wait(&m_mutex);
return m_surfaceStarted;
- } else {
- m_surface->stop();
- m_surfaceStarted = m_surface->start(m_surfaceFormat);
- qCDebug(qLcRenderFilter, "restartSurface %s", m_surfaceStarted ? "succeeded" : "failed");
- return m_surfaceStarted;
}
+ m_surface->stop();
+ m_surfaceStarted = m_surface->start(m_surfaceFormat);
+ qCDebug(qLcRenderFilter, "restartSurface %s", m_surfaceStarted ? "succeeded" : "failed");
+ return m_surfaceStarted;
}
void VideoSurfaceFilter::flushSurface()
@@ -766,7 +755,7 @@ void VideoSurfaceFilter::renderPendingSample()
m_loop->postEvent(this, new QEvent(QEvent::Type(RenderSample)));
m_waitSurface.wait(&m_mutex);
} else {
- QMutexLocker locker(&m_renderMutex);
+ const std::lock_guard<QRecursiveMutex> locker(m_renderMutex);
if (!m_pendingSample)
return;
diff --git a/src/plugins/directshow/player/videosurfacefilter.h b/src/plugins/directshow/player/videosurfacefilter.h
index 56791f270..9e56f4b65 100644
--- a/src/plugins/directshow/player/videosurfacefilter.h
+++ b/src/plugins/directshow/player/videosurfacefilter.h
@@ -62,7 +62,7 @@ class VideoSurfaceFilter : public QObject
Q_OBJECT
COM_REF_MIXIN
public:
- VideoSurfaceFilter(QAbstractVideoSurface *surface, DirectShowEventLoop *loop, QObject *parent = 0);
+ VideoSurfaceFilter(QAbstractVideoSurface *surface, DirectShowEventLoop *loop, QObject *parent = nullptr);
~VideoSurfaceFilter();
STDMETHODIMP QueryInterface(REFIID riid, void **ppv) override;
@@ -130,28 +130,28 @@ private:
QMutex m_mutex;
DirectShowEventLoop *m_loop;
- VideoSurfaceInputPin *m_pin;
+ VideoSurfaceInputPin *m_pin = nullptr;
QWaitCondition m_waitSurface;
QAbstractVideoSurface *m_surface;
QVideoSurfaceFormat m_surfaceFormat;
- int m_bytesPerLine;
- bool m_surfaceStarted;
+ int m_bytesPerLine = 0;
+ bool m_surfaceStarted = false;
QList<GUID> m_supportedTypes;
QReadWriteLock m_typesLock;
- QMutex m_renderMutex;
- bool m_running;
- IMediaSample *m_pendingSample;
- REFERENCE_TIME m_pendingSampleEndTime;
+ QRecursiveMutex m_renderMutex;
+ bool m_running = false;
+ IMediaSample *m_pendingSample = nullptr;
+ REFERENCE_TIME m_pendingSampleEndTime = 0;
HANDLE m_renderEvent;
HANDLE m_flushEvent;
- DWORD_PTR m_adviseCookie;
+ DWORD_PTR m_adviseCookie = 0;
- bool m_EOS;
- bool m_EOSDelivered;
- UINT m_EOSTimer;
+ bool m_EOS = false;
+ bool m_EOSDelivered = false;
+ UINT m_EOSTimer = 0;
friend class VideoSurfaceInputPin;
};
diff --git a/src/plugins/directshow/player/vmr9videowindowcontrol.cpp b/src/plugins/directshow/player/vmr9videowindowcontrol.cpp
index c026a12d8..63c945622 100644
--- a/src/plugins/directshow/player/vmr9videowindowcontrol.cpp
+++ b/src/plugins/directshow/player/vmr9videowindowcontrol.cpp
@@ -49,15 +49,6 @@
Vmr9VideoWindowControl::Vmr9VideoWindowControl(QObject *parent)
: QVideoWindowControl(parent)
, m_filter(com_new<IBaseFilter>(CLSID_VideoMixingRenderer9))
- , m_windowId(0)
- , m_windowColor(RGB(0, 0, 0))
- , m_dirtyValues(0)
- , m_aspectRatioMode(Qt::KeepAspectRatio)
- , m_brightness(0)
- , m_contrast(0)
- , m_hue(0)
- , m_saturation(0)
- , m_fullScreen(false)
{
if (IVMRFilterConfig9 *config = com_cast<IVMRFilterConfig9>(m_filter, IID_IVMRFilterConfig9)) {
config->SetRenderingMode(VMR9Mode_Windowless);
@@ -113,7 +104,7 @@ void Vmr9VideoWindowControl::setDisplayRect(const QRect &rect)
RECT sourceRect = { 0, 0, 0, 0 };
RECT displayRect = { rect.left(), rect.top(), rect.right() + 1, rect.bottom() + 1 };
- control->GetNativeVideoSize(&sourceRect.right, &sourceRect.bottom, 0, 0);
+ control->GetNativeVideoSize(&sourceRect.right, &sourceRect.bottom, nullptr, nullptr);
if (m_aspectRatioMode == Qt::KeepAspectRatioByExpanding) {
QSize clippedSize = rect.size();
@@ -182,7 +173,7 @@ QSize Vmr9VideoWindowControl::nativeSize() const
LONG width;
LONG height;
- if (control->GetNativeVideoSize(&width, &height, 0, 0) == S_OK)
+ if (control->GetNativeVideoSize(&width, &height, nullptr, nullptr) == S_OK)
size = QSize(width, height);
control->Release();
}
diff --git a/src/plugins/directshow/player/vmr9videowindowcontrol.h b/src/plugins/directshow/player/vmr9videowindowcontrol.h
index 8ab9bd506..2a6f008f3 100644
--- a/src/plugins/directshow/player/vmr9videowindowcontrol.h
+++ b/src/plugins/directshow/player/vmr9videowindowcontrol.h
@@ -52,7 +52,7 @@ class Vmr9VideoWindowControl : public QVideoWindowControl
{
Q_OBJECT
public:
- Vmr9VideoWindowControl(QObject *parent = 0);
+ Vmr9VideoWindowControl(QObject *parent = nullptr);
~Vmr9VideoWindowControl() override;
IBaseFilter *filter() const { return m_filter; }
@@ -91,16 +91,16 @@ private:
IVMRMixerControl9 *control, VMR9ProcAmpControlFlags property, int value) const;
IBaseFilter *m_filter;
- WId m_windowId;
- COLORREF m_windowColor;
- DWORD m_dirtyValues;
- Qt::AspectRatioMode m_aspectRatioMode;
+ WId m_windowId = 0;
+ COLORREF m_windowColor = RGB(0, 0, 0);
+ DWORD m_dirtyValues = 0;
+ Qt::AspectRatioMode m_aspectRatioMode = Qt::KeepAspectRatio;
QRect m_displayRect;
- int m_brightness;
- int m_contrast;
- int m_hue;
- int m_saturation;
- bool m_fullScreen;
+ int m_brightness = 0;
+ int m_contrast = 0;
+ int m_hue = 0;
+ int m_saturation = 0;
+ bool m_fullScreen = false;
};
QT_END_NAMESPACE
diff --git a/src/plugins/gstreamer/camerabin/camerabincontrol.cpp b/src/plugins/gstreamer/camerabin/camerabincontrol.cpp
index a34315b8a..fdf3ff4ac 100644
--- a/src/plugins/gstreamer/camerabin/camerabincontrol.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabincontrol.cpp
@@ -121,7 +121,7 @@ void CameraBinControl::setState(QCamera::State state)
//special case for stopping the camera while it's busy,
//it should be delayed until the camera is idle
- if (state == QCamera::LoadedState &&
+ if ((state == QCamera::LoadedState || state == QCamera::UnloadedState) &&
m_session->status() == QCamera::ActiveStatus &&
m_session->isBusy()) {
#ifdef CAMEABIN_DEBUG
diff --git a/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp b/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp
index 29d7743ed..52ec75f44 100644
--- a/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp
@@ -149,9 +149,7 @@ gboolean CameraBinImageCapture::encoderEventProbe(
tags[QMediaMetaData::FNumber] = extendedTags.value("capturing-focal-ratio");
tags[QMediaMetaData::ExposureMode] = extendedTags.value("capturing-exposure-mode");
- QMapIterator<QString, QVariant> i(tags);
- while (i.hasNext()) {
- i.next();
+ for (auto i = tags.cbegin(), end = tags.cend(); i != end; ++i) {
if (i.value().isValid()) {
QMetaObject::invokeMethod(self, "imageMetadataAvailable",
Qt::QueuedConnection,
diff --git a/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp b/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
index 6a0816343..1a35c5cf6 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
@@ -204,11 +204,9 @@ GstElement *QGstreamerAudioEncode::createEncoder()
}
QMap<QString, QVariant> options = m_options.value(codec);
- QMapIterator<QString,QVariant> it(options);
- while (it.hasNext()) {
- it.next();
- QString option = it.key();
- QVariant value = it.value();
+ for (auto it = options.cbegin(), end = options.cend(); it != end; ++it) {
+ const QString &option = it.key();
+ const QVariant &value = it.value();
switch (value.type()) {
case QVariant::Int:
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp b/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp
index 62d9bbd8c..a2ed1d288 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp
@@ -195,11 +195,9 @@ GstElement *QGstreamerVideoEncode::createEncoder()
}
QMap<QString,QVariant> options = m_options.value(codec);
- QMapIterator<QString,QVariant> it(options);
- while (it.hasNext()) {
- it.next();
- QString option = it.key();
- QVariant value = it.value();
+ for (auto it = options.cbegin(), end = options.cend(); it != end; ++it) {
+ const QString &option = it.key();
+ const QVariant &value = it.value();
switch (value.type()) {
case QVariant::Int:
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
index 8f2f6643c..bd503d3a1 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
@@ -167,9 +167,8 @@ void QGstreamerMetaDataProvider::updateTags()
m_tags.clear();
bool changed = false;
- QMapIterator<QByteArray ,QVariant> i(m_session->tags());
- while (i.hasNext()) {
- i.next();
+ const auto tags = m_session->tags();
+ for (auto i = tags.cbegin(), end = tags.cend(); i != end; ++i) {
//use gstreamer native keys for elements not in our key map
QString key = qt_gstreamerMetaDataKeys()->value(i.key(), i.key());
m_tags.insert(key, i.value());
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
index 44cb5439b..4bf4a0a57 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
@@ -55,10 +55,6 @@
#include <private/qgstreamervideowindow_p.h>
#include <private/qgstreamervideorenderer_p.h>
-#if QT_CONFIG(mirclient) && defined (__arm__)
-#include "private/qgstreamermirtexturerenderer_p.h"
-#endif
-
#include "qgstreamerstreamscontrol.h"
#include <private/qgstreameraudioprobecontrol_p.h>
#include <private/qgstreamervideoprobecontrol_p.h>
@@ -79,13 +75,7 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent)
m_metaData = new QGstreamerMetaDataProvider(m_session, this);
m_streamsControl = new QGstreamerStreamsControl(m_session,this);
m_availabilityControl = new QGStreamerAvailabilityControl(m_control->resources(), this);
-
-#if QT_CONFIG(mirclient) && defined (__arm__)
- m_videoRenderer = new QGstreamerMirTextureRenderer(this, m_session);
-#else
m_videoRenderer = new QGstreamerVideoRenderer(this);
-#endif
-
m_videoWindow = new QGstreamerVideoWindow(this);
// If the GStreamer video sink is not available, don't provide the video window control since
// it won't work anyway.
diff --git a/src/plugins/m3u/qm3uhandler.cpp b/src/plugins/m3u/qm3uhandler.cpp
index bc5366bf6..017c32d92 100644
--- a/src/plugins/m3u/qm3uhandler.cpp
+++ b/src/plugins/m3u/qm3uhandler.cpp
@@ -163,7 +163,7 @@ public:
virtual bool writeItem(const QMediaContent& item)
{
- *m_textStream << item.canonicalUrl().toString() << endl;
+ *m_textStream << item.request().url().toString() << endl;
return true;
}
diff --git a/src/plugins/pulseaudio/qaudioinput_pulse.h b/src/plugins/pulseaudio/qaudioinput_pulse.h
index 32a2c031c..3a6cf03c4 100644
--- a/src/plugins/pulseaudio/qaudioinput_pulse.h
+++ b/src/plugins/pulseaudio/qaudioinput_pulse.h
@@ -55,7 +55,7 @@
#include <QtCore/qtimer.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
-#include <QtCore/qdatetime.h>
+#include <QtCore/qelapsedtimer.h>
#include <QtCore/qiodevice.h>
#include "qaudio.h"
@@ -132,8 +132,8 @@ private:
QTimer *m_timer;
qint64 m_elapsedTimeOffset;
pa_stream *m_stream;
- QTime m_timeStamp;
- QTime m_clockStamp;
+ QElapsedTimer m_timeStamp;
+ QElapsedTimer m_clockStamp;
QByteArray m_streamName;
QByteArray m_device;
QByteArray m_tempBuffer;
diff --git a/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp b/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
index c66ac937d..fc48ed818 100644
--- a/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
+++ b/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
@@ -230,7 +230,7 @@ void MmRendererMediaPlayerControl::attach()
}
}
- const QByteArray resourcePath = resourcePathForUrl(m_media.canonicalUrl());
+ const QByteArray resourcePath = resourcePathForUrl(m_media.request().url());
if (resourcePath.isEmpty()) {
detach();
return;
diff --git a/src/plugins/windowsaudio/qwindowsaudioinput.cpp b/src/plugins/windowsaudio/qwindowsaudioinput.cpp
index 717baaff0..3332e3067 100644
--- a/src/plugins/windowsaudio/qwindowsaudioinput.cpp
+++ b/src/plugins/windowsaudio/qwindowsaudioinput.cpp
@@ -52,6 +52,7 @@
#include "qwindowsaudioinput.h"
#include <QtCore/QDataStream>
+#include <QtCore/qtimer.h>
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/windowsaudio/qwindowsaudioinput.h b/src/plugins/windowsaudio/qwindowsaudioinput.h
index a0feae257..817176731 100644
--- a/src/plugins/windowsaudio/qwindowsaudioinput.h
+++ b/src/plugins/windowsaudio/qwindowsaudioinput.h
@@ -55,7 +55,7 @@
#include <QtCore/qfile.h>
#include <QtCore/qdebug.h>
-#include <QtCore/qtimer.h>
+#include <QtCore/qelapsedtimer.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qdatetime.h>
@@ -120,9 +120,9 @@ private:
QByteArray m_device;
int bytesAvailable;
int intervalTime;
- QTime timeStamp;
+ QElapsedTimer timeStamp;
qint64 elapsedTimeOffset;
- QTime timeStampOpened;
+ QElapsedTimer timeStampOpened;
qint64 totalTimeValue;
bool pullMode;
bool resuming;
diff --git a/src/plugins/windowsaudio/qwindowsaudiooutput.cpp b/src/plugins/windowsaudio/qwindowsaudiooutput.cpp
index f39e1694b..1182647fc 100644
--- a/src/plugins/windowsaudio/qwindowsaudiooutput.cpp
+++ b/src/plugins/windowsaudio/qwindowsaudiooutput.cpp
@@ -53,6 +53,7 @@
#include "qwindowsaudioutils.h"
#include <QtEndian>
#include <QtCore/QDataStream>
+#include <QtCore/qtimer.h>
#include <private/qaudiohelpers_p.h>
//#define DEBUG_AUDIO 1
diff --git a/src/plugins/windowsaudio/qwindowsaudiooutput.h b/src/plugins/windowsaudio/qwindowsaudiooutput.h
index 30ee1defe..d6e6998ec 100644
--- a/src/plugins/windowsaudio/qwindowsaudiooutput.h
+++ b/src/plugins/windowsaudio/qwindowsaudiooutput.h
@@ -54,7 +54,7 @@
#include "qwindowsaudioutils.h"
#include <QtCore/qdebug.h>
-#include <QtCore/qtimer.h>
+#include <QtCore/qelapsedtimer.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qdatetime.h>
@@ -118,9 +118,9 @@ private:
void pauseAndSleep();
QByteArray m_device;
int bytesAvailable;
- QTime timeStamp;
+ QElapsedTimer timeStamp;
qint64 elapsedTimeOffset;
- QTime timeStampOpened;
+ QElapsedTimer timeStampOpened;
qint32 buffer_size;
qint32 period_size;
qint32 blocks_count;
diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
index 779703392..ee916b750 100644
--- a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
+++ b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
@@ -759,20 +759,15 @@ void QWinRTMediaPlayerControl::setMedia(const QMediaContent &media, QIODevice *s
}
emit mediaChanged(media);
- QString urlString = media.canonicalUrl().toString();
+ QString urlString = media.request().url().toString();
if (!d->stream) {
// If we can read the file via Qt, use the byte stream approach
- const auto resources = media.resources();
- for (const QMediaResource &resource : resources) {
- const QUrl url = resource.url();
- if (url.isLocalFile()) {
- urlString = url.toLocalFile();
- QScopedPointer<QFile> file(new QFile(urlString));
- if (file->open(QFile::ReadOnly)) {
- file->setProperty(QT_WINRT_MEDIAPLAYER_STREAM_ID, true);
- d->stream.reset(file.take());
- break;
- }
+ if (media.request().url().isLocalFile()) {
+ urlString = media.request().url().toLocalFile();
+ QScopedPointer<QFile> file(new QFile(urlString));
+ if (file->open(QFile::ReadOnly)) {
+ file->setProperty(QT_WINRT_MEDIAPLAYER_STREAM_ID, true);
+ d->stream.reset(file.take());
}
}
}
diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index 9f909252d..10ba25998 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -197,7 +197,7 @@ void MFPlayerSession::load(const QMediaContent &media, QIODevice *stream)
qDebug() << "load";
#endif
clear();
- QUrl url = media.canonicalUrl();
+ QUrl url = media.request().url();
if (m_status == QMediaPlayer::LoadingMedia && m_sourceResolver)
m_sourceResolver->cancel();
diff --git a/src/plugins/wmf/player/mftvideo.cpp b/src/plugins/wmf/player/mftvideo.cpp
index 747fe6aea..879911d55 100644
--- a/src/plugins/wmf/player/mftvideo.cpp
+++ b/src/plugins/wmf/player/mftvideo.cpp
@@ -573,7 +573,7 @@ STDMETHODIMP MFTransform::ProcessOutput(DWORD dwFlags, DWORD cOutputBufferCount,
if (!m_videoProbes.isEmpty()) {
QVideoFrame frame = makeVideoFrame();
- foreach (MFVideoProbeControl* probe, m_videoProbes)
+ for (MFVideoProbeControl* probe : qAsConst(m_videoProbes))
probe->bufferProbed(frame);
}
m_videoProbeMutex.unlock();