Index: webrtc/media/engine/webrtcvoiceengine.cc |
diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc |
index 21f12105f1db6745f8c70c6167e8210e023e305e..4702f84e1e691e47d72909040fcc44ba0fdf85e5 100644 |
--- a/webrtc/media/engine/webrtcvoiceengine.cc |
+++ b/webrtc/media/engine/webrtcvoiceengine.cc |
@@ -1418,7 +1418,13 @@ webrtc::RtpParameters WebRtcVoiceMediaChannel::GetRtpParameters( |
return webrtc::RtpParameters(); |
} |
- return it->second->rtp_parameters(); |
+ webrtc::RtpParameters rtp_params = it->second->rtp_parameters(); |
+ // Need to add the common list of codecs to the send stream-specific |
+ // RTP parameters. |
+ for (const AudioCodec& codec : send_codecs_) { |
+ rtp_params.codecs.push_back(codec.ToCodecParameters()); |
+ } |
+ return rtp_params; |
} |
bool WebRtcVoiceMediaChannel::SetRtpParameters( |
@@ -1439,7 +1445,10 @@ bool WebRtcVoiceMediaChannel::SetRtpParameters( |
LOG(LS_WARNING) << "Failed to set RtpParameters."; |
return false; |
} |
- it->second->set_rtp_parameters(parameters); |
+ // Codecs are handled at the WebRtcVoiceMediaChannel level. |
+ webrtc::RtpParameters reduced_params = parameters; |
+ reduced_params.codecs.clear(); |
+ it->second->set_rtp_parameters(reduced_params); |
return true; |
} |
@@ -1670,6 +1679,7 @@ bool WebRtcVoiceMediaChannel::SetSendCodecs( |
} |
} |
+ send_codecs_ = codecs; |
return true; |
} |
@@ -2389,6 +2399,8 @@ bool WebRtcVoiceMediaChannel::SetChannelParameters( |
int channel, |
const webrtc::RtpParameters& parameters) { |
RTC_CHECK_EQ(1UL, parameters.encodings.size()); |
+ // TODO(deadbeef): Handle setting parameters with a list of codecs in a |
+ // different order (which should change the send codec). |
return SetSendBitrate( |
channel, |
MinPositive(send_bitrate_bps_, parameters.encodings[0].max_bitrate_bps)); |