radio: keep drain diagnostics at burst boundaries and test queued PCM
This commit is contained in:
1 parent
f054f9c8d9
commit
d149bad5fc
2 files changed
+10
-6
No files matched your search
@@ -640,8 +640,10 @@ void radio_audio_playback_progress(uint64_t group_id, uint64_t position, uint64_
|
||||
g_output_tracked = 1;
|
||||
if (g_output_voice_end > g_output_played && position >= g_output_voice_end) {
|
||||
radio_audio_rx_guard(get_time_tb() + delay_tb + RADIO_VAD_BUSY_TB);
|
||||
DEBUG_DEBUG(DEBUG_CATEGORY_VAD, "VAD output drained group=%016llx position=%llu delay=%.1fms guard=200ms",
|
||||
(unsigned long long)group_id, (unsigned long long)position, delay_tb / 10.0);
|
||||
int sources = 0;
|
||||
for (int i = 0; i < RADIO_AUDIO_MAX_SOURCES; ++i) sources += g_sources[i].used != 0;
|
||||
if (!sources) DEBUG_DEBUG(DEBUG_CATEGORY_VAD, "VAD output drained group=%016llx position=%llu delay=%.1fms guard=200ms",
|
||||
(unsigned long long)group_id, (unsigned long long)position, delay_tb / 10.0);
|
||||
}
|
||||
g_output_played = position;
|
||||
}
|
||||
@@ -924,7 +926,6 @@ static void radio_audio_vad_sample(const int16_t* frame) {
|
||||
pthread_mutex_lock(&g_mtx);
|
||||
g_vad_win_len = 0;
|
||||
uint64_t now = get_time_tb();
|
||||
if (radio_audio_vad_block(now)) return; /* RX мог начаться, пока Silero работал без общего mutex. */
|
||||
uint64_t inference_tb = now - started;
|
||||
uint64_t gap_tb = g_vad_diag.last_window_tb ? now - g_vad_diag.last_window_tb : 0;
|
||||
g_vad_diag.last_window_tb = now;
|
||||
@@ -937,6 +938,7 @@ static void radio_audio_vad_sample(const int16_t* frame) {
|
||||
DEBUG_ERROR(DEBUG_CATEGORY_VAD, "VAD inference failed group=%016llx window=%llu rc=%d inference=%.1fms",
|
||||
(unsigned long long)g_group_id, (unsigned long long)g_vad_diag.total_windows, result, inference_tb / 10.0);
|
||||
}
|
||||
if (radio_audio_vad_block(now)) return; /* RX мог начаться, пока Silero работал без общего mutex. */
|
||||
struct radio_vad_fsm before = g_vad_fsm;
|
||||
int busy = 0;
|
||||
int64_t rx_age_ms = g_last_rx_tb ? (int64_t)((now - g_last_rx_tb) / 10) : -1;
|
||||
|
||||
Reference in new issue
Block a user