From e64f2ce08cc1c7d5253ad51a5b063437a119b670 Mon Sep 17 00:00:00 2001 From: Dmitry Shlagoff Date: Fri, 11 Jan 2019 16:09:10 +0700 Subject: [PATCH] Pin exact audio and video codecs + set params for h264 codec --- src/lib.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index b82b21d0..e74f867d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -382,7 +382,22 @@ fn handle_jsep( let offer = sdp::Sdp::parse(&CString::new(sdp)?)?; janus_verb!("[CONFERENCE] offer: {:?}", offer); - let answer = answer_sdp!(offer); + let mut answer = answer_sdp!( + offer, + sdp::OfferAnswerParameters::AudioCodec, + sdp::AudioCodec::Opus.to_cstr().as_ptr(), + sdp::OfferAnswerParameters::VideoCodec, + sdp::VideoCodec::H264.to_cstr().as_ptr() + ); + let video_payload_type = answer.get_payload_type(sdp::VideoCodec::H264.to_cstr()); + if let Some(pt) = video_payload_type { + let settings = CString::new(format!( + "{} profile-level-id=42e01f; packetization-mode=1", + pt + ))?; + answer.add_attribute(pt, c_str!("fmtp"), &settings); + } + janus_verb!("[CONFERENCE] answer: {:?}", answer); let answer = answer.to_glibstring().to_string_lossy().to_string();