Commit Graph

36 Commits

Author SHA1 Message Date
zarazaex69
0db5ff01f6 chore(deps): update Go to 1.26 and bump dependency versions 2026-05-24 05:10:45 +03:00
zarazaex69
a00d7f5e9f deps: bump github.com/zarazaex69/j to 4015c3c4de75 2026-05-23 23:46:27 +03:00
zarazaex69
1cc5046231 chore: bump github.com/zarazaex69/j to 20260518222913 2026-05-19 08:20:06 +03:00
zarazaex69
d74b10a38d chore: bump zarazaex69/j to latest version 2026-05-18 21:47:24 +03:00
zarazaex69
92fbe7edda refactor: move stderr filter to unix build-tagged file 2026-05-18 10:58:04 +03:00
zarazaex69
00a79b3c99 fix: update jitsi video source handling 2026-05-16 04:34:59 +03:00
zarazaex69
bc22e0c76b build(deps): bump github.com/zarazaex69/j 2026-05-16 01:23:05 +03:00
zarazaex69
f7c157dfe3 fix(jitsi): align session close with leave flow 2026-05-16 01:09:01 +03:00
zarazaex69
6536249f72 feat: add randomID function to generate unique track and stream IDs 2026-05-15 22:00:45 +03:00
zarazaex69
bd09495e8f feat(jitsi): request video after session accept 2026-05-15 18:48:00 +03:00
zarazaex69
eceeaeba92 feat(jitsi): add Jitsi auth provider and engine 2026-05-15 15:37:58 +03:00
zarazaex69
359a2d94df feat: add YAML configuration support 2026-05-13 16:37:09 +03:00
zarazaex69
347d1cbec4 feat: update gomod 2026-05-12 23:03:59 +03:00
zarazaex69
d1454d2fa6 feat: remove b protocol 2026-05-06 19:23:16 +03:00
Alexander Anisimov
1fe085d7be fix mobile android build 2026-05-03 11:06:09 +03:00
zarazaex69
1114a394fa feat(ci): add recurse submodule 2026-05-03 01:47:56 +03:00
zarazaex69
14f9ed72ec feat: add smux dependency for multiplexing support 2026-05-02 18:12:01 +03:00
zarazaex69
cb6922dfbd build: promote kcp-go to direct dependency and update lossyconn 2026-05-02 18:05:41 +03:00
zarazaex69
35c05b654a feat(vp8channel): wrap carrier in KCP for reliable, ordered delivery
Plug a KCP session in front of the VP8 wire so the upper layer (mux/curl
tunnels) gets reliable, ordered, message-oriented delivery on top of an
otherwise unreliable carrier.

Why this fixes the random 0 B/s stalls
--------------------------------------
The previous design had no retransmits and no ACKs. A single dropped
VP8 frame (from drainOutbound on micro-reconnect, the inbound 'default:'
overflow drop, or RTP loss invalidating a partial assembly) created a
hole in mux.Stream.nextSeq that would never be filled: the receiver
parked all subsequent frames in outOfOrder forever and curl read 0 B/s
until a brand new mux stream id was opened.

KCP layer details
-----------------
* Stream mode + 4-byte big-endian length prefix. Message mode would be
  ideal but UDPSession.Write fragments anything > MSS *outside* of
  kcp.Send, leaving every fragment with frg=0 and breaking PeekSize-based
  reassembly. Length-prefix framing under stream mode is the canonical
  workaround.
* nodelay(1, 10ms, fast-resend=2, no congestion control) — KCP turbo
  preset, identical to kcptun/shadowsocks tuning. Recovers from burst
  losses in tens of ms instead of seconds.
* SndWnd/RcvWnd 4096 segments to absorb the multi-segment burst that
  a single VP8 sample can carry.
* MTU 1400 (kcp-go hardcodes mtuLimit=1500).

Wire compatibility with VP8 keepalives
--------------------------------------
KCP packets always start with the LE conv id (0x01 0xEE 0xFF 0xC0). VP8
keepalive frames start with 0x30. The receive path filters by the magic
byte before handing the buffer to KCP, so keepalives never poison the
KCP state machine.

Features() now advertises Reliable+Ordered. Drop-on-overflow paths in
the carrier are kept — KCP detects the loss via SACK and retransmits.

Refs: transport/vp8-kcp
2026-05-02 18:03:44 +03:00
zarazaex69
940b32e1fb chore: remove local replace directive for gr module 2026-05-02 15:01:10 +03:00
zarazaex69
ad7c9a5c3e feat: add tile as videochannel visual codec via -video-codec tile 2026-04-30 06:55:34 +03:00
zarazaex69
e742a789b9 chore: update gr submodule and replace qr dependencies 2026-04-30 04:56:45 +03:00
zarazaex69
689441a7f4 Add configurable QR error correction level for video transpor 2026-04-27 18:53:39 +03:00
zarazaex69
fe13ba28e3 feat(b): Add support for RGBA frame format in B visual codec 2026-04-25 21:22:13 +03:00
zarazaex69
a2d1b95ffa feat: add support for 'b' visual codec in videochannel 2026-04-22 21:26:50 +03:00
zarazaex69
9e09975165 feat: implement video channel transport 2026-04-21 01:32:17 +03:00
zarazaex69
a4d7febf88 feat: add wb_stream provider and update project dependencies 2026-04-20 04:43:25 +03:00
zarazaex69
96233b71d3 feat: add wb_stream provider with LiveKit integration and API client 2026-04-20 04:42:19 +03:00
zarazaex69
1c36033a1a fix(ci): add golang.org/x/mobile/bind to dependencies to fix gomobile bindings issue 2026-04-13 12:42:02 +03:00
zarazaex69
86a0e98ed0 chore: add mage build automation 2026-04-13 00:44:09 +03:00
zarazaex69
ac122f919f chore(go): Update module path to openlibrecommunity organizatio 2026-04-08 11:44:04 +03:00
zarazaex59
1dbbac4453 chore: Update Go dependencies and add Android build 2026-04-08 00:18:14 +03:00
zarazaex59
d614e748ea feat(telemost): Add connection monitoring and automatic reconnection 2026-04-07 01:15:44 +03:00
zarazaex59
06784ae999 chore(olcrtc): Update Go version to 1.24 and align dependencies 2026-04-07 00:29:23 +03:00
zarazaex59
08a80a9400 feat(olcrtc): Add WebRTC tunneling with encryption and SOCKS5 proxy 2026-04-07 00:10:04 +03:00
zarazaex69
170e42e6b5 chore: Initialize project with base configuration and assets 2026-04-04 23:46:41 +03:00