From e31132face3a9bb6cfae89b3367cd6c4f7833fd5 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 3 Nov 2023 12:02:08 +0300 Subject: [PATCH] Warn when the audio callback takes more than it should --- libs/sdl2/source/audio_engine.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/sdl2/source/audio_engine.cpp b/libs/sdl2/source/audio_engine.cpp index 2ce4a50f..a694935d 100644 --- a/libs/sdl2/source/audio_engine.cpp +++ b/libs/sdl2/source/audio_engine.cpp @@ -89,6 +89,9 @@ namespace psemek::sdl2 for (auto s : self->buffer_) *dst++ = static_cast(std::max(std::min((65535.f * s - 1.f) / 2.f, 32767.f), -32768.f)); + + if (auto duration = prof.duration(); duration > (size * audio::inv_frequency / 2)) + log::warning() << "Audio can't keep up, callback took " << std::setprecision(5) << (1000.0 * duration) << " ms"; } audio::channel_ptr audio_engine_impl::output()