From ddf63b39e1a4cd37048434c7f594352d8f1d9330 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 5 Jun 2020 15:15:59 +1000 Subject: [PATCH] viewer: don't invalidated zero-length ranges A zero-length range doesn't represent any amount of time and has no need to actually invalidate anything. --- app/node/output/viewer/viewer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/node/output/viewer/viewer.cpp b/app/node/output/viewer/viewer.cpp index d5ca30249..0007dd760 100644 --- a/app/node/output/viewer/viewer.cpp +++ b/app/node/output/viewer/viewer.cpp @@ -94,6 +94,7 @@ void ViewerOutput::ShiftAudioCache(const rational &from, const rational &to) audio_playback_cache_.Shift(from, to); foreach (TrackOutput* track, track_lists_.at(Timeline::kTrackTypeAudio)->GetTracks()) { + QMutexLocker locker(track->waveform_lock()); track->waveform().Shift(from, to); } } @@ -112,10 +113,12 @@ void ViewerOutput::InvalidateCache(const TimeRange &range, NodeInput *from, Node TimeRange invalidated_range(qMax(rational(), range.in()), qMin(GetLength(), range.out())); - if (from == texture_input_) { - video_frame_cache_.Invalidate(invalidated_range); - } else { - audio_playback_cache_.Invalidate(invalidated_range); + if (invalidated_range.in() != invalidated_range.out()) { + if (from == texture_input_) { + video_frame_cache_.Invalidate(invalidated_range); + } else { + audio_playback_cache_.Invalidate(invalidated_range); + } } }