Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree with a 3-file patch applied (no upstream history). Patch (crates/gpui_linux/src/linux/wayland/): - serial.rs: add SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; add latest_serial_of() - window.rs: activate() uses keyboard-enter serial (Mutter focus gate) Mutter honors window activation only when the token carries the keyboard- focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial. See docs/tray-window-focus-wayland.md in logiguard. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
135 lines
3.5 KiB
Protocol Buffer
135 lines
3.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package livekit;
|
|
|
|
import "livekit_models.proto";
|
|
|
|
option go_package = "github.com/livekit/protocol/livekit";
|
|
option csharp_namespace = "LiveKit.Proto";
|
|
option ruby_package = "LiveKit::Proto";
|
|
|
|
service Ingress {
|
|
// Create a new Ingress
|
|
rpc CreateIngress(CreateIngressRequest) returns (IngressInfo);
|
|
// Update an existing Ingress. Ingress can only be updated when it's in ENDPOINT_WAITING state.
|
|
rpc UpdateIngress(UpdateIngressRequest) returns (IngressInfo);
|
|
rpc ListIngress(ListIngressRequest) returns (ListIngressResponse);
|
|
rpc DeleteIngress(DeleteIngressRequest) returns (IngressInfo);
|
|
}
|
|
|
|
message CreateIngressRequest {
|
|
IngressInput input_type = 1;
|
|
// User provided identifier for the ingress
|
|
string name = 2;
|
|
// room to publish to
|
|
string room_name = 3;
|
|
// publish as participant
|
|
string participant_identity = 4;
|
|
// name of publishing participant (used for display only)
|
|
string participant_name = 5;
|
|
IngressAudioOptions audio = 6;
|
|
IngressVideoOptions video = 7;
|
|
}
|
|
|
|
enum IngressInput {
|
|
RTMP_INPUT = 0;
|
|
// FILE_INPUT = 1;
|
|
// SRT_INPUT = 2;
|
|
// URL_INPUT = 3;
|
|
}
|
|
|
|
message IngressAudioOptions {
|
|
string name = 1;
|
|
TrackSource source = 2;
|
|
// desired mime_type to publish to room
|
|
string mime_type = 3;
|
|
uint32 bitrate = 4;
|
|
bool disable_dtx = 5;
|
|
uint32 channels = 6;
|
|
}
|
|
|
|
message IngressVideoOptions {
|
|
string name = 1;
|
|
TrackSource source = 2;
|
|
// desired mime_type to publish to room
|
|
string mime_type = 3;
|
|
// simulcast layers to publish, when empty, it'll pick default simulcast
|
|
// layers at 1/2 and 1/4 of the dimensions
|
|
repeated VideoLayer layers = 4;
|
|
}
|
|
|
|
message IngressInfo {
|
|
string ingress_id = 1;
|
|
string name = 2;
|
|
string stream_key = 3;
|
|
string url = 4;
|
|
// for RTMP input, it'll be a rtmp:// URL
|
|
// for FILE input, it'll be a http:// URL
|
|
// for SRT input, it'll be a srt:// URL
|
|
IngressInput input_type = 5;
|
|
IngressAudioOptions audio = 6;
|
|
IngressVideoOptions video = 7;
|
|
string room_name = 8;
|
|
string participant_identity = 9;
|
|
string participant_name = 10;
|
|
bool reusable = 11;
|
|
IngressState state = 12; // Description of error/stream non compliance and debug info for publisher otherwise (received bitrate, resolution, bandwidth)
|
|
|
|
// NEXT_ID: 13
|
|
}
|
|
|
|
message IngressState {
|
|
enum Status {
|
|
ENDPOINT_INACTIVE = 0;
|
|
ENDPOINT_BUFFERING = 1;
|
|
ENDPOINT_PUBLISHING = 2;
|
|
ENDPOINT_ERROR = 3;
|
|
}
|
|
|
|
Status status = 1;
|
|
string error = 2; // Error/non compliance description if any
|
|
InputVideoState video = 3;
|
|
InputAudioState audio = 4;
|
|
string room_id = 5; // ID of the current/previous room published to
|
|
int64 started_at = 7;
|
|
repeated TrackInfo tracks = 6;
|
|
}
|
|
|
|
message InputVideoState {
|
|
uint32 mime_type = 1;
|
|
// uint32 bitrate = 2;
|
|
uint32 width = 3;
|
|
uint32 height = 4;
|
|
uint32 framerate = 5;
|
|
}
|
|
|
|
message InputAudioState {
|
|
uint32 mime_type = 1;
|
|
// uint32 bitrate = 2;
|
|
uint32 channels = 3;
|
|
uint32 sample_rate = 4;
|
|
}
|
|
|
|
message UpdateIngressRequest {
|
|
string ingress_id = 1;
|
|
string name = 2;
|
|
string room_name = 3;
|
|
string participant_identity = 4;
|
|
string participant_name = 5;
|
|
IngressAudioOptions audio = 6;
|
|
IngressVideoOptions video = 7;
|
|
}
|
|
|
|
message ListIngressRequest {
|
|
// when blank, lists all ingress endpoints
|
|
string room_name = 1;
|
|
}
|
|
|
|
message ListIngressResponse {
|
|
repeated IngressInfo items = 1;
|
|
}
|
|
|
|
message DeleteIngressRequest {
|
|
string ingress_id = 1;
|
|
}
|