zebra-report: deploy — 60s camera window
This commit is contained in:
parent
95e6253698
commit
8a055ea9fe
1 changed files with 21 additions and 14 deletions
|
|
@ -1609,23 +1609,30 @@ function flushSfuStreams(){
|
|||
* isn't producing RTP — we cancel the removal.
|
||||
*
|
||||
* Window depends on the kind of content (caller passes via windowMs):
|
||||
* - 15s for cameras: face/motion content keeps RTP flowing
|
||||
* continuously, so a 15s gap is meaningful. Generous enough to
|
||||
* weather Wi-Fi stalls and mobile network handoffs.
|
||||
* - 120s for screen / gameshare: STATIC content (a still desktop, a
|
||||
* - 60s for cameras: face/motion content keeps RTP flowing most of
|
||||
* the time, but Firefox Android + cellular handoffs can stall a
|
||||
* decoded video element on jittery paths well past 15s without
|
||||
* the publisher being gone. 60s is comfortably above the typical
|
||||
* NACK + transport-cc recovery window; matches Pion's ICE
|
||||
* failure timeout, so if the path is genuinely broken the SFU
|
||||
* fires renegotiation + 'ended' before this anyway.
|
||||
* - 120s for screen / gameshare: STATIC content (still desktop, a
|
||||
* paused video, a code editor with no caret motion) doesn't push
|
||||
* new RTP for long stretches. The encoder genuinely stops emitting
|
||||
* packets, the receiver's track goes muted, and the 15s window
|
||||
* would falsely reap a live tile. 120s lets a static screen
|
||||
* survive comfortably; a real unshare still resolves through the
|
||||
* 'ended' path within a frame.
|
||||
* packets; 120s lets a static screen survive comfortably.
|
||||
*
|
||||
* Genuine unshares always resolve through the 'ended' path (within a
|
||||
* frame of the SFU's removePubFromSub), so these windows only matter
|
||||
* for slow-failure scenarios (PC dies silently, SSE renegotiation
|
||||
* dropped, etc.).
|
||||
*
|
||||
* Window history:
|
||||
* - 3s (all kinds): killed live tiles on any transient mute.
|
||||
* - 15s (all kinds): cameras ok, but static screens vanished after
|
||||
* 15s of no motion.
|
||||
* - 15s camera / 120s screen+game (current). */
|
||||
const VIDEO_REMOVE_MUTE_WINDOW_MS = 15000;
|
||||
* - 15s (all kinds): cameras ok on desktop, static screens vanished.
|
||||
* - 15s camera / 120s screen+game: cameras OK on desktop, phone on
|
||||
* cellular still occasionally reaped live faces during jitter.
|
||||
* - 60s camera / 120s screen+game (current). */
|
||||
const VIDEO_REMOVE_MUTE_WINDOW_MS = 60000;
|
||||
const VIDEO_REMOVE_MUTE_WINDOW_SCREEN_MS = 120000;
|
||||
function watchVideoTrackForRemoval(track, removeFn, windowMs){
|
||||
if (!track) return;
|
||||
|
|
@ -3854,8 +3861,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');
|
|||
|
||||
<footer style="margin:2.2rem auto 0;font-size:0.65rem;color:#999;line-height:1.7;word-break:break-all;font-family:monospace">
|
||||
<span id="pi-seal" style="color:#777;cursor:default;user-select:none" title="">page integrity</span> · built <span class="stamp-date">2026-06-03</span><br>
|
||||
md5 <span class="stamp-md5">23233fe6c11383cddc6088f564b9b95c</span><br>
|
||||
sha256 <span class="stamp-sha">ce79d23b6db5bf5c37efa084da4210d7318854198d92806fc7371ad80fd15d6a</span><br>
|
||||
md5 <span class="stamp-md5">5bba3e681d0b4c34ede5d0f0bb4da138</span><br>
|
||||
sha256 <span class="stamp-sha">9445032ab40c1b6bbd69eda3b8a6b33c4b3ff849e1a5c23955e4f0d9619d4540</span><br>
|
||||
<span style="color:#bbb">hashes are of this page with these two fields zeroed — to verify, blank them and re-hash</span><br>
|
||||
<span style="color:#bbb">one self-contained file — <strong>save a copy</strong> and verify against these hashes; point at your own servers with ?signal= and ?turncred=, or <a href="host-your-own.html" style="color:#999">host your own community</a></span>
|
||||
</footer>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue