Reduce radio VAD prefetch to 600 milliseconds
This commit is contained in:
1 parent
6985a2cf18
commit
ffd26c56b4
4 files changed
+18
-17
No files matched your search
@@ -49,7 +49,8 @@
|
||||
/* ── VAD авто-PTT (отдельный режим, ручной PTT не меняется) ── */
|
||||
#define RADIO_VAD_CONFIRM_WINDOWS 2 /* окон (32мс) выше порога для старта (~64мс) */
|
||||
#define RADIO_VAD_BUSY_TB 2000 /* 200мс: канал занят после последнего RX-кадра */
|
||||
#define RADIO_PREFETCH_FRAMES RADIO_AUDIO_SAMPLE_RATE /* 1с PCM на канал, только до начала передачи */
|
||||
#define RADIO_PREFETCH_MS 600 /* PCM только до начала передачи */
|
||||
#define RADIO_PREFETCH_FRAMES (RADIO_AUDIO_SAMPLE_RATE * RADIO_PREFETCH_MS / 1000)
|
||||
#define RADIO_PREFETCH_PACKETS (RADIO_PREFETCH_FRAMES / RADIO_AUDIO_FRAME_SAMPLES)
|
||||
#define RADIO_TX_PENDING_LIMIT 8
|
||||
|
||||
@@ -141,7 +142,7 @@ struct radio_audio_tx {
|
||||
struct UTUN_INSTANCE* inst;
|
||||
uint64_t group_id, generation, listen_generation, instance_generation, burst, created_tb;
|
||||
int frame_count;
|
||||
struct radio_audio_packet frames[]; /* один live-кадр либо до 50 кадров prefetch */
|
||||
struct radio_audio_packet frames[]; /* один live-кадр либо до 30 кадров prefetch */
|
||||
};
|
||||
|
||||
static void radio_audio_send(void* arg) {
|
||||
@@ -509,7 +510,7 @@ int radio_audio_capture_start(uint64_t group_id, int capture_channels, int vad_e
|
||||
"vad=%d threshold=%.2f hangover=%dms prefetch=%dms",
|
||||
RADIO_AUDIO_ID, (unsigned long long)group_id, capture_channels, opus_mode ? "AUDIO" : "VOIP", opus_bitrate_kbps,
|
||||
ac ? (audio_compressor_is_enabled(ac) ? "on" : "off") : "unavailable", g_vad_mode, g_vad_threshold,
|
||||
g_vad_hangover_ms, g_vad_mode ? 1000 : 0);
|
||||
g_vad_hangover_ms, g_vad_mode ? RADIO_PREFETCH_MS : 0);
|
||||
radio_tx_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ void radio_audio_talk_end(uint64_t group_id);
|
||||
/* Единственный TX-writer: очищенные interleaved отсчёты произвольной длины (кратно числу каналов).
|
||||
* VAD использует свою копию PCM и отдельный AGC с общими настройками TX, кроме radio_vad_compressor_max_gain_db.
|
||||
* Включённый AGC VAD накапливает 20мс; выключенный пропускает PCM сразу. TX не использует обработанную VAD-копию.
|
||||
* При включённом VAD до BEGIN хранится до 1с непереданного PCM и отправляется перед live.
|
||||
* При включённом VAD до BEGIN хранится до 600мс непереданного PCM и отправляется перед live.
|
||||
* Один автомат manual/VAD; хвост каждой серии дополняется тишиной до FIN. */
|
||||
int radio_audio_feed_pcm(uint64_t group_id, const int16_t* pcm, int count);
|
||||
|
||||
|
||||
Reference in new issue
Block a user