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

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

Issue 1308023004: Add support for negotiating RTCP with reduced size. Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 4 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 | « talk/media/webrtc/webrtcvideoengine2.h ('k') | talk/session/media/channel.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: talk/media/webrtc/webrtcvideoengine2.cc
diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc
index 05cd6bbcf1a582380d1c35b5aeb3dbdfb98f2b31..a4d680ef564a8b0ad12889e4bba84ed1956a31ad 100644
--- a/talk/media/webrtc/webrtcvideoengine2.cc
+++ b/talk/media/webrtc/webrtcvideoengine2.cc
@@ -889,20 +889,30 @@ bool WebRtcVideoChannel2::ReceiveCodecsHaveChanged(
return false;
}
-bool WebRtcVideoChannel2::SetSendParameters(const VideoSendParameters& params) {
+bool WebRtcVideoChannel2::SetSendParameters(
+ const VideoSendParameters& send_params) {
// TODO(pbos): Refactor this to only recreate the send streams once
// instead of 4 times.
- return (SetSendCodecs(params.codecs) &&
- SetSendRtpHeaderExtensions(params.extensions) &&
- SetMaxSendBandwidth(params.max_bandwidth_bps) &&
- SetOptions(params.options));
+ if (!SetSendCodecs(send_params.codecs) ||
+ !SetSendRtpHeaderExtensions(send_params.extensions) ||
+ !SetMaxSendBandwidth(send_params.max_bandwidth_bps) ||
+ !SetOptions(send_params.options)) {
+ return false;
+ }
+ send_params_ = send_params;
+ return true;
}
-bool WebRtcVideoChannel2::SetRecvParameters(const VideoRecvParameters& params) {
+bool WebRtcVideoChannel2::SetRecvParameters(
+ const VideoRecvParameters& recv_params) {
// TODO(pbos): Refactor this to only recreate the recv streams once
// instead of twice.
- return (SetRecvCodecs(params.codecs) &&
- SetRecvRtpHeaderExtensions(params.extensions));
+ if (!SetRecvCodecs(recv_params.codecs) ||
+ !SetRecvRtpHeaderExtensions(recv_params.extensions)) {
+ return false;
+ }
+ recv_params_ = recv_params;
+ return true;
}
std::string WebRtcVideoChannel2::CodecSettingsVectorToString(
@@ -1111,14 +1121,10 @@ bool WebRtcVideoChannel2::AddSendStream(const StreamParams& sp) {
for (uint32 used_ssrc : sp.ssrcs)
send_ssrcs_.insert(used_ssrc);
- WebRtcVideoSendStream* stream =
- new WebRtcVideoSendStream(call_.get(),
- external_encoder_factory_,
- options_,
- bitrate_config_.max_bitrate_bps,
- send_codec_,
- sp,
- send_rtp_extensions_);
+ WebRtcVideoSendStream* stream = new WebRtcVideoSendStream(
+ call_.get(), external_encoder_factory_, options_,
+ bitrate_config_.max_bitrate_bps, send_codec_, sp, send_rtp_extensions_,
+ send_params_);
uint32 ssrc = sp.first_ssrc();
DCHECK(ssrc != 0);
@@ -1249,6 +1255,9 @@ 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
+ ? webrtc::newapi::kRtcpReducedSize
+ : webrtc::newapi::kRtcpCompound;
// TODO(pbos): This protection is against setting the same local ssrc as
// remote which is not permitted by the lower-level API. RTCP requires a
@@ -1731,7 +1740,10 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::WebRtcVideoSendStream(
int max_bitrate_bps,
const Settable<VideoCodecSettings>& codec_settings,
const StreamParams& sp,
- const std::vector<webrtc::RtpExtension>& rtp_extensions)
+ const std::vector<webrtc::RtpExtension>& rtp_extensions,
+ // TODO(pbos): Don't duplicate information between send_params,
+ // rtp_extensions, options, etc.
+ const VideoSendParameters& send_params)
: ssrcs_(sp.ssrcs),
ssrc_groups_(sp.ssrc_groups),
call_(call),
@@ -1755,6 +1767,9 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::WebRtcVideoSendStream(
&parameters_.config.rtp.rtx.ssrcs);
parameters_.config.rtp.c_name = sp.cname;
parameters_.config.rtp.extensions = rtp_extensions;
+ // TODO(pbos): Add this to send stream when we support it.
+ // parameters_.config.rtp.rtcp_mode = send_params.rtcp.reduced_size ?
+ // webrtc::newapi::kRtcpReducedSize : webrtc::newapi::kRtcpCompound;
VideoCodecSettings params;
if (codec_settings.Get(&params)) {
« no previous file with comments | « talk/media/webrtc/webrtcvideoengine2.h ('k') | talk/session/media/channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698