Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/little-cougars-lick.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@livekit/rtc-node": minor
---

bump(ffi): LocalTrackSubscribed, DisconnectReason
2 changes: 1 addition & 1 deletion packages/livekit-rtc/rust-sdks
Submodule rust-sdks updated 46 files
+ .github/banner_dark.png
+ .github/banner_light.png
+2 −0 .github/workflows/ffi-builds.yml
+4 −4 Cargo.lock
+4 −4 README.md
+1 −1 examples/api/Cargo.toml
+2 −2 examples/basic_room/Cargo.toml
+2 −2 examples/basic_room/src/main.rs
+2 −2 examples/basic_room_async/Cargo.toml
+2 −2 examples/basic_room_dispatcher/Cargo.toml
+2 −2 examples/mobile/Cargo.toml
+1 −1 examples/mobile/src/lib.rs
+1 −1 examples/play_from_disk/Cargo.toml
+1 −1 examples/save_to_disk/Cargo.toml
+1 −1 examples/save_to_disk/src/main.rs
+1 −1 examples/webhooks/Cargo.toml
+1 −1 examples/wgpu_room/Cargo.toml
+12 −12 examples/wgpu_room/src/app.rs
+3 −3 examples/wgpu_room/src/service.rs
+1 −0 examples/wgpu_room/src/sine_track.rs
+1 −1 libwebrtc/Cargo.toml
+2 −2 livekit-api/Cargo.toml
+14 −2 livekit-api/src/signal_client/mod.rs
+4 −4 livekit-ffi/Cargo.toml
+48 −16 livekit-ffi/protocol/room.proto
+19 −0 livekit-ffi/src/conversion/room.rs
+90 −16 livekit-ffi/src/livekit.proto.rs
+9 −2 livekit-ffi/src/server/room.rs
+1 −1 livekit-protocol/Cargo.toml
+1 −1 livekit-protocol/protocol
+166 −78 livekit-protocol/src/livekit.rs
+1,035 −309 livekit-protocol/src/livekit.serde.rs
+3 −3 livekit/Cargo.toml
+2 −2 livekit/src/prelude.rs
+12 −0 livekit/src/proto.rs
+35 −3 livekit/src/room/mod.rs
+2 −0 livekit/src/room/options.rs
+97 −41 livekit/src/room/participant/local_participant.rs
+13 −0 livekit/src/room/participant/mod.rs
+7 −2 livekit/src/room/participant/remote_participant.rs
+29 −12 livekit/src/rtc_engine/mod.rs
+36 −14 livekit/src/rtc_engine/rtc_session.rs
+1 −1 webrtc-sys/build/src/lib.rs
+2 −2 webrtc-sys/libwebrtc/.gclient
+3,636 −0 webrtc-sys/libwebrtc/boringssl_prefix_symbols.txt
+1 −0 webrtc-sys/libwebrtc/build_linux.sh
210 changes: 180 additions & 30 deletions packages/livekit-rtc/src/proto/room_pb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,100 @@ proto3.util.setEnumType(DataPacketKind, "livekit.proto.DataPacketKind", [
{ no: 1, name: "KIND_RELIABLE" },
]);

