Commit graph

39 commits

Author SHA1 Message Date
Antonio Scandurra
2b9fe0a2e6 WIP 2022-09-13 14:10:13 +02:00
Antonio Scandurra
4e0380c9fb Debounce frame assignment using a watch 2022-09-13 14:10:13 +02:00
Antonio Scandurra
d407f521db WIP: render screen-sharing frames 2022-09-13 14:10:13 +02:00
Antonio Scandurra
645338cff8 Register to publishing of remote tracks 2022-09-13 14:10:13 +02:00
Antonio Scandurra
37ca5651ee Parameterize LiveKit URL
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra
b154c3c9ee Expose Swift errors as anyhow::Result in live_kit 2022-09-13 14:10:13 +02:00
Antonio Scandurra
df3ab13441 Publish screen-sharing video track on the newly-created Room 2022-09-13 14:10:13 +02:00
Nathan Sobo
7bf64ec23e Add ability to get a screen share track for a window
And also list windows
2022-09-13 14:10:13 +02:00
Nathan Sobo
5347c7d678 Connect to LiveKit room in capture example 2022-09-13 14:10:13 +02:00
Nathan Sobo
3c2566fc11 Copy WebRTC.framework when building livekit crate
We determine the location of the target executable directory in a somewhat hacky way, but it seems reasonably stable.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-09-13 14:10:13 +02:00
Nathan Sobo
4bcc008cbf WIP: Start on live_kit crate that uses a C-based bridge 2022-09-13 14:10:13 +02:00
Antonio Scandurra
52f32b50b2 WIP: Talk to Swift via C without involving Objective-C
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra
5fec784580 Link Swift stdlib 2022-09-13 14:10:13 +02:00
Antonio Scandurra
46abb1cbf6 WIP 2022-09-13 14:10:13 +02:00
Antonio Scandurra
6c28b21728 WIP: Start binding LiveKit 2022-09-13 14:10:13 +02:00
Nathan Sobo
b51abc5a63 Read the frame data out of the CMSampleBuffer
Still not sending it anywhere, but think I'm reading it correctly.
2022-09-13 14:10:13 +02:00
Antonio Scandurra
047b5114f1 Start on a new, more abstract CompressionSession primitive
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra
7054fa61f2 Start compressing captured frames as H264 2022-09-13 14:10:13 +02:00
Antonio Scandurra
f621d290fe Move core_media into media crate 2022-09-13 14:10:13 +02:00
Antonio Scandurra
a02e388ea2 Honor scale factor when rendering 2022-09-13 14:10:13 +02:00
Antonio Scandurra
79a7a0e0e7 Capture screen in BGRA8 and render it in capture example app 2022-09-13 14:10:13 +02:00
Nathan Sobo
531ffc01c9 Pass CVImageBuffers into GPUI instead of IOSurfaces 2022-09-13 14:10:13 +02:00
Nathan Sobo
db88ee2f4c Handle captured frames in the background 2022-09-13 14:10:13 +02:00
Antonio Scandurra
71d9a880d6 WIP: Start pushing native surface to Scene
This is segfaulting for some reason, so that's the next step to figure out.
2022-09-13 14:10:13 +02:00
Antonio Scandurra
d30e360664 Retrieve IOSurface in Rust callback as opposed to doing so in delegate 2022-09-13 14:10:13 +02:00
Antonio Scandurra
c4110edb78 Extract io_surface crate and invoke custom callback on frame sample
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra
d473b52f5a Remove src/dummy.m
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra
1611635e5f Capture display frames and access underlying IOSurface 2022-09-13 14:10:13 +02:00
Antonio Scandurra
014246f569 Provide all running applications to SCContentFilter to capture display 2022-09-13 14:10:13 +02:00
Antonio Scandurra
ef8a0dc175 Fix bindgen warnings 2022-09-13 14:10:13 +02:00
Nathan Sobo
82ec2dc7ca Try to use the dummy capture handler, still not working 2022-09-13 14:10:13 +02:00
Nathan Sobo
99cb66dfb0 Programmatically locate the system SDK path for bindgen 2022-09-13 14:10:13 +02:00
Nathan Sobo
4440c9b18e Bind to capture's macOS C frameworks with bindgen 2022-09-13 14:10:13 +02:00
Antonio Scandurra
30a3c0fb46 WIP 2022-09-13 14:10:13 +02:00
Nathan Sobo
0df97dce02 WIP 2022-09-13 14:10:13 +02:00
Nathan Sobo
497232ee59 Get capture starting without error 2022-09-13 14:10:13 +02:00
Nathan Sobo
d91f26d016 Make SCStreamOutput protocol accessible in Rust 2022-09-13 14:10:13 +02:00
Antonio Scandurra
45519cdd27 WIP 2022-09-13 14:10:13 +02:00
Nathan Sobo
7918bf39f5 Make capture example its own crate 2022-09-13 14:10:13 +02:00