From 8daa96db2991c24c9102e736413f79241813b7df Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@qt.io>
Date: Wed, 5 Sep 2018 09:34:40 +0200
Subject: [PATCH] DirectShow: Fix clang-tidy warnings about loops

- Replace by range-based for

Change-Id: Ie73bf5b6e1ebd90e4db653af0791ec88b68ed883
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
---
 src/plugins/common/evr/evrcustompresenter.cpp | 27 +++++++-----------
 .../directshow/common/directshowmediatype.cpp | 28 ++++++++-----------
 .../directshow/player/directshowiosource.cpp  |  4 +--
 3 files changed, 23 insertions(+), 36 deletions(-)

diff --git a/src/plugins/common/evr/evrcustompresenter.cpp b/src/plugins/common/evr/evrcustompresenter.cpp
index fd3054b0b..7a8985301 100644
--- a/src/plugins/common/evr/evrcustompresenter.cpp
+++ b/src/plugins/common/evr/evrcustompresenter.cpp
@@ -510,19 +510,16 @@ HRESULT SamplePool::initialize(QList<IMFSample*> &samples)
     if (m_initialized)
         return MF_E_INVALIDREQUEST;
 
-    IMFSample *sample = NULL;
-
     // Move these samples into our allocated queue.
-    for (int i = 0; i < samples.size(); ++i) {
-        sample = samples.at(i);
+    for (auto sample : qAsConst(samples)) {
         sample->AddRef();
         m_videoSampleQueue.append(sample);
     }
 
     m_initialized = true;
 
-    for (int i = 0; i < samples.size(); ++i)
-        samples[i]->Release();
+    for (auto sample : qAsConst(samples))
+        sample->Release();
     samples.clear();
     return S_OK;
 }
