| Index: webrtc/modules/include/module_common_types.h
 | 
| diff --git a/webrtc/modules/include/module_common_types.h b/webrtc/modules/include/module_common_types.h
 | 
| index a5ea5c8e2d7da8327573eb74b1795087dd8f0085..5de5eb78f6f719a50cda90d1a4fc292bf2084b24 100644
 | 
| --- a/webrtc/modules/include/module_common_types.h
 | 
| +++ b/webrtc/modules/include/module_common_types.h
 | 
| @@ -18,6 +18,8 @@
 | 
|  #include <limits>
 | 
|  
 | 
|  #include "webrtc/base/constructormagic.h"
 | 
| +#include "webrtc/base/deprecation.h"
 | 
| +#include "webrtc/base/safe_conversions.h"
 | 
|  #include "webrtc/common_types.h"
 | 
|  #include "webrtc/common_video/rotation.h"
 | 
|  #include "webrtc/typedefs.h"
 | 
| @@ -520,8 +522,6 @@ class CallStatsObserver {
 | 
|   *
 | 
|   * - Stereo data is interleaved starting with the left channel.
 | 
|   *
 | 
| - * - The +operator assume that you would never add exactly opposite frames when
 | 
| - *   deciding the resulting state. To do this use the -operator.
 | 
|   */
 | 
|  class AudioFrame {
 | 
|   public:
 | 
| @@ -556,26 +556,29 @@ class AudioFrame {
 | 
|  
 | 
|    void CopyFrom(const AudioFrame& src);
 | 
|  
 | 
| -  void Mute();
 | 
| -
 | 
| -  AudioFrame& operator>>=(const int rhs);
 | 
| -  AudioFrame& operator+=(const AudioFrame& rhs);
 | 
| +  // These methods are deprecated. Use the functions in
 | 
| +  // webrtc/audio/utility instead. These methods will exists for a
 | 
| +  // short period of time until webrtc clients have updated. See
 | 
| +  // webrtc:6548 for details.
 | 
| +  RTC_DEPRECATED void Mute();
 | 
| +  RTC_DEPRECATED AudioFrame& operator>>=(const int rhs);
 | 
| +  RTC_DEPRECATED AudioFrame& operator+=(const AudioFrame& rhs);
 | 
|  
 | 
|    int id_;
 | 
|    // RTP timestamp of the first sample in the AudioFrame.
 | 
| -  uint32_t timestamp_;
 | 
| +  uint32_t timestamp_ = 0;
 | 
|    // Time since the first frame in milliseconds.
 | 
|    // -1 represents an uninitialized value.
 | 
| -  int64_t elapsed_time_ms_;
 | 
| +  int64_t elapsed_time_ms_ = -1;
 | 
|    // NTP time of the estimated capture time in local timebase in milliseconds.
 | 
|    // -1 represents an uninitialized value.
 | 
| -  int64_t ntp_time_ms_;
 | 
| +  int64_t ntp_time_ms_ = -1;
 | 
|    int16_t data_[kMaxDataSizeSamples];
 | 
| -  size_t samples_per_channel_;
 | 
| -  int sample_rate_hz_;
 | 
| -  size_t num_channels_;
 | 
| -  SpeechType speech_type_;
 | 
| -  VADActivity vad_activity_;
 | 
| +  size_t samples_per_channel_ = 0;
 | 
| +  int sample_rate_hz_ = 0;
 | 
| +  size_t num_channels_ = 0;
 | 
| +  SpeechType speech_type_ = kUndefined;
 | 
| +  VADActivity vad_activity_ = kVadUnknown;
 | 
|  
 | 
|   private:
 | 
|    RTC_DISALLOW_COPY_AND_ASSIGN(AudioFrame);
 | 
| @@ -585,7 +588,6 @@ class AudioFrame {
 | 
|  // See https://bugs.chromium.org/p/webrtc/issues/detail?id=5647.
 | 
|  inline AudioFrame::AudioFrame()
 | 
|      : data_() {
 | 
| -  Reset();
 | 
|  }
 | 
|  
 | 
|  inline void AudioFrame::Reset() {
 | 
| @@ -659,18 +661,6 @@ inline AudioFrame& AudioFrame::operator>>=(const int rhs) {
 | 
|    return *this;
 | 
|  }
 | 
|  
 | 
| -namespace {
 | 
| -inline int16_t ClampToInt16(int32_t input) {
 | 
| -  if (input < -0x00008000) {
 | 
| -    return -0x8000;
 | 
| -  } else if (input > 0x00007FFF) {
 | 
| -    return 0x7FFF;
 | 
| -  } else {
 | 
| -    return static_cast<int16_t>(input);
 | 
| -  }
 | 
| -}
 | 
| -}
 | 
| -
 | 
|  inline AudioFrame& AudioFrame::operator+=(const AudioFrame& rhs) {
 | 
|    // Sanity check
 | 
|    assert((num_channels_ > 0) && (num_channels_ < 3));
 | 
| @@ -704,7 +694,7 @@ inline AudioFrame& AudioFrame::operator+=(const AudioFrame& rhs) {
 | 
|      for (size_t i = 0; i < samples_per_channel_ * num_channels_; i++) {
 | 
|        int32_t wrap_guard =
 | 
|            static_cast<int32_t>(data_[i]) + static_cast<int32_t>(rhs.data_[i]);
 | 
| -      data_[i] = ClampToInt16(wrap_guard);
 | 
| +      data_[i] = rtc::saturated_cast<int16_t>(wrap_guard);
 | 
|      }
 | 
|    }
 | 
|    return *this;
 | 
| 
 |