waveform: fixed precision issue when generating from sample data

Fixes #1664
This commit is contained in:
itsmattkc
2021-07-08 12:08:05 -07:00
parent 558d849d27
commit 1f0de6c5bb
+5 -4
View File
@@ -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; i<samples_length; i+=channels_) {
int src_index = (i * chunk_size) / channels_;
int src_start = qRound((double(i) * chunk_size) / double(channels_));
int src_end = qMin(qRound((double(i + channels_) * chunk_size) / double(channels_)), samples->sample_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(),