Repository navigation
fix(screen): negotiate Linux capture video - #104
Conversation
2ddfa58 to
7399d17
Compare
|
Hi @fergusean, thank you for all your contributions to Codync so far! We just opened a Discord server for Codync: https://discord.gg/JzMXd7gHAJ It should make it much easier to talk through PRs and plans going forward, so it'd be great to have you there. This link gives you the Contributor role automatically when you join. |
7399d17 to
e9340b7
Compare
Use the viewer's H.264 payload and 8-bit 4:2:0 encoder input, negotiate the answer before capture starts, and keep PipeWire timestamps on the system clock. These fixes work with complete SDP independently of trickle ICE and are split from PR leepokai#40 as requested. Co-authored-by: Codex <codex@openai.com>
The codec regressions exercise real GStreamer pipelines, so install their base, good, bad, ugly and ICE runtime plugins on the clean runner. Co-authored-by: Codex <codex@openai.com>
e9340b7 to
3cc5a52
Compare
Setting pipewiresrc's provide-clock property panicked on every PipeWire before 1.6 (Ubuntu 24.04 ships 1.0), so the helper never answered and the phone couldn't connect. The pipeline now picks the system clock itself, which keeps capture timestamps on it with every version, and a test builds the capture source on the installed PipeWire (CI now installs its GStreamer plugin). Also accept only dynamic payload numbers, the only ones rtph264pay takes, and make the docs note a list item. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDC5WbCSUif2ysBUruDTzi
|
Merged, thanks @fergusean! The payload, 4:2:0 and answer-before-capture fixes are all right, and it ships in 2.17.2. Before merging I pushed one fix on top (39dabfd): pipewiresrc only has |
Summary
Linux remote screens use the H.264 payload offered by the viewer, feed encoders 8-bit 4:2:0 video, and keep PipeWire capture timestamps on the system clock. Negotiate the answer before starting capture so the encoder accepts a Baseline offer before fixing its profile.
Split these capture/codec corrections from #40 as requested in its review. This PR uses existing complete-SDP negotiation and introduces no trickle signaling, client UI, version or lockfile changes. macOS/Windows capture pipelines are unaffected because these changes are confined to the Linux GStreamer helper.
Validation
devatdd141b99(2.15.2), including merged fix(host): restore baseline CI checks #103. The feature patch is unchanged and fresh Linux helper CI passes.The broader forced-relay, UDP-blocked TURN and mixed-version acceptance matrix belongs to #40.
What's New
zh-Hant
en-US