call: единый голосовой стек (libutun_voice) + SoundTouch на Android
- voice_jitter (кодированные Opus-кадры + decode-on-pull + SoundTouch time-stretch) вместо PCM-буфера audio_jitter; излишек держится до декодирования - call_audio.c/.h — единая реализация для desktop/Android/headless (C-интерфейс) - libutun_voice (voice_sources.cmake): SoundTouch + voice_jitter + call_audio + call_tones - Android: pull-модель (nativeCallAudioPull), убран Kotlin FIFO, ANDROID_STL=c++_static - headless audio-сокет: PCM-протокол (decode-only, без тактирования), daemon остаётся C-only - CALL_STATS расширен dropped/underruns; удалены audio_jitter.cpp и libutun_lite/call_audio.c - тест test_voice_jitter (ёмкость/догон/стационар), test_call_headless переведён на PCM
This commit is contained in:
1 parent
de930b21a2
commit
2de554f8b9
29 files changed
+659
-756
No files matched your search
@@ -311,10 +311,16 @@ void GuiBridgeReceiver::processPost(int eventType, QByteArray data) {
|
||||
uint16_t rtt = (uint16_t)((d[8] << 8) | d[9]);
|
||||
uint16_t buf = (uint16_t)((d[10] << 8) | d[11]);
|
||||
uint16_t tempo = (uint16_t)((d[12] << 8) | d[13]);
|
||||
uint16_t dropped = 0, underruns = 0;
|
||||
if (dlen >= 18) {
|
||||
dropped = (uint16_t)((d[14] << 8) | d[15]);
|
||||
underruns = (uint16_t)((d[16] << 8) | d[17]);
|
||||
}
|
||||
DEBUG_INFO(DEBUG_CATEGORY_CHAT_SYNC,
|
||||
"gui_bridge: CALL_STATS id=0x%016llx rtt=%ums buffer=%ums tempo=%u.%02ux",
|
||||
"gui_bridge: CALL_STATS id=0x%016llx rtt=%ums buffer=%ums tempo=%u.%02ux dropped=%u underruns=%u",
|
||||
(unsigned long long)callId, (unsigned)rtt, (unsigned)buf,
|
||||
(unsigned)(tempo / 100), (unsigned)(tempo % 100));
|
||||
(unsigned)(tempo / 100), (unsigned)(tempo % 100),
|
||||
(unsigned)dropped, (unsigned)underruns);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in new issue
Block a user