diff --git a/app/audio/audiovisualwaveform.cpp b/app/audio/audiovisualwaveform.cpp index 277fa1c04..24a735fc5 100644 --- a/app/audio/audiovisualwaveform.cpp +++ b/app/audio/audiovisualwaveform.cpp @@ -49,14 +49,15 @@ void AudioVisualWaveform::OverwriteSamplesFromBuffer(SampleBufferPtr samples, in data.resize(end_index); } - int chunk_size = sample_rate / target_rate; + double chunk_size = double(sample_rate) / double(target_rate); for (int i=0; isample_count()); Sample summary = SumSamples(samples, - src_index, - qMin(chunk_size, samples->sample_count() - src_index)); + src_start, + src_end - src_start); memcpy(&data.data()[i + start_index], summary.constData(), @@ -74,6 +75,7 @@ void AudioVisualWaveform::OverwriteSamplesFromMipmap(const AudioVisualWaveform:: output_data.resize(end_index); } + // We guarantee mipmaps are powers of two so integer division should be perfectly accurate here int chunk_size = input_sample_rate / output_rate; for (int i=0; idrawLine(x, - channel_mid + qRound(min * static_cast(channel_half_height)), + channel_mid - qRound(min * static_cast(channel_half_height)), x, - channel_mid + qRound(max * static_cast(channel_half_height))); + channel_mid - qRound(max * static_cast(channel_half_height))); } } }