mirror of
https://github.com/livekit/livekit.git
synced 2026-11-12 20:49:07 +00:00
* sfu: restart the dependency descriptor parser of a publisher stream after a gap libwebrtc numbers dependency descriptor frames with one counter across all simulcast layers. A layer that dynacast paused for a long time resumes with a frame number more than half the 16 bit range away from its last one. The publisher buffer's parser never restarted, so it unwrapped the resumed frames against the stale number and later lost a full wrap. Every packet of the layer then fell below the structure thresholds and was dropped until the numbers caught up, about 16 minutes for three 22 fps layers. Enable the parser restart after a 30 s gap that relayed tracks already use, and start the key frame seeder on a restart, as the restart drops the structure the following packets need. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * sfu: request a key frame only when a restarted stream has no structure The parser now reports the restart on the packet that caused it, so the buffer does not read the parser's state. A stream that resumes with a key frame carries its structure and needs no key frame request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>