Commit 89a2b85
Expose desktop capturer (#725)
* 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>1 parent 4e186d3 commit 89a2b85
File tree
18 files changed
+1711
-336
lines changed- .github/workflows
- examples/screensharing
- src
- libwebrtc/src
- native
- webrtc-sys
- build/src
- include/livekit
- src
18 files changed
+1711
-336
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
87 | 100 | | |
88 | 101 | | |
89 | 102 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
87 | 104 | | |
88 | 105 | | |
89 | 106 | | |
| |||
0 commit comments