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

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

Issue 2660403004: Fix and improve FlexFEC configuration for RTP/RTCP. (Closed)
Patch Set: EXPECT -> ASSERT. Created 3 years, 11 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/fakewebrtccall.cc ('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 4301bd0a9369634604331c1dc307ff049f06495b..c6c522a99ed84708d1c013c139f7fefc98d78547 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -1224,18 +1224,20 @@ void WebRtcVideoChannel2::ConfigureReceiverRtp(
config->rtp.transport_cc =
send_codec_ ? HasTransportCc(send_codec_->codec) : false;
+ sp.GetFidSsrc(ssrc, &config->rtp.rtx_ssrc);
+
+ config->rtp.extensions = recv_rtp_extensions_;
+
// TODO(brandtr): Generalize when we add support for multistream protection.
if (sp.GetFecFrSsrc(ssrc, &flexfec_config->remote_ssrc)) {
flexfec_config->protected_media_ssrcs = {ssrc};
flexfec_config->local_ssrc = config->rtp.local_ssrc;
flexfec_config->rtcp_mode = config->rtp.rtcp_mode;
+ // TODO(brandtr): We should be spec-compliant and set |transport_cc| here
+ // based on the rtcp-fb for the FlexFEC codec, not the media codec.
flexfec_config->transport_cc = config->rtp.transport_cc;
flexfec_config->rtp_header_extensions = config->rtp.extensions;
brandtr 2017/02/01 10:11:40 Note how this assignment is affected by the move o
}
-
- sp.GetFidSsrc(ssrc, &config->rtp.rtx_ssrc);
-
- config->rtp.extensions = recv_rtp_extensions_;
}
bool WebRtcVideoChannel2::RemoveRecvStream(uint32_t ssrc) {
@@ -2250,7 +2252,10 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetFeedbackParameters(
config_.rtp.nack.rtp_history_ms = nack_history_ms;
config_.rtp.transport_cc = transport_cc_enabled;
config_.rtp.rtcp_mode = rtcp_mode;
- flexfec_config_.rtcp_mode = rtcp_mode;
+ // TODO(brandtr): We should be spec-compliant and set |transport_cc| here
+ // based on the rtcp-fb for the FlexFEC codec, not the media codec.
+ flexfec_config_.transport_cc = config_.rtp.transport_cc;
+ flexfec_config_.rtcp_mode = config_.rtp.rtcp_mode;
LOG(LS_INFO)
<< "RecreateWebRtcStream (recv) because of SetFeedbackParameters; nack="
<< nack_enabled << ", remb=" << remb_enabled
@@ -2268,6 +2273,7 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetRecvParameters(
}
if (params.rtp_header_extensions) {
config_.rtp.extensions = *params.rtp_header_extensions;
+ flexfec_config_.rtp_header_extensions = *params.rtp_header_extensions;
needs_recreation = true;
}
if (needs_recreation) {
« no previous file with comments | « webrtc/media/engine/fakewebrtccall.cc ('k') | webrtc/media/engine/webrtcvideoengine2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698