STEPS TO REPRODUCE 1. use Wayland 2. open Spectacle 3. click on "Recording" tab and then on "Full screen" button 4. move the mouse pointer repeatedly for a few seconds while the screen is recorded 5. finish the screen recording 6. watch the recorded video OBSERVED RESULT mouse pointer is barely visible while moved in the recorded video, as if some frames had been dropped while the screen was recorded. EXPECTED RESULT mouse pointer is well visible while moved in the recorded video SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.90.0 KDE Frameworks Version: 5.246.0 Qt Version: 6.6.1 Kernel Version: 6.6.3-arch1-1 (64-bit) Graphics Platform: Wayland Processors: 4 × Intel® Core™ i5-4670K CPU @ 3.40GHz Memory: 15,5 GiB of RAM Graphics Processor: Mesa Intel® HD Graphics 4600
Could you post a sample file? I could not reproduce this issue.
Created attachment 164247 [details] video recorded with OBS Studio
Created attachment 164248 [details] video recorded with Spectacle
OK, so this is a frame drop issue. The cursor itself is not barely visible. Does the lack of smoothness only affect the cursor or does it affect other moving content too? Does the lack of smoothness happen when recording without the cursor?
The animations lightly stutter in the recorded video, windows are moved smoothly. Animations are smooth if the mouse pointer is not recorded.
*** Bug 493586 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 488896 ***
@Nate I don't think this is a duplicate as I have this issue regardless of which codec I use. The issue is that spectacle is using variable framerate so if the capture (kpipewire) deems that there has been no screen updates, not new frames will be sent. However this doesn't take into account the mouse cursor. So all the mouse movement that doesn't occur while the underlying content is updated will be dropped. This is very noticable in Blender for example (like in my bug report: https://bugs.kde.org/show_bug.cgi?id=493586)
Hmm, so you think it's a KPipeWire issue, but a different one?
I don't think the issue I'm experiencing is related to the codec, yes. From looking at and debugging the code, it seems like KPipeWire doesn't send any updates when the mouse moves and there is no damage/updates reported after the previous frame. So Spectacle simply doesn't get any new information about where the mouse is currently unless a new frame is sent from KPipeWire as well. I first thought we would work around this by having Spectacle query the mouse position at a fixed rate, but from what I could tell, the mouse position data is tied to the frame that Kpipewire sends. So if there is no new frame data, no new mouse position data is available.