diff --git a/livekit/src/room/participant/local_participant.rs b/livekit/src/room/participant/local_participant.rs index 741bfe960..c72b5f4c4 100644 --- a/livekit/src/room/participant/local_participant.rs +++ b/livekit/src/room/participant/local_participant.rs @@ -284,6 +284,16 @@ impl LocalParticipant { encodings = compute_video_encodings(req.width, req.height, &options); req.layers = video_layers_from_encodings(req.width, req.height, &encodings); + + // Populate simulcast_codecs so the server knows this track is simulcasted + if options.simulcast && encodings.len() > 1 { + req.simulcast_codecs = vec![proto::SimulcastCodec { + codec: options.video_codec.as_str().to_string(), + cid: track.rtc_track().id(), + layers: req.layers.clone(), + ..Default::default() + }]; + } } LocalTrack::Audio(_audio_track) => { // Setup audio encoding