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

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

Issue 1229283003: Refactor the relationship between BaseChannel and MediaChannel so that we send over all the paramet… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: fix all the tests Created 5 years, 5 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
Index: talk/media/webrtc/webrtcvideoengine2.cc
diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc
index d33d1909cf65fb1a7a1471ec0ea280d2ada6a509..247748d6bc0d8285a76c32b8710a13e97887910e 100644
--- a/talk/media/webrtc/webrtcvideoengine2.cc
+++ b/talk/media/webrtc/webrtcvideoengine2.cc
@@ -855,6 +855,22 @@ WebRtcVideoChannel2::FilterSupportedCodecs(
return supported_codecs;
}
+bool WebRtcVideoChannel2::SetSendParameters(const VideoSendParameters& 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));
+}
+
+bool WebRtcVideoChannel2::SetRecvParameters(const VideoRecvParameters& params) {
+ // TODO(pbos): Refactor this to only recreate the recv streams once
+ // instead of twice.
+ return (SetRecvCodecs(params.codecs) &&
+ SetRecvRtpHeaderExtensions(params.extensions));
+}
+
bool WebRtcVideoChannel2::SetRecvCodecs(const std::vector<VideoCodec>& codecs) {
TRACE_EVENT0("webrtc", "WebRtcVideoChannel2::SetRecvCodecs");
LOG(LS_INFO) << "SetRecvCodecs: " << CodecVectorToString(codecs);
@@ -1534,7 +1550,8 @@ bool WebRtcVideoChannel2::SetOptions(const VideoOptions& options) {
LOG(LS_INFO) << "SetOptions: " << options.ToString();
VideoOptions old_options = options_;
options_.SetAll(options);
- if (options_ == old_options) {
+
+ if (options_ == old_options && options_set_) {
// No new options to set.
return true;
}
@@ -1542,10 +1559,12 @@ bool WebRtcVideoChannel2::SetOptions(const VideoOptions& options) {
rtc::CritScope lock(&capturer_crit_);
options_.cpu_overuse_detection.Get(&signal_cpu_adaptation_);
}
+
rtc::DiffServCodePoint dscp = options_.dscp.GetWithDefaultIfUnset(false)
? rtc::DSCP_AF41
: rtc::DSCP_DEFAULT;
MediaChannel::SetDscp(dscp);
+
rtc::CritScope stream_lock(&stream_crit_);
for (std::map<uint32, WebRtcVideoSendStream*>::iterator it =
send_streams_.begin();
@@ -1553,6 +1572,7 @@ bool WebRtcVideoChannel2::SetOptions(const VideoOptions& options) {
++it) {
it->second->SetOptions(options_);
}
+ options_set_ = true;
return true;
}

Powered by Google App Engine
This is Rietveld 408576698