Commit Graph
157 Commits
Author SHA1 Message Date
evgeny fdb0381f5c fix(gui): retain sound preference keys until the queued request is copied 2026-10-27 07:25:26 +01:00
evgeny c8e1d120ba fix(android): include the owner block size contract for role parsing 2026-10-27 07:16:37 +01:00
evgeny e3ea2ef78f fix(chat): preserve unedited GUI tags and read complete role histories 2026-10-27 07:08:33 +01:00
evgeny 93057c9eb7 Adapt signed history regression fixtures to canonical revision envelopes 2026-10-26 22:41:56 +01:00
evgeny f83033d3a1 Guard Android PM history and pending deletion across asynchronous sends 2026-10-26 22:11:39 +01:00
evgeny f521bb37f4 fix(call): align audio frontend ownership with core lifecycle
Keep the borrowed audio provider on UTUN_INSTANCE across chat service restarts.
Attach and detach Android voice from the core worker and reject DSP startup
after detach. Preserve TX owner epochs, pending slots and foreign-instance RX
isolation. Remove the unused cross-thread online API and keep its check local
to call.c.

Add eight lifecycle regressions with real cores and the Android host bridge.
Audit public call, DSP, clock, headless and desktop audio contracts and record
the findings and validation scope.

Validation: voice/desktop 38/38, four native call suites, native and both Android
ABI builds, full check 204/204 plus proxy/burst/load. JVM results remain Gradle
UP-TO-DATE (155 app and 15 router). No hardware runtime validation.
2026-10-26 20:22:46 +01:00
evgeny bdaff406be Forward Android frame mute through the native capture bridge 2026-10-26 17:14:18 +01:00
evgeny 8e74619501 Make chat joins atomic and test invitation lifecycle failures 2026-10-26 09:19:35 +01:00
evgeny 0e17756e19 Show stream playback buffer chains on desktop and Android
Send coalesced per-hop telemetry every 200 ms ahead of video DATA using the shared ETCP transport. Measure pending frames before ETCP handoff, retain stale and unavailable node values, and display the worst path with playback tempo.

Bump stream wire protocol to v7. Validate with 187 core tests, 21 desktop player tests, two Android indicator tests, and an Android APK build.
2026-10-25 15:21:23 +01:00
evgeny 5b5221189c Buffer stream PCM before playback and recover underruns without resets 2026-10-25 12:51:19 +01:00
evgeny 4a785c2598 Improve stream recovery, delivery diagnostics and buffer indicators
Preserve essential FEC parts under pressure, coordinate stale-data gaps and reopen source subflows in parallel after transport failures.

Add per-peer network and playback diagnostics, Android and desktop buffer indicators, and regression coverage for Wi-Fi switching and congestion.
2026-10-25 01:18:02 +02:00
evgeny fcb0768052 Protect SoundTouch lookahead when catching up live stream audio 2026-10-21 01:38:50 +02:00
evgeny 4fa3b18cc2 Feed Android stream mixer from prepared PCM without holding DSP lock 2026-10-21 01:18:56 +02:00
evgeny a538f99bf0 Expose viewer wake signals and complete audio independently on Android 2026-10-21 00:13:01 +02:00
evgeny 75806249bd Run Android players concurrently and fall back between decoders 2026-10-20 16:58:41 +02:00
evgeny 4a759115c9 Probe Android video codecs at 30, 50 and 60 fps 2026-10-20 00:09:56 +02:00
evgeny 902e7bb921 Use explicit HEVC Main tier and diagnose fixture rejection 2026-10-19 22:45:38 +02:00
evgeny 10018d008e Update call video controls and sensor rotation across Android and desktop 2026-10-19 20:24:39 +02:00
evgeny 895cdd5ac2 Apply presentation-clock queue pacing and three decoded slots to Android 2026-10-19 19:08:51 +02:00
evgeny 47033718ad Apply capture gap recovery cadence consistently on Android 2026-10-19 18:23:25 +02:00
evgeny 0a2700a387 Use measured media tempo for sequential Android video playout 2026-10-19 17:25:16 +02:00
evgeny 4cebd0be54 Wire incoming call policy and caller continuation through JNI 2026-10-19 15:20:25 +02:00
evgeny 6a4a0f45d8 Separate phone status publication from incoming caller warning 2026-10-19 14:51:12 +02:00
evgeny 34890ea709 Bridge Android radio invitation commands to the core thread 2026-10-19 13:59:34 +02:00
evgeny 66526ad4a5 Проверить готовую пачку GPU через транспорт и обновить JNI видеопорта 2026-10-18 17:05:00 +02:00
evgeny 28826e050c Add local UDP discovery and invitation delivery for chat clients 2026-10-18 14:46:04 +02:00
evgeny aad295c9d0 Render encrypted group attachments correctly on Android 2026-10-18 13:14:56 +02:00
evgeny be295f768c feat(chat): add local DM deletion and improve Android member list
Delete local conversations atomically, retain replay protection and sequence counters, and guard asynchronous media work by history generation. Add Android avatar menu and confirmation, persistent file cleanup, and regression coverage.

