diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 6050fabfe..6f0395705 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -107,6 +107,7 @@ else() -Wall -Wextra -Wno-unused-parameter + -Wshadow ) endif() diff --git a/app/node/input.cpp b/app/node/input.cpp index 3ec99b36f..d17656194 100644 --- a/app/node/input.cpp +++ b/app/node/input.cpp @@ -81,13 +81,15 @@ QString NodeInput::name() void NodeInput::Load(QXmlStreamReader *reader, XMLNodeData &xml_node_data, const QAtomicInt *cancelled) { - XMLAttributeLoop(reader, attr) { - if (cancelled && *cancelled) { - return; - } + { + XMLAttributeLoop(reader, attr) { + if (cancelled && *cancelled) { + return; + } - if (attr.name() == QStringLiteral("keyframing")) { - set_is_keyframing(attr.value() == QStringLiteral("1")); + if (attr.name() == QStringLiteral("keyframing")) { + set_is_keyframing(attr.value() == QStringLiteral("1")); + } } } diff --git a/app/node/output/track/tracklist.cpp b/app/node/output/track/tracklist.cpp index 67a19c91b..abe36e1e7 100644 --- a/app/node/output/track/tracklist.cpp +++ b/app/node/output/track/tracklist.cpp @@ -151,9 +151,9 @@ void TrackList::RemoveTrack() void TrackList::TrackConnected(NodeEdgePtr edge) { - int track_index = track_input_->IndexOfSubParameter(edge->input()); + int input_index = track_input_->IndexOfSubParameter(edge->input()); - Q_ASSERT(track_index >= 0); + Q_ASSERT(input_index >= 0); Node* connected_node = edge->output()->parentNode(); @@ -163,7 +163,7 @@ void TrackList::TrackConnected(NodeEdgePtr edge) { // Find "real" index TrackOutput* next = nullptr; - for (int i=track_index+1; iGetSize(); i++) { + for (int i=input_index+1; iGetSize(); i++) { Node* that_track = track_input_->At(i)->get_connected_node(); if (that_track && that_track->IsTrack()) { diff --git a/app/render/backend/opengl/openglproxy.cpp b/app/render/backend/opengl/openglproxy.cpp index c96e52d7a..08aa8864c 100644 --- a/app/render/backend/opengl/openglproxy.cpp +++ b/app/render/backend/opengl/openglproxy.cpp @@ -276,21 +276,21 @@ QVariant OpenGLProxy::RunNodeAccelerated(const Node *node, shader->bind(); - NodeValueMap::const_iterator i; - for (i=job.GetValues().constBegin(); i!=job.GetValues().constEnd(); i++) { + NodeValueMap::const_iterator it; + for (it=job.GetValues().constBegin(); it!=job.GetValues().constEnd(); it++) { // See if the shader has takes this parameter as an input - int variable_location = shader->uniformLocation(i.key()->id()); + int variable_location = shader->uniformLocation(it.key()->id()); if (variable_location == -1) { continue; } // This variable is used in the shader, let's set it - const QVariant& value = i.value().data(); + const QVariant& value = it.value().data(); - const NodeParam::DataType& data_type = (i.value().type() != NodeParam::kNone) - ? i.value().type() - : i.key()->data_type(); + const NodeParam::DataType& data_type = (it.value().type() != NodeParam::kNone) + ? it.value().type() + : it.key()->data_type(); switch (data_type) { case NodeInput::kInt: @@ -300,7 +300,7 @@ QVariant OpenGLProxy::RunNodeAccelerated(const Node *node, shader->setUniformValue(variable_location, value.toFloat()); break; case NodeInput::kVec2: - if (i.key()->IsArray()) { + if (it.key()->IsArray()) { QVector nv = value.value< QVector >(); QVector a(nv.size()); @@ -310,7 +310,7 @@ QVariant OpenGLProxy::RunNodeAccelerated(const Node *node, shader->setUniformValueArray(variable_location, a.constData(), a.size()); - int count_location = shader->uniformLocation(QStringLiteral("%1_count").arg(i.key()->id())); + int count_location = shader->uniformLocation(QStringLiteral("%1_count").arg(it.key()->id())); if (count_location > -1) { shader->setUniformValue(count_location, a.size()); } @@ -354,7 +354,7 @@ QVariant OpenGLProxy::RunNodeAccelerated(const Node *node, shader->setUniformValue(variable_location, textures_to_bind.size()); // If this texture binding is the iterative input, set it here - if (i.key() == job.GetIterativeInput()) { + if (it.key() == job.GetIterativeInput()) { iterative_input = textures_to_bind.size(); } @@ -362,7 +362,7 @@ QVariant OpenGLProxy::RunNodeAccelerated(const Node *node, textures_to_bind.append(tex_id); // Set enable flag if shader wants it - int enable_param_location = shader->uniformLocation(QStringLiteral("%1_enabled").arg(i.key()->id())); + int enable_param_location = shader->uniformLocation(QStringLiteral("%1_enabled").arg(it.key()->id())); if (enable_param_location > -1) { shader->setUniformValue(enable_param_location, tex_id > 0); @@ -370,7 +370,7 @@ QVariant OpenGLProxy::RunNodeAccelerated(const Node *node, if (tex_id > 0) { // Set texture resolution if shader wants it - int res_param_location = shader->uniformLocation(QStringLiteral("%1_resolution").arg(i.key()->id())); + int res_param_location = shader->uniformLocation(QStringLiteral("%1_resolution").arg(it.key()->id())); if (res_param_location > -1) { shader->setUniformValue(res_param_location, static_cast(texture->texture()->width() * texture->texture()->divider()), diff --git a/app/render/backend/renderbackend.cpp b/app/render/backend/renderbackend.cpp index df96c9efc..b9f90e5e4 100644 --- a/app/render/backend/renderbackend.cpp +++ b/app/render/backend/renderbackend.cpp @@ -115,13 +115,13 @@ void RenderBackend::ClearVideoQueue() QFuture > RenderBackend::Hash(const QVector ×) { - return QtConcurrent::run(&pool_, [this](const QVector ×){ - QVector hashes(times.size()); + return QtConcurrent::run(&pool_, [this](const QVector &t){ + QVector hashes(t.size()); for (int i=0;itexture_input()->get_connected_node(), video_params_, - times.at(i)); + t.at(i)); } return hashes; diff --git a/app/task/render/render.cpp b/app/task/render/render.cpp index 133a6bf1d..f0da1ff54 100644 --- a/app/task/render/render.cpp +++ b/app/task/render/render.cpp @@ -93,12 +93,10 @@ void RenderTask::Render(const TimeRangeList& video_range, if (!video_range.isEmpty()) { QList existing_hashes; - foreach (const TimeRange& r, video_range) { - total_length += r.length().toDouble(); - } - times = viewer_->video_frame_cache()->GetFrameListFromTimeRange(video_range); + total_length += video_frame_sz * times.size(); + QFuture > hash_future = backend_.Hash(times); hashes = hash_future.result(); @@ -125,7 +123,7 @@ void RenderTask::Render(const TimeRangeList& video_range, || !download_futures.empty() || !audio_lookup_table.empty())) { - if (!frame_queue.empty()) { + if (!IsCancelled() && !frame_queue.empty()) { // Pop another frame off the frame queue const HashTimePair& p = frame_queue.front(); @@ -138,11 +136,14 @@ void RenderTask::Render(const TimeRangeList& video_range, bool hash_exists = false; if (use_disk_cache) { - bool hash_exists = (std::find(existing_hashes.begin(), existing_hashes.end(), p.hash) != existing_hashes.end()); + // Check if this hash is in our "existing hashes" list + hash_exists = (std::find(existing_hashes.begin(), existing_hashes.end(), p.hash) != existing_hashes.end()); + // If not, check if it's in the filesystem if (!hash_exists) { hash_exists = QFileInfo::exists(viewer_->video_frame_cache()->CachePathName(p.hash)); + // If so, add it to the list so we don't have to check the filesystem again later if (hash_exists) { existing_hashes.push_back(p.hash); } @@ -167,7 +168,7 @@ void RenderTask::Render(const TimeRangeList& video_range, frame_queue.pop_front(); } - if (!audio_queue.empty()) { + if (!IsCancelled() && !audio_queue.empty()) { audio_lookup_table.push_back({audio_queue.front(), backend_.RenderAudio(audio_queue.front())}); audio_queue.pop_front(); } @@ -194,9 +195,9 @@ void RenderTask::Render(const TimeRangeList& video_range, // Place it in the cache std::list times_with_hash; - for (int k=0;khash) { - times_with_hash.push_back(times.at(k)); + for (int hash_index=0;hash_indexhash) { + times_with_hash.push_back(times.at(hash_index)); } } diff --git a/app/widget/audiomonitor/audiomonitor.cpp b/app/widget/audiomonitor/audiomonitor.cpp index 46a05a26e..86b53a8df 100644 --- a/app/widget/audiomonitor/audiomonitor.cpp +++ b/app/widget/audiomonitor/audiomonitor.cpp @@ -90,11 +90,11 @@ void AudioMonitor::Stop() } } -void AudioMonitor::OutputPushed(const QByteArray &data) +void AudioMonitor::OutputPushed(const QByteArray &d) { QVector v(params_.channel_count(), 0); - BytesToSampleSummary(data, v); + BytesToSampleSummary(d, v); PushValue(v); diff --git a/app/widget/audiomonitor/audiomonitor.h b/app/widget/audiomonitor/audiomonitor.h index d2f55f287..2b290ff14 100644 --- a/app/widget/audiomonitor/audiomonitor.h +++ b/app/widget/audiomonitor/audiomonitor.h @@ -45,7 +45,7 @@ public slots: void Stop(); - void OutputPushed(const QByteArray& data); + void OutputPushed(const QByteArray& d); protected: //virtual void paintEvent(QPaintEvent* event) override; diff --git a/app/widget/menu/menu.cpp b/app/widget/menu/menu.cpp index b744c3d32..5d1f7321c 100644 --- a/app/widget/menu/menu.cpp +++ b/app/widget/menu/menu.cpp @@ -50,13 +50,13 @@ Menu::Menu(const QString &s, QWidget *parent) : Init(); } -QAction *Menu::AddActionWithData(const QString &text, const QVariant &data, const QVariant &compare) +QAction *Menu::AddActionWithData(const QString &text, const QVariant &d, const QVariant &compare) { QAction* a = addAction(text); - a->setData(data); + a->setData(d); a->setCheckable(true); - a->setChecked(data == compare); + a->setChecked(d == compare); return a; } diff --git a/app/widget/menu/menu.h b/app/widget/menu/menu.h index edafaf85d..777143efc 100644 --- a/app/widget/menu/menu.h +++ b/app/widget/menu/menu.h @@ -132,7 +132,7 @@ public: } QAction* AddActionWithData(const QString& text, - const QVariant& data, + const QVariant& d, const QVariant& compare); QAction *InsertAlphabetically(const QString& s); diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 908d7e3a2..b89ffe00d 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -1584,9 +1584,9 @@ bool TimelineWidget::SnapPoint(QList start_times, rational* movement, // Find all points at this movement QList snap_times; - foreach (const SnapData& data, potential_snaps) { - if (data.movement == *movement) { - snap_times.append(data.time); + foreach (const SnapData& d, potential_snaps) { + if (d.movement == *movement) { + snap_times.append(d.time); } }