Skip to content

Share play: the picture follows the rate ladder during a share (T38) - #113

Merged
AlxcBTW merged 2 commits into
mainfrom
t38-ladder
Oct 27, 2026
Merged

AlxcBTW merged 2 commits into
mainfrom
t38-ladder

Conversation

@AlxcBTW

@AlxcBTW AlxcBTW commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Gap 1 of T38: the stream no longer keeps the frame ring's size for the whole share.

  • The host's hub applies the controller's whole target: bitrate and parity as before, and now size and frame rate as a new epoch (Start to the worker, config to the guest, key frame).
  • The frame ring is made at the top rung (1080p60); the worker's encoders already scale each picture to the stream's size.
  • RateController::set_max_height (the player's limit for share_quality, wired in the next PR).
  • On the pause rung version 0 keeps a 540p30 picture at 300 kbit/s instead of stopping it (noted in the spec).

Tests: retune unit tests (same target, rate only, shape change, epoch wrap, pause), controller tests for the height limit, and an in-process integration test in crates/net/tests/play.rs (heavy loss reported by the guest moves host and guest to 540p30 in a new epoch and whole pictures keep coming).

Not proven: a real game's ring at 1080p, real encoders' reaction to a size change on real hardware.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

… (T38)

The host\x27s net service now moves the stream along the ladder from the guest\x27s reports: a new rate goes to the running encoder, a new size or frame rate is a new epoch, a new encoder and a config for the guest. The frame ring has the size of the top rung so that the picture can go up as well as down. The controller gets the player\x27s height limit for share_quality.
@AlxcBTW
AlxcBTW merged commit 2ba1d0f into main Oct 27, 2026
17 checks passed
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