fix(video): use relay-default stream for room video
Some checks failed
Mirror to GitHub / mirror (push) Failing after 31s
Build Release Binaries / build-amd64 (push) Has been cancelled

This commit is contained in:
Siavash Sameni
2026-05-25 20:39:25 +04:00
parent 06d28a9280
commit e1ca6ca6e6
2 changed files with 10 additions and 1 deletions

View File

@@ -63,7 +63,11 @@ pub fn packetize_video_frame(
flags,
media_type: MediaType::Video,
codec_id,
stream_id: 1, // stream 0 = audio, 1 = video
// Legacy relays default receivers to video layer 0. Use video stream
// 0 for the single-layer room-video path so packets are forwarded
// before any receiver quality state exists. Audio is separated by
// media_type, so stream_id 0 does not collide with audio packets.
stream_id: 0,
fec_ratio: 0,
seq: *seq,
timestamp: timestamp_ms,
@@ -188,6 +192,7 @@ mod tests {
assert!(pkts[0].header.is_keyframe());
assert!(pkts[0].header.is_frame_end());
assert_eq!(pkts[0].header.media_type, MediaType::Video);
assert_eq!(pkts[0].header.stream_id, 0);
let mut reassembler = VideoReassembler::new();
let result = reassembler.push(&pkts[0]);

View File

@@ -1212,6 +1212,7 @@ impl CallEngine {
"t_ms": recv_t0.elapsed().as_millis() as u64,
"codec": format!("{:?}", pkt.header.codec_id),
"payload_bytes": pkt.payload.len(),
"stream_id": pkt.header.stream_id,
}),
);
}
@@ -1943,6 +1944,7 @@ impl CallEngine {
"first_pkt_bytes": pkts[0].payload.len(),
"last_pkt_bytes": pkts.last().map(|pkt| pkt.payload.len()).unwrap_or(0),
"encoded_bytes": encoded.len(),
"stream_id": pkts[0].header.stream_id,
"is_keyframe": is_keyframe,
}),
);
@@ -2461,6 +2463,7 @@ impl CallEngine {
"t_ms": recv_t0.elapsed().as_millis() as u64,
"codec": format!("{:?}", pkt.header.codec_id),
"payload_bytes": pkt.payload.len(),
"stream_id": pkt.header.stream_id,
}),
);
}
@@ -3042,6 +3045,7 @@ impl CallEngine {
"first_pkt_bytes": pkts[0].payload.len(),
"last_pkt_bytes": pkts.last().map(|pkt| pkt.payload.len()).unwrap_or(0),
"encoded_bytes": encoded.len(),
"stream_id": pkts[0].header.stream_id,
"is_keyframe": is_keyframe,
}),
);