Skip to content

Commit 39d7ed9

Browse files
author
Rain Liu
committed
fix get_codecs and rtp_transceive_test
1 parent 31c5319 commit 39d7ed9

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

src/rtp_transceiver/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ impl RTCRtpTransceiver {
222222

223223
/// Codecs returns list of supported codecs
224224
pub(crate) async fn get_codecs(&self) -> Vec<RTCRtpCodecParameters> {
225-
let codecs = self.codecs.lock().await;
226-
RTPReceiverInternal::get_codecs(&*codecs, self.kind, &self.media_engine).await
225+
let mut codecs = self.codecs.lock().await;
226+
RTPReceiverInternal::get_codecs(&mut *codecs, self.kind, &self.media_engine).await
227227
}
228228

229229
/// sender returns the RTPTransceiver's RTPSender if it has one

src/rtp_transceiver/rtp_receiver/mod.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -175,16 +175,16 @@ impl RTPReceiverInternal {
175175

176176
let transceiver_codecs = self.transceiver_codecs.lock().await;
177177
if let Some(codecs) = &*transceiver_codecs {
178-
let c = codecs.lock().await;
178+
let mut c = codecs.lock().await;
179179
parameters.codecs =
180-
RTPReceiverInternal::get_codecs(&*c, self.kind, &self.media_engine).await;
180+
RTPReceiverInternal::get_codecs(&mut *c, self.kind, &self.media_engine).await;
181181
}
182182

183183
parameters
184184
}
185185

186186
pub(crate) async fn get_codecs(
187-
codecs: &[RTCRtpCodecParameters],
187+
codecs: &mut [RTCRtpCodecParameters],
188188
kind: RTPCodecType,
189189
media_engine: &Arc<MediaEngine>,
190190
) -> Vec<RTCRtpCodecParameters> {
@@ -193,14 +193,13 @@ impl RTPReceiverInternal {
193193
return media_engine_codecs;
194194
}
195195
let mut filtered_codecs = vec![];
196-
for codec in &*codecs {
196+
for codec in codecs {
197197
let (c, match_type) = codec_parameters_fuzzy_search(codec, &media_engine_codecs);
198198
if match_type != CodecMatch::None {
199-
//TODO: Need to modify media_engine?
200-
// if codec.payload_type == 0 {
201-
// codec.payload_type = c.payload_type
202-
//}
203-
filtered_codecs.push(c);
199+
if codec.payload_type == 0 {
200+
codec.payload_type = c.payload_type;
201+
}
202+
filtered_codecs.push(codec.clone());
204203
}
205204
}
206205

src/rtp_transceiver/rtp_transceiver_test.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,11 @@ async fn test_rtp_transceiver_set_codec_preferences_payload_type() -> Result<()>
204204
let answer = answer_pc.create_answer(None).await?;
205205

206206
// VP8 with proper PayloadType
207-
assert!(answer.sdp.contains("a=rtpmap:96 VP8/90000"));
207+
assert!(
208+
answer.sdp.contains("a=rtpmap:51 VP8/90000"),
209+
"{}",
210+
answer.sdp
211+
);
208212

209213
// test_codec is ignored since offerer doesn't support
210214
assert!(!answer.sdp.contains("test_codec"));

0 commit comments

Comments
 (0)