datarhei-dragonfork-core/core/webrtc
ZGaetano 020a1800ce
Some checks failed
ci / race tests (push) Blocked by required conditions
ci / WebRTC smoke (5-viewer fanout) (push) Blocked by required conditions
ci / WebRTC latency p95 gate (push) Blocked by required conditions
ci / vet + build (push) Has been cancelled
feat(webrtc): wire keyframe cache into Source (issue #17)
- Add cache *keyFrameCache field to Source (nil by default).
- Add EnableKeyFrameCache() — call before Start() on video sources to
  activate IDR burst caching.
- readLoop: call cache.push(pkt) after each successful unmarshal, before
  the subscriber fanout. No lock held at push time — push acquires its
  own mutex internally.
- Subscribe: snapshot the cache outside s.mu to avoid any cross-lock
  complexity, then pre-fill the new channel with the burst before
  registering it in the subscriber set. Uses a labeled break to stop
  pre-filling if the channel is full (bufDepth too small for the burst;
  the subscriber will wait for the next live keyframe instead).
2026-05-09 19:04:17 -04:00
..
config.go feat(webrtc): add Config with defaults and validation 2026-04-17 08:44:30 -04:00
config_test.go feat(webrtc): add Config with defaults and validation 2026-04-17 08:44:30 -04:00
doc.go feat(webrtc): add package skeleton and typed errors 2026-04-17 08:43:57 -04:00
errors.go feat(webrtc): add package skeleton and typed errors 2026-04-17 08:43:57 -04:00
forward.go feat(webrtc): add app/webrtc subsystem + lifecycle hooks 2026-04-17 10:02:00 -04:00
ice.go feat(webrtc): add ICE config helper (Configuration + SettingEngine) 2026-04-17 08:46:27 -04:00
ice_test.go feat(webrtc): add ICE config helper (Configuration + SettingEngine) 2026-04-17 08:46:27 -04:00
keyframecache.go feat(webrtc): add H.264 keyframe burst cache (issue #17) 2026-05-09 19:03:33 -04:00
peer.go feat(webrtc): add Connected() channel to Peer for ICE establishment timing 2026-05-06 15:55:42 -04:00
peer_test.go feat(webrtc): add PeerFactory, Peer, and RTP forwarder 2026-04-17 08:47:27 -04:00
registry.go feat(webrtc): add thread-safe Registry for stream_id -> SourceHandle 2026-04-17 08:44:59 -04:00
registry_test.go feat(webrtc): add thread-safe Registry for stream_id -> SourceHandle 2026-04-17 08:44:59 -04:00
source.go feat(webrtc): wire keyframe cache into Source (issue #17) 2026-05-09 19:04:17 -04:00
source_test.go feat(webrtc): add Source with UDP RTP reader and subscriber fan-out 2026-04-17 08:45:48 -04:00
whep.go feat(webrtc): add WHEP POST handler (happy path) 2026-04-17 08:48:06 -04:00
whep_test.go feat(webrtc): add WHEP POST handler (happy path) 2026-04-17 08:48:06 -04:00
whip.go feat(core/webrtc): add IngestPeer for WHIP publish side (issue #16) 2026-05-09 16:20:09 -04:00