Expose bounded audio log snapshots without consuming playback events

This commit is contained in:
evgeny committed 2026-10-30 21:46:53 +01:00
1 parent d05aed35f9
commit ff992bcd40
2 files changed
+8

No files matched your search

+5
View File
@@ -250,6 +250,11 @@ void call_jitter_record_tx(struct call_jitter* j, const struct call_history_tx*
j->history.transmit(*snapshot);
}
void call_jitter_take_log(struct call_jitter* j, struct call_history_interval* interval, struct call_history_tx* tx) {
std::lock_guard<std::mutex> lock(j->mtx);
j->history.take_log(*interval, *tx);
}
void call_jitter_silence(struct call_jitter* j, unsigned samples) {
if (!j) return;
std::lock_guard<std::mutex> lock(j->mtx);
+3
View File
@@ -43,6 +43,9 @@ void call_jitter_get_diagnostics(struct call_jitter*, struct call_jitter_diagnos
void call_jitter_get_history(struct call_jitter*, uint64_t now_ms, struct call_audio_history* out);
/* uasync: сохранить общий снимок очередей отправки, без заимствования живых очередей. */
void call_jitter_record_tx(struct call_jitter*, const struct call_history_tx* snapshot);
/* Сводка логгера: забрать интервал pull и последний TX, не сбрасывая события diagnostics/UI.
* Все указатели обязательны; вызывается одним uasync-логгером каждые 200мс. */
void call_jitter_take_log(struct call_jitter*, struct call_history_interval*, struct call_history_tx*);
/* decode обязателен; arg заимствован до destroy, max_reserve_ms=500..2000. NULL при ошибке. */
struct call_jitter* call_jitter_create(call_jitter_decode_fn decode, void* arg, int max_reserve_ms);
/* Освободить объект; NULL допустим. */