Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 1713493003: Enabling rtcp-rsize negotiation and fixing some issues with it. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing unit test and adding more TODOs. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.h ('k') | webrtc/media/engine/webrtcvideoengine2_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/webrtcvideoengine2.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index e34056d905257371b6f9c0db015f38a3bdcf3a85..83f81f0f427e2135f2ffce6a51c84aa575ccd79e 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -802,16 +802,18 @@ bool WebRtcVideoChannel2::SetSendParameters(const VideoSendParameters& params) {
for (auto& kv : send_streams_) {
kv.second->SetSendParameters(changed_params);
}
- if (changed_params.codec) {
- // Update receive feedback parameters from new codec.
+ if (changed_params.codec || changed_params.rtcp_mode) {
+ // Update receive feedback parameters from new codec or RTCP mode.
LOG(LS_INFO)
<< "SetFeedbackOptions on all the receive streams because the send "
- "codec has changed.";
+ "codec or RTCP mode has changed.";
for (auto& kv : receive_streams_) {
RTC_DCHECK(kv.second != nullptr);
- kv.second->SetFeedbackParameters(HasNack(send_codec_->codec),
- HasRemb(send_codec_->codec),
- HasTransportCc(send_codec_->codec));
+ kv.second->SetFeedbackParameters(
+ HasNack(send_codec_->codec), HasRemb(send_codec_->codec),
+ HasTransportCc(send_codec_->codec),
+ params.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize
+ : webrtc::RtcpMode::kCompound);
}
}
}
@@ -882,13 +884,6 @@ bool WebRtcVideoChannel2::GetChangedRecvParameters(
rtc::Optional<std::vector<webrtc::RtpExtension>>(filtered_extensions);
}
- // Handle RTCP mode.
- if (params.rtcp.reduced_size != recv_params_.rtcp.reduced_size) {
- changed_params->rtcp_mode = rtc::Optional<webrtc::RtcpMode>(
- params.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize
- : webrtc::RtcpMode::kCompound);
- }
-
return true;
}
@@ -1159,7 +1154,12 @@ void WebRtcVideoChannel2::ConfigureReceiverRtp(
config->rtp.local_ssrc = rtcp_receiver_report_ssrc_;
config->rtp.extensions = recv_rtp_extensions_;
- config->rtp.rtcp_mode = recv_params_.rtcp.reduced_size
+ // Whether or not the receive stream sends reduced size RTCP is determined
+ // by the send params.
+ // TODO(deadbeef): Once we change "send_params" to "sender_params" and
+ // "recv_params" to "receiver_params", we should get this out of
+ // receiver_params_.
+ config->rtp.rtcp_mode = send_params_.rtcp.reduced_size
? webrtc::RtcpMode::kReducedSize
: webrtc::RtcpMode::kCompound;
@@ -2294,11 +2294,13 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetLocalSsrc(
void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetFeedbackParameters(
bool nack_enabled,
bool remb_enabled,
- bool transport_cc_enabled) {
+ bool transport_cc_enabled,
+ webrtc::RtcpMode rtcp_mode) {
int nack_history_ms = nack_enabled ? kNackHistoryMs : 0;
if (config_.rtp.nack.rtp_history_ms == nack_history_ms &&
config_.rtp.remb == remb_enabled &&
- config_.rtp.transport_cc == transport_cc_enabled) {
+ config_.rtp.transport_cc == transport_cc_enabled &&
+ config_.rtp.rtcp_mode == rtcp_mode) {
LOG(LS_INFO)
<< "Ignoring call to SetFeedbackParameters because parameters are "
"unchanged; nack="
@@ -2309,6 +2311,7 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetFeedbackParameters(
config_.rtp.remb = remb_enabled;
config_.rtp.nack.rtp_history_ms = nack_history_ms;
config_.rtp.transport_cc = transport_cc_enabled;
+ config_.rtp.rtcp_mode = rtcp_mode;
LOG(LS_INFO)
<< "RecreateWebRtcStream (recv) because of SetFeedbackParameters; nack="
<< nack_enabled << ", remb=" << remb_enabled
@@ -2328,10 +2331,6 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetRecvParameters(
config_.rtp.extensions = *params.rtp_header_extensions;
needs_recreation = true;
}
- if (params.rtcp_mode) {
- config_.rtp.rtcp_mode = *params.rtcp_mode;
- needs_recreation = true;
- }
if (needs_recreation) {
LOG(LS_INFO) << "RecreateWebRtcStream (recv) because of SetRecvParameters";
RecreateWebRtcStream();
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.h ('k') | webrtc/media/engine/webrtcvideoengine2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698