From ec914e895ff6d7bf2d19e8c8785e5d8bfd38629f Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Mon, 25 Dec 2023 05:21:42 -0800 Subject: Use standard methods for rounding --- alc/backends/pipewire.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'alc/backends/pipewire.cpp') diff --git a/alc/backends/pipewire.cpp b/alc/backends/pipewire.cpp index 2e6e20cc..c31f943e 100644 --- a/alc/backends/pipewire.cpp +++ b/alc/backends/pipewire.cpp @@ -1629,11 +1629,12 @@ bool PipeWirePlayback::reset() { /* Scale the update size if the sample rate changes. */ const double scale{static_cast(match->mSampleRate) / mDevice->Frequency}; - const double numbufs{static_cast(mDevice->BufferSize)/mDevice->UpdateSize}; + const double updatesize{std::round(mDevice->UpdateSize * scale)}; + const double buffersize{std::round(mDevice->BufferSize * scale)}; + mDevice->Frequency = match->mSampleRate; - mDevice->UpdateSize = static_cast(clampd(mDevice->UpdateSize*scale + 0.5, - 64.0, 8192.0)); - mDevice->BufferSize = static_cast(numbufs*mDevice->UpdateSize + 0.5); + mDevice->UpdateSize = static_cast(clampd(updatesize, 64.0, 8192.0)); + mDevice->BufferSize = static_cast(maxd(buffersize, 128.0)); } if(!mDevice->Flags.test(ChannelsRequest) && match->mChannels != InvalidChannelConfig) mDevice->FmtChans = match->mChannels; -- cgit v1.2.3