Fix degradation_preference setting being ignored using RtpSender.SetParameters.
RtpSenderBase::SetParametersInternal stores init_parameters_ if media_channel_ does not exist. When RtpSenderBase::SetSsrc is called, init_parameters_ is used to set the initial encoding parameters and degradation_preference. However, if no encoding parameter is specified, degradation_preference will not be set. This CL modifies the RtpSender so that degradation_preference is not ignored even in this case. Bug: webrtc:14279 Change-Id: I7e95ecdf5fcb19037e4f118981d1314d78ffca5a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268960 Reviewed-by: Henrik Boström <hbos@webrtc.org> Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com> Cr-Commit-Position: refs/heads/main@{#37574}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
714e3cbb48
commit
10a7d23be5
@ -305,7 +305,8 @@ void RtpSenderBase::SetSsrc(uint32_t ssrc) {
|
||||
SetSend();
|
||||
AddTrackToStats();
|
||||
}
|
||||
if (!init_parameters_.encodings.empty()) {
|
||||
if (!init_parameters_.encodings.empty() ||
|
||||
init_parameters_.degradation_preference.has_value()) {
|
||||
worker_thread_->Invoke<void>(RTC_FROM_HERE, [&] {
|
||||
RTC_DCHECK(media_channel_);
|
||||
// Get the current parameters, which are constructed from the SDP.
|
||||
@ -328,6 +329,7 @@ void RtpSenderBase::SetSsrc(uint32_t ssrc) {
|
||||
init_parameters_.degradation_preference;
|
||||
media_channel_->SetRtpSendParameters(ssrc_, current_parameters);
|
||||
init_parameters_.encodings.clear();
|
||||
init_parameters_.degradation_preference = absl::nullopt;
|
||||
});
|
||||
}
|
||||
// Attempt to attach the frame decryptor to the current media channel.
|
||||
|
||||
Reference in New Issue
Block a user