shell-recorder: update cursor coordinates on each captured frame

Closed Florian Zwoch requested to merge fzwoch/gnome-shell:cursor_real_fix into master

Hey, this is my second contribution to the GNOME project, so bear with me it things are still a bit weird. This change updates the behavior of the cursor position. Instead of having a hard coded interval of 100 ms it queries coordinates for each captured image.

Currently people recording or screen casting a session (at frame rates > 10 frames per second) with a cursor often complain the video being "jerky". The sole reason for that is that the mouse cursor coordinates are only updated at 100 ms intervals while the recorded video is actually fine and at the desired frame rate.

This change actually removes quite a bit of code due to the time out handling. I haven't quiet understood the reason for this complexity - unless the burden of querying the cursor coordinates comes at a high performance penalty. I hope querying the coordinates 30 times a second (At 30 fps videos) instead of 10 times makes not much of a difference for this use case (capturing HD desktops at 30fps..).

I made sure this one compiles at least, but I have trouble injecting this change to my running system. That means I could not verify that it works as I had intended. So if someone with expertise can double-check this one works I'd feel much more relieved..

Instead of querying the cursor's position in 100 ms intervals get the position for each captured image. This results in a more accurate cursor position. Especially for higher capture rates this results in a much more fluid looking video.

Merge request reports