From be550ef0a98d0e2b9cba2ea76fb4ad37debcf0ba Mon Sep 17 00:00:00 2001 From: Jason Stangroome Date: Fri, 23 Jan 2026 09:06:01 +1100 Subject: [PATCH] Log audio queue underflow when compiled with MOD_UNIMRCP_DEBUG_AUDIO_QUEUE defined Otherwise: - if the buffer is empty, the read attempt is not logged - if the buffer only has enough data for a partial read, the "audio queue read" log reports the modified `requested` value --- mod_unimrcp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mod_unimrcp.c b/mod_unimrcp.c index 5fb772f..2a9c63b 100644 --- a/mod_unimrcp.c +++ b/mod_unimrcp.c @@ -772,8 +772,13 @@ static switch_status_t audio_queue_read(audio_queue_t *queue, void *data, switch queue->waiting = 0; } - if (switch_buffer_inuse(queue->buffer) < requested) { - requested = switch_buffer_inuse(queue->buffer); + switch_size_t in_buffer = switch_buffer_inuse(queue->buffer); + if (in_buffer < requested) { +#ifdef MOD_UNIMRCP_DEBUG_AUDIO_QUEUE + switch_log_printf(SWITCH_CHANNEL_UUID_LOG(queue->session_uuid), SWITCH_LOG_DEBUG, "(%s) audio queue underflow! read total = %ld\trequested = %ld\tavailable = %ld\tblock = %d\n", queue->name, + queue->read_bytes, requested, in_buffer, block); +#endif + requested = in_buffer; } if (requested == 0) { *data_len = 0;