From 72b6c3a35287ced9cd02e3c937dee5abb5970749 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Thu, 4 Apr 2024 03:03:45 -0400 Subject: Revert "add jitter buffer for voice" This reverts commit 3306edc514a996a7c61986d4851c9e6cfa323fca. --- src/audio/manager.cpp | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'src/audio/manager.cpp') diff --git a/src/audio/manager.cpp b/src/audio/manager.cpp index f9ffdd5..33730d9 100644 --- a/src/audio/manager.cpp +++ b/src/audio/manager.cpp @@ -26,7 +26,6 @@ const uint8_t *StripRTPExtensionHeader(const uint8_t *buf, int num_bytes, size_t return buf; } -// frameCount is configured to be 480 samples per channel void data_callback(ma_device *pDevice, void *pOutput, const void *pInput, ma_uint32 frameCount) { AudioManager *mgr = reinterpret_cast(pDevice->pUserData); if (mgr == nullptr) return; @@ -38,14 +37,12 @@ void data_callback(ma_device *pDevice, void *pOutput, const void *pInput, ma_uin if (const auto vol_it = mgr->m_volume_ssrc.find(ssrc); vol_it != mgr->m_volume_ssrc.end()) { volume = vol_it->second; } - - static std::array buf; - - if (!pair.first.PopSamples(buf.data(), 480 * 2)) continue; - - for (size_t i = 0; i < 480 * 2; i++) { + auto &buf = pair.first; + const size_t n = std::min(static_cast(buf.size()), static_cast(frameCount * 2ULL)); + for (size_t i = 0; i < n; i++) { pOutputF32[i] += volume * buf[i] / 32768.F; } + buf.erase(buf.begin(), buf.begin() + n); } } @@ -205,14 +202,7 @@ void AudioManager::AddSSRC(uint32_t ssrc) { int error; if (m_sources.find(ssrc) == m_sources.end()) { auto *decoder = opus_decoder_create(48000, 2, &error); - auto &s = Abaddon::Get().GetSettings(); - m_sources.insert(std::make_pair(ssrc, std::make_pair( - JitterBuffer( - s.JitterDesiredLatency, - s.JitterMaximumLatency, - 2, - 48000), - decoder))); + m_sources.insert(std::make_pair(ssrc, std::make_pair(std::deque {}, decoder))); } } @@ -252,7 +242,7 @@ void AudioManager::FeedMeOpus(uint32_t ssrc, const std::vector &data) { } else { UpdateReceiveVolume(ssrc, pcm.data(), decoded); auto &buf = it->second.first; - buf.PushSamples(pcm.data(), decoded * 2); + buf.insert(buf.end(), pcm.begin(), pcm.begin() + decoded * 2); } } } -- cgit v1.2.3