/**
* @generated from enum livekit.proto.DisconnectReason
*/
export enum DisconnectReason {
/**
* @generated from enum value: UNKNOWN_REASON = 0;
*/
UNKNOWN_REASON = 0,

/**
* the client initiated the disconnect
*
* @generated from enum value: CLIENT_INITIATED = 1;
*/
CLIENT_INITIATED = 1,

/**
* another participant with the same identity has joined the room
*
* @generated from enum value: DUPLICATE_IDENTITY = 2;
*/
DUPLICATE_IDENTITY = 2,

/**
* the server instance is shutting down
*
* @generated from enum value: SERVER_SHUTDOWN = 3;
*/
SERVER_SHUTDOWN = 3,

/**
* RoomService.RemoveParticipant was called
*
* @generated from enum value: PARTICIPANT_REMOVED = 4;
*/
PARTICIPANT_REMOVED = 4,

/**
* RoomService.DeleteRoom was called
*
* @generated from enum value: ROOM_DELETED = 5;
*/
ROOM_DELETED = 5,

/**
* the client is attempting to resume a session, but server is not aware of it
*
* @generated from enum value: STATE_MISMATCH = 6;
*/
STATE_MISMATCH = 6,

/**
* client was unable to connect fully
*
* @generated from enum value: JOIN_FAILURE = 7;
*/
JOIN_FAILURE = 7,

/**
* Cloud-only, the server requested Participant to migrate the connection elsewhere
*
* @generated from enum value: MIGRATION = 8;
*/
MIGRATION = 8,

/**
* the signal websocket was closed unexpectedly
*
* @generated from enum value: SIGNAL_CLOSE = 9;
*/
SIGNAL_CLOSE = 9,

/**
* the room was closed, due to all Standard and Ingress participants having left
*
* @generated from enum value: ROOM_CLOSED = 10;
*/
ROOM_CLOSED = 10,
}
// Retrieve enum metadata with: proto3.getEnumType(DisconnectReason)
proto3.util.setEnumType(DisconnectReason, "livekit.proto.DisconnectReason", [
{ no: 0, name: "UNKNOWN_REASON" },
{ no: 1, name: "CLIENT_INITIATED" },
{ no: 2, name: "DUPLICATE_IDENTITY" },
{ no: 3, name: "SERVER_SHUTDOWN" },
{ no: 4, name: "PARTICIPANT_REMOVED" },
{ no: 5, name: "ROOM_DELETED" },
{ no: 6, name: "STATE_MISMATCH" },
{ no: 7, name: "JOIN_FAILURE" },
{ no: 8, name: "MIGRATION" },
{ no: 9, name: "SIGNAL_CLOSE" },
{ no: 10, name: "ROOM_CLOSED" },
]);

/**
* Connect to a new LiveKit room
*
Expand Down Expand Up @@ -1857,6 +1951,11 @@ export class TrackPublishOptions extends Message<TrackPublishOptions> {
*/
source = TrackSource.SOURCE_UNKNOWN;

/**
* @generated from field: string stream = 8;
*/
stream = "";

