31class RemoteParticipant;
33class LocalTrackPublication;
34class RemoteTrackPublication;
35class TrackPublication;
120 std::vector<std::uint8_t>
data;
145 std::optional<std::string>
sid;
220 } content_type = ContentType::None;
246 std::optional<std::string>
name;
264 std::vector<std::uint8_t>
iv;
320using PacketTrailerFeatures [[deprecated(
"PacketTrailerFeatures is deprecated; use FrameMetadataFeatures instead")]] =
356 [[deprecated(
"TrackPublishOptions::packet_trailer_features is deprecated; use frame_metadata_features instead")]]
551 std::vector<std::uint8_t>
data;
694 std::shared_ptr<RemoteDataTrack>
track;
Base class for local and remote room participants.
Definition participant.h:34
Represents a remote participant in a LiveKit room.
Definition remote_participant.h:31
Public API for the LiveKit C++ Client SDK.
Definition audio_frame.h:25
EncryptionState
End-to-end encryption state for a participant.
Definition room_event_types.h:67
TrackSource
Source category for a published track.
Definition track.h:43
DataPacketKind
Type of data packet delivery semantics.
Definition room_event_types.h:59
ConnectionState
Current connection state of the room.
Definition room_event_types.h:49
DisconnectReason
Reason why a participant or room was disconnected.
Definition room_event_types.h:80
@ ConnectionTimeout
Server timed out a participant session.
@ Migration
Cloud-only: the server requested the participant to migrate the connection elsewhere.
@ DuplicateIdentity
Another participant with the same identity has joined the room.
@ ServerShutdown
The server instance is shutting down.
@ SipTrunkFailure
SIP protocol failure or unexpected response.
@ RoomClosed
The room was closed, due to all Standard and Ingress participants having left.
@ SignalClose
The signal websocket was closed unexpectedly.
@ UserUnavailable
SIP callee did not respond in time.
@ AgentError
Agent encountered an error.
@ ParticipantRemoved
The participant was removed from the room by the server.
@ Unknown
Unknown or unspecified disconnect reason.
@ MediaFailure
Media stream failure or media timeout.
@ ClientInitiated
The client initiated the disconnect.
@ StateMismatch
The client is attempting to resume a session, but server is not aware of it.
@ JoinFailure
Client was unable to connect fully.
@ UserRejected
SIP callee rejected the call (busy).
@ RoomDeleted
The room was deleted by the server.
ConnectionQuality
Overall quality of a participant's connection.
Definition room_event_types.h:41
DegradationPreference
Controls how the encoder degrades quality when bandwidth is constrained.
Definition room_event_types.h:295
@ MaintainResolution
Degrade framerate to maintain resolution (prioritize image clarity).
@ MaintainFramerateAndResolution
Maintain both framerate and resolution.
@ Balanced
Balance between framerate and resolution degradation.
@ MaintainFramerate
Degrade resolution to maintain framerate (prioritize smooth motion).
Fired when the list of active speakers changes.
Definition room_event_types.h:477
std::vector< Participant * > speakers
Participants currently considered active speakers (owned by Room).
Definition room_event_types.h:479
Key/value pair for participant or room attributes.
Definition room_event_types.h:182
std::string value
Attribute value.
Definition room_event_types.h:187
std::string key
Attribute key.
Definition room_event_types.h:184
Audio encoding configuration used when publishing a track.
Definition room_event_types.h:289
std::uint64_t max_bitrate
Maximum target bitrate in bps.
Definition room_event_types.h:291
Fired when a high-level byte stream reader is opened.
Definition room_event_types.h:643
std::string participant_identity
Identity of the participant that opened the stream.
Definition room_event_types.h:648
std::uint64_t reader_handle
Handle to the underlying byte stream reader.
Definition room_event_types.h:645
Fired when a participant's connection quality estimate changes.
Definition room_event_types.h:540
ConnectionQuality quality
New connection quality.
Definition room_event_types.h:545
Participant * participant
Participant whose connection quality changed (owned by Room).
Definition room_event_types.h:542
Fired when the room's connection state changes.
Definition room_event_types.h:577
ConnectionState state
New connection state.
Definition room_event_types.h:579
Fired when a data channel's buffered amount falls below its low threshold.
Definition room_event_types.h:634
std::uint64_t threshold
New threshold value in bytes.
Definition room_event_types.h:639
DataPacketKind kind
Data channel kind (reliable or lossy).
Definition room_event_types.h:636
One chunk of a data stream’s payload.
Definition room_event_types.h:250
std::optional< int > version
Optional version, mirroring header version if applicable.
Definition room_event_types.h:261
std::uint64_t chunk_index
Zero-based index of this chunk.
Definition room_event_types.h:255
std::vector< std::uint8_t > iv
Optional initialization vector for encrypted payloads.
Definition room_event_types.h:264
std::string stream_id
Stream identifier this chunk belongs to.
Definition room_event_types.h:252
std::vector< std::uint8_t > content
Raw chunk content.
Definition room_event_types.h:258
Fired when a data stream chunk is received.
Definition room_event_types.h:616
std::string participant_identity
Identity of the participant that sent the stream.
Definition room_event_types.h:618
DataStreamChunkData chunk
Chunk payload and metadata.
Definition room_event_types.h:621
Trailer metadata for a data stream, sent after all chunks.
Definition room_event_types.h:268
std::string stream_id
Stream identifier.
Definition room_event_types.h:270
std::map< std::string, std::string > attributes
Additional attributes describing the final state of the stream.
Definition room_event_types.h:276
std::string reason
Reason why the stream ended (empty if normal completion).
Definition room_event_types.h:273
Fired when a data stream trailer is received.
Definition room_event_types.h:625
std::string participant_identity
Identity of the participant that sent the stream.
Definition room_event_types.h:627
DataStreamTrailerData trailer
Trailer metadata describing the stream termination.
Definition room_event_types.h:630
Fired when a participant publishes a data track.
Definition room_event_types.h:692
std::shared_ptr< RemoteDataTrack > track
The newly published remote data track.
Definition room_event_types.h:694
Fired when a remote participant unpublishes a data track.
Definition room_event_types.h:698
std::string sid
SID of the track that was unpublished.
Definition room_event_types.h:700
Fired when the room is disconnected.
Definition room_event_types.h:583
DisconnectReason reason
Reason for disconnect, if known.
Definition room_event_types.h:585
Fired when a participant's E2EE state changes.
Definition room_event_types.h:679
EncryptionState state
New encryption state.
Definition room_event_types.h:684
Participant * participant
Local or remote participant whose state changed (owned by Room).
Definition room_event_types.h:681
Fired when a local track is successfully published.
Definition room_event_types.h:384
std::shared_ptr< LocalTrackPublication > publication
Track publication for the local track.
Definition room_event_types.h:386
std::shared_ptr< Track > track
The published local track.
Definition room_event_types.h:389
Fired when a local track gets its first subscriber.
Definition room_event_types.h:399
std::shared_ptr< Track > track
Subscribed local track.
Definition room_event_types.h:401
Fired when a local track is unpublished.
Definition room_event_types.h:393
std::shared_ptr< LocalTrackPublication > publication
Publication that was unpublished.
Definition room_event_types.h:395
Fired when a participant's attributes change.
Definition room_event_types.h:522
std::vector< AttributeEntry > changed_attributes
Set of attributes that changed (key/value pairs).
Definition room_event_types.h:527
Participant * participant
Participant whose attributes changed (owned by Room).
Definition room_event_types.h:524
Fired when a remote participant joins the room.
Definition room_event_types.h:369
RemoteParticipant * participant
The newly connected remote participant (owned by Room).
Definition room_event_types.h:371
Fired when a remote participant leaves the room.
Definition room_event_types.h:375
RemoteParticipant * participant
The participant that disconnected (owned by Room).
Definition room_event_types.h:377
DisconnectReason reason
Reason for the disconnect, if known.
Definition room_event_types.h:380
Fired when a participant's encryption status changes.
Definition room_event_types.h:531
Participant * participant
Participant whose encryption status changed (owned by Room).
Definition room_event_types.h:533
bool is_encrypted
True if the participant is now fully encrypted.
Definition room_event_types.h:536
Fired when a participant's name changes.
Definition room_event_types.h:510
std::string old_name
Previous name.
Definition room_event_types.h:515
std::string new_name
New name.
Definition room_event_types.h:518
Participant * participant
Participant whose name changed (owned by Room).
Definition room_event_types.h:512
Fired when a batch of participants has been updated.
Definition room_event_types.h:673
std::vector< Participant * > participants
Participants updated in this event (owned by Room).
Definition room_event_types.h:675
Fired after successfully reconnecting.
Definition room_event_types.h:592
Fired just before attempting to reconnect.
Definition room_event_types.h:589
Fired when the room has reached end-of-stream (no more events).
Definition room_event_types.h:604
Snapshot of core room information.
Definition room_event_types.h:143
std::string name
Room name.
Definition room_event_types.h:148
std::uint32_t num_participants
Approximate number of participants (eventually consistent).
Definition room_event_types.h:172
std::uint32_t departure_timeout
Time (seconds) to keep room open after last standard participant leaves.
Definition room_event_types.h:163
std::uint32_t empty_timeout
Time (seconds) to keep room open if no participants join.
Definition room_event_types.h:160
std::string metadata
Arbitrary application metadata associated with the room.
Definition room_event_types.h:151
bool active_recording
True if the room is currently being recorded.
Definition room_event_types.h:178
std::int64_t creation_time
Creation time of the room (ms since Unix epoch).
Definition room_event_types.h:169
std::uint32_t num_publishers
Approximate number of publishers (eventually consistent).
Definition room_event_types.h:175
std::uint32_t max_participants
Maximum number of participants allowed in the room.
Definition room_event_types.h:166
std::uint64_t reliable_dc_buffered_amount_low_threshold
Low-watermark threshold for reliable data channel buffer.
Definition room_event_types.h:157
std::uint64_t lossy_dc_buffered_amount_low_threshold
Low-watermark threshold for lossy data channel buffer.
Definition room_event_types.h:154
std::optional< std::string > sid
Room SID, if known.
Definition room_event_types.h:145
Fired when the participant has been moved to another room.
Definition room_event_types.h:667
RoomInfoData info
Info about the new room.
Definition room_event_types.h:669
Fired when the room SID changes (e.g., after migration).
Definition room_event_types.h:492
std::string sid
New room SID.
Definition room_event_types.h:494
Fired when the room's info is updated.
Definition room_event_types.h:661
RoomInfoData info
New room info snapshot.
Definition room_event_types.h:663
SIP (Session Initiation Protocol) DTMF payload carried via data packets.
Definition room_event_types.h:134
std::uint32_t code
Numeric DTMF code (0-15, mapping to 0-9, *, #, A-D).
Definition room_event_types.h:136
std::optional< std::string > digit
Human-readable digit representation (e.g. "1", "#").
Definition room_event_types.h:139
Fired when a SIP DTMF packet is received.
Definition room_event_types.h:565
RemoteParticipant * participant
Remote participant that sent the DTMF (owned by Room).
Definition room_event_types.h:573
int code
DTMF code.
Definition room_event_types.h:567
std::string digit
Human-readable DTMF digit.
Definition room_event_types.h:570
Fired when a high-level text stream reader is opened.
Definition room_event_types.h:652
std::string participant_identity
Identity of the participant that opened the stream.
Definition room_event_types.h:657
std::uint64_t reader_handle
Handle to the underlying text stream reader.
Definition room_event_types.h:654
Fired when the server refreshes the session access token.
Definition room_event_types.h:598
std::string token
Refreshed access token.
Definition room_event_types.h:600
Fired when a track is muted.
Definition room_event_types.h:459
Participant * participant
Local or remote participant who owns the track (owned by Room).
Definition room_event_types.h:461
std::shared_ptr< TrackPublication > publication
Publication that was muted.
Definition room_event_types.h:464
Options for publishing a track to the room.
Definition room_event_types.h:324
std::optional< VideoEncodingOptions > video_encoding
Optional video encoding parameters.
Definition room_event_types.h:326
std::optional< bool > red
Enable or disable RED (redundant encoding).
Definition room_event_types.h:338
std::optional< bool > simulcast
Enable or disable simulcast.
Definition room_event_types.h:341
std::optional< FrameMetadataFeatures > frame_metadata_features
Optional frame metadata features to enable for published video.
Definition room_event_types.h:353
std::optional< std::string > stream
Optional stream label/group for this track.
Definition room_event_types.h:347
std::optional< bool > dtx
Enable or disable discontinuous transmission (DTX).
Definition room_event_types.h:335
std::optional< VideoCodec > video_codec
Optional video codec to use.
Definition room_event_types.h:332
std::optional< AudioEncodingOptions > audio_encoding
Optional audio encoding parameters.
Definition room_event_types.h:329
FrameMetadataFeatures packet_trailer_features
Definition room_event_types.h:357
std::optional< DegradationPreference > degradation_preference
Controls how the encoder trades off between resolution and framerate when bandwidth is constrained.
Definition room_event_types.h:361
std::optional< TrackSource > source
Track source (camera, microphone, screen share, etc.).
Definition room_event_types.h:344
std::optional< bool > preconnect_buffer
Enable pre-connect buffering for lower startup latency.
Definition room_event_types.h:350
Fired when a remote participant publishes a track.
Definition room_event_types.h:405
std::shared_ptr< RemoteTrackPublication > publication
Remote track publication.
Definition room_event_types.h:407
RemoteParticipant * participant
Remote participant who owns this track (owned by Room).
Definition room_event_types.h:410
Fired when a remote track is successfully subscribed.
Definition room_event_types.h:423
std::shared_ptr< Track > track
Subscribed remote track.
Definition room_event_types.h:425
std::shared_ptr< RemoteTrackPublication > publication
Publication associated with the track.
Definition room_event_types.h:428
RemoteParticipant * participant
Remote participant who owns the track (owned by Room).
Definition room_event_types.h:431
Fired when subscribing to a remote track fails.
Definition room_event_types.h:447
std::string error
Error message describing the failure.
Definition room_event_types.h:455
std::string track_sid
SID of the track that failed to subscribe.
Definition room_event_types.h:452
RemoteParticipant * participant
Remote participant for which the subscription failed (owned by Room).
Definition room_event_types.h:449
Fired when a track is unmuted.
Definition room_event_types.h:468
Participant * participant
Local or remote participant who owns the track (owned by Room).
Definition room_event_types.h:470
std::shared_ptr< TrackPublication > publication
Publication that was unmuted.
Definition room_event_types.h:473
Fired when a remote participant unpublishes a track.
Definition room_event_types.h:414
std::shared_ptr< RemoteTrackPublication > publication
Remote track publication that was removed.
Definition room_event_types.h:416
RemoteParticipant * participant
Remote participant who owned this track (owned by Room).
Definition room_event_types.h:419
Fired when a remote track is unsubscribed.
Definition room_event_types.h:435
RemoteParticipant * participant
Remote participant who owns the track (owned by Room).
Definition room_event_types.h:443
std::shared_ptr< Track > track
Track that was unsubscribed.
Definition room_event_types.h:437
std::shared_ptr< RemoteTrackPublication > publication
Publication associated with the track.
Definition room_event_types.h:440
Fired when a user data packet (non-SIP) is received.
Definition room_event_types.h:549
std::vector< std::uint8_t > data
Payload data.
Definition room_event_types.h:551
RemoteParticipant * participant
Remote participant that sent this packet, or nullptr if server (owned by Room).
Definition room_event_types.h:558
std::string topic
Optional topic associated with this data (may be empty).
Definition room_event_types.h:561
DataPacketKind kind
Delivery kind (reliable or lossy).
Definition room_event_types.h:554
Application-level user data carried in a data packet.
Definition room_event_types.h:118
std::vector< std::uint8_t > data
Raw payload bytes.
Definition room_event_types.h:120
std::optional< std::string > topic
Optional topic name associated with this payload.
Definition room_event_types.h:123
Video encoding configuration used when publishing a track.
Definition room_event_types.h:280
double max_framerate
Maximum frame rate in frames per second.
Definition room_event_types.h:285
std::uint64_t max_bitrate
Maximum target bitrate in bps.
Definition room_event_types.h:282