From 8fa77390cd9a1eb7bef0ae0f52fb95721e8984e7 Mon Sep 17 00:00:00 2001 From: w_angrong Date: Wed, 14 Oct 2020 12:51:21 +0800 Subject: [PATCH] check if queue is full or not before pushing data --- src/anbox/platform/sdl/audio_sink.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/anbox/platform/sdl/audio_sink.cpp b/src/anbox/platform/sdl/audio_sink.cpp index e8c1a9a..0ed90e2 100755 --- a/src/anbox/platform/sdl/audio_sink.cpp +++ b/src/anbox/platform/sdl/audio_sink.cpp @@ -144,10 +144,14 @@ void AudioSink::write_data(const std::vector &data) { return; } if (!connect_audio()) { - WARNING("Audio server not connected, skipping %d bytes", data.size()); + ERROR("Audio server not connected, skipping %d bytes", data.size()); return; } graphics::Buffer buffer{data.data(), data.data() + data.size()}; + if(!queue_.can_push_locked()){ + ERROR("AudioSink buffer queue full, skipping %d bytes", data.size()); + return; + } queue_.push_locked(std::move(buffer), l); } } // namespace sdl -- Gitee