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

Add screencopy+dmabuf support to libwayshot #119

Open
CheerfulPianissimo opened this issue May 26, 2024 · 2 comments
Open

Add screencopy+dmabuf support to libwayshot #119

CheerfulPianissimo opened this issue May 26, 2024 · 2 comments
Assignees
Labels
component: libwayshot component: wayshot-cli documentation Improvements or additions to documentation enhancement New feature or request

Comments

@CheerfulPianissimo
Copy link

Tracking issue for my Google Summer of Code 2024 project with Waycrate.
More details may be found here:

The GSoC mentor assigned for this project is @zubairmh

@CheerfulPianissimo
Copy link
Author

How should the basic API be structured? My present plan:

  • Add a method that returns a GBM buffer object containing the screencapture under the WayshotConnection struct
  • Add a new constructor for WayshotConnection that initializes the Linux dmabuf main interface and also initializes a GBMDevice to create the backing dmabuf buffer objects on. Both of these will be stored in WayshotConnection inside an Option (as dmabuf functionality may not always present)
    • One issue that arises here is that GBMDevice, being a wrapper to a C library construct, does not implement Sync/Send and cannot be moved across threads. This means that WayshotConnection will lose it's thread safety and cannot be moved across threads as it contains a GBMDevice : this happens at one point in libwayshot where multiple outputs are captured simultaneosly here . One solution is to remove the use of threads here but perhaps there's another way I'm missing.

What are your thoughts on this @zubairmh and @Shinyzenith ?

@CheerfulPianissimo
Copy link
Author

CheerfulPianissimo commented Aug 1, 2024

For anyone following, a technical log of the present work on this issue can be found at:
https://cheerfulpianissimo.github.io/notes/GSOC/GSOC%20Devlog%20(June).html
and https://cheerfulpianissimo.github.io/notes/GSOC/GSoC%20Devlog%20(July).html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: libwayshot component: wayshot-cli documentation Improvements or additions to documentation enhancement New feature or request
Development

No branches or pull requests

3 participants