Fix unnamed member wire padding and compact Android member action spacing.

Validation: 158 core tests passed; targeted DM tests, desktop build, Android unit tests and debug APK build passed.
2026-10-18 02:04:05 +02:00
evgeny cb8e654639 fix(android): preserve measured profiles in member address details 2026-10-17 23:20:55 +02:00
evgeny c69f8d8975 fix(nat): notify GUI and include profiles in Android socket snapshots 2026-10-17 22:07:58 +02:00
evgeny d60f8e4b1b Preserve stream capture settings and refine audio playback 2026-10-16 14:05:54 +02:00
evgeny 25d27bfffe Add Android native control for source audio state 2026-10-16 01:51:37 +02:00
evgeny 2038e33d8d Reset radio detector after Android capture queue discontinuities 2026-10-16 01:21:36 +02:00
evgeny b211da9a04 Use shared video playout on Android without blocking decoder input while waiting 2026-10-15 16:13:48 +02:00
evgeny 075ffc4d3b Add bounded AAudio voice output with AudioTrack fallback 2026-10-15 14:40:41 +02:00
evgeny cb9852e8d5 Use Android low-latency output and presentation timestamps for call clocks 2026-10-15 13:55:49 +02:00
evgeny 39dbfa7673 Expose filtered Android call buffer diagnostics over JNI 2026-10-15 02:46:15 +02:00
evgeny 8703e2678a Expose remote video decoder acceptance to Android workers 2026-10-14 23:16:55 +02:00
evgeny 47cca28d39 Probe Android encoders and decoders independently with actual formats 2026-10-14 23:12:00 +02:00
evgeny 5e15fc0d3f Expose common bitstream inspection and actual format checks to Android 2026-10-14 23:10:12 +02:00
evgeny c986221cb6 Expose shared video negotiation and bounded queues to Android JNI 2026-10-14 22:40:48 +02:00
evgeny 023f3a335e Pass call audio timing across Android JNI 2026-10-14 19:36:11 +02:00
evgeny 223c9a153c Request the next video frame through JNI without a time horizon 2026-10-14 13:36:38 +02:00
evgeny cd8a5392d5 Expose source codec selection and aggregate send telemetry through JNI 2026-10-14 01:09:30 +02:00
evgeny e1abcb5d69 Observe actual silent device intervals when adapting playback history 2026-10-13 23:26:55 +02:00
evgeny e6e276aed3 Expose shared playback timing and stereo time stretch to Android 2026-10-13 23:03:29 +02:00
evgeny e06e9b0e22 Capture encode and play stereo audio in Android live streams 2026-10-13 14:15:44 +02:00
evgeny 6bd14c53b5 Compress stream audio before Opus using radio settings 2026-10-13 13:39:12 +02:00
evgeny 7fa7a42673 Expose native debug categories and fix Android level fields 2026-10-13 12:10:08 +02:00
evgeny 3a6dacf378 Add stream camera controls and preserve playback on changes 2026-10-13 01:00:53 +02:00