Skip to content

v0.99.70

Choose a tag to compare

@github-actions github-actions released this 08 Mar 05:03
· 94 commits to trunk since this release

fix: rewrite resize as full pipeline teardown/rebuild, remove picom dependency

Resize was breaking NvFBC animation because the surgical reinit path
(recreateSession + reinitBuffers + reconfigure) had thread safety issues
and picom's compositing state broke after xrandr. This replaces it with
a clean teardown/rebuild approach:

  • Move resize from libdatachannel callback thread to capture loop via
    atomic pending_resize flag (fixes thread safety)
  • Full deinit/init of encoder, NvFBC, CUDA, NVENC on resize (~300ms)
  • Remove picom entirely — NvFBC polling mode works without a compositor
  • Remove surgical reinit methods (recreateSession, reinitBuffers,
    reconfigure, encoder.reinit) for clean-room rewrite later
  • Add per-stage timing logs for resize operations
  • Suppress no-op resizes on both server and browser side
  • Fix window.open/resizeTo to account for window decoration offset
  • Make video fill viewport (width/height: 100vw/100vh) so browser
    resize triggers app resize in both directions

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com