Skip to content

huddle: forward subscriber keyframe requests to the publisher - #151

Merged
naliyi merged 3 commits into
mainfrom
fix/huddle-video-keyframes
Oct 16, 2026
Merged

naliyi merged 3 commits into
mainfrom
fix/huddle-video-keyframes

Conversation

@naliyi

@naliyi naliyi commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Fixes huddle video freezing after a lost packet on ncli relay. The SFU dropped each subscriber's RTPSender and never read its RTCP, so PLI/FIR never reached the publisher and NACKs went unanswered.

  • read RTCP per subscriber track; forward PLI/FIR, throttled to 500ms
  • request a keyframe on the subscriber's first RTCP (track now bound)
  • request one when a publisher reconnects onto the same track ids
  • record the subscription only after AddTrack succeeds

CHANGELOG section is headed [0.8.0-rc.23] for the next RC.

wingha and others added 3 commits October 16, 2026 21:38
The SFU discarded each subscriber's RTPSender and never read its RTCP, so
PLI/FIR never reached the publisher and pion's NACK responder never ran.
Browsers only encode a keyframe when asked, so one lost packet froze a
forwarded picture for good while audio continued. The single keyframe
request made at track creation also landed before the subscriber had
answered the renegotiation, so that keyframe was dropped by the unbound
track.

- read RTCP per subscriber track; forward PLI/FIR, throttled to 500ms
- request a keyframe on the subscriber's first RTCP (track now bound)
- request one when a publisher reconnects onto the same track ids
- record the subscription only after AddTrack succeeds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@naliyi
naliyi merged commit 34bd011 into main Oct 16, 2026
4 checks passed
@naliyi
naliyi deleted the fix/huddle-video-keyframes branch October 16, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant