From 6a65c0fa3881ea65f199fa3ec159b1663c7ed462 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 27 May 2022 10:04:30 -0700 Subject: [PATCH] render: clamp audio samples when finalized --- app/codec/samplebuffer.cpp | 37 ++++++++++++++++++++++++++++++++++ app/codec/samplebuffer.h | 6 ++++++ app/render/renderprocessor.cpp | 14 ++++++++----- 3 files changed, 52 insertions(+), 5 deletions(-) diff --git a/app/codec/samplebuffer.cpp b/app/codec/samplebuffer.cpp index 3c0096867..fd4dfa5a7 100644 --- a/app/codec/samplebuffer.cpp +++ b/app/codec/samplebuffer.cpp @@ -191,6 +191,13 @@ void SampleBuffer::transform_volume_for_sample_on_channel(int sample_index, int data_[channel][sample_index] *= volume; } +void SampleBuffer::clamp() +{ + for (int i=0; iproperty("enablewaveforms").toBool()) { - AudioVisualWaveform vis; - vis.set_channel_count(samples.audio_params().channel_count()); - vis.OverwriteSamples(samples, samples.audio_params().sample_rate()); - ticket_->setProperty("waveform", QVariant::fromValue(vis)); + if (samples.is_allocated()) { + samples.clamp(); + + if (ticket_->property("enablewaveforms").toBool()) { + AudioVisualWaveform vis; + vis.set_channel_count(samples.audio_params().channel_count()); + vis.OverwriteSamples(samples, samples.audio_params().sample_rate()); + ticket_->setProperty("waveform", QVariant::fromValue(vis)); + } } if (HeardCancel()) {