summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gsttools/qgstreameraudioinputselector.cpp4
-rw-r--r--src/gsttools/qgstreamerbushelper.cpp4
-rw-r--r--src/gsttools/qgstutils.cpp32
-rw-r--r--src/gsttools/qgstvideorenderersink.cpp5
-rw-r--r--src/gsttools/qvideosurfacegstsink.cpp8
-rw-r--r--src/imports/audioengine/audioengine.cpp8
-rw-r--r--src/imports/audioengine/qaudioengine_openal_p.cpp6
-rw-r--r--src/imports/audioengine/qdeclarative_audioengine_p.cpp11
-rw-r--r--src/imports/multimedia/multimedia.cpp8
-rw-r--r--src/imports/multimedia/multimedia.pro5
-rw-r--r--src/imports/multimedia/qdeclarativecamera.cpp8
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing.cpp19
-rw-r--r--src/imports/multimedia/qdeclarativecameraimageprocessing_p.h4
-rw-r--r--src/imports/multimedia/qdeclarativeplaylist.cpp74
-rw-r--r--src/imports/multimedia/qdeclarativeplaylist_p.h4
-rw-r--r--src/multimedia/audio/qaudiodevicefactory.cpp6
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo.cpp12
-rw-r--r--src/multimedia/audio/qsamplecache_p.cpp14
-rw-r--r--src/multimedia/camera/qcamera.cpp18
-rw-r--r--src/multimedia/camera/qcameraexposure.cpp12
-rw-r--r--src/multimedia/camera/qcameraimageprocessing.cpp19
-rw-r--r--src/multimedia/camera/qcameraimageprocessing.h3
-rw-r--r--src/multimedia/playback/qmedianetworkplaylistprovider.cpp10
-rw-r--r--src/multimedia/playback/qmedianetworkplaylistprovider_p.h1
-rw-r--r--src/multimedia/playback/qmediaplaylist.cpp23
-rw-r--r--src/multimedia/playback/qmediaplaylist.h1
-rw-r--r--src/multimedia/playback/qmediaplaylistprovider.cpp16
-rw-r--r--src/multimedia/playback/qmediaplaylistprovider_p.h1
-rw-r--r--src/multimedia/playback/qmediaresource.cpp6
-rw-r--r--src/multimedia/qmediaobject.cpp2
-rw-r--r--src/multimedia/qmediapluginloader.cpp5
-rw-r--r--src/multimedia/qmediaserviceprovider.cpp38
-rw-r--r--src/multimedia/qmediastoragelocation.cpp5
-rw-r--r--src/multimedia/qmediatimerange.cpp9
-rw-r--r--src/multimedia/video/qvideosurfaceformat.cpp3
-rw-r--r--src/multimediawidgets/qgraphicsvideoitem_maemo6.cpp4
-rw-r--r--src/plugins/android/src/mediacapture/qandroidcamerasession.cpp2
-rw-r--r--src/plugins/audiocapture/audiocapturesession.cpp7
-rw-r--r--src/plugins/avfoundation/avfoundation.pro4
-rw-r--r--src/plugins/avfoundation/camera/avfcameraserviceplugin.mm3
-rw-r--r--src/plugins/avfoundation/camera/avfcamerasession.mm2
-rw-r--r--src/plugins/avfoundation/camera/avfstoragelocation.mm5
-rw-r--r--src/plugins/avfoundation/mediaplayer/avfdisplaylink.h4
-rw-r--r--src/plugins/avfoundation/mediaplayer/avfdisplaylink.mm14
-rw-r--r--src/plugins/avfoundation/mediaplayer/avfmediaplayerservice.mm2
-rw-r--r--src/plugins/avfoundation/mediaplayer/avfvideoframerenderer_ios.h2
-rw-r--r--src/plugins/avfoundation/mediaplayer/avfvideorenderercontrol.mm12
-rw-r--r--src/plugins/avfoundation/mediaplayer/mediaplayer.pro7
-rw-r--r--src/plugins/coreaudio/coreaudio.pro4
-rw-r--r--src/plugins/coreaudio/coreaudiodeviceinfo.mm2
-rw-r--r--src/plugins/coreaudio/coreaudioinput.mm2
-rw-r--r--src/plugins/coreaudio/coreaudiooutput.mm4
-rw-r--r--src/plugins/coreaudio/coreaudiosessionmanager.mm4
-rw-r--r--src/plugins/directshow/camera/dscamerasession.cpp8
-rw-r--r--src/plugins/directshow/dsserviceplugin.cpp4
-rw-r--r--src/plugins/directshow/player/directshowaudioendpointcontrol.cpp2
-rw-r--r--src/plugins/directshow/player/directshowmetadatacontrol.cpp3
-rw-r--r--src/plugins/directshow/player/directshowpinenum.cpp4
-rw-r--r--src/plugins/directshow/player/videosurfacefilter.cpp4
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincontainer.cpp4
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinfocus.cpp4
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinmetadata.cpp13
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinrecorder.cpp2
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinresourcepolicy.cpp16
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.cpp8
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp6
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp2
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp4
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamerimagecapturecontrol.cpp3
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamermediacontainercontrol.cpp2
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp11
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamerv4l2input.cpp14
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp4
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp3
-rw-r--r--src/plugins/m3u/qm3uhandler.cpp2
-rw-r--r--src/plugins/qnx/camera/bbcamerasession.cpp4
-rw-r--r--src/plugins/qnx/camera/bbmediastoragelocation.cpp5
-rw-r--r--src/plugins/qnx/mediaplayer/mmrenderervideowindowcontrol.cpp3
-rw-r--r--src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp3
-rw-r--r--src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp8
-rw-r--r--src/plugins/winrt/qwinrtcameracontrol.cpp2
-rw-r--r--src/plugins/winrt/qwinrtimageencodercontrol.cpp2
-rw-r--r--src/plugins/winrt/qwinrtmediaplayercontrol.cpp3
-rw-r--r--src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp11
-rw-r--r--src/plugins/wmf/decoder/mfaudiodecodercontrol.cpp4
-rw-r--r--src/plugins/wmf/mftvideo.cpp9
-rw-r--r--src/plugins/wmf/player/mfaudioendpointcontrol.cpp4
-rw-r--r--src/plugins/wmf/player/mfvideorenderercontrol.cpp10
-rw-r--r--src/plugins/wmf/samplegrabber.cpp2
-rw-r--r--src/qtmultimediaquicktools/qdeclarativevideooutput.cpp3
-rw-r--r--src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp9
91 files changed, 474 insertions, 219 deletions
diff --git a/src/gsttools/qgstreameraudioinputselector.cpp b/src/gsttools/qgstreameraudioinputselector.cpp
index 52587e075..565b6c44a 100644
--- a/src/gsttools/qgstreameraudioinputselector.cpp
+++ b/src/gsttools/qgstreameraudioinputselector.cpp
@@ -145,8 +145,8 @@ void QGstreamerAudioInputSelector::updateOssDevices()
{
QDir devDir("/dev");
devDir.setFilter(QDir::System);
- QFileInfoList entries = devDir.entryInfoList(QStringList() << "dsp*");
- foreach(const QFileInfo& entryInfo, entries) {
+ const QFileInfoList entries = devDir.entryInfoList(QStringList() << "dsp*");
+ for (const QFileInfo& entryInfo : entries) {
m_names.append(QLatin1String("oss:")+entryInfo.filePath());
m_descriptions.append(QString("OSS device %1").arg(entryInfo.fileName()));
}
diff --git a/src/gsttools/qgstreamerbushelper.cpp b/src/gsttools/qgstreamerbushelper.cpp
index 7db62b83c..243a21611 100644
--- a/src/gsttools/qgstreamerbushelper.cpp
+++ b/src/gsttools/qgstreamerbushelper.cpp
@@ -117,7 +117,7 @@ private:
private slots:
void doProcessMessage(const QGstreamerMessage& msg)
{
- foreach (QGstreamerBusMessageFilter *filter, busFilters) {
+ for (QGstreamerBusMessageFilter *filter : qAsConst(busFilters)) {
if (filter->processBusMessage(msg))
break;
}
@@ -136,7 +136,7 @@ static GstBusSyncReply syncGstBusFilter(GstBus* bus, GstMessage* message, QGstre
Q_UNUSED(bus);
QMutexLocker lock(&d->filterMutex);
- foreach (QGstreamerSyncMessageFilter *filter, d->syncFilters) {
+ for (QGstreamerSyncMessageFilter *filter : qAsConst(d->syncFilters)) {
if (filter->processSyncMessage(QGstreamerMessage(message)))
return GST_BUS_DROP;
}
diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp
index b9e04e3f1..0b84e16ee 100644
--- a/src/gsttools/qgstutils.cpp
+++ b/src/gsttools/qgstutils.cpp
@@ -480,7 +480,7 @@ QMultimedia::SupportEstimate QGstUtils::hasSupport(const QString &mimeType,
}
int supportedCodecCount = 0;
- foreach (const QString &codec, codecs) {
+ for (const QString &codec : codecs) {
QString codecLowcase = codec.toLower();
const char* codecAlias = getCodecAlias(codecLowcase);
if (codecAlias) {
@@ -583,10 +583,10 @@ QVector<QGstUtils::CameraInfo> QGstUtils::enumerateCameras(GstElementFactory *fa
QDir devDir(QStringLiteral("/dev"));
devDir.setFilter(QDir::System);
- QFileInfoList entries = devDir.entryInfoList(QStringList()
+ const QFileInfoList entries = devDir.entryInfoList(QStringList()
<< QStringLiteral("video*"));
- foreach (const QFileInfo &entryInfo, entries) {
+ for (const QFileInfo &entryInfo : entries) {
//qDebug() << "Try" << entryInfo.filePath();
int fd = qt_safe_open(entryInfo.filePath().toLatin1().constData(), O_RDWR );
@@ -643,7 +643,9 @@ QList<QByteArray> QGstUtils::cameraDevices(GstElementFactory * factory)
{
QList<QByteArray> devices;
- foreach (const CameraInfo &camera, enumerateCameras(factory))
+ const auto cameras = enumerateCameras(factory);
+ devices.reserve(cameras.size());
+ for (const CameraInfo &camera : cameras)
devices.append(camera.name.toUtf8());
return devices;
@@ -651,7 +653,8 @@ QList<QByteArray> QGstUtils::cameraDevices(GstElementFactory * factory)
QString QGstUtils::cameraDescription(const QString &device, GstElementFactory * factory)
{
- foreach (const CameraInfo &camera, enumerateCameras(factory)) {
+ const auto cameras = enumerateCameras(factory);
+ for (const CameraInfo &camera : cameras) {
if (camera.name == device)
return camera.description;
}
@@ -660,7 +663,8 @@ QString QGstUtils::cameraDescription(const QString &device, GstElementFactory *
QCamera::Position QGstUtils::cameraPosition(const QString &device, GstElementFactory * factory)
{
- foreach (const CameraInfo &camera, enumerateCameras(factory)) {
+ const auto cameras = enumerateCameras(factory);
+ for (const CameraInfo &camera : cameras) {
if (camera.name == device)
return camera.position;
}
@@ -669,7 +673,8 @@ QCamera::Position QGstUtils::cameraPosition(const QString &device, GstElementFac
int QGstUtils::cameraOrientation(const QString &device, GstElementFactory * factory)
{
- foreach (const CameraInfo &camera, enumerateCameras(factory)) {
+ const auto cameras = enumerateCameras(factory);
+ for (const CameraInfo &camera : cameras) {
if (camera.name == device)
return camera.orientation;
}
@@ -678,7 +683,8 @@ int QGstUtils::cameraOrientation(const QString &device, GstElementFactory * fact
QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *factory)
{
- foreach (const CameraInfo &camera, enumerateCameras(factory)) {
+ const auto cameras = enumerateCameras(factory);
+ for (const CameraInfo &camera : cameras) {
if (camera.name == device)
return camera.driver;
}
@@ -749,8 +755,8 @@ QSet<QString> QGstUtils::supportedMimeTypes(bool (*isValidFactory)(GstElementFac
if (value) {
gchar *str = gst_value_serialize(value);
QString versions(str);
- QStringList elements = versions.split(QRegExp("\\D+"), QString::SkipEmptyParts);
- foreach (const QString &e, elements)
+ const QStringList elements = versions.split(QRegExp("\\D+"), QString::SkipEmptyParts);
+ for (const QString &e : elements)
supportedMimeTypes.insert(nameLowcase + e);
g_free(str);
}
@@ -768,7 +774,7 @@ QSet<QString> QGstUtils::supportedMimeTypes(bool (*isValidFactory)(GstElementFac
QStringList list = supportedMimeTypes.toList();
list.sort();
if (qgetenv("QT_DEBUG_PLUGINS").toInt() > 0) {
- foreach (const QString &type, list)
+ for (const QString &type : qAsConst(list))
qDebug() << type;
}
#endif
@@ -1110,7 +1116,7 @@ GstCaps *QGstUtils::capsForFormats(const QList<QVideoFrame::PixelFormat> &format
GstCaps *caps = gst_caps_new_empty();
#if GST_CHECK_VERSION(1,0,0)
- foreach (QVideoFrame::PixelFormat format, formats) {
+ for (QVideoFrame::PixelFormat format : formats) {
int index = indexOfVideoFormat(format);
if (index != -1) {
@@ -1121,7 +1127,7 @@ GstCaps *QGstUtils::capsForFormats(const QList<QVideoFrame::PixelFormat> &format
}
}
#else
- foreach (QVideoFrame::PixelFormat format, formats) {
+ for (QVideoFrame::PixelFormat format : formats) {
int index = indexOfYuvColor(format);
if (index != -1) {
diff --git a/src/gsttools/qgstvideorenderersink.cpp b/src/gsttools/qgstvideorenderersink.cpp
index 31ac94e86..8f71e4ac7 100644
--- a/src/gsttools/qgstvideorenderersink.cpp
+++ b/src/gsttools/qgstvideorenderersink.cpp
@@ -119,7 +119,8 @@ QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate(QAbstractVideoSurface *surfac
, m_stop(false)
, m_flush(false)
{
- foreach (QObject *instance, rendererLoader()->instances(QGstVideoRendererPluginKey)) {
+ const auto instances = rendererLoader()->instances(QGstVideoRendererPluginKey);
+ for (QObject *instance : instances) {
QGstVideoRendererInterface* plugin = qobject_cast<QGstVideoRendererInterface*>(instance);
if (QGstVideoRenderer *renderer = plugin ? plugin->createRenderer() : 0)
m_renderers.append(renderer);
@@ -369,7 +370,7 @@ void QVideoSurfaceGstDelegate::updateSupportedFormats()
m_surfaceCaps = 0;
}
- foreach (QGstVideoRenderer *pool, m_renderers) {
+ for (QGstVideoRenderer *pool : qAsConst(m_renderers)) {
if (GstCaps *caps = pool->getCaps(m_surface)) {
if (gst_caps_is_empty(caps)) {
gst_caps_unref(caps);
diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp
index d59709723..2f61770ce 100644
--- a/src/gsttools/qvideosurfacegstsink.cpp
+++ b/src/gsttools/qvideosurfacegstsink.cpp
@@ -65,7 +65,8 @@ QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate(
, m_startCanceled(false)
{
if (m_surface) {
- foreach (QObject *instance, bufferPoolLoader()->instances(QGstBufferPoolPluginKey)) {
+ const auto instances = bufferPoolLoader()->instances(QGstBufferPoolPluginKey);
+ for (QObject *instance : instances) {
QGstBufferPoolInterface* plugin = qobject_cast<QGstBufferPoolInterface*>(instance);
if (plugin) {
@@ -302,7 +303,7 @@ void QVideoSurfaceGstDelegate::queuedRender()
void QVideoSurfaceGstDelegate::updateSupportedFormats()
{
QGstBufferPoolInterface *newPool = 0;
- foreach (QGstBufferPoolInterface *pool, m_pools) {
+ for (QGstBufferPoolInterface *pool : qAsConst(m_pools)) {
if (!m_surface->supportedPixelFormats(pool->handleType()).isEmpty()) {
newPool = pool;
break;
@@ -503,7 +504,8 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
sink->delegate->poolMutex()->unlock();
supportedFormats = poolHandleFormats;
- foreach (QVideoFrame::PixelFormat format, sink->delegate->supportedPixelFormats()) {
+ const auto supportedPixelFormats = sink->delegate->supportedPixelFormats();
+ for (QVideoFrame::PixelFormat format : supportedPixelFormats) {
if (!poolHandleFormats.contains(format))
supportedFormats.append(format);
}
diff --git a/src/imports/audioengine/audioengine.cpp b/src/imports/audioengine/audioengine.cpp
index aa2d195c5..6dc0b83e7 100644
--- a/src/imports/audioengine/audioengine.cpp
+++ b/src/imports/audioengine/audioengine.cpp
@@ -45,6 +45,13 @@
#include "qdeclarative_audiosample_p.h"
#include "qdeclarative_attenuationmodel_p.h"
+static void initResources()
+{
+#ifdef QT_STATIC
+ Q_INIT_RESOURCE(qmake_QtAudioEngine);
+#endif
+}
+
QT_BEGIN_NAMESPACE
class QAudioEngineDeclarativeModule : public QQmlExtensionPlugin
@@ -53,6 +60,7 @@ class QAudioEngineDeclarativeModule : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
public:
+ QAudioEngineDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
virtual void registerTypes(const char *uri)
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtAudioEngine"));
diff --git a/src/imports/audioengine/qaudioengine_openal_p.cpp b/src/imports/audioengine/qaudioengine_openal_p.cpp
index 839a584c5..fd9b1da1f 100644
--- a/src/imports/audioengine/qaudioengine_openal_p.cpp
+++ b/src/imports/audioengine/qaudioengine_openal_p.cpp
@@ -235,15 +235,15 @@ QAudioEnginePrivate::~QAudioEnginePrivate()
#ifdef DEBUG_AUDIOENGINE
qDebug() << "QAudioEnginePrivate::dtor";
#endif
- QObjectList children = this->children();
- foreach (QObject *child, children) {
+ const QObjectList children = this->children();
+ for (QObject *child : children) {
QSoundSourcePrivate* s = qobject_cast<QSoundSourcePrivate*>(child);
if (!s)
continue;
s->release();
}
- foreach (QSoundBufferPrivateAL *buffer, m_staticBufferPool) {
+ for (QSoundBufferPrivateAL *buffer : qAsConst(m_staticBufferPool)) {
delete buffer;
}
m_staticBufferPool.clear();
diff --git a/src/imports/audioengine/qdeclarative_audioengine_p.cpp b/src/imports/audioengine/qdeclarative_audioengine_p.cpp
index dd80c698d..78e759be2 100644
--- a/src/imports/audioengine/qdeclarative_audioengine_p.cpp
+++ b/src/imports/audioengine/qdeclarative_audioengine_p.cpp
@@ -247,7 +247,8 @@ void QDeclarativeAudioEngine::initSound(QDeclarativeSound *sound)
}
sound->setAttenuationModelObject(attenuationModel);
- foreach (QDeclarativePlayVariation *playVariation, sound->playlist()) {
+ const auto playList = sound->playlist();
+ for (QDeclarativePlayVariation *playVariation : playList) {
if (m_samples.contains(playVariation->sample())) {
playVariation->setSampleObject(
qobject_cast<QDeclarativeAudioSample*>(
@@ -454,7 +455,8 @@ void QDeclarativeAudioEngine::componentComplete()
#ifdef DEBUG_AUDIOENGINE
qDebug() << "init samples" << m_samples.keys().count();
#endif
- foreach (const QString& key, m_samples.keys()) {
+ const auto samplesKeys = m_samples.keys();
+ for (const QString& key : samplesKeys) {
QDeclarativeAudioSample *sample = qobject_cast<QDeclarativeAudioSample*>(
qvariant_cast<QObject*>(m_samples[key]));
if (!sample) {
@@ -468,7 +470,8 @@ void QDeclarativeAudioEngine::componentComplete()
#ifdef DEBUG_AUDIOENGINE
qDebug() << "init sounds" << m_sounds.keys().count();
#endif
- foreach (const QString& key, m_sounds.keys()) {
+ const auto soundsKeys = m_sounds.keys();
+ for (const QString& key : soundsKeys) {
QDeclarativeSound *sound = qobject_cast<QDeclarativeSound*>(
qvariant_cast<QObject*>(m_sounds[key]));
@@ -504,7 +507,7 @@ void QDeclarativeAudioEngine::updateSoundInstances()
}
QVector3D listenerPosition = this->listener()->position();
- foreach (QSoundInstance *instance, m_activeSoundInstances) {
+ for (QSoundInstance *instance : qAsConst(m_activeSoundInstances)) {
if (instance->state() == QSoundInstance::PlayingState
&& instance->attenuationEnabled()) {
instance->update3DVolume(listenerPosition);
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp
index 7d34672a1..a143d34fa 100644
--- a/src/imports/multimedia/multimedia.cpp
+++ b/src/imports/multimedia/multimedia.cpp
@@ -57,6 +57,13 @@
QML_DECLARE_TYPE(QSoundEffect)
+static void initResources()
+{
+#ifdef QT_STATIC
+ Q_INIT_RESOURCE(qmake_QtMultimedia);
+#endif
+}
+
QT_BEGIN_NAMESPACE
static QObject *multimedia_global_object(QQmlEngine *qmlEngine, QJSEngine *jsEngine)
@@ -71,6 +78,7 @@ class QMultimediaDeclarativeModule : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
public:
+ QMultimediaDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
virtual void registerTypes(const char *uri)
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtMultimedia"));
diff --git a/src/imports/multimedia/multimedia.pro b/src/imports/multimedia/multimedia.pro
index 606fb3966..dabb0a4ba 100644
--- a/src/imports/multimedia/multimedia.pro
+++ b/src/imports/multimedia/multimedia.pro
@@ -1,3 +1,8 @@
+CXX_MODULE = multimedia
+TARGET = declarative_multimedia
+TARGETPATH = QtMultimedia
+IMPORT_VERSION = 5.6
+
QT += qml quick network multimedia-private qtmultimediaquicktools-private
HEADERS += \
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp
index eac1c0c9b..368b1f036 100644
--- a/src/imports/multimedia/qdeclarativecamera.cpp
+++ b/src/imports/multimedia/qdeclarativecamera.cpp
@@ -982,11 +982,11 @@ QJSValue QDeclarativeCamera::supportedViewfinderResolutions(qreal minimumFrameRa
QCameraViewfinderSettings settings;
settings.setMinimumFrameRate(minimumFrameRate);
settings.setMaximumFrameRate(maximumFrameRate);
- QList<QSize> resolutions = m_camera->supportedViewfinderResolutions(settings);
+ const QList<QSize> resolutions = m_camera->supportedViewfinderResolutions(settings);
QJSValue supportedResolutions = engine->newArray(resolutions.count());
int i = 0;
- Q_FOREACH (const QSize &resolution, resolutions) {
+ for (const QSize &resolution : resolutions) {
QJSValue size = engine->newObject();
size.setProperty(QStringLiteral("width"), resolution.width());
size.setProperty(QStringLiteral("height"), resolution.height());
@@ -1024,11 +1024,11 @@ QJSValue QDeclarativeCamera::supportedViewfinderFrameRateRanges(const QJSValue &
if (width.isNumber() && height.isNumber())
settings.setResolution(width.toInt(), height.toInt());
}
- QList<QCamera::FrameRateRange> frameRateRanges = m_camera->supportedViewfinderFrameRateRanges(settings);
+ const QList<QCamera::FrameRateRange> frameRateRanges = m_camera->supportedViewfinderFrameRateRanges(settings);
QJSValue supportedFrameRateRanges = engine->newArray(frameRateRanges.count());
int i = 0;
- Q_FOREACH (const QCamera::FrameRateRange &frameRateRange, frameRateRanges) {
+ for (const QCamera::FrameRateRange &frameRateRange : frameRateRanges) {
QJSValue range = engine->newObject();
range.setProperty(QStringLiteral("minimumFrameRate"), frameRateRange.minimumFrameRate);
range.setProperty(QStringLiteral("maximumFrameRate"), frameRateRange.maximumFrameRate);
diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
index de5aee85b..f6fbe9fc4 100644
--- a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
+++ b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp
@@ -138,6 +138,25 @@ void QDeclarativeCameraImageProcessing::setManualWhiteBalance(qreal colorTemp) c
}
/*!
+ \qmlproperty qreal QtMultimedia::CameraImageProcessing::brightness
+
+ Image brightness adjustment.
+ Valid brightness adjustment values range between -1.0 and 1.0, with a default of 0.
+*/
+qreal QDeclarativeCameraImageProcessing::brightness() const
+{
+ return m_imageProcessing->brightness();
+}
+
+void QDeclarativeCameraImageProcessing::setBrightness(qreal value)
+{
+ if (value != brightness()) {
+ m_imageProcessing->setBrightness(value);
+ emit brightnessChanged(brightness());
+ }
+}
+
+/*!
\qmlproperty qreal QtMultimedia::CameraImageProcessing::contrast
Image contrast adjustment.
diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
index 0e0cbb230..2e6c942ef 100644
--- a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
+++ b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h
@@ -60,6 +60,7 @@ class QDeclarativeCameraImageProcessing : public QObject
Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged)
Q_PROPERTY(qreal manualWhiteBalance READ manualWhiteBalance WRITE setManualWhiteBalance NOTIFY manualWhiteBalanceChanged)
+ Q_PROPERTY(qreal brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
Q_PROPERTY(qreal contrast READ contrast WRITE setContrast NOTIFY contrastChanged)
Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY saturationChanged)
Q_PROPERTY(qreal sharpeningLevel READ sharpeningLevel WRITE setSharpeningLevel NOTIFY sharpeningLevelChanged)
@@ -97,6 +98,7 @@ public:
WhiteBalanceMode whiteBalanceMode() const;
qreal manualWhiteBalance() const;
+ qreal brightness() const;
qreal contrast() const;
qreal saturation() const;
qreal sharpeningLevel() const;
@@ -108,6 +110,7 @@ public Q_SLOTS:
void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const;
void setManualWhiteBalance(qreal colorTemp) const;
+ void setBrightness(qreal value);
void setContrast(qreal value);
void setSaturation(qreal value);
void setSharpeningLevel(qreal value);
@@ -119,6 +122,7 @@ Q_SIGNALS:
void whiteBalanceModeChanged(QDeclarativeCameraImageProcessing::WhiteBalanceMode) const;
void manualWhiteBalanceChanged(qreal) const;
+ void brightnessChanged(qreal);
void contrastChanged(qreal);
void saturationChanged(qreal);
void sharpeningLevelChanged(qreal);
diff --git a/src/imports/multimedia/qdeclarativeplaylist.cpp b/src/imports/multimedia/qdeclarativeplaylist.cpp
index bb785aa98..75be64b81 100644
--- a/src/imports/multimedia/qdeclarativeplaylist.cpp
+++ b/src/imports/multimedia/qdeclarativeplaylist.cpp
@@ -421,6 +421,29 @@ bool QDeclarativePlaylist::addItem(const QUrl &source)
}
/*!
+ \qmlmethod bool QtMultimedia::Playlist::addItems(sources)
+
+ Appends the list of URLs in \a sources to the playlist.
+
+ Returns true if the \a sources are added successfully.
+
+ \since 5.7
+*/
+bool QDeclarativePlaylist::addItems(const QList<QUrl> &sources)
+{
+ if (sources.isEmpty())
+ return false;
+
+ QList<QMediaContent> contents;
+ QList<QUrl>::const_iterator it = sources.constBegin();
+ while (it != sources.constEnd()) {
+ contents.push_back(QMediaContent(*it));
+ ++it;
+ }
+ return m_playlist->addMedia(contents);
+}
+
+/*!
\qmlmethod bool QtMultimedia::Playlist::insertItem(index, source)
Inserts the \a source URL to the playlist at the given \a index.
@@ -433,6 +456,43 @@ bool QDeclarativePlaylist::insertItem(int index, const QUrl &source)
}
/*!
+ \qmlmethod bool QtMultimedia::Playlist::insertItems(index, sources)
+
+ Inserts the list of URLs in \a sources to the playlist at the given \a index.
+
+ Returns true if the \a sources are added successfully.
+
+ \since 5.7
+*/
+bool QDeclarativePlaylist::insertItems(int index, const QList<QUrl> &sources)
+{
+ if (sources.empty())
+ return false;
+
+ QList<QMediaContent> contents;
+ QList<QUrl>::const_iterator it = sources.constBegin();
+ while (it != sources.constEnd()) {
+ contents.push_back(QMediaContent(*it));
+ ++it;
+ }
+ return m_playlist->insertMedia(index, contents);
+}
+
+/*!
+ \qmlmethod bool QtMultimedia::Playlist::moveItem(from, to)
+
+ Moves the item at index position \a from to index position \a to.
+
+ Returns true if the item is moved successfully.
+
+ \since 5.7
+*/
+bool QDeclarativePlaylist::moveItem(int from, int to)
+{
+ return m_playlist->moveMedia(from, to);
+}
+
+/*!
\qmlmethod bool QtMultimedia::Playlist::removeItem(index)
Removed the item at the given \a index from the playlist.
@@ -445,6 +505,20 @@ bool QDeclarativePlaylist::removeItem(int index)
}
/*!
+ \qmlmethod bool QtMultimedia::Playlist::removeItems(int start, int end)
+
+ Removes items in the playlist from \a start to \end inclusive.
+
+ Returns true if the items are removed successfully.
+
+ \since 5.7
+*/
+bool QDeclarativePlaylist::removeItems(int start, int end)
+{
+ return m_playlist->removeMedia(start, end);
+}
+
+/*!
\qmlmethod bool QtMultimedia::Playlist::clear()
Removes all the items from the playlist.
diff --git a/src/imports/multimedia/qdeclarativeplaylist_p.h b/src/imports/multimedia/qdeclarativeplaylist_p.h
index fd94135e6..66674ebb7 100644
--- a/src/imports/multimedia/qdeclarativeplaylist_p.h
+++ b/src/imports/multimedia/qdeclarativeplaylist_p.h
@@ -152,8 +152,12 @@ public Q_SLOTS:
void load(const QUrl &location, const QString &format = QString());
bool save(const QUrl &location, const QString &format = QString());
bool addItem(const QUrl &source);
+ bool addItems(const QList<QUrl> &sources);
bool insertItem(int index, const QUrl &source);
+ bool insertItems(int index, const QList<QUrl> &sources);
+ bool moveItem(int from, int to);
bool removeItem(int index);
+ bool removeItems(int start, int end);
bool clear();
Q_SIGNALS:
diff --git a/src/multimedia/audio/qaudiodevicefactory.cpp b/src/multimedia/audio/qaudiodevicefactory.cpp
index 19fa05e6e..bff3d6c37 100644
--- a/src/multimedia/audio/qaudiodevicefactory.cpp
+++ b/src/multimedia/audio/qaudiodevicefactory.cpp
@@ -119,10 +119,12 @@ QList<QAudioDeviceInfo> QAudioDeviceFactory::availableDevices(QAudio::Mode mode)
QList<QAudioDeviceInfo> devices;
#if !defined (QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS)
QMediaPluginLoader* l = audioLoader();
- foreach (const QString& key, l->keys()) {
+ const auto keys = l->keys();
+ for (const QString& key : keys) {
QAudioSystemFactoryInterface* plugin = qobject_cast<QAudioSystemFactoryInterface*>(l->instance(key));
if (plugin) {
- foreach (QByteArray const& handle, plugin->availableDevices(mode))
+ const auto availableDevices = plugin->availableDevices(mode);
+ for (const QByteArray& handle : availableDevices)
devices << QAudioDeviceInfo(key, handle, mode);
}
}
diff --git a/src/multimedia/audio/qaudiodeviceinfo.cpp b/src/multimedia/audio/qaudiodeviceinfo.cpp
index 33e198164..8cc32ac9b 100644
--- a/src/multimedia/audio/qaudiodeviceinfo.cpp
+++ b/src/multimedia/audio/qaudiodeviceinfo.cpp
@@ -297,7 +297,7 @@ QAudioFormat QAudioDeviceInfo::nearestFormat(const QAudioFormat &settings) const
if (sampleSizesAvailable.contains(settings.sampleSize()))
testSampleSizes.insert(0,settings.sampleSize());
sampleSizesAvailable.removeAll(settings.sampleSize());
- foreach (int size, sampleSizesAvailable) {
+ for (int size : qAsConst(sampleSizesAvailable)) {
int larger = (size > settings.sampleSize()) ? size : settings.sampleSize();
int smaller = (size > settings.sampleSize()) ? settings.sampleSize() : size;
bool isMultiple = ( 0 == (larger % smaller));
@@ -307,7 +307,7 @@ QAudioFormat QAudioDeviceInfo::nearestFormat(const QAudioFormat &settings) const
if (sampleRatesAvailable.contains(settings.sampleRate()))
testSampleRates.insert(0,settings.sampleRate());
sampleRatesAvailable.removeAll(settings.sampleRate());
- foreach (int sampleRate, sampleRatesAvailable) {
+ for (int sampleRate : qAsConst(sampleRatesAvailable)) {
int larger = (sampleRate > settings.sampleRate()) ? sampleRate : settings.sampleRate();
int smaller = (sampleRate > settings.sampleRate()) ? settings.sampleRate() : sampleRate;
bool isMultiple = ( 0 == (larger % smaller));
@@ -316,17 +316,17 @@ QAudioFormat QAudioDeviceInfo::nearestFormat(const QAudioFormat &settings) const
}
// Try to find nearest
- foreach (QString codec, testCodecs) {
+ for (const QString &codec : qAsConst(testCodecs)) {
nearest.setCodec(codec);
- foreach (QAudioFormat::Endian order, testByteOrders) {
+ for (QAudioFormat::Endian order : qAsConst(testByteOrders)) {
nearest.setByteOrder(order);
- foreach (QAudioFormat::SampleType sample, testSampleTypes) {
+ for (QAudioFormat::SampleType sample : qAsConst(testSampleTypes)) {
nearest.setSampleType(sample);
QMapIterator<int, int> sz(testSampleSizes);
while (sz.hasNext()) {
sz.next();
nearest.setSampleSize(sz.value());
- foreach (int channel, testChannels) {
+ for (int channel : qAsConst(testChannels)) {
nearest.setChannelCount(channel);
QMapIterator<int, int> i(testSampleRates);
while (i.hasNext()) {
diff --git a/src/multimedia/audio/qsamplecache_p.cpp b/src/multimedia/audio/qsamplecache_p.cpp
index 8043b770c..23c970405 100644
--- a/src/multimedia/audio/qsamplecache_p.cpp
+++ b/src/multimedia/audio/qsamplecache_p.cpp
@@ -119,11 +119,12 @@ QSampleCache::~QSampleCache()
// Killing the loading thread means that no samples can be
// deleted using deleteLater. And some samples that had deleteLater
// already called won't have been processed (m_staleSamples)
- foreach (QSample* sample, m_samples)
- delete sample;
+ for (auto it = m_samples.cbegin(), end = m_samples.cend(); it != end; ++it)
+ delete it.value();
- foreach (QSample* sample, m_staleSamples)
- delete sample; // deleting a sample does affect the m_staleSamples list, but foreach copies it
+ const auto copyStaleSamples = m_staleSamples; //deleting a sample does affect the m_staleSamples list, but we create a copy
+ for (QSample* sample : copyStaleSamples)
+ delete sample;
m_networkAccessManager->deleteLater();
}
@@ -194,8 +195,9 @@ void QSampleCache::setCapacity(qint64 capacity)
if (sample->m_ref == 0) {
unloadSample(sample);
it = m_samples.erase(it);
- } else
- it++;
+ } else {
+ ++it;
+ }
}
}
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp
index bec894b75..edda3cfbe 100644
--- a/src/multimedia/camera/qcamera.cpp
+++ b/src/multimedia/camera/qcamera.cpp
@@ -275,7 +275,7 @@ void QCameraPrivate::updateLockStatus()
lockStatuses << q->lockStatus(QCamera::LockWhiteBalance);
- foreach (QCamera::LockStatus currentStatus, lockStatuses) {
+ for (QCamera::LockStatus currentStatus : qAsConst(lockStatuses)) {
int currentPriority = lockStatusPriority.value(currentStatus, -1);
if (currentPriority > priority) {
priority = currentPriority;
@@ -655,8 +655,8 @@ QList<QCameraViewfinderSettings> QCamera::supportedViewfinderSettings(const QCam
return d->viewfinderSettingsControl2->supportedViewfinderSettings();
QList<QCameraViewfinderSettings> results;
- QList<QCameraViewfinderSettings> supported = d->viewfinderSettingsControl2->supportedViewfinderSettings();
- Q_FOREACH (const QCameraViewfinderSettings &s, supported) {
+ const QList<QCameraViewfinderSettings> supported = d->viewfinderSettingsControl2->supportedViewfinderSettings();
+ for (const QCameraViewfinderSettings &s : supported) {
if ((settings.resolution().isEmpty() || settings.resolution() == s.resolution())
&& (qFuzzyIsNull(settings.minimumFrameRate()) || qFuzzyCompare((float)settings.minimumFrameRate(), (float)s.minimumFrameRate()))
&& (qFuzzyIsNull(settings.maximumFrameRate()) || qFuzzyCompare((float)settings.maximumFrameRate(), (float)s.maximumFrameRate()))
@@ -687,8 +687,8 @@ QList<QCameraViewfinderSettings> QCamera::supportedViewfinderSettings(const QCam
QList<QSize> QCamera::supportedViewfinderResolutions(const QCameraViewfinderSettings &settings) const
{
QList<QSize> resolutions;
- QList<QCameraViewfinderSettings> capabilities = supportedViewfinderSettings(settings);
- Q_FOREACH (const QCameraViewfinderSettings &s, capabilities) {
+ const QList<QCameraViewfinderSettings> capabilities = supportedViewfinderSettings(settings);
+ for (const QCameraViewfinderSettings &s : capabilities) {
if (!resolutions.contains(s.resolution()))
resolutions.append(s.resolution());
}
@@ -716,8 +716,8 @@ QList<QSize> QCamera::supportedViewfinderResolutions(const QCameraViewfinderSett
QList<QCamera::FrameRateRange> QCamera::supportedViewfinderFrameRateRanges(const QCameraViewfinderSettings &settings) const
{
QList<QCamera::FrameRateRange> frameRateRanges;
- QList<QCameraViewfinderSettings> capabilities = supportedViewfinderSettings(settings);
- Q_FOREACH (const QCameraViewfinderSettings &s, capabilities) {
+ const QList<QCameraViewfinderSettings> capabilities = supportedViewfinderSettings(settings);
+ for (const QCameraViewfinderSettings &s : capabilities) {
QCamera::FrameRateRange range(s.minimumFrameRate(), s.maximumFrameRate());
if (!frameRateRanges.contains(range))
frameRateRanges.append(range);
@@ -745,8 +745,8 @@ QList<QCamera::FrameRateRange> QCamera::supportedViewfinderFrameRateRanges(const
QList<QVideoFrame::PixelFormat> QCamera::supportedViewfinderPixelFormats(const QCameraViewfinderSettings &settings) const
{
QList<QVideoFrame::PixelFormat> pixelFormats;
- QList<QCameraViewfinderSettings> capabilities = supportedViewfinderSettings(settings);
- Q_FOREACH (const QCameraViewfinderSettings &s, capabilities) {
+ const QList<QCameraViewfinderSettings> capabilities = supportedViewfinderSettings(settings);
+ for (const QCameraViewfinderSettings &s : capabilities) {
if (!pixelFormats.contains(s.pixelFormat()))
pixelFormats.append(s.pixelFormat());
}
diff --git a/src/multimedia/camera/qcameraexposure.cpp b/src/multimedia/camera/qcameraexposure.cpp
index 5bbce4465..3c5b1cb08 100644
--- a/src/multimedia/camera/qcameraexposure.cpp
+++ b/src/multimedia/camera/qcameraexposure.cpp
@@ -401,8 +401,8 @@ QList<int> QCameraExposure::supportedIsoSensitivities(bool *continuous) const
if (!control)
return res;
- foreach (const QVariant &value,
- control->supportedParameterRange(QCameraExposureControl::ISO, continuous)) {
+ const auto range = control->supportedParameterRange(QCameraExposureControl::ISO, continuous);
+ for (const QVariant &value : range) {
bool ok = false;
int intValue = value.toInt(&ok);
if (ok)
@@ -497,8 +497,8 @@ QList<qreal> QCameraExposure::supportedApertures(bool * continuous) const
if (!control)
return res;
- foreach (const QVariant &value,
- control->supportedParameterRange(QCameraExposureControl::Aperture, continuous)) {
+ const auto range = control->supportedParameterRange(QCameraExposureControl::Aperture, continuous);
+ for (const QVariant &value : range) {
bool ok = false;
qreal realValue = value.toReal(&ok);
if (ok)
@@ -566,8 +566,8 @@ QList<qreal> QCameraExposure::supportedShutterSpeeds(bool *continuous) const
if (!control)
return res;
- foreach (const QVariant &value,
- control->supportedParameterRange(QCameraExposureControl::ShutterSpeed, continuous)) {
+ const auto range = control->supportedParameterRange(QCameraExposureControl::ShutterSpeed, continuous);
+ for (const QVariant &value : range) {
bool ok = false;
qreal realValue = value.toReal(&ok);
if (ok)
diff --git a/src/multimedia/camera/qcameraimageprocessing.cpp b/src/multimedia/camera/qcameraimageprocessing.cpp
index 4ce3759e4..f2fd73949 100644
--- a/src/multimedia/camera/qcameraimageprocessing.cpp
+++ b/src/multimedia/camera/qcameraimageprocessing.cpp
@@ -220,6 +220,25 @@ void QCameraImageProcessing::setManualWhiteBalance(qreal colorTemperature)
}
/*!
+ Returns the brightness adjustment setting.
+ */
+qreal QCameraImageProcessing::brightness() const
+{
+ return d_func()->imageControl->parameter(QCameraImageProcessingControl::BrightnessAdjustment).toReal();
+}
+
+/*!
+ Set the brightness adjustment to \a value.
+
+ Valid brightness adjustment values range between -1.0 and 1.0, with a default of 0.
+ */
+void QCameraImageProcessing::setBrightness(qreal value)
+{
+ d_func()->imageControl->setParameter(QCameraImageProcessingControl::BrightnessAdjustment,
+ QVariant(value));
+}
+
+/*!
Returns the contrast adjustment setting.
*/
qreal QCameraImageProcessing::contrast() const
diff --git a/src/multimedia/camera/qcameraimageprocessing.h b/src/multimedia/camera/qcameraimageprocessing.h
index 2247b33f7..77e28eab1 100644
--- a/src/multimedia/camera/qcameraimageprocessing.h
+++ b/src/multimedia/camera/qcameraimageprocessing.h
@@ -91,6 +91,9 @@ public:
qreal manualWhiteBalance() const;
void setManualWhiteBalance(qreal colorTemperature);
+ qreal brightness() const;
+ void setBrightness(qreal value);
+
qreal contrast() const;
void setContrast(qreal value);
diff --git a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp
index 88c253494..d7630640c 100644
--- a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp
+++ b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp
@@ -198,6 +198,16 @@ bool QMediaNetworkPlaylistProvider::insertMedia(int pos, const QList<QMediaConte
return true;
}
+bool QMediaNetworkPlaylistProvider::moveMedia(int from, int to)
+{
+ Q_D(QMediaNetworkPlaylistProvider);
+
+ Q_UNUSED(from);
+ Q_UNUSED(to);
+
+ return true;
+}
+
bool QMediaNetworkPlaylistProvider::removeMedia(int fromPos, int toPos)
{
Q_D(QMediaNetworkPlaylistProvider);
diff --git a/src/multimedia/playback/qmedianetworkplaylistprovider_p.h b/src/multimedia/playback/qmedianetworkplaylistprovider_p.h
index 84e34c7ce..6fbdfe59b 100644
--- a/src/multimedia/playback/qmedianetworkplaylistprovider_p.h
+++ b/src/multimedia/playback/qmedianetworkplaylistprovider_p.h
@@ -69,6 +69,7 @@ public:
virtual bool addMedia(const QList<QMediaContent> &items);
virtual bool insertMedia(int pos, const QMediaContent &content);
virtual bool insertMedia(int pos, const QList<QMediaContent> &items);
+ virtual bool moveMedia(int from, int to);
virtual bool removeMedia(int pos);
virtual bool removeMedia(int start, int end);
virtual bool clear();
diff --git a/src/multimedia/playback/qmediaplaylist.cpp b/src/multimedia/playback/qmediaplaylist.cpp
index c63340637..f863c78d9 100644
--- a/src/multimedia/playback/qmediaplaylist.cpp
+++ b/src/multimedia/playback/qmediaplaylist.cpp
@@ -386,6 +386,20 @@ bool QMediaPlaylist::insertMedia(int pos, const QList<QMediaContent> &items)
}
/*!
+ Move the item from position \a from to position \a to.
+
+ Returns true if the operation is successful, otherwise false.
+
+ \since 5.7
+*/
+bool QMediaPlaylist::moveMedia(int from, int to)
+{
+ QMediaPlaylistProvider *playlist = d_func()->playlist();
+ return playlist->moveMedia(qBound(0, from, playlist->mediaCount()),
+ qBound(0, to, playlist->mediaCount()));
+}
+
+/*!
Remove the item from the playlist at position \a pos.
Returns true if the operation is successful, otherwise return false.
@@ -517,7 +531,8 @@ void QMediaPlaylist::load(const QNetworkRequest &request, const char *format)
return;
}
- foreach (QString const& key, playlistIOLoader()->keys()) {
+ const auto keys = playlistIOLoader()->keys();
+ for (QString const& key : keys) {
QMediaPlaylistIOInterface* plugin = qobject_cast<QMediaPlaylistIOInterface*>(playlistIOLoader()->instance(key));
if (plugin && plugin->canRead(request.url(), format)) {
QMediaPlaylistReader *reader = plugin->createReader(request.url(), QByteArray(format));
@@ -578,7 +593,8 @@ void QMediaPlaylist::load(QIODevice * device, const char *format)
return;
}
- foreach (QString const& key, playlistIOLoader()->keys()) {
+ const auto keys = playlistIOLoader()->keys();
+ for (QString const& key : keys) {
QMediaPlaylistIOInterface* plugin = qobject_cast<QMediaPlaylistIOInterface*>(playlistIOLoader()->instance(key));
if (plugin && plugin->canRead(device,format)) {
QMediaPlaylistReader *reader = plugin->createReader(device,QByteArray(format));
@@ -640,7 +656,8 @@ bool QMediaPlaylist::save(QIODevice * device, const char *format)
if (d->playlist()->save(device,format))
return true;
- foreach (QString const& key, playlistIOLoader()->keys()) {
+ const auto keys = playlistIOLoader()->keys();
+ for (QString const& key : keys) {
QMediaPlaylistIOInterface* plugin = qobject_cast<QMediaPlaylistIOInterface*>(playlistIOLoader()->instance(key));
if (plugin && plugin->canWrite(device,format)) {
QMediaPlaylistWriter *writer = plugin->createWriter(device,QByteArray(format));
diff --git a/src/multimedia/playback/qmediaplaylist.h b/src/multimedia/playback/qmediaplaylist.h
index 1388ac10f..e076877b7 100644
--- a/src/multimedia/playback/qmediaplaylist.h
+++ b/src/multimedia/playback/qmediaplaylist.h
@@ -85,6 +85,7 @@ public:
bool addMedia(const QList<QMediaContent> &items);
bool insertMedia(int index, const QMediaContent &content);
bool insertMedia(int index, const QList<QMediaContent> &items);
+ bool moveMedia(int from, int to);
bool removeMedia(int pos);
bool removeMedia(int start, int end);
bool clear();
diff --git a/src/multimedia/playback/qmediaplaylistprovider.cpp b/src/multimedia/playback/qmediaplaylistprovider.cpp
index fc3619ff3..ecdf2330e 100644
--- a/src/multimedia/playback/qmediaplaylistprovider.cpp
+++ b/src/multimedia/playback/qmediaplaylistprovider.cpp
@@ -172,7 +172,7 @@ bool QMediaPlaylistProvider::addMedia(const QMediaContent &media)
*/
bool QMediaPlaylistProvider::addMedia(const QList<QMediaContent> &items)
{
- foreach(const QMediaContent &item, items) {
+ for (const QMediaContent &item : items) {
if (!addMedia(item))
return false;
}
@@ -207,6 +207,20 @@ bool QMediaPlaylistProvider::insertMedia(int position, const QList<QMediaContent
return true;
}
+/*!
+ Move the media from position \a from to position \a to.
+
+ Returns true if the operation is successful, otherwise false.
+
+ \since 5.7
+*/
+bool QMediaPlaylistProvider::moveMedia(int from, int to)
+{
+ Q_UNUSED(from);
+ Q_UNUSED(to);
+
+ return false;
+}
/*!
Removes the media at \a position from a playlist.
diff --git a/src/multimedia/playback/qmediaplaylistprovider_p.h b/src/multimedia/playback/qmediaplaylistprovider_p.h
index 57436d30e..94b59186b 100644
--- a/src/multimedia/playback/qmediaplaylistprovider_p.h
+++ b/src/multimedia/playback/qmediaplaylistprovider_p.h
@@ -81,6 +81,7 @@ public:
virtual bool addMedia(const QList<QMediaContent> &contentList);
virtual bool insertMedia(int index, const QMediaContent &content);
virtual bool insertMedia(int index, const QList<QMediaContent> &content);
+ virtual bool moveMedia(int from, int to);
virtual bool removeMedia(int pos);
virtual bool removeMedia(int start, int end);
virtual bool clear();
diff --git a/src/multimedia/playback/qmediaresource.cpp b/src/multimedia/playback/qmediaresource.cpp
index 955837d2c..0813ab82e 100644
--- a/src/multimedia/playback/qmediaresource.cpp
+++ b/src/multimedia/playback/qmediaresource.cpp
@@ -145,14 +145,14 @@ QMediaResource::~QMediaResource()
bool QMediaResource::operator ==(const QMediaResource &other) const
{
// Compare requests directly as QNetworkRequests are "custom types".
- foreach (int key, values.keys()) {
- switch (key) {
+ for (auto it = values.cbegin(), end = values.cend(); it != end; ++it) {
+ switch (it.key()) {
case Request:
if (request() != other.request())
return false;
break;
default:
- if (values.value(key) != other.values.value(key))
+ if (it.value() != other.values.value(it.key()))
return false;
}
}
diff --git a/src/multimedia/qmediaobject.cpp b/src/multimedia/qmediaobject.cpp
index 4b5f86cf9..2b1edb437 100644
--- a/src/multimedia/qmediaobject.cpp
+++ b/src/multimedia/qmediaobject.cpp
@@ -49,7 +49,7 @@ void QMediaObjectPrivate::_q_notify()
const QMetaObject* m = q->metaObject();
- foreach (int pi, notifyProperties) {
+ for (int pi : qAsConst(notifyProperties)) {
QMetaProperty p = m->property(pi);
p.notifySignal().invoke(
q, QGenericArgument(QMetaType::typeName(p.userType()), p.read(q).data()));
diff --git a/src/multimedia/qmediapluginloader.cpp b/src/multimedia/qmediapluginloader.cpp
index febadb1b8..679217318 100644
--- a/src/multimedia/qmediapluginloader.cpp
+++ b/src/multimedia/qmediapluginloader.cpp
@@ -77,7 +77,8 @@ QList<QObject*> QMediaPluginLoader::instances(QString const &key)
return QList<QObject*>();
QList<QObject *> objects;
- foreach (QJsonObject jsonobj, m_metadata.value(key)) {
+ const auto list = m_metadata.value(key);
+ for (const QJsonObject &jsonobj : list) {
int idx = jsonobj.value(QStringLiteral("index")).toDouble();
if (idx < 0)
continue;
@@ -125,7 +126,7 @@ void QMediaPluginLoader::loadMetadata()
if (arr.isEmpty())
arr = jsonobj.value(QStringLiteral("Keys")).toArray();
- foreach (QJsonValue value, arr) {
+ for (const QJsonValue &value : qAsConst(arr)) {
QString key = value.toString();
if (!m_metadata.contains(key)) {
diff --git a/src/multimedia/qmediaserviceprovider.cpp b/src/multimedia/qmediaserviceprovider.cpp
index 38d31eac2..c3a91db7e 100644
--- a/src/multimedia/qmediaserviceprovider.cpp
+++ b/src/multimedia/qmediaserviceprovider.cpp
@@ -314,7 +314,8 @@ public:
QString key(QLatin1String(type.constData()));
QList<QMediaServiceProviderPlugin *>plugins;
- foreach (QObject *obj, loader()->instances(key)) {
+ const auto instances = loader()->instances(key);
+ for (QObject *obj : instances) {
QMediaServiceProviderPlugin *plugin =
qobject_cast<QMediaServiceProviderPlugin*>(obj);
if (plugin)
@@ -331,7 +332,7 @@ public:
//prefer services not offering it, since they are likely to support
//more formats
if (type == QByteArray(Q_MEDIASERVICE_MEDIAPLAYER)) {
- foreach (QMediaServiceProviderPlugin *currentPlugin, plugins) {
+ for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
QMediaServiceFeaturesInterface *iface =
qobject_cast<QMediaServiceFeaturesInterface*>(currentPlugin);
@@ -346,7 +347,7 @@ public:
break;
case QMediaServiceProviderHint::SupportedFeatures:
plugin = plugins[0];
- foreach (QMediaServiceProviderPlugin *currentPlugin, plugins) {
+ for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
QMediaServiceFeaturesInterface *iface =
qobject_cast<QMediaServiceFeaturesInterface*>(currentPlugin);
@@ -360,7 +361,7 @@ public:
break;
case QMediaServiceProviderHint::Device: {
plugin = plugins[0];
- foreach (QMediaServiceProviderPlugin *currentPlugin, plugins) {
+ for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
QMediaServiceSupportedDevicesInterface *iface =
qobject_cast<QMediaServiceSupportedDevicesInterface*>(currentPlugin);
@@ -375,7 +376,7 @@ public:
plugin = plugins[0];
if (type == QByteArray(Q_MEDIASERVICE_CAMERA)
&& hint.cameraPosition() != QCamera::UnspecifiedPosition) {
- foreach (QMediaServiceProviderPlugin *currentPlugin, plugins) {
+ for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
const QMediaServiceSupportedDevicesInterface *deviceIface =
qobject_cast<QMediaServiceSupportedDevicesInterface*>(currentPlugin);
const QMediaServiceCameraInfoInterface *cameraIface =
@@ -383,7 +384,7 @@ public:
if (deviceIface && cameraIface) {
const QList<QByteArray> cameras = deviceIface->devices(type);
- foreach (const QByteArray &camera, cameras) {
+ for (const QByteArray &camera : cameras) {
if (cameraIface->cameraPosition(camera) == hint.cameraPosition()) {
plugin = currentPlugin;
break;
@@ -396,7 +397,7 @@ public:
break;
case QMediaServiceProviderHint::ContentType: {
QMultimedia::SupportEstimate estimate = QMultimedia::NotSupported;
- foreach (QMediaServiceProviderPlugin *currentPlugin, plugins) {
+ for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
QMultimedia::SupportEstimate currentEstimate = QMultimedia::MaybeSupported;
QMediaServiceSupportedFormatsInterface *iface =
qobject_cast<QMediaServiceSupportedFormatsInterface*>(currentPlugin);
@@ -465,7 +466,7 @@ public:
const QStringList& codecs,
int flags) const
{
- QList<QObject*> instances = loader()->instances(QLatin1String(serviceType));
+ const QList<QObject*> instances = loader()->instances(QLatin1String(serviceType));
if (instances.isEmpty())
return QMultimedia::NotSupported;
@@ -473,7 +474,7 @@ public:
bool allServicesProvideInterface = true;
QMultimedia::SupportEstimate supportEstimate = QMultimedia::NotSupported;
- foreach(QObject *obj, instances) {
+ for (QObject *obj : instances) {
QMediaServiceSupportedFormatsInterface *iface =
qobject_cast<QMediaServiceSupportedFormatsInterface*>(obj);
@@ -517,11 +518,11 @@ public:
QStringList supportedMimeTypes(const QByteArray &serviceType, int flags) const
{
- QList<QObject*> instances = loader()->instances(QLatin1String(serviceType));
+ const QList<QObject*> instances = loader()->instances(QLatin1String(serviceType));
QStringList supportedTypes;
- foreach(QObject *obj, instances) {
+ for (QObject *obj : instances) {
QMediaServiceSupportedFormatsInterface *iface =
qobject_cast<QMediaServiceSupportedFormatsInterface*>(obj);
@@ -564,7 +565,8 @@ public:
QByteArray defaultDevice(const QByteArray &serviceType) const
{
- foreach (QObject *obj, loader()->instances(QLatin1String(serviceType))) {
+ const auto instances = loader()->instances(QLatin1String(serviceType));
+ for (QObject *obj : instances) {
const QMediaServiceDefaultDeviceInterface *iface =
qobject_cast<QMediaServiceDefaultDeviceInterface*>(obj);
@@ -585,7 +587,8 @@ public:
{
QList<QByteArray> res;
- foreach (QObject *obj, loader()->instances(QLatin1String(serviceType))) {
+ const auto instances = loader()->instances(QLatin1String(serviceType));
+ for (QObject *obj : instances) {
QMediaServiceSupportedDevicesInterface *iface =
qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
@@ -599,7 +602,8 @@ public:
QString deviceDescription(const QByteArray &serviceType, const QByteArray &device)
{
- foreach (QObject *obj, loader()->instances(QLatin1String(serviceType))) {
+ const auto instances = loader()->instances(QLatin1String(serviceType));
+ for (QObject *obj : instances) {
QMediaServiceSupportedDevicesInterface *iface =
qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
@@ -615,7 +619,8 @@ public:
QCamera::Position cameraPosition(const QByteArray &device) const
{
const QByteArray serviceType(Q_MEDIASERVICE_CAMERA);
- foreach (QObject *obj, loader()->instances(QString::fromLatin1(serviceType))) {
+ const auto instances = loader()->instances(QString::fromLatin1(serviceType));
+ for (QObject *obj : instances) {
const QMediaServiceSupportedDevicesInterface *deviceIface =
qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
const QMediaServiceCameraInfoInterface *cameraIface =
@@ -634,7 +639,8 @@ public:
int cameraOrientation(const QByteArray &device) const
{
const QByteArray serviceType(Q_MEDIASERVICE_CAMERA);
- foreach (QObject *obj, loader()->instances(QString::fromLatin1(serviceType))) {
+ const auto instances = loader()->instances(QString::fromLatin1(serviceType));
+ for (QObject *obj : instances) {
const QMediaServiceSupportedDevicesInterface *deviceIface =
qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
const QMediaServiceCameraInfoInterface *cameraIface =
diff --git a/src/multimedia/qmediastoragelocation.cpp b/src/multimedia/qmediastoragelocation.cpp
index 8a6baa1a2..85aa1ba63 100644
--- a/src/multimedia/qmediastoragelocation.cpp
+++ b/src/multimedia/qmediastoragelocation.cpp
@@ -69,7 +69,7 @@ QDir QMediaStorageLocation::defaultLocation(MediaType type) const
dirCandidates << QDir::currentPath();
dirCandidates << QDir::tempPath();
- Q_FOREACH (const QString &path, dirCandidates) {
+ for (const QString &path : qAsConst(dirCandidates)) {
if (QFileInfo(path).isWritable())
return QDir(path);
}
@@ -110,7 +110,8 @@ QString QMediaStorageLocation::generateFileName(const QString &prefix,
if (lastMediaIndex == 0) {
// first run, find the maximum media number during the fist capture
- Q_FOREACH (const QString &fileName, dir.entryList(QStringList() << QString(QLatin1String("%1*.%2")).arg(prefix).arg(extension))) {
+ const auto list = dir.entryList(QStringList() << QString(QLatin1String("%1*.%2")).arg(prefix).arg(extension));
+ for (const QString &fileName : list) {
const qint64 mediaIndex = fileName.midRef(prefix.length(), fileName.size() - prefix.length() - extension.length() - 1).toInt();
lastMediaIndex = qMax(lastMediaIndex, mediaIndex);
}
diff --git a/src/multimedia/qmediatimerange.cpp b/src/multimedia/qmediatimerange.cpp
index b30ee0439..30535b160 100644
--- a/src/multimedia/qmediatimerange.cpp
+++ b/src/multimedia/qmediatimerange.cpp
@@ -488,7 +488,8 @@ void QMediaTimeRange::addInterval(const QMediaTimeInterval &interval)
*/
void QMediaTimeRange::addTimeRange(const QMediaTimeRange &range)
{
- foreach(const QMediaTimeInterval &i, range.intervals()) {
+ const auto intervals = range.intervals();
+ for (const QMediaTimeInterval &i : intervals) {
d->addInterval(i);
}
}
@@ -537,7 +538,8 @@ void QMediaTimeRange::removeInterval(const QMediaTimeInterval &interval)
*/
void QMediaTimeRange::removeTimeRange(const QMediaTimeRange &range)
{
- foreach(const QMediaTimeInterval &i, range.intervals()) {
+ const auto intervals = range.intervals();
+ for (const QMediaTimeInterval &i : intervals) {
d->removeInterval(i);
}
}
@@ -708,7 +710,8 @@ QDebug operator<<(QDebug dbg, const QMediaTimeRange &range)
QDebugStateSaver saver(dbg);
dbg.nospace();
dbg << "QMediaTimeRange( ";
- foreach (const QMediaTimeInterval &interval, range.intervals())
+ const auto intervals = range.intervals();
+ for (const QMediaTimeInterval &interval : intervals)
dbg << '(' << interval.start() << ", " << interval.end() << ") ";
dbg.space();
dbg << ')';
diff --git a/src/multimedia/video/qvideosurfaceformat.cpp b/src/multimedia/video/qvideosurfaceformat.cpp
index df6cbcfc1..bbc58054a 100644
--- a/src/multimedia/video/qvideosurfaceformat.cpp
+++ b/src/multimedia/video/qvideosurfaceformat.cpp
@@ -632,7 +632,8 @@ QDebug operator<<(QDebug dbg, const QVideoSurfaceFormat &f)
<< ", handleType=" << f.handleType() << ", yCbCrColorSpace=" << f.yCbCrColorSpace()
<< ')';
- foreach(const QByteArray& propertyName, f.propertyNames())
+ const auto propertyNames = f.propertyNames();
+ for (const QByteArray& propertyName : propertyNames)
dbg << "\n " << propertyName.data() << " = " << f.property(propertyName.data());
return dbg;
diff --git a/src/multimediawidgets/qgraphicsvideoitem_maemo6.cpp b/src/multimediawidgets/qgraphicsvideoitem_maemo6.cpp
index 894025703..39ab39221 100644
--- a/src/multimediawidgets/qgraphicsvideoitem_maemo6.cpp
+++ b/src/multimediawidgets/qgraphicsvideoitem_maemo6.cpp
@@ -432,8 +432,8 @@ void QGraphicsVideoItem::paint(
bool obscured = false;
if (scene()) {
- foreach (QGraphicsItem *item,
- scene()->items(mapToScene(boundingRect()), Qt::IntersectsItemBoundingRect) ) {
+ const auto items = scene()->items(mapToScene(boundingRect()), Qt::IntersectsItemBoundingRect);
+ for (QGraphicsItem *item : items) {
if (item->flags() & QGraphicsItem::ItemHasNoContents)
continue;
diff --git a/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp b/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
index 7b065c8c4..eec31e65e 100644
--- a/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
+++ b/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
@@ -588,7 +588,7 @@ void QAndroidCameraSession::onNewPreviewFrame(const QVideoFrame &frame)
{
m_videoProbesMutex.lock();
- foreach (QAndroidMediaVideoProbeControl *probe, m_videoProbes)
+ for (QAndroidMediaVideoProbeControl *probe : qAsConst(m_videoProbes))
probe->newFrameProbed(frame);
if (m_previewCallback)
diff --git a/src/plugins/audiocapture/audiocapturesession.cpp b/src/plugins/audiocapture/audiocapturesession.cpp
index 1b183db26..07f709e01 100644
--- a/src/plugins/audiocapture/audiocapturesession.cpp
+++ b/src/plugins/audiocapture/audiocapturesession.cpp
@@ -74,7 +74,7 @@ qint64 FileProbeProxy::writeData(const char *data, qint64 len)
if (m_format.isValid()) {
QMutexLocker locker(&m_probeMutex);
- foreach (AudioCaptureProbeControl* probe, m_probes)
+ for (AudioCaptureProbeControl* probe : qAsConst(m_probes))
probe->bufferProbed(data, len, m_format);
}
@@ -210,7 +210,7 @@ QDir AudioCaptureSession::defaultDir() const
dirCandidates << QDir::currentPath();
dirCandidates << QDir::tempPath();
- foreach (const QString &path, dirCandidates) {
+ for (const QString &path : qAsConst(dirCandidates)) {
QDir dir(path);
if (dir.exists() && QFileInfo(path).isWritable())
return dir;
@@ -243,7 +243,8 @@ QString AudioCaptureSession::generateFileName(const QDir &dir,
const QString &ext) const
{
int lastClip = 0;
- foreach(QString fileName, dir.entryList(QStringList() << QString("clip_*.%1").arg(ext))) {
+ const auto list = dir.entryList(QStringList() << QString("clip_*.%1").arg(ext));
+ for (const QString &fileName : list) {
int imgNumber = fileName.midRef(5, fileName.size()-6-ext.length()).toInt();
lastClip = qMax(lastClip, imgNumber);
}
diff --git a/src/plugins/avfoundation/avfoundation.pro b/src/plugins/avfoundation/avfoundation.pro
index c05331d20..1110e196b 100644
--- a/src/plugins/avfoundation/avfoundation.pro
+++ b/src/plugins/avfoundation/avfoundation.pro
@@ -1,4 +1,4 @@
TEMPLATE = subdirs
-SUBDIRS += mediaplayer \
- camera
+SUBDIRS += mediaplayer
+!tvos: SUBDIRS += camera
diff --git a/src/plugins/avfoundation/camera/avfcameraserviceplugin.mm b/src/plugins/avfoundation/camera/avfcameraserviceplugin.mm
index bf2f4a24b..f450c35c7 100644
--- a/src/plugins/avfoundation/camera/avfcameraserviceplugin.mm
+++ b/src/plugins/avfoundation/camera/avfcameraserviceplugin.mm
@@ -78,7 +78,8 @@ QList<QByteArray> AVFServicePlugin::devices(const QByteArray &service) const
if (service == Q_MEDIASERVICE_CAMERA) {
const QList<AVFCameraInfo> &cameras = AVFCameraSession::availableCameraDevices();
- Q_FOREACH (const AVFCameraInfo &info, cameras)
+ devs.reserve(cameras.size());
+ for (const AVFCameraInfo &info : cameras)
devs.append(info.deviceId);
}
diff --git a/src/plugins/avfoundation/camera/avfcamerasession.mm b/src/plugins/avfoundation/camera/avfcamerasession.mm
index 993e28319..e0f18c114 100644
--- a/src/plugins/avfoundation/camera/avfcamerasession.mm
+++ b/src/plugins/avfoundation/camera/avfcamerasession.mm
@@ -179,7 +179,7 @@ AVFCameraInfo AVFCameraSession::cameraDeviceInfo(const QByteArray &device)
{
updateCameraDevices();
- Q_FOREACH (const AVFCameraInfo &info, m_cameraDevices) {
+ for (const AVFCameraInfo &info : qAsConst(m_cameraDevices)) {
if (info.deviceId == device)
return info;
}
diff --git a/src/plugins/avfoundation/camera/avfstoragelocation.mm b/src/plugins/avfoundation/camera/avfstoragelocation.mm
index 3bb62ed93..5f3aef490 100644
--- a/src/plugins/avfoundation/camera/avfstoragelocation.mm
+++ b/src/plugins/avfoundation/camera/avfstoragelocation.mm
@@ -81,7 +81,7 @@ QDir AVFStorageLocation::defaultDir(QCamera::CaptureMode mode) const
dirCandidates << QDir::currentPath();
dirCandidates << QDir::tempPath();
- Q_FOREACH (const QString &path, dirCandidates) {
+ for (const QString &path : qAsConst(dirCandidates)) {
if (QFileInfo(path).isWritable())
return QDir(path);
}
@@ -96,7 +96,8 @@ QString AVFStorageLocation::generateFileName(const QString &prefix, const QDir &
if (lastClip == 0) {
//first run, find the maximum clip number during the fist capture
- Q_FOREACH (const QString &fileName, dir.entryList(QStringList() << QString("%1*.%2").arg(prefix).arg(ext))) {
+ const auto list = dir.entryList(QStringList() << QString("%1*.%2").arg(prefix).arg(ext));
+ for (const QString &fileName : list) {
int imgNumber = fileName.midRef(prefix.length(), fileName.size()-prefix.length()-ext.length()-1).toInt();
lastClip = qMax(lastClip, imgNumber);
}
diff --git a/src/plugins/avfoundation/mediaplayer/avfdisplaylink.h b/src/plugins/avfoundation/mediaplayer/avfdisplaylink.h
index 6e00ee80d..79dfb5165 100644
--- a/src/plugins/avfoundation/mediaplayer/avfdisplaylink.h
+++ b/src/plugins/avfoundation/mediaplayer/avfdisplaylink.h
@@ -37,7 +37,7 @@
#include <QtCore/qobject.h>
#include <QtCore/qmutex.h>
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
#include <CoreVideo/CVBase.h>
#else
#include <QuartzCore/CVDisplayLink.h>
@@ -68,7 +68,7 @@ protected:
virtual bool event(QEvent *);
private:
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
void *m_displayLink;
#else
CVDisplayLinkRef m_displayLink;
diff --git a/src/plugins/avfoundation/mediaplayer/avfdisplaylink.mm b/src/plugins/avfoundation/mediaplayer/avfdisplaylink.mm
index 47b6b8324..d2ce841fa 100644
--- a/src/plugins/avfoundation/mediaplayer/avfdisplaylink.mm
+++ b/src/plugins/avfoundation/mediaplayer/avfdisplaylink.mm
@@ -38,7 +38,7 @@
#include <QtCore/qdebug.h>
#endif
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
#import <QuartzCore/CADisplayLink.h>
#import <Foundation/NSRunLoop.h>
#define _m_displayLink static_cast<DisplayLinkObserver*>(m_displayLink)
@@ -47,7 +47,7 @@
QT_USE_NAMESPACE
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
@interface DisplayLinkObserver : NSObject
{
AVFDisplayLink *m_avfDisplayLink;
@@ -127,7 +127,7 @@ AVFDisplayLink::AVFDisplayLink(QObject *parent)
, m_pendingDisplayLinkEvent(false)
, m_isActive(false)
{
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
m_displayLink = [[DisplayLinkObserver alloc] initWithAVFDisplayLink:this];
#else
// create display link for the main display
@@ -150,7 +150,7 @@ AVFDisplayLink::~AVFDisplayLink()
if (m_displayLink) {
stop();
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
[_m_displayLink release];
#else
CVDisplayLinkRelease(m_displayLink);
@@ -172,7 +172,7 @@ bool AVFDisplayLink::isActive() const
void AVFDisplayLink::start()
{
if (m_displayLink && !m_isActive) {
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
[_m_displayLink start];
#else
CVDisplayLinkStart(m_displayLink);
@@ -184,7 +184,7 @@ void AVFDisplayLink::start()
void AVFDisplayLink::stop()
{
if (m_displayLink && m_isActive) {
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
[_m_displayLink stop];
#else
CVDisplayLinkStop(m_displayLink);
@@ -202,7 +202,7 @@ void AVFDisplayLink::displayLinkEvent(const CVTimeStamp *ts)
m_displayLinkMutex.lock();
bool pending = m_pendingDisplayLinkEvent;
m_pendingDisplayLinkEvent = true;
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
Q_UNUSED(ts);
memset(&m_frameTimeStamp, 0, sizeof(CVTimeStamp));
#else
diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayerservice.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayerservice.mm
index 4049ea6e4..62b4d5d29 100644
--- a/src/plugins/avfoundation/mediaplayer/avfmediaplayerservice.mm
+++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayerservice.mm
@@ -62,7 +62,7 @@ AVFMediaPlayerService::AVFMediaPlayerService(QObject *parent)
// AVPlayerItemVideoOutput is available in SDK
#if QT_MAC_DEPLOYMENT_TARGET_BELOW(__MAC_10_8, __IPHONE_6_0)
// might not be available at runtime
- #if defined(Q_OS_IOS)
+ #if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
m_enableRenderControl = [AVPlayerItemVideoOutput class] != 0;
#endif
#endif
diff --git a/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer_ios.h b/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer_ios.h
index a46026f54..0fc091af9 100644
--- a/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer_ios.h
+++ b/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer_ios.h
@@ -53,7 +53,7 @@ class QAbstractVideoSurface;
typedef struct __CVBuffer *CVBufferRef;
typedef CVBufferRef CVImageBufferRef;
typedef CVImageBufferRef CVPixelBufferRef;
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
typedef struct __CVOpenGLESTextureCache *CVOpenGLESTextureCacheRef;
typedef CVImageBufferRef CVOpenGLESTextureRef;
// helpers to avoid boring if def
diff --git a/src/plugins/avfoundation/mediaplayer/avfvideorenderercontrol.mm b/src/plugins/avfoundation/mediaplayer/avfvideorenderercontrol.mm
index 03000ea43..d067c7f0b 100644
--- a/src/plugins/avfoundation/mediaplayer/avfvideorenderercontrol.mm
+++ b/src/plugins/avfoundation/mediaplayer/avfvideorenderercontrol.mm
@@ -34,7 +34,7 @@
#include "avfvideorenderercontrol.h"
#include "avfdisplaylink.h"
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
#include "avfvideoframerenderer_ios.h"
#else
#include "avfvideoframerenderer.h"
@@ -52,7 +52,7 @@
QT_USE_NAMESPACE
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
class TextureCacheVideoBuffer : public QAbstractVideoBuffer
{
public:
@@ -164,7 +164,7 @@ void AVFVideoRendererControl::setSurface(QAbstractVideoSurface *surface)
//Surface changed, so we need a new frame renderer
m_frameRenderer = new AVFVideoFrameRenderer(m_surface, this);
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
if (m_playerLayer) {
m_frameRenderer->setPlayerLayer(static_cast<AVPlayerLayer*>(m_playerLayer));
}
@@ -195,7 +195,7 @@ void AVFVideoRendererControl::setLayer(void *playerLayer)
if (m_surface && m_surface->isActive())
m_surface->stop();
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
if (m_frameRenderer) {
m_frameRenderer->setPlayerLayer(static_cast<AVPlayerLayer*>(playerLayer));
}
@@ -230,7 +230,7 @@ void AVFVideoRendererControl::updateVideoFrame(const CVTimeStamp &ts)
return;
if (m_enableOpenGL) {
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
CVOGLTextureRef tex = m_frameRenderer->renderLayerToTexture(playerLayer);
//Make sure we got a valid texture
@@ -254,7 +254,7 @@ void AVFVideoRendererControl::updateVideoFrame(const CVTimeStamp &ts)
if (!m_surface->isActive()) {
QVideoSurfaceFormat format(frame.size(), frame.pixelFormat(), QAbstractVideoBuffer::GLTextureHandle);
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
format.setScanLineDirection(QVideoSurfaceFormat::TopToBottom);
#else
format.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
diff --git a/src/plugins/avfoundation/mediaplayer/mediaplayer.pro b/src/plugins/avfoundation/mediaplayer/mediaplayer.pro
index 28cdc2727..8b5f14b4e 100644
--- a/src/plugins/avfoundation/mediaplayer/mediaplayer.pro
+++ b/src/plugins/avfoundation/mediaplayer/mediaplayer.pro
@@ -11,7 +11,7 @@ PLUGIN_TYPE = mediaservice
PLUGIN_CLASS_NAME = AVFMediaPlayerServicePlugin
load(qt_plugin)
-LIBS += -framework AVFoundation -framework CoreMedia
+LIBS += -framework AVFoundation -framework CoreMedia -framework CoreVideo -framework QuartzCore
DEFINES += QMEDIA_AVF_MEDIAPLAYER
@@ -44,7 +44,7 @@ OBJECTIVE_SOURCES += \
avfvideowidget.mm
}
-ios {
+ios|tvos {
contains(QT_CONFIG, opengl.*) {
HEADERS += \
avfvideoframerenderer_ios.h \
@@ -56,8 +56,9 @@ ios {
avfvideorenderercontrol.mm \
avfdisplaylink.mm
}
+ LIBS += -framework Foundation
} else {
- LIBS += -framework QuartzCore -framework AppKit
+ LIBS += -framework AppKit
contains(QT_CONFIG, opengl.*) {
HEADERS += \
diff --git a/src/plugins/coreaudio/coreaudio.pro b/src/plugins/coreaudio/coreaudio.pro
index 146851493..e01932c6a 100644
--- a/src/plugins/coreaudio/coreaudio.pro
+++ b/src/plugins/coreaudio/coreaudio.pro
@@ -24,10 +24,10 @@ OBJECTIVE_SOURCES += \
coreaudioplugin.mm \
coreaudioutils.mm
-ios {
+ios|tvos {
HEADERS += coreaudiosessionmanager.h
OBJECTIVE_SOURCES += coreaudiosessionmanager.mm
- LIBS += -framework AVFoundation
+ LIBS += -framework Foundation -framework AVFoundation
} else {
LIBS += \
-framework ApplicationServices \
diff --git a/src/plugins/coreaudio/coreaudiodeviceinfo.mm b/src/plugins/coreaudio/coreaudiodeviceinfo.mm
index f16389372..c221cb151 100644
--- a/src/plugins/coreaudio/coreaudiodeviceinfo.mm
+++ b/src/plugins/coreaudio/coreaudiodeviceinfo.mm
@@ -33,7 +33,7 @@
#include "coreaudiodeviceinfo.h"
#include "coreaudioutils.h"
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
# include "coreaudiosessionmanager.h"
#endif
diff --git a/src/plugins/coreaudio/coreaudioinput.mm b/src/plugins/coreaudio/coreaudioinput.mm
index e0cedb1b9..229a3a34e 100644
--- a/src/plugins/coreaudio/coreaudioinput.mm
+++ b/src/plugins/coreaudio/coreaudioinput.mm
@@ -39,7 +39,7 @@
# include <CoreServices/CoreServices.h>
#endif
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
# include "coreaudiosessionmanager.h"
#endif
diff --git a/src/plugins/coreaudio/coreaudiooutput.mm b/src/plugins/coreaudio/coreaudiooutput.mm
index 149b5a8c0..c0ad2bf2f 100644
--- a/src/plugins/coreaudio/coreaudiooutput.mm
+++ b/src/plugins/coreaudio/coreaudiooutput.mm
@@ -45,7 +45,7 @@
# include <CoreServices/CoreServices.h>
#endif
-#if defined(Q_OS_IOS)
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
# include <QtMultimedia/private/qaudiohelpers_p.h>
#endif
@@ -504,7 +504,7 @@ OSStatus CoreAudioOutput::renderCallback(void *inRefCon, AudioUnitRenderActionFl
if (framesRead > 0) {
ioData->mBuffers[0].mDataByteSize = framesRead * bytesPerFrame;
d->m_totalFrames += framesRead;
-#ifdef Q_OS_IOS
+#if defined(Q_OS_IOS) || defined(Q_OS_TVOS)
// on iOS we have to adjust the sound volume ourselves
if (!qFuzzyCompare(d->m_cachedVolume, qreal(1.0f))) {
QAudioHelperInternal::qMultiplySamples(d->m_cachedVolume,
diff --git a/src/plugins/coreaudio/coreaudiosessionmanager.mm b/src/plugins/coreaudio/coreaudiosessionmanager.mm
index 15d1ad86f..5c6b3b4d1 100644
--- a/src/plugins/coreaudio/coreaudiosessionmanager.mm
+++ b/src/plugins/coreaudio/coreaudiosessionmanager.mm
@@ -274,7 +274,9 @@ bool CoreAudioSessionManager::setCategory(CoreAudioSessionManager::AudioSessionC
targetCategory = AVAudioSessionCategoryPlayAndRecord;
break;
case CoreAudioSessionManager::AudioProcessing:
+#ifndef Q_OS_TVOS
targetCategory = AVAudioSessionCategoryAudioProcessing;
+#endif
break;
case CoreAudioSessionManager::MultiRoute:
#if QT_IOS_DEPLOYMENT_TARGET_BELOW(__IPHONE_6_0)
@@ -348,8 +350,10 @@ CoreAudioSessionManager::AudioSessionCategorys CoreAudioSessionManager::category
localCategory = Record;
} else if (category == AVAudioSessionCategoryPlayAndRecord) {
localCategory = PlayAndRecord;
+#ifndef Q_OS_TVOS
} else if (category == AVAudioSessionCategoryAudioProcessing) {
localCategory = AudioProcessing;
+#endif
} else if (
#if QT_IOS_DEPLOYMENT_TARGET_BELOW(__IPHONE_6_0)
QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_6_0 &&
diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp
index 2e92cb37d..ede5e4763 100644
--- a/src/plugins/directshow/camera/dscamerasession.cpp
+++ b/src/plugins/directshow/camera/dscamerasession.cpp
@@ -491,7 +491,7 @@ bool DSCameraSession::unload()
m_needsHorizontalMirroring = false;
m_supportedViewfinderSettings.clear();
- Q_FOREACH (AM_MEDIA_TYPE f, m_supportedFormats)
+ for (AM_MEDIA_TYPE f : qAsConst(m_supportedFormats))
_FreeMediaType(f);
m_supportedFormats.clear();
SAFE_RELEASE(m_sourceFilter);
@@ -876,7 +876,7 @@ bool DSCameraSession::configurePreviewFormat()
// Resolve viewfinder settings
int settingsIndex = 0;
QCameraViewfinderSettings resolvedViewfinderSettings;
- Q_FOREACH (const QCameraViewfinderSettings &s, m_supportedViewfinderSettings) {
+ for (const QCameraViewfinderSettings &s : qAsConst(m_supportedViewfinderSettings)) {
if ((m_viewfinderSettings.resolution().isEmpty() || m_viewfinderSettings.resolution() == s.resolution())
&& (qFuzzyIsNull(m_viewfinderSettings.minimumFrameRate()) || qFuzzyCompare((float)m_viewfinderSettings.minimumFrameRate(), (float)s.minimumFrameRate()))
&& (qFuzzyIsNull(m_viewfinderSettings.maximumFrameRate()) || qFuzzyCompare((float)m_viewfinderSettings.maximumFrameRate(), (float)s.maximumFrameRate()))
@@ -1112,7 +1112,7 @@ void DSCameraSession::updateSourceCapabilities()
m_supportedViewfinderSettings.clear();
m_needsHorizontalMirroring = false;
- Q_FOREACH (AM_MEDIA_TYPE f, m_supportedFormats)
+ for (AM_MEDIA_TYPE f : qAsConst(m_supportedFormats))
_FreeMediaType(f);
m_supportedFormats.clear();
m_imageProcessingParametersInfos.clear();
@@ -1204,7 +1204,7 @@ void DSCameraSession::updateSourceCapabilities()
qreal(10000000) / scc.MinFrameInterval));
}
- Q_FOREACH (const QCamera::FrameRateRange &frameRateRange, frameRateRanges) {
+ for (const QCamera::FrameRateRange &frameRateRange : qAsConst(frameRateRanges)) {
QCameraViewfinderSettings settings;
settings.setResolution(resolution);
settings.setMinimumFrameRate(frameRateRange.minimumFrameRate);
diff --git a/src/plugins/directshow/dsserviceplugin.cpp b/src/plugins/directshow/dsserviceplugin.cpp
index 4af38b1cc..839271219 100644
--- a/src/plugins/directshow/dsserviceplugin.cpp
+++ b/src/plugins/directshow/dsserviceplugin.cpp
@@ -137,7 +137,7 @@ QList<QByteArray> DSServicePlugin::devices(const QByteArray &service) const
#ifdef QMEDIA_DIRECTSHOW_CAMERA
if (service == Q_MEDIASERVICE_CAMERA) {
const QList<DSVideoDeviceInfo> &devs = DSVideoDeviceControl::availableDevices();
- Q_FOREACH (const DSVideoDeviceInfo &info, devs)
+ for (const DSVideoDeviceInfo &info : devs)
result.append(info.first);
}
#endif
@@ -150,7 +150,7 @@ QString DSServicePlugin::deviceDescription(const QByteArray &service, const QByt
#ifdef QMEDIA_DIRECTSHOW_CAMERA
if (service == Q_MEDIASERVICE_CAMERA) {
const QList<DSVideoDeviceInfo> &devs = DSVideoDeviceControl::availableDevices();
- Q_FOREACH (const DSVideoDeviceInfo &info, devs) {
+ for (const DSVideoDeviceInfo &info : devs) {
if (info.first == device)
return info.second;
}
diff --git a/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp b/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp
index d063447e3..a240f6c5f 100644
--- a/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp
+++ b/src/plugins/directshow/player/directshowaudioendpointcontrol.cpp
@@ -54,7 +54,7 @@ DirectShowAudioEndpointControl::DirectShowAudioEndpointControl(
DirectShowAudioEndpointControl::~DirectShowAudioEndpointControl()
{
- foreach (IMoniker *moniker, m_devices)
+ for (IMoniker *moniker : qAsConst(m_devices))
moniker->Release();
if (m_bindContext)
diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.cpp b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
index 5400ac8d4..f1581e129 100644
--- a/src/plugins/directshow/player/directshowmetadatacontrol.cpp
+++ b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
@@ -504,7 +504,8 @@ void DirectShowMetaDataControl::updateMetadata(IFilterGraph2 *graph, IBaseFilter
IWMHeaderInfo *info = com_cast<IWMHeaderInfo>(source, IID_IWMHeaderInfo);
if (info) {
- Q_FOREACH (const QWMMetaDataKey &key, *qt_wmMetaDataKeys()) {
+ const auto keys = *qt_wmMetaDataKeys();
+ for (const QWMMetaDataKey &key : keys) {
QVariant var = getValue(info, key.wmName);
if (var.isValid()) {
if (key.qtName == QMediaMetaData::Duration) {
diff --git a/src/plugins/directshow/player/directshowpinenum.cpp b/src/plugins/directshow/player/directshowpinenum.cpp
index 1119cb690..d47fe19fc 100644
--- a/src/plugins/directshow/player/directshowpinenum.cpp
+++ b/src/plugins/directshow/player/directshowpinenum.cpp
@@ -39,13 +39,13 @@ DirectShowPinEnum::DirectShowPinEnum(const QList<IPin *> &pins)
, m_pins(pins)
, m_index(0)
{
- foreach (IPin *pin, m_pins)
+ for (IPin *pin : qAsConst(m_pins))
pin->AddRef();
}
DirectShowPinEnum::~DirectShowPinEnum()
{
- foreach (IPin *pin, m_pins)
+ for (IPin *pin : qAsConst(m_pins))
pin->Release();
}
diff --git a/src/plugins/directshow/player/videosurfacefilter.cpp b/src/plugins/directshow/player/videosurfacefilter.cpp
index 1fa7329cc..d53e9187c 100644
--- a/src/plugins/directshow/player/videosurfacefilter.cpp
+++ b/src/plugins/directshow/player/videosurfacefilter.cpp
@@ -582,7 +582,7 @@ void VideoSurfaceFilter::supportedFormatsChanged()
static const GUID none = {
0xe436eb8e, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70} };
- QList<QVideoFrame::PixelFormat> formats = m_surface->supportedPixelFormats();
+ const QList<QVideoFrame::PixelFormat> formats = m_surface->supportedPixelFormats();
QVector<AM_MEDIA_TYPE> mediaTypes;
mediaTypes.reserve(formats.count());
@@ -597,7 +597,7 @@ void VideoSurfaceFilter::supportedFormatsChanged()
type.cbFormat = 0;
type.pbFormat = 0;
- foreach (QVideoFrame::PixelFormat format, formats) {
+ for (QVideoFrame::PixelFormat format : formats) {
type.subtype = DirectShowMediaType::convertPixelFormat(format);
if (type.subtype != none)
diff --git a/src/plugins/gstreamer/camerabin/camerabincontainer.cpp b/src/plugins/gstreamer/camerabin/camerabincontainer.cpp
index f5b6900f9..b1b61ffe7 100644
--- a/src/plugins/gstreamer/camerabin/camerabincontainer.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabincontainer.cpp
@@ -116,13 +116,13 @@ GstEncodingContainerProfile *CameraBinContainer::createProfile()
return 0;
} else {
QString format = m_actualFormat;
- QStringList supportedFormats = m_supportedContainers.supportedCodecs();
+ const QStringList supportedFormats = m_supportedContainers.supportedCodecs();
//if format is not in the list of supported gstreamer mime types,
//try to find the mime type with matching extension
if (!supportedFormats.contains(format)) {
QString extension = suggestedFileExtension(m_actualFormat);
- foreach (const QString &formatCandidate, supportedFormats) {
+ for (const QString &formatCandidate : supportedFormats) {
if (suggestedFileExtension(formatCandidate) == extension) {
format = formatCandidate;
break;
diff --git a/src/plugins/gstreamer/camerabin/camerabinfocus.cpp b/src/plugins/gstreamer/camerabin/camerabinfocus.cpp
index 32b8d9454..340e776e5 100644
--- a/src/plugins/gstreamer/camerabin/camerabinfocus.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinfocus.cpp
@@ -239,7 +239,7 @@ QCameraFocusZoneList CameraBinFocus::focusZones() const
if (m_focusPointMode != QCameraFocus::FocusPointFaceDetection) {
zones.append(QCameraFocusZone(m_focusRect, m_focusZoneStatus));
#if GST_CHECK_VERSION(1,0,0)
- } else foreach (const QRect &face, m_faceFocusRects) {
+ } else for (const QRect &face : qAsConst(m_faceFocusRects)) {
const QRectF normalizedRect(
face.x() / qreal(m_viewfinderResolution.width()),
face.y() / qreal(m_viewfinderResolution.height()),
@@ -434,7 +434,7 @@ void CameraBinFocus::updateRegionOfInterest(const QVector<QRect> &rectangles)
m_viewfinderResolution.width(), m_viewfinderResolution.height()) * 0.3;
const QRect viewfinderRectangle(QPoint(0, 0), m_viewfinderResolution);
- foreach (const QRect &rectangle, rectangles) {
+ for (const QRect &rectangle : rectangles) {
QRect paddedRectangle(
0,
0,
diff --git a/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp b/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp
index e404065fc..0fca1d4f8 100644
--- a/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp
@@ -197,7 +197,8 @@ QVariant CameraBinMetaData::metaData(const QString &key) const
}
#endif
- Q_FOREACH (const QGStreamerMetaDataKey &metadataKey, *qt_gstreamerMetaDataKeys()) {
+ const auto keys = *qt_gstreamerMetaDataKeys();
+ for (const QGStreamerMetaDataKey &metadataKey : keys) {
if (metadataKey.qtName == key)
return m_values.value(QByteArray::fromRawData(metadataKey.gstName, qstrlen(metadataKey.gstName)));
}
@@ -216,7 +217,8 @@ void CameraBinMetaData::setMetaData(const QString &key, const QVariant &value)
}
}
- Q_FOREACH (const QGStreamerMetaDataKey &metadataKey, *qt_gstreamerMetaDataKeys()) {
+ const auto keys = *qt_gstreamerMetaDataKeys();
+ for (const QGStreamerMetaDataKey &metadataKey : keys) {
if (metadataKey.qtName == key) {
const char *name = metadataKey.gstName;
@@ -239,13 +241,14 @@ QStringList CameraBinMetaData::availableMetaData() const
{
static QMap<QByteArray, QString> keysMap;
if (keysMap.isEmpty()) {
- Q_FOREACH (const QGStreamerMetaDataKey &metadataKey, *qt_gstreamerMetaDataKeys())
+ const auto keys = *qt_gstreamerMetaDataKeys();
+ for (const QGStreamerMetaDataKey &metadataKey : keys)
keysMap[QByteArray(metadataKey.gstName)] = metadataKey.qtName;
}
QStringList res;
- Q_FOREACH (const QByteArray &key, m_values.keys()) {
- QString tag = keysMap.value(key);
+ for (auto it = m_values.keyBegin(), end = m_values.keyEnd(); it != end; ++it) {
+ QString tag = keysMap.value(*it);
if (!tag.isEmpty())
res.append(tag);
}
diff --git a/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp b/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp
index ad0596a6e..bc97563ec 100644
--- a/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp
@@ -154,7 +154,7 @@ void CameraBinRecorder::applySettings()
candidates.append(QStringList() << "video/quicktime" << "video/x-h264" << "audio/mpeg");
candidates.append(QStringList() << "video/x-msvideo" << "video/x-divx" << "audio/mpeg");
- foreach (const QStringList &candidate, candidates) {
+ for (const QStringList &candidate : qAsConst(candidates)) {
if (containerControl->supportedContainers().contains(candidate[0]) &&
videoEncoderControl->supportedVideoCodecs().contains(candidate[1]) &&
audioEncoderControl->supportedAudioCodecs().contains(candidate[2])) {
diff --git a/src/plugins/gstreamer/camerabin/camerabinresourcepolicy.cpp b/src/plugins/gstreamer/camerabin/camerabinresourcepolicy.cpp
index 745536e87..f76c2c2a3 100644
--- a/src/plugins/gstreamer/camerabin/camerabinresourcepolicy.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinresourcepolicy.cpp
@@ -127,13 +127,17 @@ void CamerabinResourcePolicy::setResourceSet(CamerabinResourcePolicy::ResourceSe
}
QSet<ResourcePolicy::ResourceType> currentTypes;
- foreach (ResourcePolicy::Resource *resource, m_resource->resources())
+ const auto resources = m_resource->resources();
+ currentTypes.reserve(resources.size());
+ for (ResourcePolicy::Resource *resource : resources)
currentTypes << resource->type();
- foreach (ResourcePolicy::ResourceType resourceType, currentTypes - requestedTypes)
+ const auto diffCurrentWithRequested = currentTypes - requestedTypes;
+ for (ResourcePolicy::ResourceType resourceType : diffCurrentWithRequested)
m_resource->deleteResource(resourceType);
- foreach (ResourcePolicy::ResourceType resourceType, requestedTypes - currentTypes) {
+ const auto diffRequestedWithCurrent = requestedTypes - currentTypes;
+ for (ResourcePolicy::ResourceType resourceType : diffRequestedWithCurrent) {
if (resourceType == ResourcePolicy::LensCoverType) {
ResourcePolicy::LensCoverResource *lensCoverResource = new ResourcePolicy::LensCoverResource;
lensCoverResource->setOptional(true);
@@ -169,7 +173,8 @@ void CamerabinResourcePolicy::setResourceSet(CamerabinResourcePolicy::ResourceSe
bool CamerabinResourcePolicy::isResourcesGranted() const
{
#ifdef HAVE_RESOURCE_POLICY
- foreach (ResourcePolicy::Resource *resource, m_resource->resources())
+ const auto resources = m_resource->resources();
+ for (ResourcePolicy::Resource *resource : resources)
if (!resource->isOptional() && !resource->isGranted())
return false;
#endif
@@ -218,7 +223,8 @@ void CamerabinResourcePolicy::updateCanCapture()
const bool wasAbleToRecord = m_canCapture;
m_canCapture = (m_resourceSet == VideoCaptureResources) || (m_resourceSet == ImageCaptureResources);
#ifdef HAVE_RESOURCE_POLICY
- foreach (ResourcePolicy::Resource *resource, m_resource->resources()) {
+ const auto resources = m_resource->resources();
+ for (ResourcePolicy::Resource *resource : resources) {
if (resource->type() != ResourcePolicy::LensCoverType)
m_canCapture = m_canCapture && resource->isGranted();
}
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
index 3dd200c54..95624f711 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -496,8 +496,8 @@ GstElement *CameraBinSession::buildCameraSource()
const QByteArray envVideoSource = qgetenv("QT_GSTREAMER_CAMERABIN_VIDEOSRC");
if (!envVideoSource.isEmpty()) {
- QList<QByteArray> sources = envVideoSource.split(',');
- foreach (const QByteArray &source, sources) {
+ const QList<QByteArray> sources = envVideoSource.split(',');
+ for (const QByteArray &source : sources) {
QList<QByteArray> keyValue = source.split('=');
if (keyValue.count() == 1) {
m_videoSrc = gst_element_factory_make(keyValue.at(0), "camera_source");
@@ -1363,7 +1363,7 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate,
//if the range is continuos, populate is with the common rates
if (isContinuous && res.size() >= 2) {
//fill the ragne with common value
- static QList<QSize> commonSizes =
+ static const QList<QSize> commonSizes =
QList<QSize>() << QSize(128, 96)
<< QSize(160,120)
<< QSize(176, 144)
@@ -1385,7 +1385,7 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate,
QSize maxSize = res.last();
res.clear();
- foreach (const QSize &candidate, commonSizes) {
+ for (const QSize &candidate : commonSizes) {
int w = candidate.width();
int h = candidate.height();
diff --git a/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp b/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
index 2d53af1fb..12336ea43 100644
--- a/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
@@ -71,9 +71,9 @@ QList< qreal > CameraBinVideoEncoder::supportedFrameRates(const QVideoEncoderSet
*continuous = false;
QList< qreal > res;
- QPair<int,int> rate;
- foreach(rate, m_session->supportedFrameRates(settings.resolution(), continuous)) {
+ const auto rates = m_session->supportedFrameRates(settings.resolution(), continuous);
+ for (const auto &rate : rates) {
if (rate.second > 0)
res << qreal(rate.first)/rate.second;
}
@@ -141,7 +141,7 @@ QPair<int,int> CameraBinVideoEncoder::rateAsRational(qreal frameRate) const
int num = 1;
int denum = 1;
- foreach (int curDenum, denumCandidates) {
+ for (int curDenum : qAsConst(denumCandidates)) {
int curNum = qRound(frameRate*curDenum);
qreal curError = qAbs(qreal(curNum)/curDenum - frameRate);
diff --git a/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp b/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
index b7693c18a..2528bbec1 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
@@ -77,7 +77,7 @@ QGstreamerAudioEncode::QGstreamerAudioEncode(QObject *parent)
m_codecOptions["audio/AMR"] = QStringList();
m_codecOptions["audio/AMR-WB"] = QStringList();
- foreach( const QByteArray& codecName, codecCandidates ) {
+ for (const QByteArray& codecName : qAsConst(codecCandidates)) {
QByteArray elementName = m_elementNames[codecName];
GstElementFactory *factory = gst_element_factory_find(elementName.constData());
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp
index fca38ecf8..79deb9229 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp
@@ -142,8 +142,8 @@ void QGstreamerCaptureMetaDataControl::setMetaData(const QString &key, const QVa
QStringList QGstreamerCaptureMetaDataControl::availableMetaData() const
{
QStringList res;
- foreach (const QByteArray &key, m_values.keys()) {
- QString tag = qt_gstreamerMetaDataKeys()->key(key);
+ for (auto it = m_values.keyBegin(), end = m_values.keyEnd(); it != end; ++it) {
+ QString tag = qt_gstreamerMetaDataKeys()->key(*it);
if (!tag.isEmpty())
res.append(tag);
}
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamerimagecapturecontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamerimagecapturecontrol.cpp
index a5f91f193..57b968b77 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamerimagecapturecontrol.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamerimagecapturecontrol.cpp
@@ -74,7 +74,8 @@ int QGstreamerImageCaptureControl::capture(const QString &fileName)
if (path.isEmpty()) {
int lastImage = 0;
QDir outputDir = QDir::currentPath();
- foreach(QString fileName, outputDir.entryList(QStringList() << "img_*.jpg")) {
+ const auto list = outputDir.entryList(QStringList() << "img_*.jpg");
+ for (const QString &fileName : list) {
int imgNumber = fileName.midRef(4, fileName.size()-8).toInt();
lastImage = qMax(lastImage, imgNumber);
}
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamermediacontainercontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamermediacontainercontrol.cpp
index 338af5255..41b049d5d 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamermediacontainercontrol.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamermediacontainercontrol.cpp
@@ -71,7 +71,7 @@ QGstreamerMediaContainerControl::QGstreamerMediaContainerControl(QObject *parent
QSet<QString> allTypes;
- foreach( const QByteArray& formatName, formatCandidates ) {
+ for (const QByteArray& formatName : qAsConst(formatCandidates)) {
QByteArray elementName = m_elementNames[formatName];
GstElementFactory *factory = gst_element_factory_find(elementName.constData());
if (factory) {
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp
index 91bfd67f3..d30a2fe6f 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp
@@ -242,7 +242,7 @@ void QGstreamerRecorderControl::applySettings()
QString audioCodec;
QString videoCodec;
- foreach (const QString &containerCandidate, containerCandidates) {
+ for (const QString &containerCandidate : qAsConst(containerCandidates)) {
QSet<QString> supportedTypes = mediaContainerControl->supportedStreamTypes(containerCandidate);
audioCodec.clear();
@@ -250,7 +250,7 @@ void QGstreamerRecorderControl::applySettings()
if (needAudio) {
bool found = false;
- foreach (const QString &audioCandidate, audioCandidates) {
+ for (const QString &audioCandidate : qAsConst(audioCandidates)) {
QSet<QString> audioTypes = audioEncodeControl->supportedStreamTypes(audioCandidate);
if (audioTypes.intersects(supportedTypes)) {
found = true;
@@ -264,7 +264,7 @@ void QGstreamerRecorderControl::applySettings()
if (needVideo) {
bool found = false;
- foreach (const QString &videoCandidate, videoCandidates) {
+ for (const QString &videoCandidate : qAsConst(videoCandidates)) {
QSet<QString> videoTypes = videoEncodeControl->supportedStreamTypes(videoCandidate);
if (videoTypes.intersects(supportedTypes)) {
found = true;
@@ -339,7 +339,7 @@ QDir QGstreamerRecorderControl::defaultDir() const
dirCandidates << QDir::currentPath();
dirCandidates << QDir::tempPath();
- foreach (const QString &path, dirCandidates) {
+ for (const QString &path : qAsConst(dirCandidates)) {
QDir dir(path);
if (dir.exists() && QFileInfo(path).isWritable())
return dir;
@@ -352,7 +352,8 @@ QString QGstreamerRecorderControl::generateFileName(const QDir &dir, const QStri
{
int lastClip = 0;
- foreach(QString fileName, dir.entryList(QStringList() << QString("clip_*.%1").arg(ext))) {
+ const auto list = dir.entryList(QStringList() << QString("clip_*.%1").arg(ext));
+ for (const QString &fileName : list) {
int imgNumber = fileName.midRef(5, fileName.size()-6-ext.length()).toInt();
lastClip = qMax(lastClip, imgNumber);
}
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamerv4l2input.cpp b/src/plugins/gstreamer/mediacapture/qgstreamerv4l2input.cpp
index 600a492e7..65e19ad2e 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamerv4l2input.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamerv4l2input.cpp
@@ -138,7 +138,7 @@ void QGstreamerV4L2Input::updateSupportedResolutions(const QByteArray &device)
//get the list of resolutions:
- foreach (quint32 format, supportedFormats) {
+ for (quint32 format : qAsConst(supportedFormats)) {
struct v4l2_frmsizeenum formatSize;
memset(&formatSize, 0, sizeof(formatSize));
formatSize.pixel_format = format;
@@ -161,7 +161,7 @@ void QGstreamerV4L2Input::updateSupportedResolutions(const QByteArray &device)
sizeList.append(QSize(formatSize.discrete.width, formatSize.discrete.height));
} else {
- foreach (const QSize& candidate, commonSizes) {
+ for (const QSize& candidate : qAsConst(commonSizes)) {
if (candidate.width() <= (int)formatSize.stepwise.max_width &&
candidate.height() >= (int)formatSize.stepwise.min_width &&
candidate.width() % formatSize.stepwise.step_width == 0 &&
@@ -185,7 +185,7 @@ void QGstreamerV4L2Input::updateSupportedResolutions(const QByteArray &device)
//and frameRates for each resolution.
- foreach (const QSize &s, sizeList) {
+ for (const QSize &s : qAsConst(sizeList)) {
allResolutions.insert(s);
struct v4l2_frmivalenum formatInterval;
@@ -221,7 +221,7 @@ void QGstreamerV4L2Input::updateSupportedResolutions(const QByteArray &device)
formatInterval.stepwise.max.numerator);
- foreach (int candidate, commonRates) {
+ for (int candidate : qAsConst(commonRates)) {
if (candidate >= minRate && candidate <= maxRate)
frameRates.append(candidate);
}
@@ -242,7 +242,7 @@ void QGstreamerV4L2Input::updateSupportedResolutions(const QByteArray &device)
f.close();
- foreach(int rate, allFrameRates) {
+ for (int rate : qAsConst(allFrameRates)) {
m_frameRates.append(rate/1000.0);
}
@@ -262,7 +262,9 @@ QList<qreal> QGstreamerV4L2Input::supportedFrameRates(const QSize &frameSize) co
return m_frameRates;
else {
QList<qreal> res;
- foreach(int rate, m_ratesByResolution[frameSize]) {
+ const auto rates = m_ratesByResolution[frameSize];
+ res.reserve(rates.size());
+ for (int rate : rates) {
res.append(rate/1000.0);
}
return res;
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp b/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp
index 543603c6d..172845d7c 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp
@@ -59,7 +59,7 @@ QGstreamerVideoEncode::QGstreamerVideoEncode(QGstreamerCaptureSession *session)
m_codecOptions["video/mpeg2"] = QStringList() << "quantizer";
m_codecOptions["video/theora"] = QStringList();
- foreach( const QByteArray& codecName, codecCandidates ) {
+ for (const QByteArray& codecName : qAsConst(codecCandidates)) {
QByteArray elementName = m_elementNames[codecName];
GstElementFactory *factory = gst_element_factory_find(elementName.constData());
if (factory) {
@@ -293,7 +293,7 @@ QPair<int,int> QGstreamerVideoEncode::rateAsRational() const
int num = 1;
int denum = 1;
- foreach (int curDenum, denumCandidates) {
+ for (int curDenum : qAsConst(denumCandidates)) {
int curNum = qRound(frameRate*curDenum);
qreal curError = qAbs(qreal(curNum)/curDenum - frameRate);
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
index c3d20e790..19496977b 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
@@ -1524,7 +1524,8 @@ void QGstreamerPlayerSession::playbinNotifySource(GObject *o, GParamSpec *p, gpo
if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0) {
GstStructure *extras = qt_gst_structure_new_empty("extras");
- foreach (const QByteArray &rawHeader, self->m_request.rawHeaderList()) {
+ const auto rawHeaderList = self->m_request.rawHeaderList();
+ for (const QByteArray &rawHeader : rawHeaderList) {
if (rawHeader == userAgentString) // Filter User-Agent
continue;
else {
diff --git a/src/plugins/m3u/qm3uhandler.cpp b/src/plugins/m3u/qm3uhandler.cpp
index c141376c7..e20b11006 100644
--- a/src/plugins/m3u/qm3uhandler.cpp
+++ b/src/plugins/m3u/qm3uhandler.cpp
@@ -105,7 +105,7 @@ public:
candidates << fileUrl;
candidates << url;
- foreach (const QUrl &candidate, candidates) {
+ for (const QUrl &candidate : qAsConst(candidates)) {
if (QFile::exists(candidate.toLocalFile())) {
nextResource = candidate;
break;
diff --git a/src/plugins/qnx/camera/bbcamerasession.cpp b/src/plugins/qnx/camera/bbcamerasession.cpp
index 66243187b..13af75e2d 100644
--- a/src/plugins/qnx/camera/bbcamerasession.cpp
+++ b/src/plugins/qnx/camera/bbcamerasession.cpp
@@ -526,7 +526,7 @@ void BbCameraSession::applyVideoSettings()
QList<QSize> sizes = supportedViewfinderResolutions(QCamera::CaptureVideo);
std::reverse(sizes.begin(), sizes.end()); // use smallest possible resolution
- foreach (const QSize &size, sizes) {
+ for (const QSize &size : qAsConst(sizes)) {
// search for viewfinder resolution with the same aspect ratio
if (qFuzzyCompare(aspectRatio, (static_cast<qreal>(size.width())/static_cast<qreal>(size.height())))) {
viewfinderResolution = size;
@@ -944,7 +944,7 @@ void BbCameraSession::applyConfiguration()
QSize viewfinderResolution;
QList<QSize> sizes = supportedViewfinderResolutions(QCamera::CaptureStillImage);
std::reverse(sizes.begin(), sizes.end()); // use smallest possible resolution
- foreach (const QSize &size, sizes) {
+ for (const QSize &size : qAsConst(sizes)) {
// search for viewfinder resolution with the same aspect ratio
if (qFuzzyCompare(aspectRatio, (static_cast<qreal>(size.width())/static_cast<qreal>(size.height())))) {
viewfinderResolution = size;
diff --git a/src/plugins/qnx/camera/bbmediastoragelocation.cpp b/src/plugins/qnx/camera/bbmediastoragelocation.cpp
index deaff77d3..ffec15381 100644
--- a/src/plugins/qnx/camera/bbmediastoragelocation.cpp
+++ b/src/plugins/qnx/camera/bbmediastoragelocation.cpp
@@ -57,7 +57,7 @@ QDir BbMediaStorageLocation::defaultDir(QCamera::CaptureMode mode) const
dirCandidates << QDir::currentPath();
dirCandidates << QDir::tempPath();
- Q_FOREACH (const QString &path, dirCandidates) {
+ for (const QString &path : qAsConst(dirCandidates)) {
if (QFileInfo(path).isWritable())
return QDir(path);
}
@@ -83,7 +83,8 @@ QString BbMediaStorageLocation::generateFileName(const QString &prefix, const QD
if (lastMediaIndex == 0) {
// first run, find the maximum media number during the fist capture
- Q_FOREACH (const QString &fileName, dir.entryList(QStringList() << QString("%1*.%2").arg(prefix).arg(extension))) {
+ const auto list = dir.entryList(QStringList() << QString("%1*.%2").arg(prefix).arg(extension));
+ for (const QString &fileName : list) {
const qint64 mediaIndex = fileName.midRef(prefix.length(), fileName.size() - prefix.length() - extension.length() - 1).toInt();
lastMediaIndex = qMax(lastMediaIndex, mediaIndex);
}
diff --git a/src/plugins/qnx/mediaplayer/mmrenderervideowindowcontrol.cpp b/src/plugins/qnx/mediaplayer/mmrenderervideowindowcontrol.cpp
index aac8825cf..84f0ca83b 100644
--- a/src/plugins/qnx/mediaplayer/mmrenderervideowindowcontrol.cpp
+++ b/src/plugins/qnx/mediaplayer/mmrenderervideowindowcontrol.cpp
@@ -405,7 +405,8 @@ void MmRendererVideoWindowControl::screenEventHandler(const screen_event_t &scre
QWindow *MmRendererVideoWindowControl::findWindow(WId id) const
{
- Q_FOREACH (QWindow *window, QGuiApplication::allWindows())
+ const auto allWindows = QGuiApplication::allWindows();
+ for (QWindow *window : allWindows)
if (window->winId() == id)
return window;
return 0;
diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
index 2e2092be9..5c120b0e1 100644
--- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
@@ -125,7 +125,8 @@ void QSGVivanteVideoMaterial::bind()
void QSGVivanteVideoMaterial::clearTextures()
{
- Q_FOREACH (GLuint id, mBitsToTextureMap.values()) {
+ for (auto it = mBitsToTextureMap.cbegin(), end = mBitsToTextureMap.cend(); it != end; ++it) {
+ GLuint id = it.value();
#ifdef QT_VIVANTE_VIDEO_DEBUG
qDebug() << "delete texture: " << id;
#endif
diff --git a/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp b/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp
index 039bafead..4c77f5183 100644
--- a/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp
+++ b/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp
@@ -370,8 +370,8 @@ void QWindowsAudioDeviceInfo::updateLists()
// Check more sample sizes
testFormat = defaultTestFormat;
- QList<int> testSampleSizes = QList<int>() << 24 << 32 << 48 << 64;
- Q_FOREACH (int s, testSampleSizes) {
+ const QList<int> testSampleSizes = QList<int>() << 24 << 32 << 48 << 64;
+ for (int s : testSampleSizes) {
testFormat.setSampleSize(s);
if (testSettings(testFormat))
sizez.append(s);
@@ -379,8 +379,8 @@ void QWindowsAudioDeviceInfo::updateLists()
// Check more sample rates
testFormat = defaultTestFormat;
- QList<int> testSampleRates = QList<int>() << 8000 << 16000 << 32000 << 88200 << 192000;
- Q_FOREACH (int r, testSampleRates) {
+ const QList<int> testSampleRates = QList<int>() << 8000 << 16000 << 32000 << 88200 << 192000;
+ for (int r : testSampleRates) {
testFormat.setSampleRate(r);
if (testSettings(testFormat))
sampleRatez.append(r);
diff --git a/src/plugins/winrt/qwinrtcameracontrol.cpp b/src/plugins/winrt/qwinrtcameracontrol.cpp
index 19b718cdd..d209d9394 100644
--- a/src/plugins/winrt/qwinrtcameracontrol.cpp
+++ b/src/plugins/winrt/qwinrtcameracontrol.cpp
@@ -936,7 +936,7 @@ HRESULT QWinRTCameraControl::initialize()
// Set preview resolution.
QVector<QSize> filtered;
const float captureAspectRatio = float(captureResolution.width()) / captureResolution.height();
- foreach (const QSize &resolution, previewResolutions) {
+ for (const QSize &resolution : qAsConst(previewResolutions)) {
const float aspectRatio = float(resolution.width()) / resolution.height();
if (qAbs(aspectRatio - captureAspectRatio) <= ASPECTRATIO_EPSILON)
filtered.append(resolution);
diff --git a/src/plugins/winrt/qwinrtimageencodercontrol.cpp b/src/plugins/winrt/qwinrtimageencodercontrol.cpp
index 6260a1d66..fc28a8a18 100644
--- a/src/plugins/winrt/qwinrtimageencodercontrol.cpp
+++ b/src/plugins/winrt/qwinrtimageencodercontrol.cpp
@@ -109,7 +109,7 @@ void QWinRTImageEncoderControl::applySettings()
// Find closest resolution from the list
const int pixelCount = requestResolution.width() * requestResolution.height();
int minimumGap = std::numeric_limits<int>::max();
- foreach (const QSize &size, d->supportedResolutions) {
+ for (const QSize &size : qAsConst(d->supportedResolutions)) {
int gap = qAbs(pixelCount - size.width() * size.height());
if (gap < minimumGap) {
minimumGap = gap;
diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
index ed2dbb943..7bdb586c3 100644
--- a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
+++ b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
@@ -757,7 +757,8 @@ void QWinRTMediaPlayerControl::setMedia(const QMediaContent &media, QIODevice *s
QString urlString = media.canonicalUrl().toString();
if (!d->stream) {
// If we can read the file via Qt, use the byte stream approach
- foreach (const QMediaResource &resource, media.resources()) {
+ const auto resources = media.resources();
+ for (const QMediaResource &resource : resources) {
const QUrl url = resource.url();
if (url.isLocalFile()) {
urlString = url.toLocalFile();
diff --git a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp
index 8e806dcbf..07b63be9a 100644
--- a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp
+++ b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp
@@ -158,7 +158,7 @@ private:
if (isDefault)
defaultDeviceIndex = index;
- foreach (QWinRTVideoDeviceSelectorControl *watcher, watchers)
+ for (QWinRTVideoDeviceSelectorControl *watcher : qAsConst(watchers))
emit watcher->devicesChanged();
return S_OK;
@@ -180,7 +180,7 @@ private:
if (index >= 0)
devices.remove(index);
- foreach (QWinRTVideoDeviceSelectorControl *watcher, watchers)
+ for (QWinRTVideoDeviceSelectorControl *watcher : qAsConst(watchers))
emit watcher->devicesChanged();
return S_OK;
@@ -189,7 +189,7 @@ private:
HRESULT onDeviceUpdated(IDeviceWatcher *, IDeviceInformationUpdate *)
{
// A name or description may have changed, so emit devicesChanged
- foreach (QWinRTVideoDeviceSelectorControl *watcher, watchers)
+ for (QWinRTVideoDeviceSelectorControl *watcher : qAsConst(watchers))
emit watcher->devicesChanged();
return S_OK;
@@ -349,8 +349,9 @@ int QWinRTVideoDeviceSelectorControl::cameraOrientation(const QString &deviceNam
QList<QByteArray> QWinRTVideoDeviceSelectorControl::deviceNames()
{
QList<QByteArray> devices;
- foreach (const QString &device, g->deviceIndex.keys())
- devices.append(device.toUtf8());
+ devices.reserve(g->deviceIndex.size());
+ for (auto it = g->deviceIndex.keyBegin(), end = g->deviceIndex.keyEnd(); it != end; ++it)
+ devices.append((*it).toUtf8());
return devices;
}
diff --git a/src/plugins/wmf/decoder/mfaudiodecodercontrol.cpp b/src/plugins/wmf/decoder/mfaudiodecodercontrol.cpp
index 55fae7146..62a7f6cb0 100644
--- a/src/plugins/wmf/decoder/mfaudiodecodercontrol.cpp
+++ b/src/plugins/wmf/decoder/mfaudiodecodercontrol.cpp
@@ -340,7 +340,7 @@ void MFAudioDecoderControl::handleSampleAdded()
QByteArray abuf;
if (m_sourceOutputFormat == m_audioFormat) {
//no need for resampling
- foreach (IMFSample *s, samples) {
+ for (IMFSample *s : qAsConst(samples)) {
IMFMediaBuffer *buffer;
s->ConvertToContiguousBuffer(&buffer);
DWORD bufLen = 0;
@@ -357,7 +357,7 @@ void MFAudioDecoderControl::handleSampleAdded()
s->Release();
}
} else {
- foreach (IMFSample *s, samples) {
+ for (IMFSample *s : qAsConst(samples)) {
HRESULT hr = m_resampler->ProcessInput(m_mfInputStreamID, s, 0);
if (SUCCEEDED(hr)) {
MFT_OUTPUT_DATA_BUFFER outputDataBuffer;
diff --git a/src/plugins/wmf/mftvideo.cpp b/src/plugins/wmf/mftvideo.cpp
index 1b3c5bbca..b7a416213 100644
--- a/src/plugins/wmf/mftvideo.cpp
+++ b/src/plugins/wmf/mftvideo.cpp
@@ -511,6 +511,15 @@ STDMETHODIMP MFTransform::ProcessInput(DWORD dwInputStreamID, IMFSample *pSample
m_sample = pSample;
m_sample->AddRef();
+ QMutexLocker lockerProbe(&m_videoProbeMutex);
+
+ if (!m_videoProbes.isEmpty()) {
+ QVideoFrame frame = makeVideoFrame();
+
+ for (MFVideoProbeControl* probe : qAsConst(m_videoProbes))
+ probe->bufferProbed(frame);
+ }
+
return S_OK;
}
diff --git a/src/plugins/wmf/player/mfaudioendpointcontrol.cpp b/src/plugins/wmf/player/mfaudioendpointcontrol.cpp
index 7178a75c1..ccd4cdf98 100644
--- a/src/plugins/wmf/player/mfaudioendpointcontrol.cpp
+++ b/src/plugins/wmf/player/mfaudioendpointcontrol.cpp
@@ -49,8 +49,8 @@ void MFAudioEndpointControl::clear()
{
m_activeEndpoint.clear();
- foreach (LPWSTR wstrID, m_devices)
- CoTaskMemFree(wstrID);
+ for (auto it = m_devices.cbegin(), end = m_devices.cend(); it != end; ++it)
+ CoTaskMemFree(it.value());
m_devices.clear();
diff --git a/src/plugins/wmf/player/mfvideorenderercontrol.cpp b/src/plugins/wmf/player/mfvideorenderercontrol.cpp
index 766b4b0d9..222d74ef2 100644
--- a/src/plugins/wmf/player/mfvideorenderercontrol.cpp
+++ b/src/plugins/wmf/player/mfvideorenderercontrol.cpp
@@ -788,8 +788,8 @@ namespace
clearMediaTypes();
if (!m_surface)
return;
- QList<QVideoFrame::PixelFormat> formats = m_surface->supportedPixelFormats();
- foreach (QVideoFrame::PixelFormat format, formats) {
+ const QList<QVideoFrame::PixelFormat> formats = m_surface->supportedPixelFormats();
+ for (QVideoFrame::PixelFormat format : formats) {
IMFMediaType *mediaType;
if (FAILED(MFCreateMediaType(&mediaType))) {
qWarning("Failed to create mf media type!");
@@ -1044,7 +1044,7 @@ namespace
void clearMediaTypes()
{
- foreach (IMFMediaType* mediaType, m_mediaTypes)
+ for (IMFMediaType* mediaType : qAsConst(m_mediaTypes))
mediaType->Release();
m_mediaTypes.clear();
}
@@ -1285,7 +1285,7 @@ namespace
bool m_prerolling;
void clearSampleQueue() {
- foreach (IUnknown* sample, m_sampleQueue)
+ for (IUnknown* sample : qAsConst(m_sampleQueue))
sample->Release();
m_sampleQueue.clear();
}
@@ -1392,7 +1392,7 @@ namespace
void clearBufferCache()
{
- foreach (SampleBuffer sb, m_bufferCache)
+ for (SampleBuffer sb : qAsConst(m_bufferCache))
sb.m_buffer->Release();
m_bufferCache.clear();
diff --git a/src/plugins/wmf/samplegrabber.cpp b/src/plugins/wmf/samplegrabber.cpp
index 35f038891..b4cf68095 100644
--- a/src/plugins/wmf/samplegrabber.cpp
+++ b/src/plugins/wmf/samplegrabber.cpp
@@ -160,7 +160,7 @@ STDMETHODIMP AudioSampleGrabberCallback::OnProcessSample(REFGUID guidMajorMediaT
llSampleTime /= 10;
}
- foreach (MFAudioProbeControl* probe, m_audioProbes)
+ for (MFAudioProbeControl* probe : qAsConst(m_audioProbes))
probe->bufferProbed((const char*)pSampleBuffer, dwSampleSize, m_format, llSampleTime);
return S_OK;
diff --git a/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp b/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp
index cae6cf002..d3e8c32ee 100644
--- a/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp
+++ b/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp
@@ -231,7 +231,8 @@ bool QDeclarativeVideoOutput::createBackend(QMediaService *service)
{
bool backendAvailable = false;
- foreach (QObject *instance, videoBackendFactoryLoader()->instances(QLatin1String("declarativevideobackend"))) {
+ const auto instances = videoBackendFactoryLoader()->instances(QLatin1String("declarativevideobackend"));
+ for (QObject *instance : instances) {
if (QDeclarativeVideoBackendFactoryInterface *plugin = qobject_cast<QDeclarativeVideoBackendFactoryInterface*>(instance)) {
m_backend.reset(plugin->create(this));
if (m_backend && m_backend->init(service)) {
diff --git a/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp b/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp
index 70d48dd97..36572f613 100644
--- a/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp
+++ b/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp
@@ -64,7 +64,8 @@ QDeclarativeVideoRendererBackend::QDeclarativeVideoRendererBackend(QDeclarativeV
// Prioritize the plugin requested by the environment
QString requestedVideoNode = QString::fromLatin1(qgetenv("QT_VIDEONODE"));
- foreach (const QString &key, videoNodeFactoryLoader()->keys()) {
+ const auto keys = videoNodeFactoryLoader()->keys();
+ for (const QString &key : keys) {
QObject *instance = videoNodeFactoryLoader()->instance(key);
QSGVideoNodeFactoryInterface* plugin = qobject_cast<QSGVideoNodeFactoryInterface*>(instance);
if (plugin) {
@@ -124,7 +125,7 @@ class FilterRunnableDeleter : public QRunnable
public:
FilterRunnableDeleter(const QList<QVideoFilterRunnable *> &runnables) : m_runnables(runnables) { }
void run() Q_DECL_OVERRIDE {
- foreach (QVideoFilterRunnable *runnable, m_runnables)
+ for (QVideoFilterRunnable *runnable : qAsConst(m_runnables))
delete runnable;
}
private:
@@ -335,7 +336,7 @@ QSGNode *QDeclarativeVideoRendererBackend::updatePaintNode(QSGNode *oldNode,
}
if (!videoNode) {
- foreach (QSGVideoNodeFactoryInterface* factory, m_videoNodeFactories) {
+ for (QSGVideoNodeFactoryInterface* factory : qAsConst(m_videoNodeFactories)) {
// Get a node that supports our frame. The surface is irrelevant, our
// QSGVideoItemSurface supports (logically) anything.
videoNode = factory->createNode(QVideoSurfaceFormat(m_frame.size(), m_frame.pixelFormat(), m_frame.handleType()));
@@ -437,7 +438,7 @@ QList<QVideoFrame::PixelFormat> QSGVideoItemSurface::supportedPixelFormats(
return formats;
}
- foreach (QSGVideoNodeFactoryInterface* factory, m_backend->m_videoNodeFactories)
+ for (QSGVideoNodeFactoryInterface* factory : qAsConst(m_backend->m_videoNodeFactories))
formats.append(factory->supportedPixelFormats(handleType));
return formats;