Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weylus Trial -- Samsung Tab S6 & Linux Mint 21.1 #204

Closed
wants to merge 471 commits into from

Conversation

DanSaintAndre
Copy link

I want to try this for my at-home office use in retirement. I have need to "write on" PDF and other documents.
I don't expect to make changes to the code. I might update available documentation. I spent a software technical career and will consider alpha or beta testing of new editions.

Covington, LA  USA

H-M-H added 30 commits March 23, 2021 00:13
There is now no need to distinguish between autopilot and x11 capturing.
While doing so improve debugging actions.
xdg-desktop-portal's org.freedesktop.portal.ScreenCast is used.

Additionally add infrastructure for pipewire C library.
Weylus can now capture the screen under Wayland if xdg-desktop-portal
and `org.freedesktop.portal.ScreenCast` is supported.

There are still some problems that need to be addressed:
- The gstreamer pipewiresrc seems to have a few issues:
    - The destructor of AppSink hangs in `gst_mini_object_remove_parent`
    and blocks the video thread once another capturable is selected and
    the current recorder is destroyed. This does not happen if the
    pipewiresrc is exchanged with a videotestsrc, which works just fine.
    - Switching around windows too much and reloading the page sometimes
    crashed Weylus, the crash happens somewhere inside gstreamer.
- Window positions are unavailable as of now and thus mapping the input
to the window won't work.
- Window titles are not available either and the names Weylus displays
are pretty cryptic.
- Whether to capture the cursor needs to be decided while getting the
capturable list by calling SelectSources with the appropriate arguments.
    - This is less flexible and may need a redesign of how this config
    option is passed.
    - Alternatively it's supposed to be possible to get cursor metadata,
    but these do not seem to be accessible via gstreamer.
- AutoPilotCapturable crashes on Wayland.
PipeWire only provides new buffers if the source has been damaged, that
is if the compositor decided to update it. So if there is no new buffer
but still a reference to an old buffer that just means the source has
not changed.

In order to still deliver an acceptable framerate (some clients like
firefox on android do not like videos with a very low framerate) wait
33ms (~30 frames per second) and then just send the old buffer again.
OmegaRogue and others added 28 commits March 16, 2023 15:00
If the pen is not touching the screen, set pressure to 0.
cargo deb has fixed this issue
This includes an update of hyper, and a change of the protocol.
Specifically, the websocket connection does not require a separate port
but instead is done via /ws. Furthermore, the client does not poll for
frames anymore, instead it sets a preferred frame rate.
Additionally, bump some deps and fix a typo in the Readme.
Sometimes events are merged, `getCoalescedEvents` provides all events in
full resolution.
@H-M-H
Copy link
Owner

H-M-H commented Sep 25, 2024

Thanks, I have some time at my hands now. If you still want to help, feel free to create a new pull request or to start a discussion!

@H-M-H H-M-H closed this Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants