LiveKit C++ Client SDK v1.12.2
Real-time audio/video/data SDK for C++
Loading...
Searching...
No Matches
room_event_types.h
1/*
2 * Copyright 2025 LiveKit
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an “AS IS” BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#pragma once
18
19#include <cstdint>
20#include <map>
21#include <memory>
22#include <optional>
23#include <string>
24#include <vector>
25
26#include "livekit/video_codec.h"
27
28namespace livekit {
29
30// Forward declarations to avoid pulling in heavy headers.
31class Track;
32class Participant;
33class RemoteParticipant;
34class RemoteDataTrack;
35class LocalTrackPublication;
36class RemoteTrackPublication;
37class TrackPublication;
38
39enum class TrackSource;
40
43 Poor = 0,
44 Good,
45 Excellent,
46 Lost,
47};
48
50enum class ConnectionState {
51 Disconnected = 0,
52 Connected,
53 Reconnecting,
54};
55
60enum class DataPacketKind {
61 Lossy,
62 Reliable,
63};
64
68enum class EncryptionState {
69 New = 0,
70 Ok,
71 EncryptionFailed,
72 DecryptionFailed,
73 MissingKey,
74 KeyRatcheted,
75 InternalError,
76};
77
117
121 std::vector<std::uint8_t> data;
122
124 std::optional<std::string> topic;
125};
126
137 std::uint32_t code = 0;
138
140 std::optional<std::string> digit;
141};
142
146 std::optional<std::string> sid;
147
149 std::string name;
150
152 std::string metadata;
153
156
159
161 std::uint32_t empty_timeout = 0;
162
164 std::uint32_t departure_timeout = 0;
165
167 std::uint32_t max_participants = 0;
168
170 std::int64_t creation_time = 0;
171
173 std::uint32_t num_participants = 0;
174
176 std::uint32_t num_publishers = 0;
177
179 bool active_recording = false;
180};
181
185 std::string key;
186
188 std::string value;
189
190 AttributeEntry() = default;
191
192 AttributeEntry(std::string k, std::string v) : key(std::move(k)), value(std::move(v)) {}
193};
194
199 std::string stream_id;
200
202 std::int64_t timestamp = 0;
203
205 std::string mime_type;
206
208 std::string topic;
209
211 std::optional<std::uint64_t> total_length;
212
214 std::map<std::string, std::string> attributes;
215
217 enum class ContentType {
218 None,
219 Text,
220 Byte,
221 } content_type = ContentType::None;
222
224 enum class OperationType {
225 Create = 0,
226 Update = 1,
227 Delete = 2,
228 Reaction = 3,
229 };
230
232 std::optional<OperationType> operation_type;
233
235 std::optional<int> version;
236
238 std::optional<std::string> reply_to_stream_id;
239
241 std::vector<std::string> attached_stream_ids;
242
244 std::optional<bool> generated;
245
247 std::optional<std::string> name;
248};
249
253 std::string stream_id;
254
256 std::uint64_t chunk_index = 0;
257
259 std::vector<std::uint8_t> content;
260
262 std::optional<int> version;
263
265 std::vector<std::uint8_t> iv;
266};
267
271 std::string stream_id;
272
274 std::string reason;
275
277 std::map<std::string, std::string> attributes;
278};
279
283 std::uint64_t max_bitrate = 0;
284
286 double max_framerate = 0.0;
287};
288
292 std::uint64_t max_bitrate = 0;
293};
294
298 Auto = 0,
300 Software = 1,
302 Hardware = 2,
304 Nvenc = 3,
306 Vaapi = 4,
308 VideoToolbox = 5,
310 PreEncoded = 6,
311};
312
325
329 bool user_timestamp = false;
330
332 bool frame_id = false;
333
335 bool user_data = false;
336};
337
339using PacketTrailerFeatures [[deprecated("PacketTrailerFeatures is deprecated; use FrameMetadataFeatures instead")]] =
341
345 std::optional<VideoEncodingOptions> video_encoding;
346
348 std::optional<AudioEncodingOptions> audio_encoding;
349
351 std::optional<VideoCodec> video_codec;
352
354 std::optional<bool> dtx;
355
357 std::optional<bool> red;
358
360 std::optional<bool> simulcast;
361
363 std::optional<TrackSource> source;
364
366 std::optional<std::string> stream;
367
369 std::optional<bool> preconnect_buffer;
370
372 std::optional<FrameMetadataFeatures> frame_metadata_features;
373
375 [[deprecated("TrackPublishOptions::packet_trailer_features is deprecated; use frame_metadata_features instead")]]
377
380 std::optional<DegradationPreference> degradation_preference;
381
384 std::optional<VideoEncoderBackend> video_encoder;
385};
386
387// ---------------------------------------------------------
388// Event structs – public representations of RoomEvent.*
389// ---------------------------------------------------------
390
396
405
409 std::shared_ptr<LocalTrackPublication> publication;
410
412 std::shared_ptr<Track> track;
413};
414
418 std::shared_ptr<LocalTrackPublication> publication;
419};
420
424 std::shared_ptr<Track> track;
425};
426
430 std::shared_ptr<RemoteTrackPublication> publication;
431
434};
435
439 std::shared_ptr<RemoteTrackPublication> publication;
440
443};
444
448 std::shared_ptr<Track> track;
449
451 std::shared_ptr<RemoteTrackPublication> publication;
452
455};
456
460 std::shared_ptr<Track> track;
461
463 std::shared_ptr<RemoteTrackPublication> publication;
464
467};
468
473
475 std::string track_sid;
476
478 std::string error;
479};
480
485
487 std::shared_ptr<TrackPublication> publication;
488};
489
494
496 std::shared_ptr<TrackPublication> publication;
497};
498
502 std::vector<Participant*> speakers;
503};
504
508 std::string old_metadata;
509
511 std::string new_metadata;
512};
513
517 std::string sid;
518};
519
524
526 std::string old_metadata;
527
529 std::string new_metadata;
530};
531
536
538 std::string old_name;
539
541 std::string new_name;
542};
543
548
550 std::vector<AttributeEntry> changed_attributes;
551};
552
561
566
568 ConnectionQuality quality = ConnectionQuality::Good;
569};
570
574 std::vector<std::uint8_t> data;
575
577 DataPacketKind kind = DataPacketKind::Reliable;
578
582
584 std::string topic;
585};
586
590 int code = 0;
591
593 std::string digit;
594
597};
598
602 ConnectionState state = ConnectionState::Disconnected;
603};
604
610
613
616
623 std::string token;
624};
625
627struct RoomEosEvent {};
628
637
646
655
659 DataPacketKind kind = DataPacketKind::Reliable;
660
662 std::uint64_t threshold = 0;
663};
664
668 std::uint64_t reader_handle = 0;
669
672};
673
677 std::uint64_t reader_handle = 0;
678
681};
682
688
694
698 std::vector<Participant*> participants;
699};
700
705
707 EncryptionState state = EncryptionState::New;
708};
709
717 std::shared_ptr<RemoteDataTrack> track;
718};
719
723 std::string sid;
724};
725
726} // namespace livekit
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:68
TrackSource
Source category for a published track.
Definition track.h:42
DataPacketKind
Type of data packet delivery semantics.
Definition room_event_types.h:60
ConnectionState
Current connection state of the room.
Definition room_event_types.h:50
DisconnectReason
Reason why a participant or room was disconnected.
Definition room_event_types.h:81
@ 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:42
DegradationPreference
Controls how the encoder degrades quality when bandwidth is constrained.
Definition room_event_types.h:314
@ 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).
VideoEncoderBackend
Preferred encoder backend for a published video track.
Definition room_event_types.h:296
@ Auto
Use the SDK's default encoder selection.
@ PreEncoded
Pass pre-encoded access units through without encoding them again.
@ Hardware
Prefer any available hardware encoder.
@ Software
Prefer a software encoder.
@ VideoToolbox
Prefer VideoToolbox on Apple platforms.
@ Nvenc
Prefer NVIDIA NVENC.
Fired when the list of active speakers changes.
Definition room_event_types.h:500
std::vector< Participant * > speakers
Participants currently considered active speakers (owned by Room).
Definition room_event_types.h:502
Key/value pair for participant or room attributes.
Definition room_event_types.h:183
std::string value
Attribute value.
Definition room_event_types.h:188
std::string key
Attribute key.
Definition room_event_types.h:185
Audio encoding configuration used when publishing a track.
Definition room_event_types.h:290
std::uint64_t max_bitrate
Maximum target bitrate in bps.
Definition room_event_types.h:292
Fired when a high-level byte stream reader is opened.
Definition room_event_types.h:666
std::string participant_identity
Identity of the participant that opened the stream.
Definition room_event_types.h:671
std::uint64_t reader_handle
Handle to the underlying byte stream reader.
Definition room_event_types.h:668
Fired when a participant's connection quality estimate changes.
Definition room_event_types.h:563
ConnectionQuality quality
New connection quality.
Definition room_event_types.h:568
Participant * participant
Participant whose connection quality changed (owned by Room).
Definition room_event_types.h:565
Fired when the room's connection state changes.
Definition room_event_types.h:600
ConnectionState state
New connection state.
Definition room_event_types.h:602
Fired when a data channel's buffered amount falls below its low threshold.
Definition room_event_types.h:657
std::uint64_t threshold
New threshold value in bytes.
Definition room_event_types.h:662
DataPacketKind kind
Data channel kind (reliable or lossy).
Definition room_event_types.h:659
One chunk of a data stream’s payload.
Definition room_event_types.h:251
std::optional< int > version
Optional version, mirroring header version if applicable.
Definition room_event_types.h:262
std::uint64_t chunk_index
Zero-based index of this chunk.
Definition room_event_types.h:256
std::vector< std::uint8_t > iv
Optional initialization vector for encrypted payloads.
Definition room_event_types.h:265
std::string stream_id
Stream identifier this chunk belongs to.
Definition room_event_types.h:253
std::vector< std::uint8_t > content
Raw chunk content.
Definition room_event_types.h:259
Fired when a data stream chunk is received.
Definition room_event_types.h:639
std::string participant_identity
Identity of the participant that sent the stream.
Definition room_event_types.h:641
DataStreamChunkData chunk
Chunk payload and metadata.
Definition room_event_types.h:644
Header information for an incoming data stream.
Definition room_event_types.h:197
std::int64_t timestamp
Timestamp (ms since Unix epoch).
Definition room_event_types.h:202
std::optional< std::string > reply_to_stream_id
Optional ID of the stream this one replies to.
Definition room_event_types.h:238
OperationType
Operation type for text streams.
Definition room_event_types.h:224
std::optional< OperationType > operation_type
Optional operation type, for text content.
Definition room_event_types.h:232
std::optional< std::string > name
Optional filename for byte streams.
Definition room_event_types.h:247
std::map< std::string, std::string > attributes
Custom attributes associated with this stream.
Definition room_event_types.h:214
ContentType
Content type carried by this stream.
Definition room_event_types.h:217
std::string stream_id
Unique stream identifier.
Definition room_event_types.h:199
std::optional< bool > generated
True if this stream was generated (e.g. by AI).
Definition room_event_types.h:244
std::optional< std::uint64_t > total_length
Optional total length in bytes, if known.
Definition room_event_types.h:211
std::string mime_type
MIME type of the content (e.g. "application/json").
Definition room_event_types.h:205
std::optional< int > version
Optional version number for the text stream.
Definition room_event_types.h:235
std::vector< std::string > attached_stream_ids
IDs of streams attached to this one.
Definition room_event_types.h:241
std::string topic
Application-defined topic name.
Definition room_event_types.h:208
Fired when a data stream header is received.
Definition room_event_types.h:630
DataStreamHeaderData header
Parsed header data.
Definition room_event_types.h:635
std::string participant_identity
Identity of the participant that sent the stream.
Definition room_event_types.h:632
Trailer metadata for a data stream, sent after all chunks.
Definition room_event_types.h:269
std::string stream_id
Stream identifier.
Definition room_event_types.h:271
std::map< std::string, std::string > attributes
Additional attributes describing the final state of the stream.
Definition room_event_types.h:277
std::string reason
Reason why the stream ended (empty if normal completion).
Definition room_event_types.h:274
Fired when a data stream trailer is received.
Definition room_event_types.h:648
std::string participant_identity
Identity of the participant that sent the stream.
Definition room_event_types.h:650
DataStreamTrailerData trailer
Trailer metadata describing the stream termination.
Definition room_event_types.h:653
Fired when a participant publishes a data track.
Definition room_event_types.h:715
std::shared_ptr< RemoteDataTrack > track
The newly published remote data track.
Definition room_event_types.h:717
Fired when a remote participant unpublishes a data track.
Definition room_event_types.h:721
std::string sid
SID of the track that was unpublished.
Definition room_event_types.h:723
Fired when the room is disconnected.
Definition room_event_types.h:606
DisconnectReason reason
Reason for disconnect, if known.
Definition room_event_types.h:608
Fired when a participant's E2EE state changes.
Definition room_event_types.h:702
EncryptionState state
New encryption state.
Definition room_event_types.h:707
Participant * participant
Local or remote participant whose state changed (owned by Room).
Definition room_event_types.h:704
Optional frame metadata features for published video tracks.
Definition room_event_types.h:327
bool frame_id
Embed a monotonically increasing frame identifier.
Definition room_event_types.h:332
bool user_data
Embed user-supplied data.
Definition room_event_types.h:335
bool user_timestamp
Embed a user-supplied wall-clock timestamp.
Definition room_event_types.h:329
Fired when a local track is successfully published.
Definition room_event_types.h:407
std::shared_ptr< LocalTrackPublication > publication
Track publication for the local track.
Definition room_event_types.h:409
std::shared_ptr< Track > track
The published local track.
Definition room_event_types.h:412
Fired when a local track gets its first subscriber.
Definition room_event_types.h:422
std::shared_ptr< Track > track
Subscribed local track.
Definition room_event_types.h:424
Fired when a local track is unpublished.
Definition room_event_types.h:416
std::shared_ptr< LocalTrackPublication > publication
Publication that was unpublished.
Definition room_event_types.h:418
Fired when a participant's attributes change.
Definition room_event_types.h:545
std::vector< AttributeEntry > changed_attributes
Set of attributes that changed (key/value pairs).
Definition room_event_types.h:550
Participant * participant
Participant whose attributes changed (owned by Room).
Definition room_event_types.h:547
Fired when a remote participant joins the room.
Definition room_event_types.h:392
RemoteParticipant * participant
The newly connected remote participant (owned by Room).
Definition room_event_types.h:394
Fired when a remote participant leaves the room.
Definition room_event_types.h:398
RemoteParticipant * participant
The participant that disconnected (owned by Room).
Definition room_event_types.h:400
DisconnectReason reason
Reason for the disconnect, if known.
Definition room_event_types.h:403
Fired when a participant's encryption status changes.
Definition room_event_types.h:554
Participant * participant
Participant whose encryption status changed (owned by Room).
Definition room_event_types.h:556
bool is_encrypted
True if the participant is now fully encrypted.
Definition room_event_types.h:559
Fired when a participant's metadata is updated.
Definition room_event_types.h:521
std::string old_metadata
Old metadata value.
Definition room_event_types.h:526
Participant * participant
Participant whose metadata changed (owned by Room).
Definition room_event_types.h:523
std::string new_metadata
New metadata value.
Definition room_event_types.h:529
Fired when a participant's name changes.
Definition room_event_types.h:533
std::string old_name
Previous name.
Definition room_event_types.h:538
std::string new_name
New name.
Definition room_event_types.h:541
Participant * participant
Participant whose name changed (owned by Room).
Definition room_event_types.h:535
Fired when a batch of participants has been updated.
Definition room_event_types.h:696
std::vector< Participant * > participants
Participants updated in this event (owned by Room).
Definition room_event_types.h:698
Fired after successfully reconnecting.
Definition room_event_types.h:615
Fired just before attempting to reconnect.
Definition room_event_types.h:612
Fired when the room has reached end-of-stream (no more events).
Definition room_event_types.h:627
Snapshot of core room information.
Definition room_event_types.h:144
std::string name
Room name.
Definition room_event_types.h:149
std::uint32_t num_participants
Approximate number of participants (eventually consistent).
Definition room_event_types.h:173
std::uint32_t departure_timeout
Time (seconds) to keep room open after last standard participant leaves.
Definition room_event_types.h:164
std::uint32_t empty_timeout
Time (seconds) to keep room open if no participants join.
Definition room_event_types.h:161
std::string metadata
Arbitrary application metadata associated with the room.
Definition room_event_types.h:152
bool active_recording
True if the room is currently being recorded.
Definition room_event_types.h:179
std::int64_t creation_time
Creation time of the room (ms since Unix epoch).
Definition room_event_types.h:170
std::uint32_t num_publishers
Approximate number of publishers (eventually consistent).
Definition room_event_types.h:176
std::uint32_t max_participants
Maximum number of participants allowed in the room.
Definition room_event_types.h:167
std::uint64_t reliable_dc_buffered_amount_low_threshold
Low-watermark threshold for reliable data channel buffer.
Definition room_event_types.h:158
std::uint64_t lossy_dc_buffered_amount_low_threshold
Low-watermark threshold for lossy data channel buffer.
Definition room_event_types.h:155
std::optional< std::string > sid
Room SID, if known.
Definition room_event_types.h:146
Fired when room metadata is updated.
Definition room_event_types.h:506
std::string old_metadata
Previous metadata value.
Definition room_event_types.h:508
std::string new_metadata
New metadata value.
Definition room_event_types.h:511
Fired when the participant has been moved to another room.
Definition room_event_types.h:690
RoomInfoData info
Info about the new room.
Definition room_event_types.h:692
Fired when the room SID changes (e.g., after migration).
Definition room_event_types.h:515
std::string sid
New room SID.
Definition room_event_types.h:517
Fired when the room's info is updated.
Definition room_event_types.h:684
RoomInfoData info
New room info snapshot.
Definition room_event_types.h:686
SIP (Session Initiation Protocol) DTMF payload carried via data packets.
Definition room_event_types.h:135
std::uint32_t code
Numeric DTMF code (0-15, mapping to 0-9, *, #, A-D).
Definition room_event_types.h:137
std::optional< std::string > digit
Human-readable digit representation (e.g. "1", "#").
Definition room_event_types.h:140
Fired when a SIP DTMF packet is received.
Definition room_event_types.h:588
RemoteParticipant * participant
Remote participant that sent the DTMF (owned by Room).
Definition room_event_types.h:596
int code
DTMF code.
Definition room_event_types.h:590
std::string digit
Human-readable DTMF digit.
Definition room_event_types.h:593
Fired when a high-level text stream reader is opened.
Definition room_event_types.h:675
std::string participant_identity
Identity of the participant that opened the stream.
Definition room_event_types.h:680
std::uint64_t reader_handle
Handle to the underlying text stream reader.
Definition room_event_types.h:677
Fired when the server refreshes the session access token.
Definition room_event_types.h:621
std::string token
Refreshed access token.
Definition room_event_types.h:623
Fired when a track is muted.
Definition room_event_types.h:482
Participant * participant
Local or remote participant who owns the track (owned by Room).
Definition room_event_types.h:484
std::shared_ptr< TrackPublication > publication
Publication that was muted.
Definition room_event_types.h:487
Options for publishing a track to the room.
Definition room_event_types.h:343
std::optional< VideoEncodingOptions > video_encoding
Optional video encoding parameters.
Definition room_event_types.h:345
std::optional< bool > red
Enable or disable RED (redundant encoding).
Definition room_event_types.h:357
std::optional< VideoEncoderBackend > video_encoder
Optional video encoder backend.
Definition room_event_types.h:384
std::optional< bool > simulcast
Enable or disable simulcast.
Definition room_event_types.h:360
std::optional< FrameMetadataFeatures > frame_metadata_features
Optional frame metadata features to enable for published video.
Definition room_event_types.h:372
std::optional< std::string > stream
Optional stream label/group for this track.
Definition room_event_types.h:366
std::optional< bool > dtx
Enable or disable discontinuous transmission (DTX).
Definition room_event_types.h:354
std::optional< VideoCodec > video_codec
Optional video codec to use.
Definition room_event_types.h:351
std::optional< AudioEncodingOptions > audio_encoding
Optional audio encoding parameters.
Definition room_event_types.h:348
FrameMetadataFeatures packet_trailer_features
Definition room_event_types.h:376
std::optional< DegradationPreference > degradation_preference
Controls how the encoder trades off between resolution and framerate when bandwidth is constrained.
Definition room_event_types.h:380
std::optional< TrackSource > source
Track source (camera, microphone, screen share, etc.).
Definition room_event_types.h:363
std::optional< bool > preconnect_buffer
Enable pre-connect buffering for lower startup latency.
Definition room_event_types.h:369
Fired when a remote participant publishes a track.
Definition room_event_types.h:428
std::shared_ptr< RemoteTrackPublication > publication
Remote track publication.
Definition room_event_types.h:430
RemoteParticipant * participant
Remote participant who owns this track (owned by Room).
Definition room_event_types.h:433
Fired when a remote track is successfully subscribed.
Definition room_event_types.h:446
std::shared_ptr< Track > track
Subscribed remote track.
Definition room_event_types.h:448
std::shared_ptr< RemoteTrackPublication > publication
Publication associated with the track.
Definition room_event_types.h:451
RemoteParticipant * participant
Remote participant who owns the track (owned by Room).
Definition room_event_types.h:454
Fired when subscribing to a remote track fails.
Definition room_event_types.h:470
std::string error
Error message describing the failure.
Definition room_event_types.h:478
std::string track_sid
SID of the track that failed to subscribe.
Definition room_event_types.h:475
RemoteParticipant * participant
Remote participant for which the subscription failed (owned by Room).
Definition room_event_types.h:472
Fired when a track is unmuted.
Definition room_event_types.h:491
Participant * participant
Local or remote participant who owns the track (owned by Room).
Definition room_event_types.h:493
std::shared_ptr< TrackPublication > publication
Publication that was unmuted.
Definition room_event_types.h:496
Fired when a remote participant unpublishes a track.
Definition room_event_types.h:437
std::shared_ptr< RemoteTrackPublication > publication
Remote track publication that was removed.
Definition room_event_types.h:439
RemoteParticipant * participant
Remote participant who owned this track (owned by Room).
Definition room_event_types.h:442
Fired when a remote track is unsubscribed.
Definition room_event_types.h:458
RemoteParticipant * participant
Remote participant who owns the track (owned by Room).
Definition room_event_types.h:466
std::shared_ptr< Track > track
Track that was unsubscribed.
Definition room_event_types.h:460
std::shared_ptr< RemoteTrackPublication > publication
Publication associated with the track.
Definition room_event_types.h:463
Fired when a user data packet (non-SIP) is received.
Definition room_event_types.h:572
std::vector< std::uint8_t > data
Payload data.
Definition room_event_types.h:574
RemoteParticipant * participant
Remote participant that sent this packet, or nullptr if server (owned by Room).
Definition room_event_types.h:581
std::string topic
Optional topic associated with this data (may be empty).
Definition room_event_types.h:584
DataPacketKind kind
Delivery kind (reliable or lossy).
Definition room_event_types.h:577
Application-level user data carried in a data packet.
Definition room_event_types.h:119
std::vector< std::uint8_t > data
Raw payload bytes.
Definition room_event_types.h:121
std::optional< std::string > topic
Optional topic name associated with this payload.
Definition room_event_types.h:124
Video encoding configuration used when publishing a track.
Definition room_event_types.h:281
double max_framerate
Maximum frame rate in frames per second.
Definition room_event_types.h:286
std::uint64_t max_bitrate
Maximum target bitrate in bps.
Definition room_event_types.h:283