From d495815550e521784ad0e61d2929c5be47070c93 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 8 Apr 2021 07:59:56 +1000 Subject: [PATCH] audio: use sample rate rather than timebase now they aren't interchangeable --- app/render/audioparams.cpp | 4 ++-- app/widget/timelinewidget/timelinewidget.cpp | 6 +++--- app/widget/viewer/audiowaveformview.cpp | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/render/audioparams.cpp b/app/render/audioparams.cpp index df7b620d9..95d5eb7a0 100644 --- a/app/render/audioparams.cpp +++ b/app/render/audioparams.cpp @@ -105,7 +105,7 @@ qint64 AudioParams::time_to_samples(const double &time) const // NOTE: Not sure if we should round or ceil, but I've gotten better results with ceil. // Specifically, we seem to occasionally get straggler ranges that never cache with round. - return qCeil(time_base().flipped().toDouble() * time); + return qCeil(double(sample_rate()) * time); } qint64 AudioParams::time_to_samples(const rational &time) const @@ -122,7 +122,7 @@ qint64 AudioParams::samples_to_bytes(const qint64 &samples) const rational AudioParams::samples_to_time(const qint64 &samples) const { - return time_base() * samples; + return sample_rate_as_time_base() * samples; } qint64 AudioParams::bytes_to_samples(const qint64 &bytes) const diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 543d601fc..db3cb0db4 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -1003,7 +1003,7 @@ void TimelineWidget::SetViewTimestamp(const int64_t &ts) if (use_audio_time_units_ && i == Track::kAudio) { view->view()->SetTime(Timecode::rescale_timestamp(ts, timebase(), - GetConnectedNode()->GetAudioParams().time_base())); + GetConnectedNode()->GetAudioParams().sample_rate_as_time_base())); } else { view->view()->SetTime(ts); } @@ -1014,7 +1014,7 @@ void TimelineWidget::ViewTimestampChanged(int64_t ts) { if (use_audio_time_units_ && sender() == views_.at(Track::kAudio)) { ts = Timecode::rescale_timestamp(ts, - GetConnectedNode()->GetAudioParams().time_base(), + GetConnectedNode()->GetAudioParams().sample_rate_as_time_base(), timebase()); } @@ -1048,7 +1048,7 @@ void TimelineWidget::UpdateViewTimebases() TimelineAndTrackView* view = views_.at(i); if (use_audio_time_units_ && i == Track::kAudio) { - view->view()->SetTimebase(GetConnectedNode()->GetAudioParams().time_base()); + view->view()->SetTimebase(GetConnectedNode()->GetAudioParams().sample_rate_as_time_base()); } else { view->view()->SetTimebase(timebase()); } diff --git a/app/widget/viewer/audiowaveformview.cpp b/app/widget/viewer/audiowaveformview.cpp index d251dd690..462d6ddf8 100644 --- a/app/widget/viewer/audiowaveformview.cpp +++ b/app/widget/viewer/audiowaveformview.cpp @@ -55,7 +55,7 @@ void AudioWaveformView::SetViewer(AudioPlaybackCache *playback) connect(playback_, &AudioPlaybackCache::Validated, this, &AudioWaveformView::ForceUpdateOfRange); connect(playback_, &AudioPlaybackCache::ParametersChanged, this, &AudioWaveformView::BackendParamsChanged); - SetTimebase(playback_->GetParameters().time_base()); + SetTimebase(playback_->GetParameters().sample_rate_as_time_base()); } ForceUpdate(); @@ -171,7 +171,7 @@ QPixmap AudioWaveformView::DrawWaveform(QIODevice* fs, CachedWaveformInfo info, void AudioWaveformView::BackendParamsChanged() { - SetTimebase(playback_->GetParameters().time_base()); + SetTimebase(playback_->GetParameters().sample_rate_as_time_base()); } void AudioWaveformView::ForceUpdate()