diff --git a/app/audio/audiovisualwaveform.cpp b/app/audio/audiovisualwaveform.cpp index 0fb9c215a..a64b1298f 100644 --- a/app/audio/audiovisualwaveform.cpp +++ b/app/audio/audiovisualwaveform.cpp @@ -280,19 +280,19 @@ AudioVisualWaveform::Sample AudioVisualWaveform::GetSummaryFromTime(const ration return AudioVisualWaveform::Sample(channel_count(), {0, 0}); } -void ExpandMinMaxChannel(const float *a, int start, int length, float &min_val, float &max_val) +void ExpandMinMaxChannel(const float *a, size_t length, float &min_val, float &max_val) { #if defined(Q_PROCESSOR_X86) || defined(Q_PROCESSOR_ARM) // SSE optimized // load the first 4 elements of 'a' into min and max (they are 4 * 32 = 128 bits) - __m128 max = _mm_loadu_ps(a + start); - __m128 min = _mm_loadu_ps(a + start); + __m128 max = _mm_loadu_ps(a); + __m128 min = _mm_loadu_ps(a); // loop over 'a' and compare current elements with min and max 4 by 4. // we need to make sure we don't read out of boundaries should 'a' length be not mod. 4 - for(int i = 4; i < length-4; i+=4) { - __m128 cur = _mm_loadu_ps(a + start + i); + for(size_t i = 4; i < length-4; i+=4) { + __m128 cur = _mm_loadu_ps(a + i); max = _mm_max_ps(max, cur); min = _mm_min_ps(min, cur); } @@ -316,8 +316,7 @@ void ExpandMinMaxChannel(const float *a, int start, int length, float &min_val, // I bet you don't find annotated low level code very often. #else // Standard unoptimized function - int end = start + length; - for (int i=start; i