Use LiveKit's Rust SDK on Linux while continue using Swift SDK on Mac (#21550)

Similar to #20826 but keeps the Swift implementation. There were quite a
few changes in the `call` crate, and so that code now has two variants.

Closes #13714

Release Notes:

- Added preliminary Linux support for voice chat and viewing
screenshares.

---------

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
This commit is contained in:
Michael Sloan 2024-12-05 16:06:17 -07:00 committed by GitHub
parent 0511768b22
commit 6a4cd53fd8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
91 changed files with 7187 additions and 1028 deletions

View file

@ -0,0 +1,83 @@
syntax = "proto3";
package livekit;
option go_package = "github.com/livekit/protocol/livekit";
option csharp_namespace = "LiveKit.Proto";
option ruby_package = "LiveKit::Proto";
import "livekit_egress.proto";
import "livekit_ingress.proto";
message StartEgressRequest {
// request metadata
string egress_id = 1;
string request_id = 2;
string sender_id = 10;
int64 sent_at = 4;
// request
oneof request {
RoomCompositeEgressRequest room_composite = 5;
TrackCompositeEgressRequest track_composite = 6;
TrackEgressRequest track = 7;
}
// connection info
string room_id = 3;
string token = 8;
string ws_url = 9;
}
message EgressRequest {
// request metadata
string egress_id = 1;
string request_id = 2;
string sender_id = 5;
// request
oneof request {
UpdateStreamRequest update_stream = 3;
StopEgressRequest stop = 4;
}
}
message EgressResponse {
EgressInfo info = 1;
string error = 2;
string request_id = 3;
}
message IngressRequest {
// request metadata
string ingress_id = 1;
string request_id = 2;
string sender_id = 3;
oneof request {
UpdateIngressRequest update = 4;
DeleteIngressRequest delete = 5;
}
}
// Query an ingress info from an ingress ID or stream key
message GetIngressInfoRequest {
string ingress_id = 1;
string stream_key = 2;
string request_id = 3;
string sender_id = 4;
int64 sent_at = 5;
}
message IngressResponse {
IngressInfo info = 1;
string error = 2;
string request_id = 3;
}
message GetIngressInfoResponse {
IngressInfo info = 1;
string token = 2;
string ws_url = 3;
string error = 4;
string request_id = 5;
}