evgeny
97fea6e809
Use shared media opening in desktop and Android viewers
2026-10-14 16:30:38 +02:00
evgeny
5a3999fbdb
Prepare one Android media response per player request
2026-10-14 13:36:38 +02:00
evgeny
125f740a5f
Use the shared publisher in Android and desktop stream bridges
2026-10-14 02:34:16 +02:00
evgeny
de67de33df
Report codec capabilities and document the expanded Android media header
2026-10-14 01:45:50 +02:00
evgeny
5677e8ec5f
Initialize the publication media format with the selected codec
2026-10-14 01:09:30 +02:00
evgeny
8b6c72b704
Publish bounded 100 ms send telemetry from the Android media actor
2026-10-14 01:08:20 +02:00
evgeny
98655284b2
Discard stale playback snapshots before reseeking a media cursor
2026-10-13 23:39:45 +02:00
evgeny
e1abcb5d69
Observe actual silent device intervals when adapting playback history
2026-10-13 23:26:55 +02:00
evgeny
9781f138ed
Switch Android media delivery to demand reads from the shared RS ring
2026-10-13 22:53:13 +02:00
evgeny
f15c97d11a
Size Android publisher buffers for the signed batch format
2026-10-13 20:09:14 +02:00
evgeny
22b62699ac
Describe stereo Opus in live media blocks
2026-10-13 14:14:24 +02:00
evgeny
3a6dacf378
Add stream camera controls and preserve playback on changes
2026-10-13 01:00:53 +02:00
evgeny
34349bd663
Require selected epochs and verify multiple live publishers
2026-10-12 22:28:15 +02:00
evgeny
dad67360b9
Remove obsolete Android stream polling and simplify lifecycle tests
2026-10-12 22:20:28 +02:00
evgeny
ba3dfa9fcc
Watch Android stream sources and validate selected epochs
2026-10-12 21:58:56 +02:00
evgeny
a96d5926c7
Fix Android external network monitoring and startup readiness
...
Select frontend network callbacks for auto_sockets=android instead of opening a denied netlink monitor. Preserve monitor descriptor ownership, keep native monitoring failures fatal, and release caller config on failed Android core creation and restart.
Register ConnectivityManager before requesting startup, report readiness after SERVICE_STARTED, and refresh addresses after initialization with serialized updates and generation checks. Add regression coverage for denied netlink, socket failures, address updates, and fd=0 preservation. Record the separate cancellation issue for startup before readiness.
Validation: full check.sh passed, including proxy/burst/load integrations. Clean Android build installed successfully on SM-A525F and Q8; logcat confirms both cores initialized and entered the poll loop with external monitoring and post-start address refresh.
2026-10-12 16:01:26 +02:00
evgeny
98dcaae853
Close viewers on malformed media and release terminal owners immediately
2026-10-12 11:46:13 +02:00
evgeny
1dcf6a79ce
Reject overlapping core ownership of Android stream handles
2026-10-12 11:26:27 +02:00
evgeny
c2c202e716
Mute local preview and clear Android media queues at detach
2026-10-12 07:22:43 +02:00
evgeny
e8adf03826
Preserve stream control events when discarding delayed media
2026-10-12 02:42:01 +02:00
evgeny
6c692399c2
Build verified live source snapshots in the core thread
2026-10-12 02:27:44 +02:00
evgeny
0ee1163a0b
Bind Android media queues to core lifetime and source epochs
2026-10-12 01:50:07 +02:00
evgeny
938289a6f0
Include Android streaming bridge and refine malformed wire tests
2026-10-12 01:49:40 +02:00
evgeny
36fceec6b2
Bridge Android live streams through bounded session queues
2026-10-12 01:49:07 +02:00
evgeny
d9c8e006b5
tests: accelerate standby phases and group connection retries
2026-10-10 15:06:56 +02:00
evgeny
5f79d00f7a
android: pass reply context through video preparation
2026-10-08 10:29:29 +02:00
evgeny
7aada92be9
android: preserve reply context while recording voice
2026-10-08 10:29:29 +02:00
evgeny
721160fbd9
android: carry channel reply references through file and photo sends
2026-10-08 10:29:08 +02:00
evgeny
653853588a
logging: preserve system diagnostics and inherit Android debug level
2026-10-07 21:21:33 +02:00
evgeny
123b47c612
Improve Android VAD lifecycle, audio settings and diagnostics
2026-10-04 14:36:52 +02:00
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.
2026-10-04 13:10:01 +02:00
evgeny
bdcf8b5634
Сохрани накопленные исправления аудио, async и диагностики
2026-10-02 01:49:32 +03:00
evgeny
5092bdf9fe
Validate capture format and diagnose capture thread failures
2026-10-01 18:48:57 +03:00
evgeny
add016894b
Use bounded independent Android cache files for each attachment
2026-10-01 18:24:12 +03:00
evgeny
6185869c6d
Use fixed conversation targets for Android media preparation
2026-10-01 18:11:54 +03:00
evgeny
038fd173c2
Detach Android recordings for shared background preparation
2026-10-01 18:01:45 +03:00
evgeny
9e3a417059
Synchronize standby transitions and immediate keepalive phase announcements
2026-09-30 20:42:40 +03:00
evgeny
72fee9e245
Separate core, UTUN and chat lifecycles with owned asynchronous work
2026-09-28 11:39:08 +03:00
evgeny
0e625da109
call: ретрансмит INVITE каждые 2с + fail-fast при отсутствии маршрута (6с)
2026-09-22 16:06:52 +03:00
evgeny
5628138d16
etcp: keepalive sleep-протокол на флагах (KA_FLAG_SLEEP + sleep_time, announce-retry, ack/echo)
2026-09-21 23:30:39 +03:00
evgeny
2f3001458f
android: standby keepalive sync + rx logging during sleep
2026-09-21 21:17:35 +03:00
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: компактная раскладка имени интерфейса
2026-09-21 18:59:04 +03:00
evgeny
01987a75d0
chatgui: verify FFmpeg DLL deployment + fix dependency resolution order
2026-09-21 11:52:21 +03:00
evgeny
ba1c2d85d3
reality_relay: async DNS вместо getaddrinfo + AGC-компрессор по умолчанию (-12 dBFS)
2026-09-20 15:28:46 +03:00
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).
2026-09-19 17:09:00 +03:00
evgeny
2de554f8b9
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
2026-09-16 20:26:55 +03:00
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
2026-09-16 10:17:57 +03:00
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: сопутствующие изменения
2026-09-15 21:09:17 +03:00
evgeny
481872d5db
chat: invite-ссылки с несколькими адресами + ncd-адреса узлов (join)
2026-09-15 05:16:04 +03:00
evgeny
75e39d2fee
chat_join: модуль join-протокола, invite-ссылки v2, синхронизация мемберов
2026-09-14 19:57:27 +03:00