@@ -531,8 +528,8 @@ HRESULT SamplePool::clear()
 {
     QMutexLocker locker(&m_mutex);
 
-    for (int i = 0; i < m_videoSampleQueue.size(); ++i)
-        m_videoSampleQueue[i]->Release();
+    for (auto sample : qAsConst(m_videoSampleQueue))
+        sample->Release();
     m_videoSampleQueue.clear();
     m_initialized = false;
 
@@ -928,8 +925,8 @@ HRESULT EVRCustomPresenter::OnClockSetRate(MFTIME, float rate)
     // frame-step operation.
     if ((m_playbackRate == 0.0f) && (rate != 0.0f)) {
         cancelFrameStep();
-        for (int i = 0; i < m_frameStep.samples.size(); ++i)
-            m_frameStep.samples[i]->Release();
+        for (auto sample : qAsConst(m_frameStep.samples))
+            sample->Release();
         m_frameStep.samples.clear();
     }
 
@@ -1142,8 +1139,8 @@ HRESULT EVRCustomPresenter::flush()
     m_scheduler.flush();
 
     // Flush the frame-step queue.
-    for (int i = 0; i < m_frameStep.samples.size(); ++i)
-        m_frameStep.samples[i]->Release();
+    for (auto sample : qAsConst(m_frameStep.samples))
+        sample->Release();
     m_frameStep.samples.clear();
 
     if (m_renderState == RenderStopped) {
@@ -1408,8 +1405,6 @@ HRESULT EVRCustomPresenter::setMediaType(IMFMediaType *mediaType)
     MFRatio fps = { 0, 0 };
     QList<IMFSample*> sampleQueue;
 
-    IMFSample *sample = NULL;
-
     // Cannot set the media type after shutdown.
     HRESULT hr = checkShutdown();
     if (FAILED(hr))
@@ -1433,9 +1428,7 @@ HRESULT EVRCustomPresenter::setMediaType(IMFMediaType *mediaType)
 
     // Mark each sample with our token counter. If this batch of samples becomes
     // invalid, we increment the counter, so that we know they should be discarded.
-    for (int i = 0; i < sampleQueue.size(); ++i) {
-        sample = sampleQueue.at(i);
-
+    for (auto sample : qAsConst(sampleQueue)) {
         hr = sample->SetUINT32(MFSamplePresenter_SampleCounter, m_tokenCounter);
         if (FAILED(hr))
             goto done;
diff --git a/src/plugins/directshow/common/directshowmediatype.cpp b/src/plugins/directshow/common/directshowmediatype.cpp
index b2a514609..dc8e598f0 100644
--- a/src/plugins/directshow/common/directshowmediatype.cpp
+++ b/src/plugins/directshow/common/directshowmediatype.cpp
@@ -222,11 +222,10 @@ void DirectShowMediaType::clear(AM_MEDIA_TYPE &type)
 
 GUID DirectShowMediaType::convertPixelFormat(QVideoFrame::PixelFormat format)
 {
-    const int count = sizeof(qt_typeLookup) / sizeof(TypeLookup);
-
-    for (int i = 0; i < count; ++i)
-        if (qt_typeLookup[i].pixelFormat == format)
-            return qt_typeLookup[i].mediaType;
+    for (const auto &lookupType : qt_typeLookup) {
+        if (lookupType.pixelFormat == format)
+            return lookupType.mediaType;
+    }
 
     return MEDIASUBTYPE_None;
 }
@@ -236,16 +235,14 @@ QVideoSurfaceFormat DirectShowMediaType::videoFormatFromType(const AM_MEDIA_TYPE
     if (!type)
         return QVideoSurfaceFormat();
 
-    const int count = sizeof(qt_typeLookup) / sizeof(TypeLookup);
-
-    for (int i = 0; i < count; ++i) {
-        if (IsEqualGUID(qt_typeLookup[i].mediaType, type->subtype) && type->cbFormat > 0) {
+    for (const auto &lookupType : qt_typeLookup) {
+        if (IsEqualGUID(lookupType.mediaType, type->subtype) && type->cbFormat > 0) {
             if (IsEqualGUID(type->formattype, FORMAT_VideoInfo)) {
                 VIDEOINFOHEADER *header = reinterpret_cast<VIDEOINFOHEADER *>(type->pbFormat);
 
                 QVideoSurfaceFormat format(
                         QSize(header->bmiHeader.biWidth, qAbs(header->bmiHeader.biHeight)),
-                        qt_typeLookup[i].pixelFormat);
+                        lookupType.pixelFormat);
 
                 if (header->AvgTimePerFrame > 0)
                     format.setFrameRate(10000 /header->AvgTimePerFrame);
@@ -258,7 +255,7 @@ QVideoSurfaceFormat DirectShowMediaType::videoFormatFromType(const AM_MEDIA_TYPE
 
                 QVideoSurfaceFormat format(
                         QSize(header->bmiHeader.biWidth, qAbs(header->bmiHeader.biHeight)),
-                        qt_typeLookup[i].pixelFormat);
+                        lookupType.pixelFormat);
 
                 if (header->AvgTimePerFrame > 0)
                     format.setFrameRate(10000 / header->AvgTimePerFrame);
@@ -277,12 +274,9 @@ QVideoFrame::PixelFormat DirectShowMediaType::pixelFormatFromType(const AM_MEDIA
     if (!type)
         return QVideoFrame::Format_Invalid;
 
-    const int count = sizeof(qt_typeLookup) / sizeof(TypeLookup);
-
-    for (int i = 0; i < count; ++i) {
-        if (IsEqualGUID(qt_typeLookup[i].mediaType, type->subtype)) {
-            return qt_typeLookup[i].pixelFormat;
-        }
+    for (const auto &lookupType : qt_typeLookup) {
+        if (IsEqualGUID(lookupType.mediaType, type->subtype))
+            return lookupType.pixelFormat;
     }
 
     return QVideoFrame::Format_Invalid;
diff --git a/src/plugins/directshow/player/directshowiosource.cpp b/src/plugins/directshow/player/directshowiosource.cpp
index b3aa3fab9..5722e6411 100644
--- a/src/plugins/directshow/player/directshowiosource.cpp
+++ b/src/plugins/directshow/player/directshowiosource.cpp
@@ -99,8 +99,8 @@ DirectShowIOSource::DirectShowIOSource(DirectShowEventLoop *loop)
 
     static const int count = sizeof(directshow_subtypes) / sizeof(GUID);
 
-    for (int i = 0; i < count; ++i) {
-        type.subtype = directshow_subtypes[i];
+    for (const auto &directshowSubtype : directshow_subtypes) {
+        type.subtype = directshowSubtype;
         m_supportedMediaTypes.append(DirectShowMediaType(type));
     }
 }
-- 
GitLab