Expose Muninn sender resend cadence in RUDP URL

This commit is contained in:
Meta Vens 2026-06-18 22:42:30 +01:00
commit f1c8af5585
2 changed files with 7 additions and 5 deletions

View file

@ -5053,8 +5053,9 @@ fn srt_endpoint(host: &str, port: u16) -> String {
fn rudp_endpoint(host: &str, port: u16, stream_id: &str) -> String {
let profile = muninn_rudp_media_profile();
format!(
"rudp://{host}:{port}/{stream_id}?channel=media&format=muninn-typed-media&connection=0x{MUNINN_MEDIA_RUDP_CONNECTION_ID:08x}&profile={}&reliable_expire_after_ms={}&assembly_deadline_ms={}&gap_wait_ms={}",
"rudp://{host}:{port}/{stream_id}?channel=media&format=muninn-typed-media&connection=0x{MUNINN_MEDIA_RUDP_CONNECTION_ID:08x}&profile={}&sender_resend_delay_ms={}&reliable_expire_after_ms={}&assembly_deadline_ms={}&gap_wait_ms={}",
profile.profile_id,
profile.sender_resend_delay_ms,
profile.sender_reliable_expire_after_ms,
profile.receiver_assembly_deadline_ms,
profile.receiver_gap_wait_ms
@ -6016,7 +6017,7 @@ mod tests {
assert_eq!(
plan.targets,
vec![
"rudp://10.77.0.2:5204/muninn.raven.av.rudp?channel=media&format=muninn-typed-media&connection=0x6d750001&profile=muninn.rudp.low_latency_h264_lan.v1&reliable_expire_after_ms=75&assembly_deadline_ms=75&gap_wait_ms=8"
"rudp://10.77.0.2:5204/muninn.raven.av.rudp?channel=media&format=muninn-typed-media&connection=0x6d750001&profile=muninn.rudp.low_latency_h264_lan.v1&sender_resend_delay_ms=5&reliable_expire_after_ms=75&assembly_deadline_ms=75&gap_wait_ms=8"
]
);
assert!(!plan.command_line.contains("tee"));

View file

@ -175,9 +175,10 @@ Recommended first LAN profile:
budget from receiver feedback; the receiver must not silently stretch latency
to preserve visual perfection.
- Receiver URL policy: RUDP stream URLs carry `profile`,
`reliable_expire_after_ms`, `assembly_deadline_ms`, and `gap_wait_ms` so the
OBS bridge receives playout budget from Muninn's stream profile instead of
hard-coding receiver policy privately.
`sender_resend_delay_ms`, `reliable_expire_after_ms`,
`assembly_deadline_ms`, and `gap_wait_ms` so the OBS bridge receives timing
budget from Muninn's stream profile instead of hard-coding receiver policy
privately.
### Motion Vectors And Reconstruction