Commit Graph
31406 Commits
Author SHA1 Message Date
Antonio Scandurra 382088c377 Use a transparent layer for status bar
This allows the compositor to blend the GPUI view with the background.
2022-09-13 14:11:50 +02:00
Antonio Scandurra 88d4122786 Set contents scale and drawable size when creating status metal layer 2022-09-13 14:11:50 +02:00
Antonio Scandurra 2c17c517a4 Wire up event handling for status items 2022-09-13 14:11:50 +02:00
Antonio Scandurra 0d1cc813b0 WIP: Start rendering GPUI views to macOS status bar 2022-09-13 14:11:48 +02:00
Antonio Scandurra bf15fcb1d2 Encapsulate metal layer into Renderer 2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo c22a637d1e Remove platform::WindowContext trait
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo 9fc3d5fd7b WIP: Show status bar item with a backing metal layer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra d28cf44d57 WIP 2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo 83e96e5ee3 WIP: Start on App::add_status_bar_item
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo ae66bf4749 Add the ability to hide the titlebar when creating windows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra 99dc2f3444 Render surfaces correctly when encoded in 420YpCbCr8BiPlanarFullRange 2022-09-13 14:10:13 +02:00
Antonio Scandurra 939a550048 Debounce frame assignment using a watch 2022-09-13 14:10:13 +02:00
Antonio Scandurra 62484540da WIP: render screen-sharing frames 2022-09-13 14:10:13 +02:00
Antonio Scandurra 2698a5caeb Register to publishing of remote tracks 2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo 0ccfe625b4 Parameterize LiveKit URL
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo 30ff590a13 Avoid double boxing of oneshot when calling LKRoomPublishVideoTrack
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra 427c9aea7c Expose Swift errors as anyhow::Result in live_kit 2022-09-13 14:10:13 +02:00
Antonio Scandurra 5f3e39f043 Publish screen-sharing video track on the newly-created Room 2022-09-13 14:10:13 +02:00
Nathan Sobo d0bd792a35 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 9e96363abf Connect to LiveKit room in capture example 2022-09-13 14:10:13 +02:00
Nathan SoboandAntonio Scandurra ad1211e611 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 a606f486f1 WIP: Start on live_kit crate that uses a C-based bridge 2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo 3476d16d87 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 c25188bd20 Link Swift stdlib 2022-09-13 14:10:13 +02:00
Antonio Scandurra e789be252a WIP 2022-09-13 14:10:13 +02:00
Antonio Scandurra a93ec7f595 WIP: Start binding LiveKit 2022-09-13 14:10:13 +02:00
Nathan Sobo 70450c86dc 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 ScandurraandNathan Sobo a2aec16251 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 ScandurraandNathan Sobo e2d7ef6997 WIP: Start converting H264 samples to Annex-B NALs
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra a7e27eb763 Start compressing captured frames as H264 2022-09-13 14:10:13 +02:00
Antonio Scandurra cd7ccca114 Move core_media into media crate 2022-09-13 14:10:13 +02:00
Antonio Scandurra 5010b8bf6e Honor scale factor when rendering 2022-09-13 14:10:13 +02:00
Antonio Scandurra 03b5f30eb6 🔥 2022-09-13 14:10:13 +02:00
Antonio Scandurra 6d6c5efc96 Return results for fallible media APIs 2022-09-13 14:10:13 +02:00
Antonio Scandurra 0e67c8e28e Capture screen in BGRA8 and render it in capture example app 2022-09-13 14:10:13 +02:00
Nathan Sobo ba47bf20bd Start on using CVMetalTextureCache 2022-09-13 14:10:13 +02:00
Nathan Sobo fbc89c7546 Pass CVImageBuffers into GPUI instead of IOSurfaces 2022-09-13 14:10:13 +02:00
Nathan Sobo 5c220b012d WIP: Start on Renderer::render_surfaces but really it's nothing 2022-09-13 14:10:13 +02:00
Nathan Sobo 378a780968 Handle captured frames in the background 2022-09-13 14:10:13 +02:00
Antonio Scandurra 71e128de50 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 1a7622e2e4 Retrieve IOSurface in Rust callback as opposed to doing so in delegate 2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo b5fdd577c0 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 ScandurraandNathan Sobo 3ebf6e7906 Start on Scene::push_surface
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio ScandurraandNathan Sobo 6d148907b8 Remove src/dummy.m
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-13 14:10:13 +02:00
Antonio Scandurra 2b034b2417 Capture display frames and access underlying IOSurface 2022-09-13 14:10:13 +02:00
Antonio Scandurra 585b8078a8 Provide all running applications to SCContentFilter to capture display 2022-09-13 14:10:13 +02:00
Antonio Scandurra 08e5fc1a92 Fix bindgen warnings 2022-09-13 14:10:13 +02:00
Nathan Sobo a155e3aa3b Try to use the dummy capture handler, still not working 2022-09-13 14:10:13 +02:00
Nathan Sobo c599882cfc Programmatically locate the system SDK path for bindgen 2022-09-13 14:10:13 +02:00
Nathan Sobo eb79ad74c1 Bind to capture's macOS C frameworks with bindgen 2022-09-13 14:10:13 +02:00