Commit Graph
168 Commits
Author SHA1 Message Date
evgeny 07f63c3047 Document audited call video and session contracts 2026-10-26 21:54:18 +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 000b28027c Preserve Android raw capture through AEC and apply mute before Opus 2026-10-26 17:14:18 +01:00
evgeny 5fee00c451 Clarify desktop voice contracts and document Android mute ordering defect 2026-10-26 16:31:11 +01:00
evgeny 0ad80f3906 Clarify frame assembly and keep reference PCM arithmetic signed 2026-10-26 15:58:11 +01:00
evgeny 913ae531ec Queue complete headless PCM frames and account for overflow drops 2026-10-26 15:51:35 +01:00
evgeny 45834692a7 Document headless PCM framing defect and independent codec ownership 2026-10-26 15:33:11 +01:00
evgeny f0df3d8848 Make stale TX regressions assert observable behavior first 2026-10-26 14:57:24 +01:00
evgeny e11eca93bb Isolate call audio TX tasks by instance binding epoch 2026-10-26 14:57:24 +01:00
evgeny a4d8637f45 Document stale call audio tasks corrupting pending accounting 2026-10-26 14:57:09 +01:00
evgeny 96d99a183d Reject overlapping outgoing calls and registered call IDs 2026-10-26 14:56:54 +01:00
evgeny aa09459c70 Document missing busy admission guard for outgoing calls 2026-10-26 14:56:06 +01:00
evgeny ceaf71caf8 Align headless PCM before passing frames to Opus 2026-10-26 09:08:42 +01:00
evgeny f5488adab0 Release headless audio contexts, clients and timers on chat stop 2026-10-26 09:08:42 +01:00
evgeny aca6364378 Correct call routing, media channels and API documentation 2026-10-21 16:11:36 +02:00
evgeny f59f64ea48 docs: remove reviewed header backup files 2026-10-21 15:22:42 +02:00
evgeny f5f106c682 docs: clarify header APIs and preserve originals in .h1 2026-10-21 15:21:27 +02:00
evgeny abf342534f Encrypt P2P call media and validate service IDs
Require signed and encrypted call audio/video using static identity keys. Fix attachment service ID collisions and media download handle lifetime; isolate LAN tests and audit the shared service registry.
2026-10-21 15:06:27 +02:00
evgeny 9c7b49e91f Add call status sharing and automatic stream orientation 2026-10-20 15:49:32 +02:00
evgeny 52d9a347c3 Bound persistent presentation lag and report catch-up decisions 2026-10-20 00:15:42 +02:00
evgeny 0a73d140e6 Account for full refresh-cycle GUI acknowledgement latency 2026-10-20 00:12:26 +02:00
evgeny 27cbf2ba44 Recover persistent video lag by skipping decoded presentation 2026-10-20 00:09:57 +02:00
evgeny d991b4c63e Preserve complete generated decoder probe byte arrays 2026-10-20 00:08:16 +02:00
evgeny 0d08c21330 Select decoder probe rate and preserve HEVC level 4.1 2026-10-20 00:06:45 +02:00
evgeny 4f1af6456d Generate real 60 fps video decoder probe fixtures 2026-10-20 00:06:29 +02:00
evgeny f2d67990f8 Cover High tier negotiation and independent KEY probes 2026-10-19 23:33:51 +02:00
evgeny 7122d70ea6 Negotiate HEVC Main High tier with explicit level limits 2026-10-19 23:32:29 +02:00
evgeny 902e7bb921 Use explicit HEVC Main tier and diagnose fixture rejection 2026-10-19 22:45:38 +02:00
evgeny fb660f2b3e Select verified KEY fixtures by actual video geometry 2026-10-19 22:35:56 +02:00
evgeny f50f717b35 Generate landscape and portrait Full HD decoder fixtures 2026-10-19 22:35:34 +02:00
evgeny d0232e4c6e Smooth video presentation phase across render latency changes 2026-10-19 21:15:18 +02:00
evgeny 93f6fa1d52 Allow video playout diagnostics outside the timer thread 2026-10-19 21:09:22 +02:00
evgeny 9ca0e61361 Expose nonblocking call clock access through both mutexes 2026-10-19 21:07:44 +02:00
evgeny 562bdf54a6 Add nonblocking jitter clock reads for video scheduling 2026-10-19 21:07:44 +02:00
evgeny 193a549d47 Expose lock-free cumulative call video receive count 2026-10-19 21:07:19 +02:00
evgeny 10018d008e Update call video controls and sensor rotation across Android and desktop 2026-10-19 20:24:39 +02:00
evgeny 5f45b38cfb Exercise acknowledged frame timing, lossless stalls and queue-dependent deceleration 2026-10-19 19:12:23 +02:00
evgeny 28f3b264b8 Anchor video pacing to presentation acknowledgements and total backlog 2026-10-19 19:03:48 +02:00
evgeny baeb4973dd Expose RX frame depth and wake decoding when complete video arrives 2026-10-19 19:02:51 +02:00
evgeny 9bffe49e62 Bound video display cadence independently of capture timestamp gaps 2026-10-19 18:22:47 +02:00
evgeny 642fc34bcc Bound video recovery correction before media timestamp arithmetic 2026-10-19 17:45:17 +02:00
evgeny 4ed2c4bbab Wake video transmission on router queue readiness without polling delay 2026-10-19 17:38:31 +02:00
evgeny 943f9f2646 Drain receiver backlog before admitting new production and avoid double waiting 2026-10-19 17:35:57 +02:00
evgeny 0e53a9f5dd Log retained video batches and verify every GPU input across bitrate changes 2026-10-19 17:31:15 +02:00
evgeny 486d3314ef Acknowledge Android texture consumption before presenting the next frame 2026-10-19 17:30:03 +02:00
evgeny 0eb743d627 Retain video mailbox tails and pause raw input under backpressure 2026-10-19 17:22:51 +02:00
evgeny 284a1268e4 Preserve encoded chain on temporary video transport backpressure 2026-10-19 17:22:09 +02:00
evgeny 7cbe5375d4 Define audio paced lossless video scheduling interface 2026-10-19 17:21:07 +02:00
evgeny 02a11f7d0a Diagnose Windows call video timing and queue losses 2026-10-19 17:20:12 +02:00
evgeny a9d63480cf Document incoming policy and already-active radio contracts 2026-10-19 15:18:49 +02:00