From 484ee962b541ef5296a92931766f97eab48eebea Mon Sep 17 00:00:00 2001 From: "pbos@webrtc.org" Date: Thu, 21 Nov 2013 18:44:23 +0000 Subject: [PATCH] Protect reads of ViEEncoder::video_suspended_. Does not fix an immediate bug, since this is the only method writing to it there are no concurrent writes, but this should be more future-proof by protecting all accesses. BUG=2606 R=stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/4109006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5156 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/video_engine/vie_encoder.cc | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc index ecebbd2b3b..c5b469cc46 100644 --- a/webrtc/video_engine/vie_encoder.cc +++ b/webrtc/video_engine/vie_encoder.cc @@ -1112,19 +1112,19 @@ void ViEEncoder::OnNetworkChanged(const uint32_t bitrate_bps, max_padding_bitrate_kbps, pad_up_to_bitrate_kbps); default_rtp_rtcp_->SetTargetSendBitrate(stream_bitrates); - if (video_is_suspended != video_suspended_) { - // State changed now. Send callback to inform about that. - { - CriticalSectionScoped cs(data_cs_.get()); - video_suspended_ = video_is_suspended; - } - if (codec_observer_) { - WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideo, - ViEId(engine_id_, channel_id_), - "%s: video_suspended_ changed to %i", - __FUNCTION__, video_suspended_); - codec_observer_->VideoSuspended(channel_id_, video_suspended_); - } + { + CriticalSectionScoped cs(data_cs_.get()); + if (video_suspended_ == video_is_suspended) + return; + video_suspended_ = video_is_suspended; + } + // State changed, inform codec observer. + if (codec_observer_) { + WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideo, + ViEId(engine_id_, channel_id_), + "%s: video_suspended_ changed to %i", + __FUNCTION__, video_is_suspended); + codec_observer_->VideoSuspended(channel_id_, video_is_suspended); } }