evgeny
ab283eebdc
Expose measured Opus codec delay for capture clock mapping
5 days ago
evgeny
4939ee7fb0
Account for transposer prefill in source coordinates
5 days ago
evgeny
811b980883
Verify exact SoundTouch provenance and unchanged PCM output
5 days ago
evgeny
1d43578335
Expose optional live source tracking through SoundTouch
5 days ago
evgeny
edcd34d942
Report copied and overlapping source ranges from TDStretch
5 days ago
evgeny
ceb06bafcf
Define SoundTouch source spans and unity interpolation contract
5 days ago
evgeny
3477a8844c
Allow RS batches to choose their block size from input length
6 days ago
evgeny
ec82d95a03
Add signed FEC stream core and source buffering
1 week ago
evgeny
2967d2fb71
Fix matrix inverse syntax and make bounded conversions explicit
1 week ago
evgeny
d9d4a7807f
Test Reed-Solomon recovery and integrate codec into builds
1 week ago
evgeny
831018f161
Add batch Reed-Solomon codec with caller-owned buffers
1 week ago
evgeny
dc0dbbf720
headless: expose OS-assigned control and audio listener ports
1 week ago
evgeny
5a9e61164b
Measure uasync CPU load and display it in desktop and Android GUIs
...
Sample thread CPU usage without waking idle loops, expose a one-second moving average, and refresh compact GUI indicators at 3 Hz while visible on Android. Add load and bridge regression coverage, streaming notes, and task list cleanup.
1 week ago
evgeny
7eb6d6ee68
logging: move socket mechanics and periodic probe decisions to trace
2 weeks ago
evgeny
d40f58d79a
Add message identities and plan the remaining feedback work
2 weeks ago
evgeny
341da73398
Fix Windows getsockopt argument in TCP error callback
2 weeks ago
evgeny
20a1211e09
Add GPLv3 licensing and bundle third-party notices
2 weeks ago
evgeny
a97e8bcc1f
docs: update file inventory and module header contracts
...
Refresh both AGENTS guides and clarify module purpose, usage, ownership, threading, return values and wire formats in headers. Remove the unused timeout_heap freed_count field and unimplemented getter.
2 weeks ago
evgeny
50e276cb94
Include previous audio context in streaming Silero inference
2 weeks ago
evgeny
389fca1de0
Expose compressor gain and register separate radio VAD limit
2 weeks ago
evgeny
bd082a26bf
Раздели аудиопотоки и привяжи AEC к фактическому общему выходу
2 weeks ago
evgeny
40b974b29c
Исправь потоковый AGC и применяй mute после AEC
3 weeks ago
evgeny
bdcf8b5634
Сохрани накопленные исправления аудио, async и диагностики
3 weeks ago
evgeny
be8dbcf25e
Remove duplicate GUI voice encoding and keep shared worker codec
3 weeks ago
evgeny
1bd310c859
Detach recorder compressors while preserving capture settings
3 weeks ago
evgeny
00e890e0c3
Reserve worker completions before starting background tasks
3 weeks ago
evgeny
61bf235ef4
radio: PTT double-tap latch + single-tap off (in-chat & overlay); compressor initial gain = mid-range
3 weeks ago
evgeny
f12f61d7ee
call: add SpeexDSP AEC (acoustic echo cancellation) for desktop + Android
3 weeks ago
evgeny
1176411b79
radio: Silero VAD + auto-PTT; chatgui/android: app icon and background
3 weeks ago
evgeny
e1946b208d
Preserve proxy TCP streams across connect, backpressure and FIN
3 weeks ago
evgeny
7a41fcf512
Notify TCP writers when the final synchronous send drains
3 weeks ago
evgeny
331970a121
Radio: Opus mode/bitrate + mic source + PTT release tail; drop online status from member JSON
3 weeks ago
evgeny
7374d1648c
Support 8 KiB member owner tags without signature or serialization truncation
3 weeks ago
evgeny
03f71fd94e
Bound ETCP receive window and fix timestamp and allocator UB
3 weeks ago
evgeny
44d4265084
ll_queue: queue_waiter_cancel отменяет отложенный call_soon при internal==NULL (фикс UAF waiter_defer)
3 weeks ago
evgeny
8aaac45020
ll_queue: отложенный первый запуск автозабора (callback_defer) + тест
...
queue_set_callback_defer(q, 1) переносит первый запуск callback из
queue_data_put* в uasync_call_soon (очистка стека производителя).
Повторные запуски (queue_resume_callback) и так всегда deferred.
3 weeks ago
evgeny
fb4343fca6
transport: reality-релей idle-timeout (конфиг, дефолт 5с) + warn при >64 релеях; убрать лимит FD_SETSIZE; проверка socket_id в stcp_server
4 weeks ago
evgeny
9793733cd5
chatgui: диагностика воспроизведения голосовых сообщений (Windows)
...
- sound_manager: ma_engine_init/playRawPcm логируют через DEBUG_* (qWarning/qDebug терялись в GUI-приложении без консоли); детальный результат старта PCM (rc/is_playing/cursor)
- main: ранняя инициализация лога в GUI-потоке до SoundManager::init, чтобы диагностика инициализации попала в файл
- messagedelegate: лог клика по Play/timeline (filePath/dlState/существует ли файл)
- voiceplayback: лог заголовка opus (sr/ch/frameSamples)
Попутные правки:
- u_async: фикс двойного close wakeup_pipe (eventfd/Windows)
- chat_core: NULL-guard в get_db/is_initialized
- android: sqlite открывается в utun_instance_init, cleanup stale-потока без утечки fd
- android SettingsScreen: компактная раскладка имени интерфейса
4 weeks ago
evgeny
a7a3666d85
radio: AGC release-rate (без кликов), jitter dead-zone, TX/RX-статистика, FGS-гонка и кэш настроек
4 weeks ago
evgeny
738cfe7835
radio: адаптивный джиттер-буфер (pre-roll, симметричный темп, reorder) + AGC-компрессор микрофона
...
- voice_jitter: vj_create_cfg (target_ms/min_tempo/max_tempo/pre_roll), pre-roll
с таймаутом, vj_end для дренажа остатка, глубина учитывает внутренний буфер SoundTouch
- radio_audio: reorder по seq (mesh, out-of-order через соседей), force-flush pending
по таймауту и FIN, компрессор микрофона (AGC, конфиг [chatserver]), статистика буфера
- audio_compressor: clear_output для потокового слива без потери gain_smoothed
- chatgui messagelist: fromUtf8 для emoji-строк
- тесты: pre-roll/симметричный темп, reorder, late-drop
4 weeks ago
evgeny
27e66f1092
log: move socket diagnostics SYS->SOCKET and conn lifecycle ETCP->CONNECTION (avoid poll() flood)
4 weeks ago
evgeny
fae0a7c069
uasync: cast function pointers in socket_add log to void*
4 weeks ago
evgeny
b33caa56b8
uasync: pass socket name to all add_socket call sites
4 weeks ago
evgeny
c36cebe357
uasync: add socket name diagnostics and HUP/ERR auto-unregister safety net
4 weeks ago
evgeny
841b3042cf
etcp: фикс double-free буферов паковщика и повторных free после неудачного queue_data_put
...
- pn_send_to_etcp/pn_unpacker_cb: занулять pn->data/pn->recvpart ДО queue_data_put
(ре-энтрантный close/reinit в синхронной цепочке освобождал буфер повторно)
- etcp_output_try_assembly: гард state==2/reinit_pending + убрать re-put освобождённого entry
- etcp_conn_input: гард ре-энтрантного reinit/close в цикле секций, локальный etcp вместо pkt->link
- убраны повторные free после queue_data_put (он сам освобождает entry+dgram) в 6 местах
- диагностика: obj=%p в DOUBLE FREE, логи free dgram в pn_deinit/ack_recv
4 weeks ago
evgeny
b96ed8bd00
radio: PTT-радио в каналах (src/radio + chatgui + chatgui-android)
...
Новый модуль src/radio (radio/radio_audio/radio_headless) — push-to-talk
радио поверх topo-групп, доставка аудио в канал, headless-режим и тесты.
Интеграция в chatgui (ptt_hotkey_manager, radio_audio_engine, радионастройки,
вызовы) и chatgui-android (RadioAudioEngine, RadioOverlayService, UI).
1 month ago
evgeny
1f1df4f437
mem: детект аномально больших аллокаций (LARGE ALLOC log + calloc overflow guard)
1 month ago
evgeny
51d6d22a27
sock_match: классификация сокета по адресу, а не по type из конфига (fix Q8/Android→LAN)
...
ip_is_public() вынесен в lib/platform_compat (единый классификатор IPv4 с ntohl).
auto_socket_reconcile_config: тип сокета выставляется по фактическому адресу.
sock_collect_views: has_priv/has_inet/is_eim — по классификации адреса и NAT-детекции.
is_local_subnet упрощён до !ip_is_public(). Тест test_sock_match обновлён.
1 month ago
evgeny
b11e77e4c0
call: P2P аудиозвонки — сигналинг, релей медиа, аудио-контур, headless/desktop/android
...
- src/call/: сигналинг (call.c, call_proto.h, ETCP_RT_ID_CALL 0x36) + релей медиа
+ headless аудио-сокет (call_headless.c, call_audio_bind) + Opus/jitter/тоны
- chat: события CHAT_EVT_CALL_* (34–40), CHAT_EVT_DM_MESSAGES (41), DM-трамплины
- chatgui: call window, miniaudio I/O, audio_frame_ring, test_audio_jitter
- chatgui-android: CallScreen/IncomingCallDialog, аудио-роутинг, JNI, рингтон
- tests: test_call, test_call_headless
1 month ago
evgeny
73fe99b33f
dm: прямой обмен сообщениями (DM) + soundtouch + архитектура звонков
...
- src/dm/: dm_core/dm_crypto/dm_mailbox — прямой обмен сообщениями (DM)
- lib/soundtouch-master/: vendored SoundTouch (изменение темпа/высоты аудио)
- doc/dm_arch.md, doc/chat_call_arch.md: архитектура DM и звонков
- tests: test_dm.c, test_dm_e2e.c
- chat: рефакторинг chat_* модулей, member_sync, invite_build
- chatgui/chatgui-android: синхронизация с новым API чата
- lib/u_async, debug_config, utun_instance: сопутствующие изменения
1 month ago