Skip to content

use pkg-config to find Linux libraries#2

Merged
iparaskev merged 1 commit intogethopp:expose_desktop_capturerfrom
Be-ing:expose_desktop_capturer
Oct 13, 2025
Merged

use pkg-config to find Linux libraries#2
iparaskev merged 1 commit intogethopp:expose_desktop_capturerfrom
Be-ing:expose_desktop_capturer

Conversation

@Be-ing
Copy link
Copy Markdown

@Be-ing Be-ing commented Oct 8, 2025

No description provided.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Oct 8, 2025

CLA assistant check
All committers have signed the CLA.

println!("cargo:rustc-link-lib=dylib=gio-2.0");
println!("cargo:rustc-link-lib=dylib=drm");
println!("cargo:rustc-link-lib=dylib=gbm");
if std::env::var("LK_CUSTOM_WEBRTC").is_ok() {
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With livekit#730, this is a proxy for whether the Debian sysroot was used to build libwebrtc.

@Be-ing Be-ing force-pushed the expose_desktop_capturer branch from c51d568 to 0bc29a7 Compare October 8, 2025 23:07
@iparaskev iparaskev merged commit 21c54ef into gethopp:expose_desktop_capturer Oct 13, 2025
1 check passed
iparaskev pushed a commit that referenced this pull request Oct 13, 2025
iparaskev pushed a commit that referenced this pull request Nov 17, 2025
iparaskev added a commit that referenced this pull request Dec 5, 2025
* feat: expose DesktopCapturer

Implements screen sharing by exposing libwebrtc's
DesktopCapturer.

A few platform specific notes:
  - macos:
    * It is using screen capture kit and the system picker by
      default. If the system picker is disabled then get_sources
      returns an empty list when trying to capture a display. The
      display native id needs to be acquired using different means
      from the client.
  - linux:
    * With pipewire the only way to select window or display is via
      the system picker.

* use pkg-config to find Linux libraries (#2)

* Support x11 dependencies

* Modify example to work on x11

* Address comments

* Properly guard sck options

* Address review comments

In particular:
   - Adds support for the generic capturer.
   - Exposes the desktop_capturer module only on macos, linux and
     windows.
   - Updates the example

* Update license

* Set callback on start

* Make the callback FnMut

* cpp formatting

* Allow disabling system picker in example

* Address review comments

* Remove reference to temporary

* Run screen-sharing example only on supported platforms

* cargo fmt

* Update build runner with DesktopCapturer deps on linux

* Update runner

* Update tests runner

* fix Android build (#7)

* screensharing example: remove rustls-native feature from livekit

This was breaking the Android builds.

* improve error handling for File::open

* webrtc-sys-build: skip parsing desktop_capture.ninja on Android

* webrtc-sys-build: bump prebuilt library to webrtc-0001d84-2

* Enable TLS features for the screenshare example

---------

Co-authored-by: Be <be.0@gmx.com>
iparaskev pushed a commit that referenced this pull request Mar 31, 2026
* fix clang build issue from zed patches (livekit#949)

* livekit: Bump rustls to 0.23 (indirectly)

* livekit: Allow the consumer to fully specify TLS config

* livekit-api: Make webhooks and access-token non-default

Otherwise, when using livekit client SDK aka the `livekit` crate
we are pulling in `webhooks` and `access-token` related
functionality which really is not needed.

* webrtc-sys: Backport changes to the build script from main

* webrtc-sys: Make sure paths do not overflow Windows limit

* webrtc-sys: Use clang instead of gcc

* webrtc-sys: Bump webrtc version

* Debug CI output for aarch64-linux

* ci: Install lld for aarch64-linux FFI builders

* webrtc-sys: Disable CREL

* webrtc-sys: Disable CREL, attempt #2

* livekit: Expose SessionStats as public API

* webrtc-sys: Disable CREL, attempt #3

* webrtc-sys: Bump webrtc version to webrtc-0001d84-4

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>

* revert unrelated changes.

* remove unused patch.

* bump webrtc-build.

* Auto generate changeset

* Fix Clang build issue from Zed patches

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
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.

3 participants