diff --git a/src/media/audio/ringbufferpool.cpp b/src/media/audio/ringbufferpool.cpp index 21bcd8e94c21f4d43265850210366a8e595db16c..92429a7deaf4752446a3a834ef3895e0dece362b 100644 --- a/src/media/audio/ringbufferpool.cpp +++ b/src/media/audio/ringbufferpool.cpp @@ -267,20 +267,22 @@ RingBufferPool::getData(const std::string& call_id) const auto bindings = getReadBindings(call_id); if (not bindings) - return 0; + return {}; // No mixing if (bindings->size() == 1) return (*bindings->cbegin())->get(call_id); auto mixBuffer = std::make_shared<AudioFrame>(internalAudioFormat_); + auto mixed = false; for (const auto& rbuf : *bindings) { if (auto b = rbuf->get(call_id)) { + mixed = true; mixBuffer->mix(*b); } } - return mixBuffer; + return mixed ? mixBuffer : nullptr; } bool