Skip to content

Recording (Linux): keep the capture clock ticking while cursor messages flow #936

Description

@EtienneLescot

Part of #920 (rank 19). Effort S, risk low.

Problem

  • The Linux helper's main loop advances the capture clock (capture.advance(), which holds the last picture forward and drains audio) only on FrameReady and on recv_timeout expiring (pipewire-capture/src/main.rs).
  • Every other message resets the recv_timeout. Cursor messages arrive at the compositor's rate (up to 144/s) while the mouse moves, so on a static screen with a moving mouse the timeout never expires and nothing advances.
  • Hypothesis on the consequence: the 2 s audio ring saturates and silence is inserted; the video holds no frames for that span.

Proposal

  • Advance whenever a tick has elapsed since the last advance, whatever message woke the loop.

Verify

  • A unit test on the tick rule.
  • On Linux: static screen, mouse moving for 10 s, with sound: no audio-dropped warning, audio continuous.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststatus: fixed in mainWork is merged into main but may not be in a downloadable release yet.status: pending releaseMerged change is waiting for a packaged desktop release.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions