Index: talk/media/webrtc/webrtcvideoengine2.cc |
diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc |
index d33d1909cf65fb1a7a1471ec0ea280d2ada6a509..6364808aa7b01f969087b2879a710da68fa1cd9f 100644 |
--- a/talk/media/webrtc/webrtcvideoengine2.cc |
+++ b/talk/media/webrtc/webrtcvideoengine2.cc |
@@ -1534,7 +1534,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 +1543,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 +1556,7 @@ bool WebRtcVideoChannel2::SetOptions(const VideoOptions& options) { |
++it) { |
it->second->SetOptions(options_); |
} |
+ options_set_ = true; |
return true; |
} |