Was: when a speaker was bounced to listener their tiles froze on every other peer until either the SFU's removePublisher path finally fired 'ended' on the subscriber's tracks or the 60s/120s mute window reaped them. Pion's OnConnectionStateChange can lag and SSE renegotiation can race, leaving visibly-frozen tiles for tens of seconds. Authoritative removal: when role-change strips speak rights from peer X (canSpeak(prev) && !canSpeak(next)), drop every kind of X's video tile on the receiver side immediately. The demoted user can't publish anymore by definition, so the tiles are guaranteed-stale — no need to wait for the data-plane path to catch up. Mirrors the existing peer-left handler which removes by pubkey. |
||
|---|---|---|
| .. | ||
| blog | ||
| fonts | ||
| chat.html | ||
| host-your-own.html | ||
| how-it-works.html | ||
| index.html | ||
| kernel.html | ||
| stamp.js | ||
| zebra-audio.html | ||
| zebra-spaces.html | ||