constructor(data?: PartialMessage<TrackPublishOptions>) {
super();
proto3.util.initPartial(data, this);
Expand All @@ -1872,6 +1971,7 @@ export class TrackPublishOptions extends Message<TrackPublishOptions> {
{ no: 5, name: "red", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
{ no: 6, name: "simulcast", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
{ no: 7, name: "source", kind: "enum", T: proto3.getEnumType(TrackSource) },
{ no: 8, name: "stream", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);

static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackPublishOptions {
Expand Down Expand Up @@ -2251,91 +2351,97 @@ export class RoomEvent extends Message<RoomEvent> {
case: "localTrackUnpublished";
} | {
/**
* @generated from field: livekit.proto.TrackPublished track_published = 6;
* @generated from field: livekit.proto.LocalTrackSubscribed local_track_subscribed = 6;
*/
value: LocalTrackSubscribed;
case: "localTrackSubscribed";
} | {
/**
* @generated from field: livekit.proto.TrackPublished track_published = 7;
*/
value: TrackPublished;
case: "trackPublished";
} | {
/**
* @generated from field: livekit.proto.TrackUnpublished track_unpublished = 7;
* @generated from field: livekit.proto.TrackUnpublished track_unpublished = 8;
*/
value: TrackUnpublished;
case: "trackUnpublished";
} | {
/**
* @generated from field: livekit.proto.TrackSubscribed track_subscribed = 8;
* @generated from field: livekit.proto.TrackSubscribed track_subscribed = 9;
*/
value: TrackSubscribed;
case: "trackSubscribed";
} | {
/**
* @generated from field: livekit.proto.TrackUnsubscribed track_unsubscribed = 9;
* @generated from field: livekit.proto.TrackUnsubscribed track_unsubscribed = 10;
*/
value: TrackUnsubscribed;
case: "trackUnsubscribed";
} | {
/**
* @generated from field: livekit.proto.TrackSubscriptionFailed track_subscription_failed = 10;
* @generated from field: livekit.proto.TrackSubscriptionFailed track_subscription_failed = 11;
*/
value: TrackSubscriptionFailed;
case: "trackSubscriptionFailed";
} | {
/**
* @generated from field: livekit.proto.TrackMuted track_muted = 11;
* @generated from field: livekit.proto.TrackMuted track_muted = 12;
*/
value: TrackMuted;
case: "trackMuted";
} | {
/**
* @generated from field: livekit.proto.TrackUnmuted track_unmuted = 12;
* @generated from field: livekit.proto.TrackUnmuted track_unmuted = 13;
*/
value: TrackUnmuted;
case: "trackUnmuted";
} | {
/**
* @generated from field: livekit.proto.ActiveSpeakersChanged active_speakers_changed = 13;
* @generated from field: livekit.proto.ActiveSpeakersChanged active_speakers_changed = 14;
*/
value: ActiveSpeakersChanged;
case: "activeSpeakersChanged";
} | {
/**
* @generated from field: livekit.proto.RoomMetadataChanged room_metadata_changed = 14;
* @generated from field: livekit.proto.RoomMetadataChanged room_metadata_changed = 15;
*/
value: RoomMetadataChanged;
case: "roomMetadataChanged";
} | {
/**
* @generated from field: livekit.proto.RoomSidChanged room_sid_changed = 15;
* @generated from field: livekit.proto.RoomSidChanged room_sid_changed = 16;
*/
value: RoomSidChanged;
case: "roomSidChanged";
} | {
/**
* @generated from field: livekit.proto.ParticipantMetadataChanged participant_metadata_changed = 16;
* @generated from field: livekit.proto.ParticipantMetadataChanged participant_metadata_changed = 17;
*/
value: ParticipantMetadataChanged;
case: "participantMetadataChanged";
} | {
/**
* @generated from field: livekit.proto.ParticipantNameChanged participant_name_changed = 17;
* @generated from field: livekit.proto.ParticipantNameChanged participant_name_changed = 18;
*/
value: ParticipantNameChanged;
case: "participantNameChanged";
} | {
/**
* @generated from field: livekit.proto.ParticipantAttributesChanged participant_attributes_changed = 18;
* @generated from field: livekit.proto.ParticipantAttributesChanged participant_attributes_changed = 19;
*/
value: ParticipantAttributesChanged;
case: "participantAttributesChanged";
} | {
/**
* @generated from field: livekit.proto.ConnectionQualityChanged connection_quality_changed = 19;
* @generated from field: livekit.proto.ConnectionQualityChanged connection_quality_changed = 20;
*/
value: ConnectionQualityChanged;
case: "connectionQualityChanged";
} | {
/**
* @generated from field: livekit.proto.ConnectionStateChanged connection_state_changed = 20;
* @generated from field: livekit.proto.ConnectionStateChanged connection_state_changed = 21;
*/
value: ConnectionStateChanged;
case: "connectionStateChanged";
Expand Down Expand Up @@ -2400,21 +2506,22 @@ export class RoomEvent extends Message<RoomEvent> {
{ no: 3, name: "participant_disconnected", kind: "message", T: ParticipantDisconnected, oneof: "message" },
{ no: 4, name: "local_track_published", kind: "message", T: LocalTrackPublished, oneof: "message" },
{ no: 5, name: "local_track_unpublished", kind: "message", T: LocalTrackUnpublished, oneof: "message" },
{ no: 6, name: "track_published", kind: "message", T: TrackPublished, oneof: "message" },
{ no: 7, name: "track_unpublished", kind: "message", T: TrackUnpublished, oneof: "message" },
{ no: 8, name: "track_subscribed", kind: "message", T: TrackSubscribed, oneof: "message" },
{ no: 9, name: "track_unsubscribed", kind: "message", T: TrackUnsubscribed, oneof: "message" },
{ no: 10, name: "track_subscription_failed", kind: "message", T: TrackSubscriptionFailed, oneof: "message" },
{ no: 11, name: "track_muted", kind: "message", T: TrackMuted, oneof: "message" },
{ no: 12, name: "track_unmuted", kind: "message", T: TrackUnmuted, oneof: "message" },
{ no: 13, name: "active_speakers_changed", kind: "message", T: ActiveSpeakersChanged, oneof: "message" },
{ no: 14, name: "room_metadata_changed", kind: "message", T: RoomMetadataChanged, oneof: "message" },
{ no: 15, name: "room_sid_changed", kind: "message", T: RoomSidChanged, oneof: "message" },
{ no: 16, name: "participant_metadata_changed", kind: "message", T: ParticipantMetadataChanged, oneof: "message" },
{ no: 17, name: "participant_name_changed", kind: "message", T: ParticipantNameChanged, oneof: "message" },
{ no: 18, name: "participant_attributes_changed", kind: "message", T: ParticipantAttributesChanged, oneof: "message" },
{ no: 19, name: "connection_quality_changed", kind: "message", T: ConnectionQualityChanged, oneof: "message" },
{ no: 20, name: "connection_state_changed", kind: "message", T: ConnectionStateChanged, oneof: "message" },
{ no: 6, name: "local_track_subscribed", kind: "message", T: LocalTrackSubscribed, oneof: "message" },
{ no: 7, name: "track_published", kind: "message", T: TrackPublished, oneof: "message" },
{ no: 8, name: "track_unpublished", kind: "message", T: TrackUnpublished, oneof: "message" },
{ no: 9, name: "track_subscribed", kind: "message", T: TrackSubscribed, oneof: "message" },
{ no: 10, name: "track_unsubscribed", kind: "message", T: TrackUnsubscribed, oneof: "message" },
{ no: 11, name: "track_subscription_failed", kind: "message", T: TrackSubscriptionFailed, oneof: "message" },
{ no: 12, name: "track_muted", kind: "message", T: TrackMuted, oneof: "message" },
{ no: 13, name: "track_unmuted", kind: "message", T: TrackUnmuted, oneof: "message" },
{ no: 14, name: "active_speakers_changed", kind: "message", T: ActiveSpeakersChanged, oneof: "message" },
{ no: 15, name: "room_metadata_changed", kind: "message", T: RoomMetadataChanged, oneof: "message" },
{ no: 16, name: "room_sid_changed", kind: "message", T: RoomSidChanged, oneof: "message" },
{ no: 17, name: "participant_metadata_changed", kind: "message", T: ParticipantMetadataChanged, oneof: "message" },
{ no: 18, name: "participant_name_changed", kind: "message", T: ParticipantNameChanged, oneof: "message" },
{ no: 19, name: "participant_attributes_changed", kind: "message", T: ParticipantAttributesChanged, oneof: "message" },
{ no: 20, name: "connection_quality_changed", kind: "message", T: ConnectionQualityChanged, oneof: "message" },
{ no: 21, name: "connection_state_changed", kind: "message", T: ConnectionStateChanged, oneof: "message" },
{ no: 22, name: "disconnected", kind: "message", T: Disconnected, oneof: "message" },
{ no: 23, name: "reconnecting", kind: "message", T: Reconnecting, oneof: "message" },
{ no: 24, name: "reconnected", kind: "message", T: Reconnected, oneof: "message" },
Expand Down Expand Up @@ -2684,6 +2791,43 @@ export class LocalTrackUnpublished extends Message<LocalTrackUnpublished> {
}
}

/**
* @generated from message livekit.proto.LocalTrackSubscribed
*/
export class LocalTrackSubscribed extends Message<LocalTrackSubscribed> {
/**
* @generated from field: string track_sid = 2;
*/
trackSid = "";

constructor(data?: PartialMessage<LocalTrackSubscribed>) {
super();
proto3.util.initPartial(data, this);
}

static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "livekit.proto.LocalTrackSubscribed";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 2, name: "track_sid", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);

static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LocalTrackSubscribed {
return new LocalTrackSubscribed().fromBinary(bytes, options);
}

static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LocalTrackSubscribed {
return new LocalTrackSubscribed().fromJson(jsonValue, options);
}

static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LocalTrackSubscribed {
return new LocalTrackSubscribed().fromJsonString(jsonString, options);
}

static equals(a: LocalTrackSubscribed | PlainMessage<LocalTrackSubscribed> | undefined, b: LocalTrackSubscribed | PlainMessage<LocalTrackSubscribed> | undefined): boolean {
return proto3.util.equals(LocalTrackSubscribed, a, b);
}
}

/**
* @generated from message livekit.proto.TrackPublished
*/
Expand Down Expand Up @@ -3601,6 +3745,11 @@ export class Connected extends Message<Connected> {
* @generated from message livekit.proto.Disconnected
*/
export class Disconnected extends Message<Disconnected> {
/**
* @generated from field: livekit.proto.DisconnectReason reason = 1;
*/
reason = DisconnectReason.UNKNOWN_REASON;

constructor(data?: PartialMessage<Disconnected>) {
super();
proto3.util.initPartial(data, this);
Expand All @@ -3609,6 +3758,7 @@ export class Disconnected extends Message<Disconnected> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "livekit.proto.Disconnected";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "reason", kind: "enum", T: proto3.getEnumType(DisconnectReason) },
]);

static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Disconnected {
Expand Down
Loading