Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.

This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.

This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002

The change is being landed as TBR to all the folks who reviewed the above.

BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher

Review URL: https://codereview.webrtc.org/1230503003 .

Cr-Commit-Position: refs/heads/master@{#9768}
diff --git a/webrtc/modules/audio_coding/codecs/audio_decoder.cc b/webrtc/modules/audio_coding/codecs/audio_decoder.cc
index 0a4a6a9..08d101c 100644
--- a/webrtc/modules/audio_coding/codecs/audio_decoder.cc
+++ b/webrtc/modules/audio_coding/codecs/audio_decoder.cc
@@ -56,7 +56,9 @@
 
 bool AudioDecoder::HasDecodePlc() const { return false; }
 
-int AudioDecoder::DecodePlc(int num_frames, int16_t* decoded) { return 0; }
+size_t AudioDecoder::DecodePlc(size_t num_frames, int16_t* decoded) {
+  return 0;
+}
 
 int AudioDecoder::IncomingPacket(const uint8_t* payload,
                                  size_t payload_len,
diff --git a/webrtc/modules/audio_coding/codecs/audio_decoder.h b/webrtc/modules/audio_coding/codecs/audio_decoder.h
index 8947e81..480b1aa 100644
--- a/webrtc/modules/audio_coding/codecs/audio_decoder.h
+++ b/webrtc/modules/audio_coding/codecs/audio_decoder.h
@@ -62,7 +62,7 @@
 
   // Calls the packet-loss concealment of the decoder to update the state after
   // one or several lost packets.
-  virtual int DecodePlc(int num_frames, int16_t* decoded);
+  virtual size_t DecodePlc(size_t num_frames, int16_t* decoded);
 
   // Initializes the decoder.
   virtual int Init() = 0;
diff --git a/webrtc/modules/audio_coding/codecs/audio_encoder.h b/webrtc/modules/audio_coding/codecs/audio_encoder.h
index fe6fd87..0a40316 100644
--- a/webrtc/modules/audio_coding/codecs/audio_encoder.h
+++ b/webrtc/modules/audio_coding/codecs/audio_encoder.h
@@ -90,11 +90,11 @@
   // the encoder may vary the number of 10 ms frames from packet to packet, but
   // it must decide the length of the next packet no later than when outputting
   // the preceding packet.
-  virtual int Num10MsFramesInNextPacket() const = 0;
+  virtual size_t Num10MsFramesInNextPacket() const = 0;
 
   // Returns the maximum value that can be returned by
   // Num10MsFramesInNextPacket().
-  virtual int Max10MsFramesInAPacket() const = 0;
+  virtual size_t Max10MsFramesInAPacket() const = 0;
 
   // Returns the current target bitrate in bits/s. The value -1 means that the
   // codec adapts the target automatically, and a current target cannot be
diff --git a/webrtc/modules/audio_coding/codecs/audio_encoder_mutable_impl.h b/webrtc/modules/audio_coding/codecs/audio_encoder_mutable_impl.h
index 553d8ad..c1184e1 100644
--- a/webrtc/modules/audio_coding/codecs/audio_encoder_mutable_impl.h
+++ b/webrtc/modules/audio_coding/codecs/audio_encoder_mutable_impl.h
@@ -74,11 +74,11 @@
     CriticalSectionScoped cs(encoder_lock_.get());
     return encoder_->RtpTimestampRateHz();
   }
-  int Num10MsFramesInNextPacket() const override {
+  size_t Num10MsFramesInNextPacket() const override {
     CriticalSectionScoped cs(encoder_lock_.get());
     return encoder_->Num10MsFramesInNextPacket();
   }
-  int Max10MsFramesInAPacket() const override {
+  size_t Max10MsFramesInAPacket() const override {
     CriticalSectionScoped cs(encoder_lock_.get());
     return encoder_->Max10MsFramesInAPacket();
   }
diff --git a/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc b/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
index d2acaa1..279616e 100644
--- a/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
+++ b/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
@@ -38,7 +38,8 @@
     return false;
   if (num_channels != speech_encoder->NumChannels())
     return false;
-  if (sid_frame_interval_ms < speech_encoder->Max10MsFramesInAPacket() * 10)
+  if (sid_frame_interval_ms <
+      static_cast<int>(speech_encoder->Max10MsFramesInAPacket() * 10))
     return false;
   if (num_cng_coefficients > WEBRTC_CNG_MAX_LPC_ORDER ||
       num_cng_coefficients <= 0)
@@ -89,11 +90,11 @@
   return std::max(max_encoded_bytes_active, max_encoded_bytes_passive);
 }
 
-int AudioEncoderCng::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderCng::Num10MsFramesInNextPacket() const {
   return speech_encoder_->Num10MsFramesInNextPacket();
 }
 
-int AudioEncoderCng::Max10MsFramesInAPacket() const {
+size_t AudioEncoderCng::Max10MsFramesInAPacket() const {
   return speech_encoder_->Max10MsFramesInAPacket();
 }
 
@@ -124,11 +125,11 @@
   for (size_t i = 0; i < samples_per_10ms_frame; ++i) {
     speech_buffer_.push_back(audio[i]);
   }
-  const int frames_to_encode = speech_encoder_->Num10MsFramesInNextPacket();
-  if (rtp_timestamps_.size() < static_cast<size_t>(frames_to_encode)) {
+  const size_t frames_to_encode = speech_encoder_->Num10MsFramesInNextPacket();
+  if (rtp_timestamps_.size() < frames_to_encode) {
     return EncodedInfo();
   }
-  CHECK_LE(frames_to_encode * 10, kMaxFrameSizeMs)
+  CHECK_LE(static_cast<int>(frames_to_encode * 10), kMaxFrameSizeMs)
       << "Frame size cannot be larger than " << kMaxFrameSizeMs
       << " ms when using VAD/CNG.";
 
@@ -136,12 +137,12 @@
   // following split sizes:
   // 10 ms = 10 + 0 ms; 20 ms = 20 + 0 ms; 30 ms = 30 + 0 ms;
   // 40 ms = 20 + 20 ms; 50 ms = 30 + 20 ms; 60 ms = 30 + 30 ms.
-  int blocks_in_first_vad_call =
+  size_t blocks_in_first_vad_call =
       (frames_to_encode > 3 ? 3 : frames_to_encode);
   if (frames_to_encode == 4)
     blocks_in_first_vad_call = 2;
   CHECK_GE(frames_to_encode, blocks_in_first_vad_call);
-  const int blocks_in_second_vad_call =
+  const size_t blocks_in_second_vad_call =
       frames_to_encode - blocks_in_first_vad_call;
 
   // Check if all of the buffer is passive speech. Start with checking the first
@@ -183,7 +184,7 @@
 }
 
 AudioEncoder::EncodedInfo AudioEncoderCng::EncodePassive(
-    int frames_to_encode,
+    size_t frames_to_encode,
     size_t max_encoded_bytes,
     uint8_t* encoded) {
   bool force_sid = last_frame_active_;
@@ -191,15 +192,19 @@
   const size_t samples_per_10ms_frame = SamplesPer10msFrame();
   CHECK_GE(max_encoded_bytes, frames_to_encode * samples_per_10ms_frame);
   AudioEncoder::EncodedInfo info;
-  for (int i = 0; i < frames_to_encode; ++i) {
-    int16_t encoded_bytes_tmp = 0;
+  for (size_t i = 0; i < frames_to_encode; ++i) {
+    // It's important not to pass &info.encoded_bytes directly to
+    // WebRtcCng_Encode(), since later loop iterations may return zero in that
+    // value, in which case we don't want to overwrite any value from an earlier
+    // iteration.
+    size_t encoded_bytes_tmp = 0;
     CHECK_GE(WebRtcCng_Encode(cng_inst_.get(),
                               &speech_buffer_[i * samples_per_10ms_frame],
-                              static_cast<int16_t>(samples_per_10ms_frame),
+                              samples_per_10ms_frame,
                               encoded, &encoded_bytes_tmp, force_sid), 0);
     if (encoded_bytes_tmp > 0) {
       CHECK(!output_produced);
-      info.encoded_bytes = static_cast<size_t>(encoded_bytes_tmp);
+      info.encoded_bytes = encoded_bytes_tmp;
       output_produced = true;
       force_sid = false;
     }
@@ -212,12 +217,12 @@
 }
 
 AudioEncoder::EncodedInfo AudioEncoderCng::EncodeActive(
-    int frames_to_encode,
+    size_t frames_to_encode,
     size_t max_encoded_bytes,
     uint8_t* encoded) {
   const size_t samples_per_10ms_frame = SamplesPer10msFrame();
   AudioEncoder::EncodedInfo info;
-  for (int i = 0; i < frames_to_encode; ++i) {
+  for (size_t i = 0; i < frames_to_encode; ++i) {
     info = speech_encoder_->Encode(
         rtp_timestamps_.front(), &speech_buffer_[i * samples_per_10ms_frame],
         samples_per_10ms_frame, max_encoded_bytes, encoded);
diff --git a/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc b/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
index d16dd3b..a2ab6e8 100644
--- a/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
@@ -59,14 +59,14 @@
   void CreateCng() {
     // The config_ parameters may be changed by the TEST_Fs up until CreateCng()
     // is called, thus we cannot use the values until now.
-    num_audio_samples_10ms_ = 10 * sample_rate_hz_ / 1000;
+    num_audio_samples_10ms_ = static_cast<size_t>(10 * sample_rate_hz_ / 1000);
     ASSERT_LE(num_audio_samples_10ms_, kMaxNumSamples);
     EXPECT_CALL(mock_encoder_, SampleRateHz())
         .WillRepeatedly(Return(sample_rate_hz_));
     // Max10MsFramesInAPacket() is just used to verify that the SID frame period
     // is not too small. The return value does not matter that much, as long as
     // it is smaller than 10.
-    EXPECT_CALL(mock_encoder_, Max10MsFramesInAPacket()).WillOnce(Return(1));
+    EXPECT_CALL(mock_encoder_, Max10MsFramesInAPacket()).WillOnce(Return(1u));
     EXPECT_CALL(mock_encoder_, MaxEncodedBytes())
         .WillRepeatedly(Return(kMockMaxEncodedBytes));
     cng_.reset(new AudioEncoderCng(config_));
@@ -83,10 +83,10 @@
   // Expect |num_calls| calls to the encoder, all successful. The last call
   // claims to have encoded |kMockMaxEncodedBytes| bytes, and all the preceding
   // ones 0 bytes.
-  void ExpectEncodeCalls(int num_calls) {
+  void ExpectEncodeCalls(size_t num_calls) {
     InSequence s;
     AudioEncoder::EncodedInfo info;
-    for (int j = 0; j < num_calls - 1; ++j) {
+    for (size_t j = 0; j < num_calls - 1; ++j) {
       EXPECT_CALL(mock_encoder_, EncodeInternal(_, _, _, _))
           .WillOnce(Return(info));
     }
@@ -98,7 +98,7 @@
   // Verifies that the cng_ object waits until it has collected
   // |blocks_per_frame| blocks of audio, and then dispatches all of them to
   // the underlying codec (speech or cng).
-  void CheckBlockGrouping(int blocks_per_frame, bool active_speech) {
+  void CheckBlockGrouping(size_t blocks_per_frame, bool active_speech) {
     EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
         .WillRepeatedly(Return(blocks_per_frame));
     CreateCng();
@@ -107,7 +107,7 @@
 
     // Don't expect any calls to the encoder yet.
     EXPECT_CALL(mock_encoder_, EncodeInternal(_, _, _, _)).Times(0);
-    for (int i = 0; i < blocks_per_frame - 1; ++i) {
+    for (size_t i = 0; i < blocks_per_frame - 1; ++i) {
       Encode();
       EXPECT_EQ(0u, encoded_info_.encoded_bytes);
     }
@@ -127,14 +127,15 @@
   void CheckVadInputSize(int input_frame_size_ms,
                          int expected_first_block_size_ms,
                          int expected_second_block_size_ms) {
-    const int blocks_per_frame = input_frame_size_ms / 10;
+    const size_t blocks_per_frame =
+        static_cast<size_t>(input_frame_size_ms / 10);
 
     EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
         .WillRepeatedly(Return(blocks_per_frame));
 
     // Expect nothing to happen before the last block is sent to cng_.
     EXPECT_CALL(*mock_vad_, VoiceActivity(_, _, _)).Times(0);
-    for (int i = 0; i < blocks_per_frame - 1; ++i) {
+    for (size_t i = 0; i < blocks_per_frame - 1; ++i) {
       Encode();
     }
 
@@ -163,7 +164,7 @@
                                Vad::Activity second_type) {
     // Set the speech encoder frame size to 60 ms, to ensure that the VAD will
     // be called twice.
-    const int blocks_per_frame = 6;
+    const size_t blocks_per_frame = 6;
     EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
         .WillRepeatedly(Return(blocks_per_frame));
     InSequence s;
@@ -175,7 +176,7 @@
           .WillOnce(Return(second_type));
     }
     encoded_info_.payload_type = 0;
-    for (int i = 0; i < blocks_per_frame; ++i) {
+    for (size_t i = 0; i < blocks_per_frame; ++i) {
       Encode();
     }
     return encoded_info_.payload_type != kCngPayloadType;
@@ -199,8 +200,8 @@
 
 TEST_F(AudioEncoderCngTest, CheckFrameSizePropagation) {
   CreateCng();
-  EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket()).WillOnce(Return(17));
-  EXPECT_EQ(17, cng_->Num10MsFramesInNextPacket());
+  EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket()).WillOnce(Return(17U));
+  EXPECT_EQ(17U, cng_->Num10MsFramesInNextPacket());
 }
 
 TEST_F(AudioEncoderCngTest, CheckChangeBitratePropagation) {
@@ -217,7 +218,7 @@
 
 TEST_F(AudioEncoderCngTest, EncodeCallsVad) {
   EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
-      .WillRepeatedly(Return(1));
+      .WillRepeatedly(Return(1U));
   CreateCng();
   EXPECT_CALL(*mock_vad_, VoiceActivity(_, _, _))
       .WillOnce(Return(Vad::kPassive));
@@ -249,7 +250,7 @@
 }
 
 TEST_F(AudioEncoderCngTest, EncodePassive) {
-  const int kBlocksPerFrame = 3;
+  const size_t kBlocksPerFrame = 3;
   EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
       .WillRepeatedly(Return(kBlocksPerFrame));
   CreateCng();
@@ -258,7 +259,7 @@
   // Expect no calls at all to the speech encoder mock.
   EXPECT_CALL(mock_encoder_, EncodeInternal(_, _, _, _)).Times(0);
   uint32_t expected_timestamp = timestamp_;
-  for (int i = 0; i < 100; ++i) {
+  for (size_t i = 0; i < 100; ++i) {
     Encode();
     // Check if it was time to call the cng encoder. This is done once every
     // |kBlocksPerFrame| calls.
@@ -339,7 +340,7 @@
 TEST_F(AudioEncoderCngTest, VerifyCngPayloadType) {
   CreateCng();
   EXPECT_CALL(mock_encoder_, EncodeInternal(_, _, _, _)).Times(0);
-  EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket()).WillOnce(Return(1));
+  EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket()).WillOnce(Return(1U));
   EXPECT_CALL(*mock_vad_, VoiceActivity(_, _, _))
       .WillOnce(Return(Vad::kPassive));
   encoded_info_.payload_type = 0;
@@ -352,7 +353,7 @@
 TEST_F(AudioEncoderCngTest, VerifySidFrameAfterSpeech) {
   CreateCng();
   EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
-      .WillRepeatedly(Return(1));
+      .WillRepeatedly(Return(1U));
   // Start with encoding noise.
   EXPECT_CALL(*mock_vad_, VoiceActivity(_, _, _))
       .Times(2)
@@ -443,7 +444,7 @@
 TEST_F(AudioEncoderCngDeathTest, EncoderFrameSizeTooLarge) {
   CreateCng();
   EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket())
-      .WillRepeatedly(Return(7));
+      .WillRepeatedly(Return(7U));
   for (int i = 0; i < 6; ++i)
     Encode();
   EXPECT_DEATH(Encode(),
diff --git a/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc b/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc
index 0d1c670..2409540 100644
--- a/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc
@@ -99,7 +99,7 @@
 
 TEST_F(CngTest, CngEncode) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create encoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -151,7 +151,7 @@
 // Encode Cng with too long input vector.
 TEST_F(CngTest, CngEncodeTooLong) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create and init encoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -170,7 +170,7 @@
 // Call encode without calling init.
 TEST_F(CngTest, CngEncodeNoInit) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create encoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -187,7 +187,7 @@
 // Update SID parameters, for both 9 and 16 parameters.
 TEST_F(CngTest, CngUpdateSid) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create and initialize encoder and decoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -224,7 +224,7 @@
 // Update SID parameters, with wrong parameters or without calling decode.
 TEST_F(CngTest, CngUpdateSidErroneous) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create encoder and decoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -261,7 +261,7 @@
 TEST_F(CngTest, CngGenerate) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
   int16_t out_data[640];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create and initialize encoder and decoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -294,7 +294,7 @@
 // Test automatic SID.
 TEST_F(CngTest, CngAutoSid) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create and initialize encoder and decoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
@@ -321,7 +321,7 @@
 // Test automatic SID, with very short interval.
 TEST_F(CngTest, CngAutoSidShort) {
   uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1];
-  int16_t number_bytes;
+  size_t number_bytes;
 
   // Create and initialize encoder and decoder memory.
   EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_));
diff --git a/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h b/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h
index 51d2feb..6a11366 100644
--- a/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h
+++ b/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h
@@ -50,8 +50,8 @@
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
   int RtpTimestampRateHz() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   void SetTargetBitrate(int bits_per_second) override;
   void SetProjectedPacketLossRate(double fraction) override;
@@ -67,10 +67,10 @@
     inline void operator()(CNG_enc_inst* ptr) const { WebRtcCng_FreeEnc(ptr); }
   };
 
-  EncodedInfo EncodePassive(int frames_to_encode,
+  EncodedInfo EncodePassive(size_t frames_to_encode,
                             size_t max_encoded_bytes,
                             uint8_t* encoded);
-  EncodedInfo EncodeActive(int frames_to_encode,
+  EncodedInfo EncodeActive(size_t frames_to_encode,
                            size_t max_encoded_bytes,
                            uint8_t* encoded);
   size_t SamplesPer10msFrame() const;
diff --git a/webrtc/modules/audio_coding/codecs/cng/include/webrtc_cng.h b/webrtc/modules/audio_coding/codecs/cng/include/webrtc_cng.h
index 1ec5d67..6c7e50b 100644
--- a/webrtc/modules/audio_coding/codecs/cng/include/webrtc_cng.h
+++ b/webrtc/modules/audio_coding/codecs/cng/include/webrtc_cng.h
@@ -104,8 +104,8 @@
  *                      -1 - Error
  */
 int WebRtcCng_Encode(CNG_enc_inst* cng_inst, int16_t* speech,
-                     int16_t nrOfSamples, uint8_t* SIDdata,
-                     int16_t* bytesOut, int16_t forceSID);
+                     size_t nrOfSamples, uint8_t* SIDdata,
+                     size_t* bytesOut, int16_t forceSID);
 
 /****************************************************************************
  * WebRtcCng_UpdateSid(...)
@@ -138,7 +138,7 @@
  *                      -1 - Error
  */
 int16_t WebRtcCng_Generate(CNG_dec_inst* cng_inst, int16_t* outData,
-                           int16_t nrOfSamples, int16_t new_period);
+                           size_t nrOfSamples, int16_t new_period);
 
 /*****************************************************************************
  * WebRtcCng_GetErrorCodeEnc/Dec(...)
diff --git a/webrtc/modules/audio_coding/codecs/cng/webrtc_cng.c b/webrtc/modules/audio_coding/codecs/cng/webrtc_cng.c
index 1f6974a..a0c166a 100644
--- a/webrtc/modules/audio_coding/codecs/cng/webrtc_cng.c
+++ b/webrtc/modules/audio_coding/codecs/cng/webrtc_cng.c
@@ -35,7 +35,7 @@
 } WebRtcCngDecoder;
 
 typedef struct WebRtcCngEncoder_ {
-  int16_t enc_nrOfCoefs;
+  size_t enc_nrOfCoefs;
   int enc_sampfreq;
   int16_t enc_interval;
   int16_t enc_msSinceSID;
@@ -228,8 +228,8 @@
  *                      -1 - Error
  */
 int WebRtcCng_Encode(CNG_enc_inst* cng_inst, int16_t* speech,
-                     int16_t nrOfSamples, uint8_t* SIDdata,
-                     int16_t* bytesOut, int16_t forceSID) {
+                     size_t nrOfSamples, uint8_t* SIDdata,
+                     size_t* bytesOut, int16_t forceSID) {
   WebRtcCngEncoder* inst = (WebRtcCngEncoder*) cng_inst;
 
   int16_t arCoefs[WEBRTC_CNG_MAX_LPC_ORDER + 1];
@@ -240,10 +240,11 @@
   int16_t ReflBetaComp = 13107;  /* 0.4 in q15. */
   int32_t outEnergy;
   int outShifts;
-  int i, stab;
+  size_t i;
+  int stab;
   int acorrScale;
-  int index;
-  int16_t ind, factor;
+  size_t index;
+  size_t ind, factor;
   int32_t* bptr;
   int32_t blo, bhi;
   int16_t negate;
@@ -281,7 +282,7 @@
       outShifts--;
     }
   }
-  outEnergy = WebRtcSpl_DivW32W16(outEnergy, factor);
+  outEnergy = WebRtcSpl_DivW32W16(outEnergy, (int16_t)factor);
 
   if (outEnergy > 1) {
     /* Create Hanning Window. */
@@ -390,7 +391,7 @@
 
     inst->enc_msSinceSID +=
         (int16_t)((1000 * nrOfSamples) / inst->enc_sampfreq);
-    return inst->enc_nrOfCoefs + 1;
+    return (int)(inst->enc_nrOfCoefs + 1);
   } else {
     inst->enc_msSinceSID +=
         (int16_t)((1000 * nrOfSamples) / inst->enc_sampfreq);
@@ -475,10 +476,10 @@
  *                       -1 - Error
  */
 int16_t WebRtcCng_Generate(CNG_dec_inst* cng_inst, int16_t* outData,
-                           int16_t nrOfSamples, int16_t new_period) {
+                           size_t nrOfSamples, int16_t new_period) {
   WebRtcCngDecoder* inst = (WebRtcCngDecoder*) cng_inst;
 
-  int i;
+  size_t i;
   int16_t excitation[WEBRTC_CNG_MAX_OUTSIZE_ORDER];
   int16_t low[WEBRTC_CNG_MAX_OUTSIZE_ORDER];
   int16_t lpPoly[WEBRTC_CNG_MAX_LPC_ORDER + 1];
diff --git a/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc b/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc
index 905a715..ba5959d 100644
--- a/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc
+++ b/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc
@@ -37,7 +37,8 @@
     : sample_rate_hz_(sample_rate_hz),
       num_channels_(config.num_channels),
       payload_type_(config.payload_type),
-      num_10ms_frames_per_packet_(config.frame_size_ms / 10),
+      num_10ms_frames_per_packet_(
+          static_cast<size_t>(config.frame_size_ms / 10)),
       full_frame_samples_(NumSamplesPerFrame(config.num_channels,
                                              config.frame_size_ms,
                                              sample_rate_hz_)),
@@ -63,11 +64,11 @@
   return full_frame_samples_ * BytesPerSample();
 }
 
-int AudioEncoderPcm::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderPcm::Num10MsFramesInNextPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
-int AudioEncoderPcm::Max10MsFramesInAPacket() const {
+size_t AudioEncoderPcm::Max10MsFramesInAPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
@@ -95,27 +96,26 @@
   EncodedInfo info;
   info.encoded_timestamp = first_timestamp_in_buffer_;
   info.payload_type = payload_type_;
-  int16_t ret = EncodeCall(&speech_buffer_[0], full_frame_samples_, encoded);
-  CHECK_GE(ret, 0);
-  info.encoded_bytes = static_cast<size_t>(ret);
+  info.encoded_bytes =
+      EncodeCall(&speech_buffer_[0], full_frame_samples_, encoded);
   speech_buffer_.clear();
   return info;
 }
 
-int16_t AudioEncoderPcmA::EncodeCall(const int16_t* audio,
-                                     size_t input_len,
-                                     uint8_t* encoded) {
-  return WebRtcG711_EncodeA(audio, static_cast<int16_t>(input_len), encoded);
+size_t AudioEncoderPcmA::EncodeCall(const int16_t* audio,
+                                    size_t input_len,
+                                    uint8_t* encoded) {
+  return WebRtcG711_EncodeA(audio, input_len, encoded);
 }
 
 int AudioEncoderPcmA::BytesPerSample() const {
   return 1;
 }
 
-int16_t AudioEncoderPcmU::EncodeCall(const int16_t* audio,
-                                     size_t input_len,
-                                     uint8_t* encoded) {
-  return WebRtcG711_EncodeU(audio, static_cast<int16_t>(input_len), encoded);
+size_t AudioEncoderPcmU::EncodeCall(const int16_t* audio,
+                                    size_t input_len,
+                                    uint8_t* encoded) {
+  return WebRtcG711_EncodeU(audio, input_len, encoded);
 }
 
 int AudioEncoderPcmU::BytesPerSample() const {
diff --git a/webrtc/modules/audio_coding/codecs/g711/g711_interface.c b/webrtc/modules/audio_coding/codecs/g711/g711_interface.c
index b579520..5b96a9c 100644
--- a/webrtc/modules/audio_coding/codecs/g711/g711_interface.c
+++ b/webrtc/modules/audio_coding/codecs/g711/g711_interface.c
@@ -12,40 +12,40 @@
 #include "g711_interface.h"
 #include "webrtc/typedefs.h"
 
-int16_t WebRtcG711_EncodeA(const int16_t* speechIn,
-                           int16_t len,
-                           uint8_t* encoded) {
-  int n;
+size_t WebRtcG711_EncodeA(const int16_t* speechIn,
+                          size_t len,
+                          uint8_t* encoded) {
+  size_t n;
   for (n = 0; n < len; n++)
     encoded[n] = linear_to_alaw(speechIn[n]);
   return len;
 }
 
-int16_t WebRtcG711_EncodeU(const int16_t* speechIn,
-                           int16_t len,
-                           uint8_t* encoded) {
-  int n;
+size_t WebRtcG711_EncodeU(const int16_t* speechIn,
+                          size_t len,
+                          uint8_t* encoded) {
+  size_t n;
   for (n = 0; n < len; n++)
     encoded[n] = linear_to_ulaw(speechIn[n]);
   return len;
 }
 
-int16_t WebRtcG711_DecodeA(const uint8_t* encoded,
-                           int16_t len,
-                           int16_t* decoded,
-                           int16_t* speechType) {
-  int n;
+size_t WebRtcG711_DecodeA(const uint8_t* encoded,
+                          size_t len,
+                          int16_t* decoded,
+                          int16_t* speechType) {
+  size_t n;
   for (n = 0; n < len; n++)
     decoded[n] = alaw_to_linear(encoded[n]);
   *speechType = 1;
   return len;
 }
 
-int16_t WebRtcG711_DecodeU(const uint8_t* encoded,
-                           int16_t len,
-                           int16_t* decoded,
-                           int16_t* speechType) {
-  int n;
+size_t WebRtcG711_DecodeU(const uint8_t* encoded,
+                          size_t len,
+                          int16_t* decoded,
+                          int16_t* speechType) {
+  size_t n;
   for (n = 0; n < len; n++)
     decoded[n] = ulaw_to_linear(encoded[n]);
   *speechType = 1;
diff --git a/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h b/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h
index c869037..7d45f3f 100644
--- a/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h
+++ b/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h
@@ -39,8 +39,8 @@
   int SampleRateHz() const override;
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   EncodedInfo EncodeInternal(uint32_t rtp_timestamp,
                              const int16_t* audio,
@@ -50,9 +50,9 @@
  protected:
   AudioEncoderPcm(const Config& config, int sample_rate_hz);
 
-  virtual int16_t EncodeCall(const int16_t* audio,
-                             size_t input_len,
-                             uint8_t* encoded) = 0;
+  virtual size_t EncodeCall(const int16_t* audio,
+                            size_t input_len,
+                            uint8_t* encoded) = 0;
 
   virtual int BytesPerSample() const = 0;
 
@@ -60,7 +60,7 @@
   const int sample_rate_hz_;
   const int num_channels_;
   const int payload_type_;
-  const int num_10ms_frames_per_packet_;
+  const size_t num_10ms_frames_per_packet_;
   const size_t full_frame_samples_;
   std::vector<int16_t> speech_buffer_;
   uint32_t first_timestamp_in_buffer_;
@@ -76,9 +76,9 @@
       : AudioEncoderPcm(config, kSampleRateHz) {}
 
  protected:
-  int16_t EncodeCall(const int16_t* audio,
-                     size_t input_len,
-                     uint8_t* encoded) override;
+  size_t EncodeCall(const int16_t* audio,
+                    size_t input_len,
+                    uint8_t* encoded) override;
 
   int BytesPerSample() const override;
 
@@ -96,9 +96,9 @@
       : AudioEncoderPcm(config, kSampleRateHz) {}
 
  protected:
-  int16_t EncodeCall(const int16_t* audio,
-                     size_t input_len,
-                     uint8_t* encoded) override;
+  size_t EncodeCall(const int16_t* audio,
+                    size_t input_len,
+                    uint8_t* encoded) override;
 
   int BytesPerSample() const override;
 
diff --git a/webrtc/modules/audio_coding/codecs/g711/include/g711_interface.h b/webrtc/modules/audio_coding/codecs/g711/include/g711_interface.h
index 5c71e98..9d67222 100644
--- a/webrtc/modules/audio_coding/codecs/g711/include/g711_interface.h
+++ b/webrtc/modules/audio_coding/codecs/g711/include/g711_interface.h
@@ -38,9 +38,9 @@
  *                             Always equal to len input parameter.
  */
 
-int16_t WebRtcG711_EncodeA(const int16_t* speechIn,
-                           int16_t len,
-                           uint8_t* encoded);
+size_t WebRtcG711_EncodeA(const int16_t* speechIn,
+                          size_t len,
+                          uint8_t* encoded);
 
 /****************************************************************************
  * WebRtcG711_EncodeU(...)
@@ -59,9 +59,9 @@
  *                             Always equal to len input parameter.
  */
 
-int16_t WebRtcG711_EncodeU(const int16_t* speechIn,
-                           int16_t len,
-                           uint8_t* encoded);
+size_t WebRtcG711_EncodeU(const int16_t* speechIn,
+                          size_t len,
+                          uint8_t* encoded);
 
 /****************************************************************************
  * WebRtcG711_DecodeA(...)
@@ -82,10 +82,10 @@
  *                             -1 - Error
  */
 
-int16_t WebRtcG711_DecodeA(const uint8_t* encoded,
-                           int16_t len,
-                           int16_t* decoded,
-                           int16_t* speechType);
+size_t WebRtcG711_DecodeA(const uint8_t* encoded,
+                          size_t len,
+                          int16_t* decoded,
+                          int16_t* speechType);
 
 /****************************************************************************
  * WebRtcG711_DecodeU(...)
@@ -106,10 +106,10 @@
  *                             -1 - Error
  */
 
-int16_t WebRtcG711_DecodeU(const uint8_t* encoded,
-                           int16_t len,
-                           int16_t* decoded,
-                           int16_t* speechType);
+size_t WebRtcG711_DecodeU(const uint8_t* encoded,
+                          size_t len,
+                          int16_t* decoded,
+                          int16_t* speechType);
 
 /**********************************************************************
 * WebRtcG711_Version(...)
diff --git a/webrtc/modules/audio_coding/codecs/g711/test/testG711.cc b/webrtc/modules/audio_coding/codecs/g711/test/testG711.cc
index 49c671c..94248f7 100644
--- a/webrtc/modules/audio_coding/codecs/g711/test/testG711.cc
+++ b/webrtc/modules/audio_coding/codecs/g711/test/testG711.cc
@@ -24,8 +24,8 @@
 #define CLOCKS_PER_SEC_G711 1000
 
 /* function for reading audio data from PCM file */
-bool readframe(int16_t* data, FILE* inp, int length) {
-  short rlen = (short) fread(data, sizeof(int16_t), length, inp);
+bool readframe(int16_t* data, FILE* inp, size_t length) {
+  size_t rlen = fread(data, sizeof(int16_t), length, inp);
   if (rlen >= length)
     return false;
   memset(data + rlen, 0, (length - rlen) * sizeof(int16_t));
@@ -40,16 +40,14 @@
   int framecnt;
   bool endfile;
 
-  int16_t framelength = 80;
-
-  int err;
+  size_t framelength = 80;
 
   /* Runtime statistics */
   double starttime;
   double runtime;
   double length_file;
 
-  int16_t stream_len = 0;
+  size_t stream_len = 0;
   int16_t shortdata[480];
   int16_t decoded[480];
   uint8_t streamdata[1000];
@@ -80,11 +78,12 @@
   printf("-----------------------------------\n");
   printf("G.711 version: %s\n\n", versionNumber);
   /* Get frame length */
-  framelength = atoi(argv[1]);
-  if (framelength < 0) {
-    printf("  G.711: Invalid framelength %d.\n", framelength);
-    exit(1);
+  int framelength_int = atoi(argv[1]);
+  if (framelength_int < 0) {
+      printf("  G.722: Invalid framelength %d.\n", framelength_int);
+      exit(1);
   }
+  framelength = static_cast<size_t>(framelength_int);
 
   /* Get compression law */
   strcpy(law, argv[2]);
@@ -130,36 +129,29 @@
       if (argc == 6) {
         /* Write bits to file */
         if (fwrite(streamdata, sizeof(unsigned char), stream_len, bitp) !=
-            static_cast<size_t>(stream_len)) {
+            stream_len) {
           return -1;
         }
       }
-      err = WebRtcG711_DecodeA(streamdata, stream_len, decoded,
-                               speechType);
+      WebRtcG711_DecodeA(streamdata, stream_len, decoded, speechType);
     } else if (!strcmp(law, "u")) {
       /* u-law encoding */
       stream_len = WebRtcG711_EncodeU(shortdata, framelength, streamdata);
       if (argc == 6) {
         /* Write bits to file */
         if (fwrite(streamdata, sizeof(unsigned char), stream_len, bitp) !=
-            static_cast<size_t>(stream_len)) {
+            stream_len) {
           return -1;
         }
       }
-      err = WebRtcG711_DecodeU(streamdata, stream_len, decoded, speechType);
+      WebRtcG711_DecodeU(streamdata, stream_len, decoded, speechType);
     } else {
       printf("Wrong law mode\n");
       exit(1);
     }
-    if (stream_len < 0 || err < 0) {
-      /* exit if returned with error */
-      printf("Error in encoder/decoder\n");
-    } else {
-      /* Write coded speech to file */
-      if (fwrite(decoded, sizeof(short), framelength, outp) !=
-          static_cast<size_t>(framelength)) {
-        return -1;
-      }
+    /* Write coded speech to file */
+    if (fwrite(decoded, sizeof(short), framelength, outp) != framelength) {
+      return -1;
     }
   }
 
diff --git a/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc b/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
index a0d1720..9eb7a11 100644
--- a/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
+++ b/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
@@ -19,7 +19,7 @@
 
 namespace {
 
-const int kSampleRateHz = 16000;
+const size_t kSampleRateHz = 16000;
 
 }  // namespace
 
@@ -40,13 +40,14 @@
 AudioEncoderG722::AudioEncoderG722(const Config& config)
     : num_channels_(config.num_channels),
       payload_type_(config.payload_type),
-      num_10ms_frames_per_packet_(config.frame_size_ms / 10),
+      num_10ms_frames_per_packet_(
+          static_cast<size_t>(config.frame_size_ms / 10)),
       num_10ms_frames_buffered_(0),
       first_timestamp_in_buffer_(0),
       encoders_(new EncoderState[num_channels_]),
       interleave_buffer_(2 * num_channels_) {
   CHECK(config.IsOk());
-  const int samples_per_channel =
+  const size_t samples_per_channel =
       kSampleRateHz / 100 * num_10ms_frames_per_packet_;
   for (int i = 0; i < num_channels_; ++i) {
     encoders_[i].speech_buffer.reset(new int16_t[samples_per_channel]);
@@ -71,14 +72,14 @@
 }
 
 size_t AudioEncoderG722::MaxEncodedBytes() const {
-  return static_cast<size_t>(SamplesPerChannel() / 2 * num_channels_);
+  return SamplesPerChannel() / 2 * num_channels_;
 }
 
-int AudioEncoderG722::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderG722::Num10MsFramesInNextPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
-int AudioEncoderG722::Max10MsFramesInAPacket() const {
+size_t AudioEncoderG722::Max10MsFramesInAPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
@@ -98,8 +99,8 @@
     first_timestamp_in_buffer_ = rtp_timestamp;
 
   // Deinterleave samples and save them in each channel's buffer.
-  const int start = kSampleRateHz / 100 * num_10ms_frames_buffered_;
-  for (int i = 0; i < kSampleRateHz / 100; ++i)
+  const size_t start = kSampleRateHz / 100 * num_10ms_frames_buffered_;
+  for (size_t i = 0; i < kSampleRateHz / 100; ++i)
     for (int j = 0; j < num_channels_; ++j)
       encoders_[j].speech_buffer[start + i] = audio[i * num_channels_ + j];
 
@@ -111,19 +112,18 @@
   // Encode each channel separately.
   CHECK_EQ(num_10ms_frames_buffered_, num_10ms_frames_per_packet_);
   num_10ms_frames_buffered_ = 0;
-  const int samples_per_channel = SamplesPerChannel();
+  const size_t samples_per_channel = SamplesPerChannel();
   for (int i = 0; i < num_channels_; ++i) {
-    const int encoded = WebRtcG722_Encode(
+    const size_t encoded = WebRtcG722_Encode(
         encoders_[i].encoder, encoders_[i].speech_buffer.get(),
         samples_per_channel, encoders_[i].encoded_buffer.data<uint8_t>());
-    CHECK_GE(encoded, 0);
     CHECK_EQ(encoded, samples_per_channel / 2);
   }
 
   // Interleave the encoded bytes of the different channels. Each separate
   // channel and the interleaved stream encodes two samples per byte, most
   // significant half first.
-  for (int i = 0; i < samples_per_channel / 2; ++i) {
+  for (size_t i = 0; i < samples_per_channel / 2; ++i) {
     for (int j = 0; j < num_channels_; ++j) {
       uint8_t two_samples = encoders_[j].encoded_buffer.data()[i];
       interleave_buffer_.data()[j] = two_samples >> 4;
@@ -140,7 +140,7 @@
   return info;
 }
 
-int AudioEncoderG722::SamplesPerChannel() const {
+size_t AudioEncoderG722::SamplesPerChannel() const {
   return kSampleRateHz / 100 * num_10ms_frames_per_packet_;
 }
 
diff --git a/webrtc/modules/audio_coding/codecs/g722/g722_decode.c b/webrtc/modules/audio_coding/codecs/g722/g722_decode.c
index ee0eb89..8fdeec1 100644
--- a/webrtc/modules/audio_coding/codecs/g722/g722_decode.c
+++ b/webrtc/modules/audio_coding/codecs/g722/g722_decode.c
@@ -188,8 +188,8 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-int WebRtc_g722_decode(G722DecoderState *s, int16_t amp[],
-                       const uint8_t g722_data[], int len)
+size_t WebRtc_g722_decode(G722DecoderState *s, int16_t amp[],
+                          const uint8_t g722_data[], size_t len)
 {
     static const int wl[8] = {-60, -30, 58, 172, 334, 538, 1198, 3042 };
     static const int rl42[16] = {0, 7, 6, 5, 4, 3, 2, 1,
@@ -258,9 +258,9 @@
     int wd2;
     int wd3;
     int code;
-    int outlen;
+    size_t outlen;
     int i;
-    int j;
+    size_t j;
 
     outlen = 0;
     rhigh = 0;
diff --git a/webrtc/modules/audio_coding/codecs/g722/g722_enc_dec.h b/webrtc/modules/audio_coding/codecs/g722/g722_enc_dec.h
index 5cd1b2d..7db4895 100644
--- a/webrtc/modules/audio_coding/codecs/g722/g722_enc_dec.h
+++ b/webrtc/modules/audio_coding/codecs/g722/g722_enc_dec.h
@@ -139,19 +139,19 @@
                                           int rate,
                                           int options);
 int WebRtc_g722_encode_release(G722EncoderState *s);
-int WebRtc_g722_encode(G722EncoderState *s,
-                       uint8_t g722_data[],
-                       const int16_t amp[],
-                       int len);
+size_t WebRtc_g722_encode(G722EncoderState *s,
+                          uint8_t g722_data[],
+                          const int16_t amp[],
+                          size_t len);
 
 G722DecoderState* WebRtc_g722_decode_init(G722DecoderState* s,
                                           int rate,
                                           int options);
 int WebRtc_g722_decode_release(G722DecoderState *s);
-int WebRtc_g722_decode(G722DecoderState *s,
-                       int16_t amp[],
-                       const uint8_t g722_data[],
-                       int len);
+size_t WebRtc_g722_decode(G722DecoderState *s,
+                          int16_t amp[],
+                          const uint8_t g722_data[],
+                          size_t len);
 
 #ifdef __cplusplus
 }
diff --git a/webrtc/modules/audio_coding/codecs/g722/g722_encode.c b/webrtc/modules/audio_coding/codecs/g722/g722_encode.c
index bed2d21..01ec127 100644
--- a/webrtc/modules/audio_coding/codecs/g722/g722_encode.c
+++ b/webrtc/modules/audio_coding/codecs/g722/g722_encode.c
@@ -202,8 +202,8 @@
 }
 #endif
 
-int WebRtc_g722_encode(G722EncoderState *s, uint8_t g722_data[],
-                       const int16_t amp[], int len)
+size_t WebRtc_g722_encode(G722EncoderState *s, uint8_t g722_data[],
+                          const int16_t amp[], size_t len)
 {
     static const int q6[32] =
     {
@@ -275,11 +275,11 @@
     int eh;
     int mih;
     int i;
-    int j;
+    size_t j;
     /* Low and high band PCM from the QMF */
     int xlow;
     int xhigh;
-    int g722_bytes;
+    size_t g722_bytes;
     /* Even and odd tap accumulators */
     int sumeven;
     int sumodd;
diff --git a/webrtc/modules/audio_coding/codecs/g722/g722_interface.c b/webrtc/modules/audio_coding/codecs/g722/g722_interface.c
index 1edf58d..f6b9842 100644
--- a/webrtc/modules/audio_coding/codecs/g722/g722_interface.c
+++ b/webrtc/modules/audio_coding/codecs/g722/g722_interface.c
@@ -45,10 +45,10 @@
     return WebRtc_g722_encode_release((G722EncoderState*) G722enc_inst);
 }
 
-int16_t WebRtcG722_Encode(G722EncInst *G722enc_inst,
-                          const int16_t* speechIn,
-                          int16_t len,
-                          uint8_t* encoded)
+size_t WebRtcG722_Encode(G722EncInst *G722enc_inst,
+                         const int16_t* speechIn,
+                         size_t len,
+                         uint8_t* encoded)
 {
     unsigned char *codechar = (unsigned char*) encoded;
     // Encode the input speech vector
@@ -85,11 +85,11 @@
     return WebRtc_g722_decode_release((G722DecoderState*) G722dec_inst);
 }
 
-int16_t WebRtcG722_Decode(G722DecInst *G722dec_inst,
-                          const uint8_t *encoded,
-                          int16_t len,
-                          int16_t *decoded,
-                          int16_t *speechType)
+size_t WebRtcG722_Decode(G722DecInst *G722dec_inst,
+                         const uint8_t *encoded,
+                         size_t len,
+                         int16_t *decoded,
+                         int16_t *speechType)
 {
     // Decode the G.722 encoder stream
     *speechType=G722_WEBRTC_SPEECH;
diff --git a/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h b/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h
index 9b57fbe..1f36fac 100644
--- a/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h
+++ b/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h
@@ -37,8 +37,8 @@
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
   int RtpTimestampRateHz() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   EncodedInfo EncodeInternal(uint32_t rtp_timestamp,
                              const int16_t* audio,
@@ -55,12 +55,12 @@
     ~EncoderState();
   };
 
-  int SamplesPerChannel() const;
+  size_t SamplesPerChannel() const;
 
   const int num_channels_;
   const int payload_type_;
-  const int num_10ms_frames_per_packet_;
-  int num_10ms_frames_buffered_;
+  const size_t num_10ms_frames_per_packet_;
+  size_t num_10ms_frames_buffered_;
   uint32_t first_timestamp_in_buffer_;
   const rtc::scoped_ptr<EncoderState[]> encoders_;
   rtc::Buffer interleave_buffer_;
diff --git a/webrtc/modules/audio_coding/codecs/g722/include/g722_interface.h b/webrtc/modules/audio_coding/codecs/g722/include/g722_interface.h
index 46ff3b0..fa4a48c 100644
--- a/webrtc/modules/audio_coding/codecs/g722/include/g722_interface.h
+++ b/webrtc/modules/audio_coding/codecs/g722/include/g722_interface.h
@@ -94,10 +94,10 @@
  * Return value               : Length (in bytes) of coded data
  */
 
-int16_t WebRtcG722_Encode(G722EncInst* G722enc_inst,
-                          const int16_t* speechIn,
-                          int16_t len,
-                          uint8_t* encoded);
+size_t WebRtcG722_Encode(G722EncInst* G722enc_inst,
+                         const int16_t* speechIn,
+                         size_t len,
+                         uint8_t* encoded);
 
 
 /****************************************************************************
@@ -162,15 +162,14 @@
  *      - speechType        : 1 normal, 2 CNG (Since G722 does not have its own
  *                            DTX/CNG scheme it should always return 1)
  *
- * Return value             : >0 - Samples in decoded vector
- *                            -1 - Error
+ * Return value             : Samples in decoded vector
  */
 
-int16_t WebRtcG722_Decode(G722DecInst *G722dec_inst,
-                          const uint8_t* encoded,
-                          int16_t len,
-                          int16_t *decoded,
-                          int16_t *speechType);
+size_t WebRtcG722_Decode(G722DecInst *G722dec_inst,
+                         const uint8_t* encoded,
+                         size_t len,
+                         int16_t *decoded,
+                         int16_t *speechType);
 
 /****************************************************************************
  * WebRtcG722_Version(...)
diff --git a/webrtc/modules/audio_coding/codecs/g722/test/testG722.cc b/webrtc/modules/audio_coding/codecs/g722/test/testG722.cc
index 6a6f03c..b473c13 100644
--- a/webrtc/modules/audio_coding/codecs/g722/test/testG722.cc
+++ b/webrtc/modules/audio_coding/codecs/g722/test/testG722.cc
@@ -29,9 +29,9 @@
 typedef struct WebRtcG722DecInst    G722DecInst;
 
 /* function for reading audio data from PCM file */
-bool readframe(int16_t *data, FILE *inp, int length)
+bool readframe(int16_t *data, FILE *inp, size_t length)
 {
-    short rlen = (short)fread(data, sizeof(int16_t), length, inp);
+    size_t rlen = fread(data, sizeof(int16_t), length, inp);
     if (rlen >= length)
       return false;
     memset(data + rlen, 0, (length - rlen) * sizeof(int16_t));
@@ -45,17 +45,16 @@
 
     int framecnt;
     bool endfile;
-    int16_t framelength = 160;
+    size_t framelength = 160;
     G722EncInst *G722enc_inst;
     G722DecInst *G722dec_inst;
-    int err;
 
     /* Runtime statistics */
     double starttime;
     double runtime = 0;
     double length_file;
 
-    int16_t stream_len = 0;
+    size_t stream_len = 0;
     int16_t shortdata[960];
     int16_t decoded[960];
     uint8_t streamdata[80 * 6];
@@ -78,11 +77,12 @@
     }
 
     /* Get frame length */
-    framelength = atoi(argv[1]);
-    if (framelength < 0) {
-        printf("  G.722: Invalid framelength %d.\n", framelength);
+    int framelength_int = atoi(argv[1]);
+    if (framelength_int < 0) {
+        printf("  G.722: Invalid framelength %d.\n", framelength_int);
         exit(1);
     }
+    framelength = static_cast<size_t>(framelength_int);
 
     /* Get Input and Output files */
     sscanf(argv[2], "%s", inname);
@@ -124,26 +124,21 @@
 
         /* G.722 encoding + decoding */
         stream_len = WebRtcG722_Encode((G722EncInst *)G722enc_inst, shortdata, framelength, streamdata);
-        err = WebRtcG722_Decode(G722dec_inst, streamdata, stream_len, decoded,
-                                speechType);
+        WebRtcG722_Decode(G722dec_inst, streamdata, stream_len, decoded,
+                          speechType);
 
         /* Stop clock after call to encoder and decoder */
         runtime += (double)((clock()/(double)CLOCKS_PER_SEC_G722)-starttime);
 
-        if (stream_len < 0 || err < 0) {
-            /* exit if returned with error */
-            printf("Error in encoder/decoder\n");
-        } else {
-          /* Write coded bits to file */
-          if (fwrite(streamdata, sizeof(short), stream_len / 2, outbitp) !=
-              static_cast<size_t>(stream_len / 2)) {
-            return -1;
-          }
-          /* Write coded speech to file */
-          if (fwrite(decoded, sizeof(short), framelength, outp) !=
-              static_cast<size_t>(framelength)) {
-            return -1;
-          }
+        /* Write coded bits to file */
+        if (fwrite(streamdata, sizeof(short), stream_len / 2, outbitp) !=
+            stream_len / 2) {
+          return -1;
+        }
+        /* Write coded speech to file */
+        if (fwrite(decoded, sizeof(short), framelength, outp) !=
+            framelength) {
+          return -1;
         }
     }
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/abs_quant.c b/webrtc/modules/audio_coding/codecs/ilbc/abs_quant.c
index 75fc970..263749a 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/abs_quant.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/abs_quant.c
@@ -36,7 +36,7 @@
     int16_t *weightDenum   /* (i) denominator of synthesis filter */
                             ) {
   int16_t *syntOut;
-  int16_t quantLen[2];
+  size_t quantLen[2];
 
   /* Stack based */
   int16_t syntOutBuf[LPC_FILTERORDER+STATE_SHORT_LEN_30MS];
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.c b/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.c
index d26fb5d..4b76453 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.c
@@ -21,9 +21,9 @@
 #include "sort_sq.h"
 
 void WebRtcIlbcfix_AbsQuantLoop(int16_t *syntOutIN, int16_t *in_weightedIN,
-                                int16_t *weightDenumIN, int16_t *quantLenIN,
+                                int16_t *weightDenumIN, size_t *quantLenIN,
                                 int16_t *idxVecIN ) {
-  int k1, k2;
+  size_t k1, k2;
   int16_t index;
   int32_t toQW32;
   int32_t toQ32;
@@ -33,7 +33,7 @@
   int16_t *syntOut   = syntOutIN;
   int16_t *in_weighted  = in_weightedIN;
   int16_t *weightDenum  = weightDenumIN;
-  int16_t *quantLen  = quantLenIN;
+  size_t *quantLen  = quantLenIN;
   int16_t *idxVec   = idxVecIN;
 
   for(k1=0;k1<2;k1++) {
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.h b/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.h
index 50c6ffe..c8bf675 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/abs_quant_loop.h
@@ -27,7 +27,7 @@
  *---------------------------------------------------------------*/
 
 void WebRtcIlbcfix_AbsQuantLoop(int16_t *syntOutIN, int16_t *in_weightedIN,
-                                int16_t *weightDenumIN, int16_t *quantLenIN,
+                                int16_t *weightDenumIN, size_t *quantLenIN,
                                 int16_t *idxVecIN);
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc b/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc
index 8dc9bdf..33aba38 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc
+++ b/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc
@@ -24,15 +24,20 @@
 
 }  // namespace
 
+// static
+const size_t AudioEncoderIlbc::kMaxSamplesPerPacket;
+
 bool AudioEncoderIlbc::Config::IsOk() const {
   return (frame_size_ms == 20 || frame_size_ms == 30 || frame_size_ms == 40 ||
           frame_size_ms == 60) &&
-      (kSampleRateHz / 100 * (frame_size_ms / 10)) <= kMaxSamplesPerPacket;
+      static_cast<size_t>(kSampleRateHz / 100 * (frame_size_ms / 10)) <=
+          kMaxSamplesPerPacket;
 }
 
 AudioEncoderIlbc::AudioEncoderIlbc(const Config& config)
     : payload_type_(config.payload_type),
-      num_10ms_frames_per_packet_(config.frame_size_ms / 10),
+      num_10ms_frames_per_packet_(
+          static_cast<size_t>(config.frame_size_ms / 10)),
       num_10ms_frames_buffered_(0) {
   CHECK(config.IsOk());
   CHECK_EQ(0, WebRtcIlbcfix_EncoderCreate(&encoder_));
@@ -58,11 +63,11 @@
   return RequiredOutputSizeBytes();
 }
 
-int AudioEncoderIlbc::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderIlbc::Num10MsFramesInNextPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
-int AudioEncoderIlbc::Max10MsFramesInAPacket() const {
+size_t AudioEncoderIlbc::Max10MsFramesInAPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
@@ -111,7 +116,7 @@
       encoded);
   CHECK_GE(output_len, 0);
   EncodedInfo info;
-  info.encoded_bytes = output_len;
+  info.encoded_bytes = static_cast<size_t>(output_len);
   DCHECK_EQ(info.encoded_bytes, RequiredOutputSizeBytes());
   info.encoded_timestamp = first_timestamp_in_buffer_;
   info.payload_type = payload_type_;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.c b/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.c
index c24b4a6..1a3735f 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.c
@@ -28,14 +28,14 @@
     int32_t *crossDot,  /* (o) The cross correlation between
                                  the target and the Augmented
                                  vector */
-    int16_t low,    /* (i) Lag to start from (typically
+    size_t low,    /* (i) Lag to start from (typically
                              20) */
-    int16_t high,   /* (i) Lag to end at (typically 39) */
+    size_t high,   /* (i) Lag to end at (typically 39) */
     int scale)   /* (i) Scale factor to use for
                               the crossDot */
 {
-  int lagcount;
-  int16_t ilow;
+  size_t lagcount;
+  size_t ilow;
   int16_t *targetPtr;
   int32_t *crossDotPtr;
   int16_t *iSPtr=interpSamples;
@@ -46,7 +46,7 @@
   crossDotPtr=crossDot;
   for (lagcount=low; lagcount<=high; lagcount++) {
 
-    ilow = (int16_t) (lagcount-4);
+    ilow = lagcount - 4;
 
     /* Compute dot product for the first (lagcount-4) samples */
     (*crossDotPtr) = WebRtcSpl_DotProductWithScale(target, buffer-lagcount, ilow, scale);
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.h b/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.h
index a0435c4..c5c4088 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/augmented_cb_corr.h
@@ -33,9 +33,9 @@
     int32_t *crossDot,  /* (o) The cross correlation between
                                            the target and the Augmented
                                            vector */
-    int16_t low,    /* (i) Lag to start from (typically
+    size_t low,    /* (i) Lag to start from (typically
                                                    20) */
-    int16_t high,   /* (i) Lag to end at (typically 39 */
+    size_t high,   /* (i) Lag to end at (typically 39 */
     int scale);   /* (i) Scale factor to use for the crossDot */
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.c
index 9d11b83..cacf3ac 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.c
@@ -29,10 +29,10 @@
     int16_t *index,   /* (i) Codebook indices */
     int16_t *gain_index,  /* (i) Gain quantization indices */
     int16_t *mem,   /* (i) Buffer for codevector construction */
-    int16_t lMem,   /* (i) Length of buffer */
-    int16_t veclen   /* (i) Length of vector */
+    size_t lMem,   /* (i) Length of buffer */
+    size_t veclen   /* (i) Length of vector */
                                ){
-  int j;
+  size_t j;
   int16_t gain[CB_NSTAGES];
   /* Stack based */
   int16_t cbvec0[SUBL];
@@ -50,9 +50,9 @@
   /* codebook vector construction and construction of total vector */
 
   /* Stack based */
-  WebRtcIlbcfix_GetCbVec(cbvec0, mem, index[0], lMem, veclen);
-  WebRtcIlbcfix_GetCbVec(cbvec1, mem, index[1], lMem, veclen);
-  WebRtcIlbcfix_GetCbVec(cbvec2, mem, index[2], lMem, veclen);
+  WebRtcIlbcfix_GetCbVec(cbvec0, mem, (size_t)index[0], lMem, veclen);
+  WebRtcIlbcfix_GetCbVec(cbvec1, mem, (size_t)index[1], lMem, veclen);
+  WebRtcIlbcfix_GetCbVec(cbvec2, mem, (size_t)index[2], lMem, veclen);
 
   gainPtr = &gain[0];
   for (j=0;j<veclen;j++) {
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.h
index 2e9080f..b676ef9 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_construct.h
@@ -30,8 +30,8 @@
     int16_t *index,   /* (i) Codebook indices */
     int16_t *gain_index,  /* (i) Gain quantization indices */
     int16_t *mem,   /* (i) Buffer for codevector construction */
-    int16_t lMem,   /* (i) Length of buffer */
-    int16_t veclen   /* (i) Length of vector */
+    size_t lMem,   /* (i) Length of buffer */
+    size_t veclen   /* (i) Length of vector */
                                );
 
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.c
index 1b8c506..6ad2f8e 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.c
@@ -27,15 +27,15 @@
  *----------------------------------------------------------------*/
 
 void WebRtcIlbcfix_CbMemEnergy(
-    int16_t range,
+    size_t range,
     int16_t *CB,   /* (i) The CB memory (1:st section) */
     int16_t *filteredCB,  /* (i) The filtered CB memory (2:nd section) */
-    int16_t lMem,   /* (i) Length of the CB memory */
-    int16_t lTarget,   /* (i) Length of the target vector */
+    size_t lMem,   /* (i) Length of the CB memory */
+    size_t lTarget,   /* (i) Length of the target vector */
     int16_t *energyW16,  /* (o) Energy in the CB vectors */
     int16_t *energyShifts, /* (o) Shift value of the energy */
     int scale,   /* (i) The scaling of all energy values */
-    int16_t base_size  /* (i) Index to where energy values should be stored */
+    size_t base_size  /* (i) Index to where energy values should be stored */
                                ) {
   int16_t *ppi, *ppo, *pp;
   int32_t energy, tmp32;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.h
index 34ff8aa..6da2f43 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy.h
@@ -20,15 +20,15 @@
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_CB_MEM_ENERGY_H_
 
 void WebRtcIlbcfix_CbMemEnergy(
-    int16_t range,
+    size_t range,
     int16_t *CB,   /* (i) The CB memory (1:st section) */
     int16_t *filteredCB,  /* (i) The filtered CB memory (2:nd section) */
-    int16_t lMem,   /* (i) Length of the CB memory */
-    int16_t lTarget,   /* (i) Length of the target vector */
+    size_t lMem,   /* (i) Length of the CB memory */
+    size_t lTarget,   /* (i) Length of the target vector */
     int16_t *energyW16,  /* (o) Energy in the CB vectors */
     int16_t *energyShifts, /* (o) Shift value of the energy */
     int scale,   /* (i) The scaling of all energy values */
-    int16_t base_size  /* (i) Index to where energy values should be stored */
+    size_t base_size  /* (i) Index to where energy values should be stored */
                                );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.c
index 2f3c299..acd6b9c 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.c
@@ -23,13 +23,14 @@
     int16_t *interpSamples, /* (i) The interpolated samples */
     int16_t *CBmem,   /* (i) The CB memory */
     int scale,   /* (i) The scaling of all energy values */
-    int16_t base_size,  /* (i) Index to where energy values should be stored */
+    size_t base_size,  /* (i) Index to where energy values should be stored */
     int16_t *energyW16,  /* (o) Energy in the CB vectors */
     int16_t *energyShifts /* (o) Shift value of the energy */
                                            ){
   int32_t energy, tmp32;
   int16_t *ppe, *pp, *interpSamplesPtr;
-  int16_t *CBmemPtr, lagcount;
+  int16_t *CBmemPtr;
+  size_t lagcount;
   int16_t *enPtr=&energyW16[base_size-20];
   int16_t *enShPtr=&energyShifts[base_size-20];
   int32_t nrjRecursive;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.h
index 46fb2fd..594ba5f 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.h
@@ -23,7 +23,7 @@
     int16_t *interpSamples, /* (i) The interpolated samples */
     int16_t *CBmem,   /* (i) The CB memory */
     int scale,   /* (i) The scaling of all energy values */
-    int16_t base_size,  /* (i) Index to where energy values should be stored */
+    size_t base_size,  /* (i) Index to where energy values should be stored */
     int16_t *energyW16,  /* (o) Energy in the CB vectors */
     int16_t *energyShifts /* (o) Shift value of the energy */
                                            );
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.c
index 481dfba..f2415fe 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.c
@@ -23,16 +23,17 @@
  * sample and the last sample respectively */
 void WebRtcIlbcfix_CbMemEnergyCalc(
     int32_t energy,   /* (i) input start energy */
-    int16_t range,   /* (i) number of iterations */
+    size_t range,   /* (i) number of iterations */
     int16_t *ppi,   /* (i) input pointer 1 */
     int16_t *ppo,   /* (i) input pointer 2 */
     int16_t *energyW16,  /* (o) Energy in the CB vectors */
     int16_t *energyShifts, /* (o) Shift value of the energy */
     int scale,   /* (i) The scaling of all energy values */
-    int16_t base_size  /* (i) Index to where energy values should be stored */
+    size_t base_size  /* (i) Index to where energy values should be stored */
                                    )
 {
-  int16_t j,shft;
+  size_t j;
+  int16_t shft;
   int32_t tmp;
   int16_t *eSh_ptr;
   int16_t *eW16_ptr;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.h
index 7f0cadf..2991869 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.h
@@ -21,13 +21,13 @@
 
 void WebRtcIlbcfix_CbMemEnergyCalc(
     int32_t energy,   /* (i) input start energy */
-    int16_t range,   /* (i) number of iterations */
+    size_t range,   /* (i) number of iterations */
     int16_t *ppi,   /* (i) input pointer 1 */
     int16_t *ppo,   /* (i) input pointer 2 */
     int16_t *energyW16,  /* (o) Energy in the CB vectors */
     int16_t *energyShifts, /* (o) Shift value of the energy */
     int scale,   /* (i) The scaling of all energy values */
-    int16_t base_size  /* (i) Index to where energy values should be stored */
+    size_t base_size  /* (i) Index to where energy values should be stored */
                                    );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_search.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_search.c
index d502cf0..be94951 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_search.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_search.c
@@ -40,29 +40,31 @@
     int16_t *gain_index, /* (o) Gain quantization indices */
     int16_t *intarget, /* (i) Target vector for encoding */
     int16_t *decResidual,/* (i) Decoded residual for codebook construction */
-    int16_t lMem,  /* (i) Length of buffer */
-    int16_t lTarget,  /* (i) Length of vector */
+    size_t lMem,  /* (i) Length of buffer */
+    size_t lTarget,  /* (i) Length of vector */
     int16_t *weightDenum,/* (i) weighting filter coefficients in Q12 */
-    int16_t block  /* (i) the subblock number */
+    size_t block  /* (i) the subblock number */
                             ) {
-  int16_t i, j, stage, range;
+  size_t i, range;
+  int16_t ii, j, stage;
   int16_t *pp;
   int16_t tmp;
   int scale;
   int16_t bits, temp1, temp2;
-  int16_t base_size;
+  size_t base_size;
   int32_t codedEner, targetEner;
   int16_t gains[CB_NSTAGES+1];
   int16_t *cb_vecPtr;
-  int16_t indexOffset, sInd, eInd;
+  size_t indexOffset, sInd, eInd;
   int32_t CritMax=0;
   int16_t shTotMax=WEBRTC_SPL_WORD16_MIN;
-  int16_t bestIndex=0;
+  size_t bestIndex=0;
   int16_t bestGain=0;
-  int16_t indexNew, CritNewSh;
+  size_t indexNew;
+  int16_t CritNewSh;
   int32_t CritNew;
   int32_t *cDotPtr;
-  int16_t noOfZeros;
+  size_t noOfZeros;
   int16_t *gainPtr;
   int32_t t32, tmpW32;
   int16_t *WebRtcIlbcfix_kGainSq5_ptr;
@@ -148,9 +150,9 @@
                                           scale, 20, energyW16, energyShifts);
 
     /* Compute the CB vectors' energies for the second cb section (filtered cb) */
-    WebRtcIlbcfix_CbMemEnergyAugmentation(interpSamplesFilt, cbvectors,
-                                          scale, (int16_t)(base_size + 20),
-                                          energyW16, energyShifts);
+    WebRtcIlbcfix_CbMemEnergyAugmentation(interpSamplesFilt, cbvectors, scale,
+                                          base_size + 20, energyW16,
+                                          energyShifts);
 
     /* Compute the CB vectors' energies and store them in the vector
      * energyW16. Also the corresponding shift values are stored. The
@@ -224,7 +226,7 @@
 
     /* Update the global best index and the corresponding gain */
     WebRtcIlbcfix_CbUpdateBestIndex(
-        CritNew, CritNewSh, (int16_t)(indexNew+indexOffset), cDot[indexNew+indexOffset],
+        CritNew, CritNewSh, indexNew+indexOffset, cDot[indexNew+indexOffset],
         inverseEnergy[indexNew+indexOffset], inverseEnergyShifts[indexNew+indexOffset],
         &CritMax, &shTotMax, &bestIndex, &bestGain);
 
@@ -242,11 +244,8 @@
       i=sInd;
       if (sInd<20) {
         WebRtcIlbcfix_AugmentedCbCorr(target, cbvectors + lMem,
-                                      interpSamplesFilt, cDot,
-                                      (int16_t)(sInd + 20),
-                                      (int16_t)(WEBRTC_SPL_MIN(39,
-                                                               (eInd + 20))),
-                                      scale);
+                                      interpSamplesFilt, cDot, sInd + 20,
+                                      WEBRTC_SPL_MIN(39, (eInd + 20)), scale);
         i=20;
         cDotPtr = &cDot[20 - sInd];
       } else {
@@ -257,7 +256,7 @@
 
       /* Calculate the cross correlations (main part of the filtered CB) */
       WebRtcSpl_CrossCorrelation(cDotPtr, target, cb_vecPtr, lTarget,
-                                 (int16_t)(eInd - i + 1), scale, -1);
+                                 eInd - i + 1, scale, -1);
 
     } else {
       cDotPtr = cDot;
@@ -265,7 +264,7 @@
 
       /* Calculate the cross correlations (main part of the filtered CB) */
       WebRtcSpl_CrossCorrelation(cDotPtr, target, cb_vecPtr, lTarget,
-                                 (int16_t)(eInd - sInd + 1), scale, -1);
+                                 eInd - sInd + 1, scale, -1);
 
     }
 
@@ -274,17 +273,17 @@
 
     /* Search for best index in this part of the vector */
     WebRtcIlbcfix_CbSearchCore(
-        cDot, (int16_t)(eInd-sInd+1), stage, inverseEnergy+indexOffset,
+        cDot, eInd-sInd+1, stage, inverseEnergy+indexOffset,
         inverseEnergyShifts+indexOffset, Crit,
         &indexNew, &CritNew, &CritNewSh);
 
     /* Update the global best index and the corresponding gain */
     WebRtcIlbcfix_CbUpdateBestIndex(
-        CritNew, CritNewSh, (int16_t)(indexNew+indexOffset), cDot[indexNew],
+        CritNew, CritNewSh, indexNew+indexOffset, cDot[indexNew],
         inverseEnergy[indexNew+indexOffset], inverseEnergyShifts[indexNew+indexOffset],
         &CritMax, &shTotMax, &bestIndex, &bestGain);
 
-    index[stage] = bestIndex;
+    index[stage] = (int16_t)bestIndex;
 
 
     bestGain = WebRtcIlbcfix_GainQuant(bestGain,
@@ -297,7 +296,7 @@
 
     if(lTarget==(STATE_LEN-iLBCenc_inst->state_short_len)) {
 
-      if(index[stage]<base_size) {
+      if((size_t)index[stage]<base_size) {
         pp=buf+lMem-lTarget-index[stage];
       } else {
         pp=cbvectors+lMem-lTarget-
@@ -306,16 +305,16 @@
 
     } else {
 
-      if (index[stage]<base_size) {
+      if ((size_t)index[stage]<base_size) {
         if (index[stage]>=20) {
           /* Adjust index and extract vector */
           index[stage]-=20;
           pp=buf+lMem-lTarget-index[stage];
         } else {
           /* Adjust index and extract vector */
-          index[stage]+=(base_size-20);
+          index[stage]+=(int16_t)(base_size-20);
 
-          WebRtcIlbcfix_CreateAugmentedVec((int16_t)(index[stage]-base_size+40),
+          WebRtcIlbcfix_CreateAugmentedVec(index[stage]-base_size+40,
                                            buf+lMem, aug_vec);
           pp = aug_vec;
 
@@ -329,8 +328,8 @@
               index[stage]+base_size;
         } else {
           /* Adjust index and extract vector */
-          index[stage]+=(base_size-20);
-          WebRtcIlbcfix_CreateAugmentedVec((int16_t)(index[stage]-2*base_size+40),
+          index[stage]+=(int16_t)(base_size-20);
+          WebRtcIlbcfix_CreateAugmentedVec(index[stage]-2*base_size+40,
                                            cbvectors+lMem, aug_vec);
           pp = aug_vec;
         }
@@ -381,7 +380,7 @@
   WebRtcIlbcfix_kGainSq5_ptr = (int16_t*)&WebRtcIlbcfix_kGainSq5[j];
 
   /* targetEner and codedEner are in Q(-2*scale) */
-  for (i=gain_index[0];i<32;i++) {
+  for (ii=gain_index[0];ii<32;ii++) {
 
     /* Change the index if
        (codedEnergy*gainTbl[i]*gainTbl[i])<(targetEn*gain[0]*gain[0]) AND
@@ -392,8 +391,8 @@
     t32 = t32 - targetEner;
     if (t32 < 0) {
       if ((*WebRtcIlbcfix_kGainSq5_ptr) < tmpW32) {
-        j=i;
-        WebRtcIlbcfix_kGainSq5_ptr = (int16_t*)&WebRtcIlbcfix_kGainSq5[i];
+        j=ii;
+        WebRtcIlbcfix_kGainSq5_ptr = (int16_t*)&WebRtcIlbcfix_kGainSq5[ii];
       }
     }
     gainPtr++;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_search.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_search.h
index 2fe236f..ed1580c 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_search.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_search.h
@@ -26,10 +26,10 @@
     int16_t *gain_index, /* (o) Gain quantization indices */
     int16_t *intarget, /* (i) Target vector for encoding */
     int16_t *decResidual,/* (i) Decoded residual for codebook construction */
-    int16_t lMem,  /* (i) Length of buffer */
-    int16_t lTarget,  /* (i) Length of vector */
+    size_t lMem,  /* (i) Length of buffer */
+    size_t lTarget,  /* (i) Length of vector */
     int16_t *weightDenum,/* (i) weighting filter coefficients in Q12 */
-    int16_t block  /* (i) the subblock number */
+    size_t block  /* (i) the subblock number */
                             );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.c
index 3deb08a..d297b15 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.c
@@ -21,13 +21,13 @@
 
 void WebRtcIlbcfix_CbSearchCore(
     int32_t *cDot,    /* (i) Cross Correlation */
-    int16_t range,    /* (i) Search range */
+    size_t range,    /* (i) Search range */
     int16_t stage,    /* (i) Stage of this search */
     int16_t *inverseEnergy,  /* (i) Inversed energy */
     int16_t *inverseEnergyShift, /* (i) Shifts of inversed energy
                                            with the offset 2*16-29 */
     int32_t *Crit,    /* (o) The criteria */
-    int16_t *bestIndex,   /* (o) Index that corresponds to
+    size_t *bestIndex,   /* (o) Index that corresponds to
                                                    maximum criteria (in this
                                                    vector) */
     int32_t *bestCrit,   /* (o) Value of critera for the
@@ -37,7 +37,7 @@
 {
   int32_t maxW32, tmp32;
   int16_t max, sh, tmp16;
-  int i;
+  size_t i;
   int32_t *cDotPtr;
   int16_t cDotSqW16;
   int16_t *inverseEnergyPtr;
@@ -103,7 +103,7 @@
   }
 
   /* Find the index of the best value */
-  *bestIndex = WebRtcSpl_MaxIndexW32(Crit, range);
+  *bestIndex = (size_t)WebRtcSpl_MaxIndexW32(Crit, range);
   *bestCrit = Crit[*bestIndex];
 
   /* Calculate total shifts of this criteria */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.h
index e4f2e92..9648cf2 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_search_core.h
@@ -23,13 +23,13 @@
 
 void WebRtcIlbcfix_CbSearchCore(
     int32_t *cDot,    /* (i) Cross Correlation */
-    int16_t range,    /* (i) Search range */
+    size_t range,    /* (i) Search range */
     int16_t stage,    /* (i) Stage of this search */
     int16_t *inverseEnergy,  /* (i) Inversed energy */
     int16_t *inverseEnergyShift, /* (i) Shifts of inversed energy
                                           with the offset 2*16-29 */
     int32_t *Crit,    /* (o) The criteria */
-    int16_t *bestIndex,   /* (o) Index that corresponds to
+    size_t *bestIndex,   /* (o) Index that corresponds to
                                    maximum criteria (in this
                                    vector) */
     int32_t *bestCrit,   /* (o) Value of critera for the
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.c b/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.c
index 6fdec27..fc27ea9 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.c
@@ -23,13 +23,13 @@
 void WebRtcIlbcfix_CbUpdateBestIndex(
     int32_t CritNew,    /* (i) New Potentially best Criteria */
     int16_t CritNewSh,   /* (i) Shift value of above Criteria */
-    int16_t IndexNew,   /* (i) Index of new Criteria */
+    size_t IndexNew,   /* (i) Index of new Criteria */
     int32_t cDotNew,    /* (i) Cross dot of new index */
     int16_t invEnergyNew,  /* (i) Inversed energy new index */
     int16_t energyShiftNew,  /* (i) Energy shifts of new index */
     int32_t *CritMax,   /* (i/o) Maximum Criteria (so far) */
     int16_t *shTotMax,   /* (i/o) Shifts of maximum criteria */
-    int16_t *bestIndex,   /* (i/o) Index that corresponds to
+    size_t *bestIndex,   /* (i/o) Index that corresponds to
                                                    maximum criteria */
     int16_t *bestGain)   /* (i/o) Gain in Q14 that corresponds
                                                    to maximum criteria */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.h b/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.h
index e8519d4..a20fa38 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/cb_update_best_index.h
@@ -24,13 +24,13 @@
 void WebRtcIlbcfix_CbUpdateBestIndex(
     int32_t CritNew,    /* (i) New Potentially best Criteria */
     int16_t CritNewSh,   /* (i) Shift value of above Criteria */
-    int16_t IndexNew,   /* (i) Index of new Criteria */
+    size_t IndexNew,   /* (i) Index of new Criteria */
     int32_t cDotNew,    /* (i) Cross dot of new index */
     int16_t invEnergyNew,  /* (i) Inversed energy new index */
     int16_t energyShiftNew,  /* (i) Energy shifts of new index */
     int32_t *CritMax,   /* (i/o) Maximum Criteria (so far) */
     int16_t *shTotMax,   /* (i/o) Shifts of maximum criteria */
-    int16_t *bestIndex,   /* (i/o) Index that corresponds to
+    size_t *bestIndex,   /* (i/o) Index that corresponds to
                                    maximum criteria */
     int16_t *bestGain);   /* (i/o) Gain in Q14 that corresponds
                                    to maximum criteria */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.c b/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.c
index a53e8a7..7653cb0 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.c
@@ -27,9 +27,9 @@
     int32_t *corr, /* (o) cross correlation */
     int32_t *ener, /* (o) energy */
     int16_t *buffer, /* (i) signal buffer */
-    int16_t lag,  /* (i) pitch lag */
-    int16_t bLen, /* (i) length of buffer */
-    int16_t sRange, /* (i) correlation search length */
+    size_t lag,  /* (i) pitch lag */
+    size_t bLen, /* (i) length of buffer */
+    size_t sRange, /* (i) correlation search length */
     int16_t scale /* (i) number of rightshifts to use */
                             ){
   int16_t *w16ptr;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.h b/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.h
index 4ff80aa..ab78c72 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/comp_corr.h
@@ -30,9 +30,9 @@
     int32_t *corr, /* (o) cross correlation */
     int32_t *ener, /* (o) energy */
     int16_t *buffer, /* (i) signal buffer */
-    int16_t lag,  /* (i) pitch lag */
-    int16_t bLen, /* (i) length of buffer */
-    int16_t sRange, /* (i) correlation search length */
+    size_t lag,  /* (i) pitch lag */
+    size_t bLen, /* (i) length of buffer */
+    size_t sRange, /* (i) correlation search length */
     int16_t scale /* (i) number of rightshifts to use */
                             );
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/constants.c b/webrtc/modules/audio_coding/codecs/ilbc/constants.c
index 1d384b7..f726ae2 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/constants.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/constants.c
@@ -593,10 +593,10 @@
 
 /* Ranges for search and filters at different subframes */
 
-const int16_t WebRtcIlbcfix_kSearchRange[5][CB_NSTAGES]={
+const size_t WebRtcIlbcfix_kSearchRange[5][CB_NSTAGES]={
   {58,58,58}, {108,44,44}, {108,108,108}, {108,108,108}, {108,108,108}};
 
-const int16_t WebRtcIlbcfix_kFilterRange[5]={63, 85, 125, 147, 147};
+const size_t WebRtcIlbcfix_kFilterRange[5]={63, 85, 125, 147, 147};
 
 /* Gain Quantization for the codebook gains of the 3 stages */
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/constants.h b/webrtc/modules/audio_coding/codecs/ilbc/constants.h
index ff6370e..1f4de4d 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/constants.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/constants.h
@@ -61,8 +61,8 @@
 
 /* Ranges for search and filters at different subframes */
 
-extern const int16_t WebRtcIlbcfix_kSearchRange[5][CB_NSTAGES];
-extern const int16_t WebRtcIlbcfix_kFilterRange[];
+extern const size_t WebRtcIlbcfix_kSearchRange[5][CB_NSTAGES];
+extern const size_t WebRtcIlbcfix_kFilterRange[];
 
 /* gain quantization tables */
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.c b/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.c
index 965cbe0..8ae28ac 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.c
@@ -25,12 +25,12 @@
  *----------------------------------------------------------------*/
 
 void WebRtcIlbcfix_CreateAugmentedVec(
-    int16_t index,  /* (i) Index for the augmented vector to be created */
+    size_t index,  /* (i) Index for the augmented vector to be created */
     int16_t *buffer,  /* (i) Pointer to the end of the codebook memory that
                                            is used for creation of the augmented codebook */
     int16_t *cbVec  /* (o) The construced codebook vector */
                                       ) {
-  int16_t ilow;
+  size_t ilow;
   int16_t *ppo, *ppi;
   int16_t cbVecTmp[4];
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.h b/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.h
index e3c3c7b..430dfe9 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/create_augmented_vec.h
@@ -27,7 +27,7 @@
  *----------------------------------------------------------------*/
 
 void WebRtcIlbcfix_CreateAugmentedVec(
-    int16_t index,  /* (i) Index for the augmented vector to be created */
+    size_t index,  /* (i) Index for the augmented vector to be created */
     int16_t *buffer,  /* (i) Pointer to the end of the codebook memory that
                                            is used for creation of the augmented codebook */
     int16_t *cbVec  /* (o) The construced codebook vector */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/decode.c b/webrtc/modules/audio_coding/codecs/ilbc/decode.c
index 9918de2..4c8497a 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/decode.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/decode.c
@@ -44,7 +44,7 @@
     int16_t mode      /* (i) 0: bad packet, PLC,
                                                                    1: normal */
                            ) {
-  int i;
+  size_t i;
   int16_t order_plus_one;
 
   int16_t last_bit;
@@ -106,7 +106,7 @@
       WebRtcIlbcfix_DoThePlc(
           PLCresidual, PLClpc, 0, decresidual,
           syntdenum + (LPC_FILTERORDER + 1) * (iLBCdec_inst->nsub - 1),
-          (int16_t)(iLBCdec_inst->last_lag), iLBCdec_inst);
+          iLBCdec_inst->last_lag, iLBCdec_inst);
 
       /* Use the output from doThePLC */
       WEBRTC_SPL_MEMCPY_W16(decresidual, PLCresidual, iLBCdec_inst->blockl);
@@ -122,7 +122,7 @@
     /* packet loss conceal */
 
     WebRtcIlbcfix_DoThePlc(PLCresidual, PLClpc, 1, decresidual, syntdenum,
-                           (int16_t)(iLBCdec_inst->last_lag), iLBCdec_inst);
+                           iLBCdec_inst->last_lag, iLBCdec_inst);
 
     WEBRTC_SPL_MEMCPY_W16(decresidual, PLCresidual, iLBCdec_inst->blockl);
 
@@ -188,18 +188,18 @@
     WEBRTC_SPL_MEMCPY_W16(iLBCdec_inst->syntMem, &data[iLBCdec_inst->blockl-LPC_FILTERORDER], LPC_FILTERORDER);
 
   } else { /* Enhancer not activated */
-    int16_t lag;
+    size_t lag;
 
     /* Find last lag (since the enhancer is not called to give this info) */
     lag = 20;
     if (iLBCdec_inst->mode==20) {
-      lag = (int16_t)WebRtcIlbcfix_XcorrCoef(
+      lag = WebRtcIlbcfix_XcorrCoef(
           &decresidual[iLBCdec_inst->blockl-60],
           &decresidual[iLBCdec_inst->blockl-60-lag],
           60,
           80, lag, -1);
     } else {
-      lag = (int16_t)WebRtcIlbcfix_XcorrCoef(
+      lag = WebRtcIlbcfix_XcorrCoef(
           &decresidual[iLBCdec_inst->blockl-ENH_BLOCKL],
           &decresidual[iLBCdec_inst->blockl-ENH_BLOCKL-lag],
           ENH_BLOCKL,
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/decode_residual.c b/webrtc/modules/audio_coding/codecs/ilbc/decode_residual.c
index de42ea9..b8a067e 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/decode_residual.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/decode_residual.c
@@ -41,8 +41,8 @@
     int16_t *syntdenum   /* (i) the decoded synthesis filter
                                   coefficients */
                                   ) {
-  int16_t meml_gotten, diff, start_pos;
-  int16_t subcount, subframe;
+  size_t meml_gotten, diff, start_pos;
+  size_t subcount, subframe;
   int16_t *reverseDecresidual = iLBCdec_inst->enh_buf; /* Reversed decoded data, used for decoding backwards in time (reuse memory in state) */
   int16_t *memVec = iLBCdec_inst->prevResidual;  /* Memory for codebook and filter state (reuse memory in state) */
   int16_t *mem = &memVec[CB_HALFFILTERLEN];   /* Memory for codebook */
@@ -118,7 +118,7 @@
 
     /* loop over subframes to encode */
 
-    int16_t Nfor = iLBCdec_inst->nsub - iLBC_encbits->startIdx - 1;
+    size_t Nfor = iLBCdec_inst->nsub - iLBC_encbits->startIdx - 1;
     for (subframe=0; subframe<Nfor; subframe++) {
 
       /* construct decoded vector */
@@ -156,7 +156,7 @@
 
     /* loop over subframes to decode */
 
-    int16_t Nback = iLBC_encbits->startIdx - 1;
+    size_t Nback = iLBC_encbits->startIdx - 1;
     for (subframe=0; subframe<Nback; subframe++) {
 
       /* construct decoded vector */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.c b/webrtc/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.c
index fad8170..06ab2e7 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.c
@@ -34,7 +34,8 @@
     IlbcDecoder *iLBCdec_inst
     /* (i) the decoder state structure */
                                           ){
-  int  i, pos, lp_length;
+  size_t i;
+  int pos, lp_length;
   int16_t  lp[LPC_FILTERORDER + 1], *lsfdeq2;
 
   lsfdeq2 = lsfdeq + length;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/defines.h b/webrtc/modules/audio_coding/codecs/ilbc/defines.h
index 2d37e52..5fcd4a0 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/defines.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/defines.h
@@ -121,11 +121,11 @@
   int16_t lsf[LSF_NSPLIT*LPC_N_MAX];
   int16_t cb_index[CB_NSTAGES*(NASUB_MAX+1)];  /* First CB_NSTAGES values contains extra CB index */
   int16_t gain_index[CB_NSTAGES*(NASUB_MAX+1)]; /* First CB_NSTAGES values contains extra CB gain */
-  int16_t idxForMax;
+  size_t idxForMax;
   int16_t state_first;
   int16_t idxVec[STATE_SHORT_LEN_30MS];
   int16_t firstbits;
-  int16_t startIdx;
+  size_t startIdx;
 } iLBC_bits;
 
 /* type definition encoder instance */
@@ -135,12 +135,12 @@
   int16_t mode;
 
   /* basic parameters for different frame sizes */
-  int16_t blockl;
-  int16_t nsub;
+  size_t blockl;
+  size_t nsub;
   int16_t nasub;
-  int16_t no_of_bytes, no_of_words;
+  size_t no_of_bytes, no_of_words;
   int16_t lpc_n;
-  int16_t state_short_len;
+  size_t state_short_len;
 
   /* analysis filter state */
   int16_t anaMem[LPC_FILTERORDER];
@@ -164,7 +164,7 @@
   int16_t Nfor_flag;
   int16_t Nback_flag;
   int16_t start_pos;
-  int16_t diff;
+  size_t diff;
 #endif
 
 } IlbcEncoder;
@@ -176,12 +176,12 @@
   int16_t mode;
 
   /* basic parameters for different frame sizes */
-  int16_t blockl;
-  int16_t nsub;
+  size_t blockl;
+  size_t nsub;
   int16_t nasub;
-  int16_t no_of_bytes, no_of_words;
+  size_t no_of_bytes, no_of_words;
   int16_t lpc_n;
-  int16_t state_short_len;
+  size_t state_short_len;
 
   /* synthesis filter state */
   int16_t syntMem[LPC_FILTERORDER];
@@ -190,14 +190,15 @@
   int16_t lsfdeqold[LPC_FILTERORDER];
 
   /* pitch lag estimated in enhancer and used in PLC */
-  int last_lag;
+  size_t last_lag;
 
   /* PLC state information */
   int consPLICount, prev_enh_pl;
   int16_t perSquare;
 
   int16_t prevScale, prevPLI;
-  int16_t prevLag, prevLpc[LPC_FILTERORDER+1];
+  size_t prevLag;
+  int16_t prevLpc[LPC_FILTERORDER+1];
   int16_t prevResidual[NSUB_MAX*SUBL];
   int16_t seed;
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/do_plc.c b/webrtc/modules/audio_coding/codecs/ilbc/do_plc.c
index b313b58..f74439e 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/do_plc.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/do_plc.c
@@ -33,18 +33,19 @@
                                                            0 - no PL, 1 = PL */
     int16_t *decresidual,  /* (i) decoded residual */
     int16_t *lpc,    /* (i) decoded LPC (only used for no PL) */
-    int16_t inlag,    /* (i) pitch lag */
+    size_t inlag,    /* (i) pitch lag */
     IlbcDecoder *iLBCdec_inst
     /* (i/o) decoder instance */
                             ){
-  int16_t i;
+  size_t i;
   int32_t cross, ener, cross_comp, ener_comp = 0;
   int32_t measure, maxMeasure, energy;
   int16_t max, crossSquareMax, crossSquare;
-  int16_t j, lag, tmp1, tmp2, randlag;
+  size_t j, lag, randlag;
+  int16_t tmp1, tmp2;
   int16_t shift1, shift2, shift3, shiftMax;
   int16_t scale3;
-  int16_t corrLen;
+  size_t corrLen;
   int32_t tmpW32, tmp2W32;
   int16_t use_gain;
   int16_t tot_gain;
@@ -54,7 +55,7 @@
   int32_t nom;
   int16_t denom;
   int16_t pitchfact;
-  int16_t use_lag;
+  size_t use_lag;
   int ind;
   int16_t randvec[BLOCKL_MAX];
 
@@ -71,7 +72,7 @@
       /* Maximum 60 samples are correlated, preserve as high accuracy
          as possible without getting overflow */
       max = WebRtcSpl_MaxAbsValueW16((*iLBCdec_inst).prevResidual,
-                                     (int16_t)iLBCdec_inst->blockl);
+                                     iLBCdec_inst->blockl);
       scale3 = (WebRtcSpl_GetSizeInBits(max)<<1) - 25;
       if (scale3 < 0) {
         scale3 = 0;
@@ -86,7 +87,7 @@
       lag = inlag - 3;
 
       /* Guard against getting outside the frame */
-      corrLen = WEBRTC_SPL_MIN(60, iLBCdec_inst->blockl-(inlag+3));
+      corrLen = (size_t)WEBRTC_SPL_MIN(60, iLBCdec_inst->blockl-(inlag+3));
 
       WebRtcIlbcfix_CompCorr( &cross, &ener,
                               iLBCdec_inst->prevResidual, lag, iLBCdec_inst->blockl, corrLen, scale3);
@@ -234,7 +235,7 @@
 
       /* noise component -  52 < randlagFIX < 117 */
       iLBCdec_inst->seed = (int16_t)(iLBCdec_inst->seed * 31821 + 13849);
-      randlag = 53 + (int16_t)(iLBCdec_inst->seed & 63);
+      randlag = 53 + (iLBCdec_inst->seed & 63);
       if (randlag > i) {
         randvec[i] =
             iLBCdec_inst->prevResidual[iLBCdec_inst->blockl + i - randlag];
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/do_plc.h b/webrtc/modules/audio_coding/codecs/ilbc/do_plc.h
index c55b815..38b8fdb 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/do_plc.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/do_plc.h
@@ -33,7 +33,7 @@
                                                            0 - no PL, 1 = PL */
     int16_t *decresidual,  /* (i) decoded residual */
     int16_t *lpc,    /* (i) decoded LPC (only used for no PL) */
-    int16_t inlag,    /* (i) pitch lag */
+    size_t inlag,    /* (i) pitch lag */
     IlbcDecoder *iLBCdec_inst
     /* (i/o) decoder instance */
                             );
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/encode.c b/webrtc/modules/audio_coding/codecs/ilbc/encode.c
index 114ce1f..812ec8d 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/encode.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/encode.c
@@ -48,11 +48,11 @@
     IlbcEncoder *iLBCenc_inst /* (i/o) the general encoder
                                      state */
                           ){
-  int n, meml_gotten, Nfor;
-  int16_t diff, start_pos;
-  int index;
-  int subcount, subframe;
-  int16_t start_count, end_count;
+  size_t n, meml_gotten, Nfor;
+  size_t diff, start_pos;
+  size_t index;
+  size_t subcount, subframe;
+  size_t start_count, end_count;
   int16_t *residual;
   int32_t en1, en2;
   int16_t scale, max;
@@ -86,7 +86,7 @@
 #ifdef SPLIT_10MS
 
   WebRtcSpl_MemSetW16 (  (int16_t *) iLBCbits_inst, 0,
-                         (int16_t) (sizeof(iLBC_bits) / sizeof(int16_t))  );
+                         sizeof(iLBC_bits) / sizeof(int16_t)  );
 
   start_pos = iLBCenc_inst->start_pos;
   diff = iLBCenc_inst->diff;
@@ -317,17 +317,17 @@
       if (iLBCenc_inst->section == 1)
       {
         start_count = 0;
-        end_count = WEBRTC_SPL_MIN (Nfor, 2);
+        end_count = WEBRTC_SPL_MIN (Nfor, (size_t)2);
       }
       if (iLBCenc_inst->section == 2)
       {
-        start_count = WEBRTC_SPL_MIN (Nfor, 2);
+        start_count = WEBRTC_SPL_MIN (Nfor, (size_t)2);
         end_count = Nfor;
       }
     }
 #else
     start_count = 0;
-    end_count = (int16_t)Nfor;
+    end_count = Nfor;
 #endif
 
     /* loop over subframes to encode */
@@ -341,7 +341,7 @@
                              &residual[(iLBCbits_inst->startIdx+1+subframe)*SUBL],
                              mem, MEM_LF_TBL, SUBL,
                              &weightdenum[(iLBCbits_inst->startIdx+1+subframe)*(LPC_FILTERORDER+1)],
-                             (int16_t)subcount);
+                             subcount);
 
       /* construct decoded vector */
 
@@ -386,7 +386,7 @@
        contained in the same vector as the residual)
     */
 
-    int Nback = iLBCbits_inst->startIdx - 1;
+    size_t Nback = iLBCbits_inst->startIdx - 1;
     WebRtcSpl_MemCpyReversedOrder(&reverseResidual[Nback*SUBL-1], residual, Nback*SUBL);
 
     /* setup memory */
@@ -434,7 +434,7 @@
     }
 #else
     start_count = 0;
-    end_count = (int16_t)Nback;
+    end_count = Nback;
 #endif
 
     /* loop over subframes to encode */
@@ -447,7 +447,7 @@
                              iLBCbits_inst->gain_index+subcount*CB_NSTAGES, &reverseResidual[subframe*SUBL],
                              mem, MEM_LF_TBL, SUBL,
                              &weightdenum[(iLBCbits_inst->startIdx-2-subframe)*(LPC_FILTERORDER+1)],
-                             (int16_t)subcount);
+                             subcount);
 
       /* construct decoded vector */
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.c b/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.c
index a6b1c75..b2bdcff 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.c
@@ -23,12 +23,12 @@
 void WebRtcIlbcfix_EnergyInverse(
     int16_t *energy,    /* (i/o) Energy and inverse
                                                            energy (in Q29) */
-    int noOfEnergies)  /* (i)   The length of the energy
+    size_t noOfEnergies)  /* (i)   The length of the energy
                                    vector */
 {
   int32_t Nom=(int32_t)0x1FFFFFFF;
   int16_t *energyPtr;
-  int i;
+  size_t i;
 
   /* Set the minimum energy value to 16384 to avoid overflow */
   energyPtr=energy;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.h b/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.h
index 7bb6721..fe25094 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.h
@@ -26,7 +26,7 @@
 void WebRtcIlbcfix_EnergyInverse(
     int16_t *energy,     /* (i/o) Energy and inverse
                                                                    energy (in Q29) */
-    int noOfEnergies);   /* (i)   The length of the energy
+    size_t noOfEnergies);   /* (i)   The length of the energy
                                    vector */
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/enhancer.c b/webrtc/modules/audio_coding/codecs/ilbc/enhancer.c
index 38c3de3..5683597 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/enhancer.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/enhancer.c
@@ -33,7 +33,7 @@
     int16_t centerStartPos, /* (i) first sample current block within idata */
     int16_t *period,   /* (i) pitch period array (pitch bward-in time) */
     int16_t *plocs,   /* (i) locations where period array values valid */
-    int16_t periodl   /* (i) dimension of period and plocs */
+    size_t periodl   /* (i) dimension of period and plocs */
                             ){
   /* Stack based */
   int16_t surround[ENH_BLOCKL];
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/enhancer.h b/webrtc/modules/audio_coding/codecs/ilbc/enhancer.h
index 83f48b0..78a12d3 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/enhancer.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/enhancer.h
@@ -33,7 +33,7 @@
     int16_t centerStartPos, /* (i) first sample current block within idata */
     int16_t *period,   /* (i) pitch period array (pitch bward-in time) */
     int16_t *plocs,   /* (i) locations where period array values valid */
-    int16_t periodl   /* (i) dimension of period and plocs */
+    size_t periodl   /* (i) dimension of period and plocs */
                             );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.c b/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.c
index c630dd5..f15aee6 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.c
@@ -30,19 +30,21 @@
  * interface for enhancer
  *---------------------------------------------------------------*/
 
-int WebRtcIlbcfix_EnhancerInterface( /* (o) Estimated lag in end of in[] */
+size_t WebRtcIlbcfix_EnhancerInterface( /* (o) Estimated lag in end of in[] */
     int16_t *out,     /* (o) enhanced signal */
     int16_t *in,      /* (i) unenhanced signal */
     IlbcDecoder *iLBCdec_inst /* (i) buffers etc */
                                         ){
   int iblock;
-  int lag=20, tlag=20;
-  int inLen=iLBCdec_inst->blockl+120;
-  int16_t scale, scale1, plc_blockl;
+  size_t lag=20, tlag=20;
+  size_t inLen=iLBCdec_inst->blockl+120;
+  int16_t scale, scale1;
+  size_t plc_blockl;
   int16_t *enh_buf, *enh_period;
   int32_t tmp1, tmp2, max, new_blocks;
   int16_t *enh_bufPtr1;
-  int i, k;
+  size_t i;
+  int k;
   int16_t EnChange;
   int16_t SqrtEnChange;
   int16_t inc;
@@ -56,7 +58,8 @@
   int32_t ener;
   int16_t enerSh;
   int16_t corrSh;
-  int16_t ind, sh;
+  size_t ind;
+  int16_t sh;
   int16_t start, stop;
   /* Stack based */
   int16_t totsh[3];
@@ -168,7 +171,7 @@
       }
     }
 
-    lag = lagmax[ind] + 10;
+    lag = (size_t)(lagmax[ind] + 10);
 
     /* Store the estimated lag in the non-downsampled domain */
     enh_period[ENH_NBLOCKS_TOT - new_blocks + iblock] = (int16_t)(lag * 8);
@@ -224,7 +227,7 @@
             (plc_blockl-lag));
       }
     } else {
-      int pos;
+      size_t pos;
 
       pos = plc_blockl;
 
@@ -280,8 +283,8 @@
 
 
         /* Multiply first part of vector with 2*SqrtEnChange */
-        WebRtcSpl_ScaleVector(plc_pred, plc_pred, SqrtEnChange,
-                              (int16_t)(plc_blockl-16), 14);
+        WebRtcSpl_ScaleVector(plc_pred, plc_pred, SqrtEnChange, plc_blockl-16,
+                              14);
 
         /* Calculate increase parameter for window part (16 last samples) */
         /* (1-2*SqrtEnChange)/16 in Q15 */
@@ -343,7 +346,7 @@
                             LPC_FILTERORDER);
       WebRtcIlbcfix_HpOutput(synt, (int16_t*)WebRtcIlbcfix_kHpOutCoefs,
                              iLBCdec_inst->hpimemy, iLBCdec_inst->hpimemx,
-                             (int16_t)lag);
+                             lag);
       WebRtcSpl_FilterARFastQ12(
           enh_bufPtr1, synt,
           &iLBCdec_inst->old_syntdenum[
@@ -354,7 +357,7 @@
                             LPC_FILTERORDER);
       WebRtcIlbcfix_HpOutput(synt, (int16_t*)WebRtcIlbcfix_kHpOutCoefs,
                              iLBCdec_inst->hpimemy, iLBCdec_inst->hpimemx,
-                             (int16_t)lag);
+                             lag);
     }
   }
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.h b/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.h
index fa58b7a..61efd22 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.h
@@ -25,7 +25,7 @@
  * interface for enhancer
  *---------------------------------------------------------------*/
 
-int WebRtcIlbcfix_EnhancerInterface( /* (o) Estimated lag in end of in[] */
+size_t WebRtcIlbcfix_EnhancerInterface( /* (o) Estimated lag in end of in[] */
     int16_t *out,     /* (o) enhanced signal */
     int16_t *in,      /* (i) unenhanced signal */
     IlbcDecoder *iLBCdec_inst /* (i) buffers etc */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.c b/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.c
index aa8170c..04d17a6 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.c
@@ -29,8 +29,8 @@
     int16_t *cbvectors, /* (o) Codebook vector for the higher section */
     int16_t *CBmem,  /* (i) Codebook memory that is filtered to create a
                                            second CB section */
-    int lMem,  /* (i) Length of codebook memory */
-    int16_t samples    /* (i) Number of samples to filter */
+    size_t lMem,  /* (i) Length of codebook memory */
+    size_t samples    /* (i) Number of samples to filter */
                                   ) {
 
   /* Set up the memory, start with zero state */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.h b/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.h
index 99e89a0..d23b25c 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.h
@@ -31,8 +31,8 @@
     int16_t *cbvectors, /* (o) Codebook vector for the higher section */
     int16_t *CBmem,  /* (i) Codebook memory that is filtered to create a
                                            second CB section */
-    int lMem,  /* (i) Length of codebook memory */
-    int16_t samples    /* (i) Number of samples to filter */
+    size_t lMem,  /* (i) Length of codebook memory */
+    size_t samples    /* (i) Number of samples to filter */
                                   );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.c b/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.c
index 6a68dec..f442f6a 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.c
@@ -23,7 +23,7 @@
  *  Classification of subframes to localize start state
  *---------------------------------------------------------------*/
 
-int16_t WebRtcIlbcfix_FrameClassify(
+size_t WebRtcIlbcfix_FrameClassify(
     /* (o) Index to the max-energy sub frame */
     IlbcEncoder *iLBCenc_inst,
     /* (i/o) the encoder state structure */
@@ -35,8 +35,8 @@
   int32_t *seqEnPtr;
   int32_t maxW32;
   int16_t scale1;
-  int16_t pos;
-  int n;
+  size_t pos;
+  size_t n;
 
   /*
     Calculate the energy of each of the 80 sample blocks
@@ -82,7 +82,7 @@
   }
 
   /* Extract the best choise of start state */
-  pos = WebRtcSpl_MaxIndexW32(ssqEn, iLBCenc_inst->nsub - 1) + 1;
+  pos = (size_t)WebRtcSpl_MaxIndexW32(ssqEn, iLBCenc_inst->nsub - 1) + 1;
 
   return(pos);
 }
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.h b/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.h
index b32e2c8..99f7144 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/frame_classify.h
@@ -19,7 +19,7 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_FRAME_CLASSIFY_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_FRAME_CLASSIFY_H_
 
-int16_t WebRtcIlbcfix_FrameClassify(
+size_t WebRtcIlbcfix_FrameClassify(
     /* (o) Index to the max-energy sub frame */
     IlbcEncoder *iLBCenc_inst,
     /* (i/o) the encoder state structure */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.c b/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.c
index cf05ce3..d7c2e75 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.c
@@ -27,12 +27,12 @@
 void WebRtcIlbcfix_GetCbVec(
     int16_t *cbvec,   /* (o) Constructed codebook vector */
     int16_t *mem,   /* (i) Codebook buffer */
-    int16_t index,   /* (i) Codebook index */
-    int16_t lMem,   /* (i) Length of codebook buffer */
-    int16_t cbveclen   /* (i) Codebook vector length */
+    size_t index,   /* (i) Codebook index */
+    size_t lMem,   /* (i) Length of codebook buffer */
+    size_t cbveclen   /* (i) Codebook vector length */
                             ){
-  int16_t k, base_size;
-  int16_t lag;
+  size_t k, base_size;
+  size_t lag;
   /* Stack based */
   int16_t tempbuff2[SUBL+5];
 
@@ -58,7 +58,7 @@
 
     /* Calculate lag */
 
-    k = (int16_t)(2 * (index - (lMem - cbveclen + 1))) + cbveclen;
+    k = (2 * (index - (lMem - cbveclen + 1))) + cbveclen;
 
     lag = k / 2;
 
@@ -70,7 +70,7 @@
 
   else {
 
-    int16_t memIndTest;
+    size_t memIndTest;
 
     /* first non-interpolated vectors */
 
@@ -100,7 +100,7 @@
       /* do filtering */
       WebRtcSpl_FilterMAFastQ12(
           &mem[memIndTest+7], tempbuff2, (int16_t*)WebRtcIlbcfix_kCbFiltersRev,
-          CB_FILTERLEN, (int16_t)(cbveclen+5));
+          CB_FILTERLEN, cbveclen+5);
 
       /* Calculate lag index */
       lag = (cbveclen<<1)-20+index-base_size-lMem-1;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.h b/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.h
index 1c5ac8f..07f67a2 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.h
@@ -22,9 +22,9 @@
 void WebRtcIlbcfix_GetCbVec(
     int16_t *cbvec,   /* (o) Constructed codebook vector */
     int16_t *mem,   /* (i) Codebook buffer */
-    int16_t index,   /* (i) Codebook index */
-    int16_t lMem,   /* (i) Length of codebook buffer */
-    int16_t cbveclen   /* (i) Codebook vector length */
+    size_t index,   /* (i) Codebook index */
+    size_t lMem,   /* (i) Length of codebook buffer */
+    size_t cbveclen   /* (i) Codebook vector length */
                             );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.c b/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.c
index 480ed7c..66dfafb 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.c
@@ -31,12 +31,13 @@
     int16_t centerStartPos, /* (i) where current block starts */
     int16_t *period,   /* (i) rough-pitch-period array       (Q-2) */
     int16_t *plocs,   /* (i) where periods of period array are taken (Q-2) */
-    int16_t periodl,   /* (i) dimension period array */
+    size_t periodl,   /* (i) dimension period array */
     int16_t hl,    /* (i) 2*hl+1 is the number of sequences */
     int16_t *surround  /* (i/o) The contribution from this sequence
                                 summed with earlier contributions */
                               ){
-  int16_t i,centerEndPos,q;
+  size_t i;
+  int16_t centerEndPos,q;
   /* Stack based */
   int16_t lagBlock[2*ENH_HL+1];
   int16_t blockStartPos[2*ENH_HL+1]; /* Defines the position to search around (Q2) */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.h b/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.h
index f9b08b7..5b59f98 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.h
@@ -31,7 +31,7 @@
     int16_t centerStartPos, /* (i) where current block starts */
     int16_t *period,   /* (i) rough-pitch-period array       (Q-2) */
     int16_t *plocs,   /* (i) where periods of period array are taken (Q-2) */
-    int16_t periodl,   /* (i) dimension period array */
+    size_t periodl,   /* (i) dimension period array */
     int16_t hl,    /* (i) 2*hl+1 is the number of sequences */
     int16_t *surround  /* (i/o) The contribution from this sequence
                                 summed with earlier contributions */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/hp_input.c b/webrtc/modules/audio_coding/codecs/ilbc/hp_input.c
index 260591e..5d8a860 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/hp_input.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/hp_input.c
@@ -30,9 +30,9 @@
     int16_t *y,      /* (i/o) Filter state yhi[n-1] ylow[n-1]
                                                                    yhi[n-2] ylow[n-2] */
     int16_t *x,      /* (i/o) Filter state x[n-1] x[n-2] */
-    int16_t len)      /* (i)   Number of samples to filter */
+    size_t len)      /* (i)   Number of samples to filter */
 {
-  int i;
+  size_t i;
   int32_t tmpW32;
   int32_t tmpW32b;
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/hp_input.h b/webrtc/modules/audio_coding/codecs/ilbc/hp_input.h
index a30f703..acdfa91 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/hp_input.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/hp_input.h
@@ -29,6 +29,6 @@
     int16_t *y,      /* (i/o) Filter state yhi[n-1] ylow[n-1]
                                                                    yhi[n-2] ylow[n-2] */
     int16_t *x,      /* (i/o) Filter state x[n-1] x[n-2] */
-    int16_t len);     /* (i)   Number of samples to filter */
+    size_t len);     /* (i)   Number of samples to filter */
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/hp_output.c b/webrtc/modules/audio_coding/codecs/ilbc/hp_output.c
index 3abb427..bd101bf 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/hp_output.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/hp_output.c
@@ -30,9 +30,9 @@
     int16_t *y,      /* (i/o) Filter state yhi[n-1] ylow[n-1]
                                                                    yhi[n-2] ylow[n-2] */
     int16_t *x,      /* (i/o) Filter state x[n-1] x[n-2] */
-    int16_t len)      /* (i)   Number of samples to filter */
+    size_t len)      /* (i)   Number of samples to filter */
 {
-  int i;
+  size_t i;
   int32_t tmpW32;
   int32_t tmpW32b;
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/hp_output.h b/webrtc/modules/audio_coding/codecs/ilbc/hp_output.h
index 7937ba0..1840b68 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/hp_output.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/hp_output.h
@@ -29,6 +29,6 @@
     int16_t *y,      /* (i/o) Filter state yhi[n-1] ylow[n-1]
                               yhi[n-2] ylow[n-2] */
     int16_t *x,      /* (i/o) Filter state x[n-1] x[n-2] */
-    int16_t len);      /* (i)   Number of samples to filter */
+    size_t len);      /* (i)   Number of samples to filter */
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/ilbc.c b/webrtc/modules/audio_coding/codecs/ilbc/ilbc.c
index e41c095..c565a24 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/ilbc.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/ilbc.c
@@ -90,10 +90,10 @@
 
 int WebRtcIlbcfix_Encode(IlbcEncoderInstance* iLBCenc_inst,
                          const int16_t* speechIn,
-                         int16_t len,
+                         size_t len,
                          uint8_t* encoded) {
-  int16_t pos = 0;
-  int16_t encpos = 0;
+  size_t pos = 0;
+  size_t encpos = 0;
 
   if ((len != ((IlbcEncoder*)iLBCenc_inst)->blockl) &&
 #ifdef SPLIT_10MS
@@ -118,7 +118,7 @@
 #endif
       encpos += ((IlbcEncoder*)iLBCenc_inst)->no_of_words;
     }
-    return (encpos*2);
+    return (int)(encpos*2);
   }
 }
 
@@ -143,11 +143,11 @@
 
 int WebRtcIlbcfix_Decode(IlbcDecoderInstance* iLBCdec_inst,
                          const uint8_t* encoded,
-                         int16_t len,
+                         size_t len,
                          int16_t* decoded,
                          int16_t* speechType)
 {
-  int i=0;
+  size_t i=0;
   /* Allow for automatic switching between the frame sizes
      (although you do get some discontinuity) */
   if ((len==((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)||
@@ -191,16 +191,16 @@
   }
   /* iLBC does not support VAD/CNG yet */
   *speechType=1;
-  return(i*((IlbcDecoder*)iLBCdec_inst)->blockl);
+  return (int)(i*((IlbcDecoder*)iLBCdec_inst)->blockl);
 }
 
 int WebRtcIlbcfix_Decode20Ms(IlbcDecoderInstance* iLBCdec_inst,
                              const uint8_t* encoded,
-                             int16_t len,
+                             size_t len,
                              int16_t* decoded,
                              int16_t* speechType)
 {
-  int i=0;
+  size_t i=0;
   if ((len==((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)||
       (len==2*((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)||
       (len==3*((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)) {
@@ -219,16 +219,16 @@
   }
   /* iLBC does not support VAD/CNG yet */
   *speechType=1;
-  return(i*((IlbcDecoder*)iLBCdec_inst)->blockl);
+  return (int)(i*((IlbcDecoder*)iLBCdec_inst)->blockl);
 }
 
 int WebRtcIlbcfix_Decode30Ms(IlbcDecoderInstance* iLBCdec_inst,
                              const uint8_t* encoded,
-                             int16_t len,
+                             size_t len,
                              int16_t* decoded,
                              int16_t* speechType)
 {
-  int i=0;
+  size_t i=0;
   if ((len==((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)||
       (len==2*((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)||
       (len==3*((IlbcDecoder*)iLBCdec_inst)->no_of_bytes)) {
@@ -247,13 +247,13 @@
   }
   /* iLBC does not support VAD/CNG yet */
   *speechType=1;
-  return(i*((IlbcDecoder*)iLBCdec_inst)->blockl);
+  return (int)(i*((IlbcDecoder*)iLBCdec_inst)->blockl);
 }
 
-int16_t WebRtcIlbcfix_DecodePlc(IlbcDecoderInstance* iLBCdec_inst,
-                                int16_t* decoded,
-                                int16_t noOfLostFrames) {
-  int i;
+size_t WebRtcIlbcfix_DecodePlc(IlbcDecoderInstance* iLBCdec_inst,
+                               int16_t* decoded,
+                               size_t noOfLostFrames) {
+  size_t i;
   uint16_t dummy;
 
   for (i=0;i<noOfLostFrames;i++) {
@@ -265,9 +265,9 @@
   return (noOfLostFrames*((IlbcDecoder*)iLBCdec_inst)->blockl);
 }
 
-int16_t WebRtcIlbcfix_NetEqPlc(IlbcDecoderInstance* iLBCdec_inst,
-                               int16_t* decoded,
-                               int16_t noOfLostFrames) {
+size_t WebRtcIlbcfix_NetEqPlc(IlbcDecoderInstance* iLBCdec_inst,
+                              int16_t* decoded,
+                              size_t noOfLostFrames) {
   /* Two input parameters not used, but needed for function pointers in NetEQ */
   (void)(decoded = NULL);
   (void)(noOfLostFrames = 0);
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/init_decode.c b/webrtc/modules/audio_coding/codecs/ilbc/init_decode.c
index 0659e50..1f92480 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/init_decode.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/init_decode.c
@@ -92,5 +92,5 @@
 
   iLBCdec_inst->prev_enh_pl = 0;
 
-  return (iLBCdec_inst->blockl);
+  return (int)(iLBCdec_inst->blockl);
 }
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/init_encode.c b/webrtc/modules/audio_coding/codecs/ilbc/init_encode.c
index 9c562db..f559d84 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/init_encode.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/init_encode.c
@@ -67,5 +67,5 @@
   iLBCenc_inst->section = 0;
 #endif
 
-  return (iLBCenc_inst->no_of_bytes);
+  return (int)(iLBCenc_inst->no_of_bytes);
 }
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h b/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h
index b627c3a..c3cf4d8 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h
@@ -36,8 +36,8 @@
   int SampleRateHz() const override;
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   EncodedInfo EncodeInternal(uint32_t rtp_timestamp,
                              const int16_t* audio,
@@ -47,10 +47,10 @@
  private:
   size_t RequiredOutputSizeBytes() const;
 
-  static const int kMaxSamplesPerPacket = 480;
+  static const size_t kMaxSamplesPerPacket = 480;
   const int payload_type_;
-  const int num_10ms_frames_per_packet_;
-  int num_10ms_frames_buffered_;
+  const size_t num_10ms_frames_per_packet_;
+  size_t num_10ms_frames_buffered_;
   uint32_t first_timestamp_in_buffer_;
   int16_t input_buffer_[kMaxSamplesPerPacket];
   IlbcEncoderInstance* encoder_;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/interface/ilbc.h b/webrtc/modules/audio_coding/codecs/ilbc/interface/ilbc.h
index 4934968..be0b121 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/interface/ilbc.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/interface/ilbc.h
@@ -18,6 +18,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_INTERFACE_ILBC_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_INTERFACE_ILBC_H_
 
+#include <stddef.h>
+
 /*
  * Define the fixpoint numeric formats
  */
@@ -137,7 +139,7 @@
 
   int WebRtcIlbcfix_Encode(IlbcEncoderInstance *iLBCenc_inst,
                            const int16_t *speechIn,
-                           int16_t len,
+                           size_t len,
                            uint8_t* encoded);
 
   /****************************************************************************
@@ -182,17 +184,17 @@
 
   int WebRtcIlbcfix_Decode(IlbcDecoderInstance* iLBCdec_inst,
                            const uint8_t* encoded,
-                           int16_t len,
+                           size_t len,
                            int16_t* decoded,
                            int16_t* speechType);
   int WebRtcIlbcfix_Decode20Ms(IlbcDecoderInstance* iLBCdec_inst,
                                const uint8_t* encoded,
-                               int16_t len,
+                               size_t len,
                                int16_t* decoded,
                                int16_t* speechType);
   int WebRtcIlbcfix_Decode30Ms(IlbcDecoderInstance* iLBCdec_inst,
                                const uint8_t* encoded,
-                               int16_t len,
+                               size_t len,
                                int16_t* decoded,
                                int16_t* speechType);
 
@@ -210,13 +212,12 @@
    * Output:
    *      - decoded           : The "decoded" vector
    *
-   * Return value             : >0 - Samples in decoded PLC vector
-   *                            -1 - Error
+   * Return value             : Samples in decoded PLC vector
    */
 
-  int16_t WebRtcIlbcfix_DecodePlc(IlbcDecoderInstance *iLBCdec_inst,
-                                  int16_t *decoded,
-                                  int16_t noOfLostFrames);
+  size_t WebRtcIlbcfix_DecodePlc(IlbcDecoderInstance *iLBCdec_inst,
+                                 int16_t *decoded,
+                                 size_t noOfLostFrames);
 
   /****************************************************************************
    * WebRtcIlbcfix_NetEqPlc(...)
@@ -232,13 +233,12 @@
    * Output:
    *      - decoded           : The "decoded" vector (nothing in this case)
    *
-   * Return value             : >0 - Samples in decoded PLC vector
-   *                            -1 - Error
+   * Return value             : Samples in decoded PLC vector
    */
 
-  int16_t WebRtcIlbcfix_NetEqPlc(IlbcDecoderInstance *iLBCdec_inst,
-                                 int16_t *decoded,
-                                 int16_t noOfLostFrames);
+  size_t WebRtcIlbcfix_NetEqPlc(IlbcDecoderInstance *iLBCdec_inst,
+                                int16_t *decoded,
+                                size_t noOfLostFrames);
 
   /****************************************************************************
    * WebRtcIlbcfix_version(...)
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.c b/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.c
index 4957142..376dbbb 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.c
@@ -22,7 +22,7 @@
 void WebRtcIlbcfix_InterpolateSamples(
     int16_t *interpSamples, /* (o) The interpolated samples */
     int16_t *CBmem,   /* (i) The CB memory */
-    int16_t lMem    /* (i) Length of the CB memory */
+    size_t lMem    /* (i) Length of the CB memory */
                                       ) {
   int16_t *ppi, *ppo, i, j, temp1, temp2;
   int16_t *tmpPtr;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.h b/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.h
index 586c27d..7549d2c 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/interpolate_samples.h
@@ -28,7 +28,7 @@
 void WebRtcIlbcfix_InterpolateSamples(
     int16_t *interpSamples, /* (o) The interpolated samples */
     int16_t *CBmem,   /* (i) The CB memory */
-    int16_t lMem    /* (i) Length of the CB memory */
+    size_t lMem    /* (i) Length of the CB memory */
                                       );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/my_corr.c b/webrtc/modules/audio_coding/codecs/ilbc/my_corr.c
index 3261015..bd6ff56 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/my_corr.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/my_corr.c
@@ -25,11 +25,12 @@
 void WebRtcIlbcfix_MyCorr(
     int32_t* corr,  /* (o) correlation of seq1 and seq2 */
     const int16_t* seq1,  /* (i) first sequence */
-    int16_t dim1,  /* (i) dimension first seq1 */
+    size_t dim1,  /* (i) dimension first seq1 */
     const int16_t* seq2, /* (i) second sequence */
-    int16_t dim2   /* (i) dimension seq2 */
+    size_t dim2   /* (i) dimension seq2 */
                           ){
-  int16_t max, loops;
+  int16_t max;
+  size_t loops;
   int scale;
 
   /* Calculate correlation between the two sequences. Scale the
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/my_corr.h b/webrtc/modules/audio_coding/codecs/ilbc/my_corr.h
index a74dd1e..2149464 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/my_corr.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/my_corr.h
@@ -28,9 +28,9 @@
 void WebRtcIlbcfix_MyCorr(
     int32_t* corr,  /* (o) correlation of seq1 and seq2 */
     const int16_t* seq1,  /* (i) first sequence */
-    int16_t dim1,  /* (i) dimension first seq1 */
+    size_t dim1,  /* (i) dimension first seq1 */
     const int16_t* seq2, /* (i) second sequence */
-    int16_t dim2   /* (i) dimension seq2 */
+    size_t dim2   /* (i) dimension seq2 */
                           );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.c b/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.c
index 30c7a03..b6cc240 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.c
@@ -28,9 +28,9 @@
     int16_t *index, /* (o) index of array element closest to value */
     int16_t *array, /* (i) data array (Q2) */
     int16_t value, /* (i) value (Q2) */
-    int16_t arlength /* (i) dimension of data array (==8) */
+    size_t arlength /* (i) dimension of data array (==8) */
                                    ){
-  int i;
+  size_t i;
   int16_t diff;
   /* Stack based */
   int32_t crit[8];
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.h b/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.h
index 0c03470..4c7ed3e 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/nearest_neighbor.h
@@ -31,7 +31,7 @@
     int16_t *index, /* (o) index of array element closest to value */
     int16_t *array, /* (i) data array (Q2) */
     int16_t value, /* (i) value (Q2) */
-    int16_t arlength /* (i) dimension of data array (==8) */
+    size_t arlength /* (i) dimension of data array (==8) */
                                    );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/refiner.c b/webrtc/modules/audio_coding/codecs/ilbc/refiner.c
index 2fff362..86df81c 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/refiner.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/refiner.c
@@ -39,8 +39,9 @@
                                            summed with earlier contributions */
     int16_t gain    /* (i) Gain to use for this sequence */
                            ){
-  int16_t estSegPosRounded,searchSegStartPos,searchSegEndPos,corrdim;
-  int16_t tloc,tloc2,i,st,en,fraction;
+  int16_t estSegPosRounded,searchSegStartPos,searchSegEndPos;
+  size_t corrdim,i;
+  int16_t tloc,tloc2,st,en,fraction;
 
   int32_t maxtemp, scalefact;
   int16_t *filtStatePtr, *polyPtr;
@@ -65,13 +66,13 @@
   if(searchSegEndPos+ENH_BLOCKL >= idatal) {
     searchSegEndPos=idatal-ENH_BLOCKL-1;
   }
-  corrdim=searchSegEndPos-searchSegStartPos+1;
+  corrdim=(size_t)(searchSegEndPos-searchSegStartPos+1);
 
   /* compute upsampled correlation and find
      location of max */
 
   WebRtcIlbcfix_MyCorr(corrVecTemp,idata+searchSegStartPos,
-                       (int16_t)(corrdim+ENH_BLOCKL-1),idata+centerStartPos,ENH_BLOCKL);
+                       corrdim+ENH_BLOCKL-1,idata+centerStartPos,ENH_BLOCKL);
 
   /* Calculate the rescaling factor for the correlation in order to
      put the correlation in a int16_t vector instead */
@@ -110,7 +111,7 @@
   /* initialize the vector to be filtered, stuff with zeros
      when data is outside idata buffer */
   if(st<0){
-    WebRtcSpl_MemSetW16(vect, 0, (int16_t)(-st));
+    WebRtcSpl_MemSetW16(vect, 0, (size_t)(-st));
     WEBRTC_SPL_MEMCPY_W16(&vect[-st], idata, (ENH_VECTL+st));
   }
   else{
@@ -120,7 +121,7 @@
       WEBRTC_SPL_MEMCPY_W16(vect, &idata[st],
                             (ENH_VECTL-(en-idatal)));
       WebRtcSpl_MemSetW16(&vect[ENH_VECTL-(en-idatal)], 0,
-                          (int16_t)(en-idatal));
+                          (size_t)(en-idatal));
     }
     else {
       WEBRTC_SPL_MEMCPY_W16(vect, &idata[st], ENH_VECTL);
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.c b/webrtc/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.c
index d89770e..e63dda8 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.c
@@ -42,7 +42,8 @@
     IlbcEncoder *iLBCenc_inst
     /* (i/o) the encoder state structure */
                                         ) {
-  int i, pos, lp_length;
+  size_t i;
+  int pos, lp_length;
 
   int16_t *lsf2, *lsfdeq2;
   /* Stack based */
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/simple_lpc_analysis.c b/webrtc/modules/audio_coding/codecs/ilbc/simple_lpc_analysis.c
index dfc637b..72d80e0 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/simple_lpc_analysis.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/simple_lpc_analysis.c
@@ -34,7 +34,7 @@
                                      ) {
   int k;
   int scale;
-  int16_t is;
+  size_t is;
   int16_t stability;
   /* Stack based */
   int16_t A[LPC_FILTERORDER + 1];
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/state_construct.c b/webrtc/modules/audio_coding/codecs/ilbc/state_construct.c
index 324b670..29fe91b 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/state_construct.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/state_construct.c
@@ -24,14 +24,14 @@
  *---------------------------------------------------------------*/
 
 void WebRtcIlbcfix_StateConstruct(
-    int16_t idxForMax,   /* (i) 6-bit index for the quantization of
+    size_t idxForMax,   /* (i) 6-bit index for the quantization of
                                            max amplitude */
     int16_t *idxVec,   /* (i) vector of quantization indexes */
     int16_t *syntDenum,  /* (i) synthesis filter denumerator */
     int16_t *Out_fix,  /* (o) the decoded state vector */
-    int16_t len    /* (i) length of a state vector */
+    size_t len    /* (i) length of a state vector */
                                   ) {
-  int k;
+  size_t k;
   int16_t maxVal;
   int16_t *tmp1, *tmp2, *tmp3;
   /* Stack based */
@@ -96,7 +96,7 @@
   /* Run MA filter + AR filter */
   WebRtcSpl_FilterMAFastQ12(
       sampleVal, sampleMa,
-      numerator, LPC_FILTERORDER+1, (int16_t)(len + LPC_FILTERORDER));
+      numerator, LPC_FILTERORDER+1, len + LPC_FILTERORDER);
   WebRtcSpl_MemSetW16(&sampleMa[len + LPC_FILTERORDER], 0, (len - LPC_FILTERORDER));
   WebRtcSpl_FilterARFastQ12(
       sampleMa, sampleAr,
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/state_construct.h b/webrtc/modules/audio_coding/codecs/ilbc/state_construct.h
index 22d75e2..2631919 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/state_construct.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/state_construct.h
@@ -24,12 +24,12 @@
  *---------------------------------------------------------------*/
 
 void WebRtcIlbcfix_StateConstruct(
-    int16_t idxForMax,   /* (i) 6-bit index for the quantization of
+    size_t idxForMax,   /* (i) 6-bit index for the quantization of
                                            max amplitude */
     int16_t *idxVec,   /* (i) vector of quantization indexes */
     int16_t *syntDenum,  /* (i) synthesis filter denumerator */
     int16_t *Out_fix,  /* (o) the decoded state vector */
-    int16_t len    /* (i) length of a state vector */
+    size_t len    /* (i) length of a state vector */
                                   );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/state_search.c b/webrtc/modules/audio_coding/codecs/ilbc/state_search.c
index b2214c7..295c543 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/state_search.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/state_search.c
@@ -33,7 +33,7 @@
     int16_t *syntDenum,  /* (i) lpc synthesis filter */
     int16_t *weightDenum  /* (i) weighting filter denuminator */
                                ) {
-  int16_t k, index;
+  size_t k, index;
   int16_t maxVal;
   int16_t scale, shift;
   int32_t maxValsq;
@@ -64,9 +64,9 @@
 
   /* Run the Zero-Pole filter (Ciurcular convolution) */
   WebRtcSpl_MemSetW16(residualLongVec, 0, LPC_FILTERORDER);
-  WebRtcSpl_FilterMAFastQ12(
-      residualLong, sampleMa,
-      numerator, LPC_FILTERORDER+1, (int16_t)(iLBCenc_inst->state_short_len + LPC_FILTERORDER));
+  WebRtcSpl_FilterMAFastQ12(residualLong, sampleMa, numerator,
+                            LPC_FILTERORDER + 1,
+                            iLBCenc_inst->state_short_len + LPC_FILTERORDER);
   WebRtcSpl_MemSetW16(&sampleMa[iLBCenc_inst->state_short_len + LPC_FILTERORDER], 0, iLBCenc_inst->state_short_len - LPC_FILTERORDER);
 
   WebRtcSpl_FilterARFastQ12(
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.c b/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.c
index 8bbac42..b795e56 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.c
@@ -24,10 +24,10 @@
 
 void WebRtcIlbcfix_SwapBytes(
     const uint16_t* input,   /* (i) the sequence to swap */
-    int16_t wordLength,      /* (i) number or uint16_t to swap */
+    size_t wordLength,      /* (i) number or uint16_t to swap */
     uint16_t* output         /* (o) the swapped sequence */
                               ) {
-  int k;
+  size_t k;
   for (k = wordLength; k > 0; k--) {
     *output++ = (*input >> 8)|(*input << 8);
     input++;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.h b/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.h
index a909b2c..a4484d6 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/swap_bytes.h
@@ -27,7 +27,7 @@
 
 void WebRtcIlbcfix_SwapBytes(
     const uint16_t* input,   /* (i) the sequence to swap */
-    int16_t wordLength,      /* (i) number or uint16_t to swap */
+    size_t wordLength,      /* (i) number or uint16_t to swap */
     uint16_t* output         /* (o) the swapped sequence */
                               );
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_test.c b/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_test.c
index 6ee3df4..1199c81 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_test.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_test.c
@@ -47,12 +47,11 @@
   int16_t data[BLOCKL_MAX];
   uint8_t encoded_data[2 * ILBCNOOFWORDS_MAX];
   int16_t decoded_data[BLOCKL_MAX];
-  int len;
-  short pli, mode;
+  int len_int, mode;
+  short pli;
   int blockcount = 0;
   int packetlosscount = 0;
-  int frameLen;
-  size_t len_i16s;
+  size_t frameLen, len, len_i16s;
   int16_t speechType;
   IlbcEncoderInstance *Enc_Inst;
   IlbcDecoderInstance *Dec_Inst;
@@ -153,23 +152,23 @@
 
   WebRtcIlbcfix_EncoderInit(Enc_Inst, mode);
   WebRtcIlbcfix_DecoderInit(Dec_Inst, mode);
-  frameLen = mode*8;
+  frameLen = (size_t)(mode*8);
 
   /* loop over input blocks */
 
-  while (((int16_t)fread(data,sizeof(int16_t),frameLen,ifileid))==
-         frameLen) {
+  while (fread(data,sizeof(int16_t),frameLen,ifileid) == frameLen) {
 
     blockcount++;
 
     /* encoding */
 
     fprintf(stderr, "--- Encoding block %i --- ",blockcount);
-    len = WebRtcIlbcfix_Encode(Enc_Inst, data, (int16_t)frameLen, encoded_data);
-    if (len < 0) {
+    len_int = WebRtcIlbcfix_Encode(Enc_Inst, data, frameLen, encoded_data);
+    if (len_int < 0) {
       fprintf(stderr, "Error encoding\n");
       exit(0);
     }
+    len = (size_t)len_int;
     fprintf(stderr, "\r");
 
     /* write byte file */
@@ -204,12 +203,13 @@
 
     fprintf(stderr, "--- Decoding block %i --- ",blockcount);
     if (pli==1) {
-      len=WebRtcIlbcfix_Decode(Dec_Inst, encoded_data,
-                               (int16_t)len, decoded_data,&speechType);
-      if (len < 0) {
+      len_int=WebRtcIlbcfix_Decode(Dec_Inst, encoded_data,
+                                   len, decoded_data,&speechType);
+      if (len_int < 0) {
         fprintf(stderr, "Error decoding\n");
         exit(0);
       }
+      len = (size_t)len_int;
     } else {
       len=WebRtcIlbcfix_DecodePlc(Dec_Inst, decoded_data, 1);
     }
@@ -217,8 +217,7 @@
 
     /* write output file */
 
-    if (fwrite(decoded_data, sizeof(int16_t), len,
-               ofileid) != (size_t)len) {
+    if (fwrite(decoded_data, sizeof(int16_t), len, ofileid) != len) {
       return -1;
     }
   }
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_testLib.c b/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_testLib.c
index b4e36b6..f14192c 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_testLib.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/test/iLBC_testLib.c
@@ -41,15 +41,15 @@
 {
   FILE *ifileid,*efileid,*ofileid, *chfileid;
   short encoded_data[55], data[240], speechType;
-  int len;
-  short mode, pli;
-  size_t readlen;
+  int len_int, mode;
+  short pli;
+  size_t len, readlen;
   int blockcount = 0;
 
   IlbcEncoderInstance *Enc_Inst;
   IlbcDecoderInstance *Dec_Inst;
 #ifdef JUNK_DATA
-  int i;
+  size_t i;
   FILE *seedfile;
   unsigned int random_seed = (unsigned int) time(NULL);//1196764538
 #endif
@@ -136,11 +136,12 @@
 
     /* encoding */
     fprintf(stderr, "--- Encoding block %i --- ",blockcount);
-    len=WebRtcIlbcfix_Encode(Enc_Inst, data, (short)readlen, encoded_data);
-    if (len < 0) {
+    len_int=WebRtcIlbcfix_Encode(Enc_Inst, data, readlen, encoded_data);
+    if (len_int < 0) {
       fprintf(stderr, "Error encoding\n");
       exit(0);
     }
+    len = (size_t)len_int;
     fprintf(stderr, "\r");
 
 #ifdef JUNK_DATA
@@ -174,12 +175,13 @@
       /* decoding */
       fprintf(stderr, "--- Decoding block %i --- ",blockcount);
       if (pli==1) {
-        len=WebRtcIlbcfix_Decode(Dec_Inst, encoded_data, (int16_t)len, data,
-                                 &speechType);
-        if (len < 0) {
+        len_int = WebRtcIlbcfix_Decode(Dec_Inst, encoded_data, len, data,
+                                       &speechType);
+        if (len_int < 0) {
           fprintf(stderr, "Error decoding\n");
           exit(0);
         }
+        len = (size_t)len_int;
       } else {
         len=WebRtcIlbcfix_DecodePlc(Dec_Inst, data, 1);
       }
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.c b/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.c
index dbecc33..dc12a5a 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.c
@@ -26,9 +26,9 @@
     int32_t *z,    /* Output */
     int32_t *x,    /* Input (same domain as Output)*/
     const int32_t  *y,  /* Q31 Window */
-    int16_t N     /* length to process */
+    size_t N     /* length to process */
                                ) {
-  int16_t i;
+  size_t i;
   int16_t x_low, x_hi, y_low, y_hi;
   int16_t left_shifts;
   int32_t temp;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.h b/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.h
index 4ee6fce..27ed1b6 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/window32_w32.h
@@ -29,7 +29,7 @@
     int32_t *z,    /* Output */
     int32_t *x,    /* Input (same domain as Output)*/
     const int32_t  *y,  /* Q31 Window */
-    int16_t N     /* length to process */
+    size_t N     /* length to process */
                                );
 
 #endif
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.c b/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.c
index 53d95bf..0d898c5 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.c
+++ b/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.c
@@ -23,16 +23,16 @@
  * crossCorr*crossCorr/(energy) criteria
  *---------------------------------------------------------------*/
 
-int WebRtcIlbcfix_XcorrCoef(
+size_t WebRtcIlbcfix_XcorrCoef(
     int16_t *target,  /* (i) first array */
     int16_t *regressor, /* (i) second array */
-    int16_t subl,  /* (i) dimension arrays */
-    int16_t searchLen, /* (i) the search lenght */
-    int16_t offset,  /* (i) samples offset between arrays */
+    size_t subl,  /* (i) dimension arrays */
+    size_t searchLen, /* (i) the search lenght */
+    size_t offset,  /* (i) samples offset between arrays */
     int16_t step   /* (i) +1 or -1 */
                             ){
-  int k;
-  int16_t maxlag;
+  size_t k;
+  size_t maxlag;
   int16_t pos;
   int16_t max;
   int16_t crossCorrScale, Energyscale;
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.h b/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.h
index 1f4c58d..9b81c0f 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.h
@@ -26,12 +26,12 @@
  * crossCorr*crossCorr/(energy) criteria
  *---------------------------------------------------------------*/
 
-int WebRtcIlbcfix_XcorrCoef(
+size_t WebRtcIlbcfix_XcorrCoef(
     int16_t *target,  /* (i) first array */
     int16_t *regressor, /* (i) second array */
-    int16_t subl,  /* (i) dimension arrays */
-    int16_t searchLen, /* (i) the search lenght */
-    int16_t offset,  /* (i) samples offset between arrays */
+    size_t subl,  /* (i) dimension arrays */
+    size_t searchLen, /* (i) the search lenght */
+    size_t offset,  /* (i) samples offset between arrays */
     int16_t step   /* (i) +1 or -1 */
                             );
 
diff --git a/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h b/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h
index 7093304..a2c43a6 100644
--- a/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h
+++ b/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h
@@ -55,8 +55,8 @@
   int SampleRateHz() const override;
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   EncodedInfo EncodeInternal(uint32_t rtp_timestamp,
                              const int16_t* audio,
@@ -94,7 +94,7 @@
   ~AudioDecoderIsacT() override;
 
   bool HasDecodePlc() const override;
-  int DecodePlc(int num_frames, int16_t* decoded) override;
+  size_t DecodePlc(size_t num_frames, int16_t* decoded) override;
   int Init() override;
   int IncomingPacket(const uint8_t* payload,
                      size_t payload_len,
diff --git a/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h b/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h
index ce70db4..93fbde9 100644
--- a/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h
+++ b/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h
@@ -123,14 +123,15 @@
 }
 
 template <typename T>
-int AudioEncoderIsacT<T>::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderIsacT<T>::Num10MsFramesInNextPacket() const {
   const int samples_in_next_packet = T::GetNewFrameLen(isac_state_);
-  return rtc::CheckedDivExact(samples_in_next_packet,
-                              rtc::CheckedDivExact(SampleRateHz(), 100));
+  return static_cast<size_t>(
+      rtc::CheckedDivExact(samples_in_next_packet,
+                           rtc::CheckedDivExact(SampleRateHz(), 100)));
 }
 
 template <typename T>
-int AudioEncoderIsacT<T>::Max10MsFramesInAPacket() const {
+size_t AudioEncoderIsacT<T>::Max10MsFramesInAPacket() const {
   return 6;  // iSAC puts at most 60 ms in a packet.
 }
 
@@ -215,8 +216,7 @@
   }
   int16_t temp_type = 1;  // Default is speech.
   int ret =
-      T::DecodeInternal(isac_state_, encoded, static_cast<int16_t>(encoded_len),
-                        decoded, &temp_type);
+      T::DecodeInternal(isac_state_, encoded, encoded_len, decoded, &temp_type);
   *speech_type = ConvertSpeechType(temp_type);
   return ret;
 }
@@ -227,7 +227,7 @@
 }
 
 template <typename T>
-int AudioDecoderIsacT<T>::DecodePlc(int num_frames, int16_t* decoded) {
+size_t AudioDecoderIsacT<T>::DecodePlc(size_t num_frames, int16_t* decoded) {
   return T::DecodePlc(isac_state_, decoded, num_frames);
 }
 
@@ -243,7 +243,7 @@
                                          uint32_t rtp_timestamp,
                                          uint32_t arrival_timestamp) {
   int ret = T::UpdateBwEstimate(
-      isac_state_, payload, static_cast<int32_t>(payload_len),
+      isac_state_, payload, payload_len,
       rtp_sequence_number, rtp_timestamp, arrival_timestamp);
   if (bwinfo_) {
     IsacBandwidthInfo bwinfo;
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/interface/audio_encoder_isacfix.h b/webrtc/modules/audio_coding/codecs/isac/fix/interface/audio_encoder_isacfix.h
index 9d51161..6c61915 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/interface/audio_encoder_isacfix.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/interface/audio_encoder_isacfix.h
@@ -40,14 +40,14 @@
   }
   static inline int DecodeInternal(instance_type* inst,
                                    const uint8_t* encoded,
-                                   int16_t len,
+                                   size_t len,
                                    int16_t* decoded,
                                    int16_t* speech_type) {
     return WebRtcIsacfix_Decode(inst, encoded, len, decoded, speech_type);
   }
-  static inline int16_t DecodePlc(instance_type* inst,
-                                  int16_t* decoded,
-                                  int16_t num_lost_frames) {
+  static inline size_t DecodePlc(instance_type* inst,
+                                 int16_t* decoded,
+                                 size_t num_lost_frames) {
     return WebRtcIsacfix_DecodePlc(inst, decoded, num_lost_frames);
   }
   static inline int16_t DecoderInit(instance_type* inst) {
@@ -104,7 +104,7 @@
   }
   static inline int16_t UpdateBwEstimate(instance_type* inst,
                                          const uint8_t* encoded,
-                                         int32_t packet_size,
+                                         size_t packet_size,
                                          uint16_t rtp_seq_number,
                                          uint32_t send_ts,
                                          uint32_t arr_ts) {
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/interface/isacfix.h b/webrtc/modules/audio_coding/codecs/isac/fix/interface/isacfix.h
index 68ffe65..eec4a39 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/interface/isacfix.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/interface/isacfix.h
@@ -11,6 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INTERFACE_ISACFIX_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INTERFACE_ISACFIX_H_
 
+#include <stddef.h>
+
 #include "webrtc/modules/audio_coding/codecs/isac/bandwidth_info.h"
 #include "webrtc/typedefs.h"
 
@@ -189,7 +191,7 @@
    * Input:
    *      - ISAC_main_inst    : ISAC instance.
    *      - encoded           : encoded ISAC frame(s).
-   *      - packet_size       : size of the packet.
+   *      - packet_size       : size of the packet in bytes.
    *      - rtp_seq_number    : the RTP number of the packet.
    *      - arr_ts            : the arrival time of the packet (from NetEq)
    *                            in samples.
@@ -200,7 +202,7 @@
 
   int16_t WebRtcIsacfix_UpdateBwEstimate1(ISACFIX_MainStruct *ISAC_main_inst,
                                           const uint8_t* encoded,
-                                          int32_t  packet_size,
+                                          size_t packet_size,
                                           uint16_t rtp_seq_number,
                                           uint32_t arr_ts);
 
@@ -212,7 +214,7 @@
    * Input:
    *      - ISAC_main_inst    : ISAC instance.
    *      - encoded           : encoded ISAC frame(s).
-   *      - packet_size       : size of the packet.
+   *      - packet_size       : size of the packet in bytes.
    *      - rtp_seq_number    : the RTP number of the packet.
    *      - send_ts           : the send time of the packet from RTP header,
    *                            in samples.
@@ -225,7 +227,7 @@
 
   int16_t WebRtcIsacfix_UpdateBwEstimate(ISACFIX_MainStruct *ISAC_main_inst,
                                          const uint8_t* encoded,
-                                         int32_t packet_size,
+                                         size_t packet_size,
                                          uint16_t rtp_seq_number,
                                          uint32_t send_ts,
                                          uint32_t arr_ts);
@@ -251,7 +253,7 @@
 
   int WebRtcIsacfix_Decode(ISACFIX_MainStruct *ISAC_main_inst,
                            const uint8_t* encoded,
-                           int16_t len,
+                           size_t len,
                            int16_t *decoded,
                            int16_t *speechType);
 
@@ -280,7 +282,7 @@
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
   int WebRtcIsacfix_DecodeNb(ISACFIX_MainStruct *ISAC_main_inst,
                              const uint16_t *encoded,
-                             int16_t len,
+                             size_t len,
                              int16_t *decoded,
                              int16_t *speechType);
 #endif //  WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
@@ -303,14 +305,13 @@
    * Output:
    *      - decoded           : The decoded vector
    *
-   * Return value             : >0 - number of samples in decoded PLC vector
-   *                            -1 - Error
+   * Return value             : Number of samples in decoded PLC vector
    */
 
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
-  int16_t WebRtcIsacfix_DecodePlcNb(ISACFIX_MainStruct *ISAC_main_inst,
-                                    int16_t *decoded,
-                                    int16_t noOfLostFrames);
+  size_t WebRtcIsacfix_DecodePlcNb(ISACFIX_MainStruct *ISAC_main_inst,
+                                   int16_t *decoded,
+                                   size_t noOfLostFrames);
 #endif // WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
 
 
@@ -332,13 +333,12 @@
    * Output:
    *      - decoded           : The decoded vector
    *
-   * Return value             : >0 - number of samples in decoded PLC vector
-   *                            -1 - Error
+   * Return value             : Number of samples in decoded PLC vector
    */
 
-  int16_t WebRtcIsacfix_DecodePlc(ISACFIX_MainStruct *ISAC_main_inst,
-                                  int16_t *decoded,
-                                  int16_t noOfLostFrames );
+  size_t WebRtcIsacfix_DecodePlc(ISACFIX_MainStruct *ISAC_main_inst,
+                                 int16_t *decoded,
+                                 size_t noOfLostFrames );
 
 
   /****************************************************************************
@@ -356,8 +356,8 @@
    */
 
   int16_t WebRtcIsacfix_ReadFrameLen(const uint8_t* encoded,
-                                     int encoded_len_bytes,
-                                     int16_t* frameLength);
+                                     size_t encoded_len_bytes,
+                                     size_t* frameLength);
 
   /****************************************************************************
    * WebRtcIsacfix_Control(...)
@@ -608,7 +608,7 @@
    */
 
   int16_t WebRtcIsacfix_ReadBwIndex(const uint8_t* encoded,
-                                    int encoded_len_bytes,
+                                    size_t encoded_len_bytes,
                                     int16_t* rateIndex);
 
 
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.c
index d876a3c..b074962 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.c
@@ -148,7 +148,7 @@
                                          const int16_t  frameSize,
                                          const uint32_t sendTime,
                                          const uint32_t arrivalTime,
-                                         const int16_t  pksize,
+                                         const size_t   pksize,
                                          const uint16_t Index)
 {
   uint16_t  weight = 0;
@@ -379,7 +379,7 @@
 
         /* compute inverse receiving rate for last packet, in Q19 */
         numBytesInv = (uint16_t) WebRtcSpl_DivW32W16(
-            524288 + ((pksize + HEADER_SIZE) >> 1),
+            (int32_t)(524288 + ((pksize + HEADER_SIZE) >> 1)),
             (int16_t)(pksize + HEADER_SIZE));
 
         /* 8389 is  ~ 1/128000 in Q30 */
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.h b/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.h
index 5d8ccbc..101ef62 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator.h
@@ -62,7 +62,7 @@
                                          const int16_t         frameSize,
                                          const uint32_t        send_ts,
                                          const uint32_t        arr_ts,
-                                         const int16_t         pksize,
+                                         const size_t          pksize,
                                          const uint16_t        Index);
 
 /* Update receiving estimates. Used when we only receive BWE index, no iSAC data packet. */
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h b/webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h
index d71decc..fdbb2fc 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h
@@ -27,18 +27,18 @@
 
 int WebRtcIsacfix_EstimateBandwidth(BwEstimatorstr* bwest_str,
                                     Bitstr_dec* streamdata,
-                                    int32_t packet_size,
+                                    size_t packet_size,
                                     uint16_t rtp_seq_number,
                                     uint32_t send_ts,
                                     uint32_t arr_ts);
 
 int WebRtcIsacfix_DecodeImpl(int16_t* signal_out16,
                              IsacFixDecoderInstance* ISACdec_obj,
-                             int16_t* current_framesamples);
+                             size_t* current_framesamples);
 
 void WebRtcIsacfix_DecodePlcImpl(int16_t* decoded,
                                  IsacFixDecoderInstance* ISACdec_obj,
-                                 int16_t* current_framesample );
+                                 size_t* current_framesample );
 
 int WebRtcIsacfix_EncodeImpl(int16_t* in,
                              IsacFixEncoderInstance* ISACenc_obj,
@@ -141,7 +141,7 @@
 
 /* normalized lattice filters */
 
-void WebRtcIsacfix_NormLatticeFilterMa(int16_t orderCoef,
+void WebRtcIsacfix_NormLatticeFilterMa(size_t orderCoef,
                                        int32_t* stateGQ15,
                                        int16_t* lat_inQ0,
                                        int16_t* filt_coefQ15,
@@ -149,7 +149,7 @@
                                        int16_t lo_hi,
                                        int16_t* lat_outQ9);
 
-void WebRtcIsacfix_NormLatticeFilterAr(int16_t orderCoef,
+void WebRtcIsacfix_NormLatticeFilterAr(size_t orderCoef,
                                        int16_t* stateGQ0,
                                        int32_t* lat_inQ25,
                                        int16_t* filt_coefQ15,
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/decode.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/decode.c
index d0c59d6..e3de437 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/decode.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/decode.c
@@ -29,7 +29,7 @@
 
 int WebRtcIsacfix_DecodeImpl(int16_t* signal_out16,
                              IsacFixDecoderInstance* ISACdec_obj,
-                             int16_t* current_framesamples)
+                             size_t* current_framesamples)
 {
   int k;
   int err;
@@ -58,9 +58,9 @@
   int16_t gainQ13;
 
 
-  int16_t frame_nb; /* counter */
-  int16_t frame_mode; /* 0 for 30ms, 1 for 60ms */
-  static const int16_t kProcessedSamples = 480; /* 480 (for both 30, 60 ms) */
+  size_t frame_nb; /* counter */
+  size_t frame_mode; /* 0 for 30ms, 1 for 60ms */
+  static const size_t kProcessedSamples = 480; /* 480 (for both 30, 60 ms) */
 
   /* PLC */
   int16_t overlapWin[ 240 ];
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_bwe.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_bwe.c
index b1f5d10..316f59a 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_bwe.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_bwe.c
@@ -26,13 +26,13 @@
 
 int WebRtcIsacfix_EstimateBandwidth(BwEstimatorstr *bwest_str,
                                     Bitstr_dec  *streamdata,
-                                    int32_t  packet_size,
+                                    size_t packet_size,
                                     uint16_t rtp_seq_number,
                                     uint32_t send_ts,
                                     uint32_t arr_ts)
 {
   int16_t index;
-  int16_t frame_samples;
+  size_t frame_samples;
   int err;
 
   /* decode framelength */
@@ -53,10 +53,10 @@
   err = WebRtcIsacfix_UpdateUplinkBwImpl(
       bwest_str,
       rtp_seq_number,
-      frame_samples * 1000 / FS,
+      (int16_t)(frame_samples * 1000 / FS),
       send_ts,
       arr_ts,
-      (int16_t) packet_size,  /* in bytes */
+      packet_size,  /* in bytes */
       index);
 
   /* error check */
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_plc.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_plc.c
index c3a89c3..e907f2b6 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_plc.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_plc.c
@@ -177,11 +177,12 @@
 
 static void LinearResampler(int16_t* in,
                             int16_t* out,
-                            int16_t lenIn,
-                            int16_t lenOut)
+                            size_t lenIn,
+                            size_t lenOut)
 {
-  int32_t n = (lenIn - 1) * RESAMP_RES;
-  int16_t resOut, i, j, relativePos, diff; /* */
+  size_t n = (lenIn - 1) * RESAMP_RES;
+  int16_t resOut, relativePos, diff; /* */
+  size_t i, j;
   uint16_t udiff;
 
   if( lenIn == lenOut )
@@ -190,7 +191,7 @@
     return;
   }
 
-  resOut = WebRtcSpl_DivW32W16ResW16( n, (int16_t)(lenOut-1) );
+  resOut = WebRtcSpl_DivW32W16ResW16( (int32_t)n, (int16_t)(lenOut-1) );
 
   out[0] = in[0];
   for( i = 1, j = 0, relativePos = 0; i < lenOut; i++ )
@@ -235,7 +236,7 @@
 
 void WebRtcIsacfix_DecodePlcImpl(int16_t *signal_out16,
                                  IsacFixDecoderInstance *ISACdec_obj,
-                                 int16_t *current_framesamples )
+                                 size_t *current_framesamples )
 {
   int subframecnt;
 
@@ -260,12 +261,14 @@
   int16_t myDecayRate;
 
   /* ---------- PLC variables ------------ */
-  int16_t lag0, i, k, noiseIndex;
+  size_t lag0, i, k;
+  int16_t noiseIndex;
   int16_t stretchPitchLP[PITCH_MAX_LAG + 10], stretchPitchLP1[PITCH_MAX_LAG + 10];
 
   int32_t gain_lo_hiQ17[2*SUBFRAMES];
 
-  int16_t nLP, pLP, wNoisyLP, wPriodicLP, tmp16, minIdx;
+  int16_t nLP, pLP, wNoisyLP, wPriodicLP, tmp16;
+  size_t minIdx;
   int32_t nHP, pHP, wNoisyHP, wPriodicHP, corr, minCorr, maxCoeff;
   int16_t noise1, rshift;
 
@@ -300,7 +303,7 @@
 
 
 
-  lag0 = ((ISACdec_obj->plcstr_obj.lastPitchLag_Q7 + 64) >> 7) + 1;
+  lag0 = (size_t)(((ISACdec_obj->plcstr_obj.lastPitchLag_Q7 + 64) >> 7) + 1);
 
 
   if( (ISACdec_obj->plcstr_obj).used != PLC_WAS_USED )
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c
index 5f6e6ac..2379ba5 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c
@@ -1870,7 +1870,7 @@
 
 
 int WebRtcIsacfix_DecodeFrameLen(Bitstr_dec *streamdata,
-                                 int16_t *framesamples)
+                                 size_t *framesamples)
 {
 
   int err;
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.h b/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.h
index e4489df..2c8c923 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.h
@@ -92,7 +92,7 @@
                                  int16_t *PitchLagQ7);
 
 int WebRtcIsacfix_DecodeFrameLen(Bitstr_dec *streamdata,
-                                 int16_t *framelength);
+                                 size_t *framelength);
 
 
 int WebRtcIsacfix_EncodeFrameLen(int16_t framelength,
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
index 9b61d60..4a663d1 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
@@ -38,7 +38,7 @@
 /* This method assumes that |stream_size_bytes| is in valid range,
  * i.e. >= 0 && <=  STREAM_MAXW16_60MS
  */
-static void InitializeDecoderBitstream(int stream_size_bytes,
+static void InitializeDecoderBitstream(size_t stream_size_bytes,
                                        Bitstr_dec* bitstream) {
   bitstream->W_upper = 0xFFFFFFFF;
   bitstream->streamval = 0;
@@ -621,20 +621,20 @@
 
 int16_t WebRtcIsacfix_UpdateBwEstimate1(ISACFIX_MainStruct *ISAC_main_inst,
                                         const uint8_t* encoded,
-                                        int32_t packet_size,
+                                        size_t packet_size,
                                         uint16_t rtp_seq_number,
                                         uint32_t arr_ts)
 {
   ISACFIX_SubStruct *ISAC_inst;
   Bitstr_dec streamdata;
   int16_t err;
-  const int kRequiredEncodedLenBytes = 10;
+  const size_t kRequiredEncodedLenBytes = 10;
 
   /* typecast pointer to real structure */
   ISAC_inst = (ISACFIX_SubStruct *)ISAC_main_inst;
 
   /* Sanity check of packet length */
-  if (packet_size <= 0) {
+  if (packet_size == 0) {
     /* return error code if the packet length is null or less */
     ISAC_inst->errorcode = ISAC_EMPTY_PACKET;
     return -1;
@@ -693,7 +693,7 @@
 
 int16_t WebRtcIsacfix_UpdateBwEstimate(ISACFIX_MainStruct *ISAC_main_inst,
                                        const uint8_t* encoded,
-                                       int32_t packet_size,
+                                       size_t packet_size,
                                        uint16_t rtp_seq_number,
                                        uint32_t send_ts,
                                        uint32_t arr_ts)
@@ -701,13 +701,13 @@
   ISACFIX_SubStruct *ISAC_inst;
   Bitstr_dec streamdata;
   int16_t err;
-  const int kRequiredEncodedLenBytes = 10;
+  const size_t kRequiredEncodedLenBytes = 10;
 
   /* typecast pointer to real structure */
   ISAC_inst = (ISACFIX_SubStruct *)ISAC_main_inst;
 
   /* Sanity check of packet length */
-  if (packet_size <= 0) {
+  if (packet_size == 0) {
     /* return error code if the packet length is null  or less */
     ISAC_inst->errorcode = ISAC_EMPTY_PACKET;
     return -1;
@@ -770,15 +770,16 @@
 
 int WebRtcIsacfix_Decode(ISACFIX_MainStruct* ISAC_main_inst,
                          const uint8_t* encoded,
-                         int16_t len,
+                         size_t len,
                          int16_t* decoded,
                          int16_t* speechType)
 {
   ISACFIX_SubStruct *ISAC_inst;
   /* number of samples (480 or 960), output from decoder */
   /* that were actually used in the encoder/decoder (determined on the fly) */
-  int16_t number_of_samples;
-  int declen = 0;
+  size_t number_of_samples;
+  int declen_int = 0;
+  size_t declen;
 
   /* typecast pointer to real structure */
   ISAC_inst = (ISACFIX_SubStruct *)ISAC_main_inst;
@@ -790,7 +791,7 @@
   }
 
   /* Sanity check of packet length */
-  if (len <= 0) {
+  if (len == 0) {
     /* return error code if the packet length is null  or less */
     ISAC_inst->errorcode = ISAC_EMPTY_PACKET;
     return -1;
@@ -807,14 +808,15 @@
   /* added for NetEq purposes (VAD/DTX related) */
   *speechType=1;
 
-  declen = WebRtcIsacfix_DecodeImpl(decoded, &ISAC_inst->ISACdec_obj,
-                                    &number_of_samples);
-  if (declen < 0) {
+  declen_int = WebRtcIsacfix_DecodeImpl(decoded, &ISAC_inst->ISACdec_obj,
+                                        &number_of_samples);
+  if (declen_int < 0) {
     /* Some error inside the decoder */
-    ISAC_inst->errorcode = -(int16_t)declen;
+    ISAC_inst->errorcode = -(int16_t)declen_int;
     memset(decoded, 0, sizeof(int16_t) * MAX_FRAMESAMPLES);
     return -1;
   }
+  declen = (size_t)declen_int;
 
   /* error check */
 
@@ -836,7 +838,7 @@
     }
   }
 
-  return number_of_samples;
+  return (int)number_of_samples;
 }
 
 
@@ -865,17 +867,18 @@
  */
 
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
-int WebRtcIsacfix_DecodeNb(ISACFIX_MainStruct *ISAC_main_inst,
-                           const uint16_t   *encoded,
-                           int16_t          len,
-                           int16_t          *decoded,
-                           int16_t    *speechType)
+int WebRtcIsacfix_DecodeNb(ISACFIX_MainStruct* ISAC_main_inst,
+                           const uint16_t* encoded,
+                           size_t len,
+                           int16_t* decoded,
+                           int16_t* speechType)
 {
   ISACFIX_SubStruct *ISAC_inst;
   /* twice the number of samples (480 or 960), output from decoder */
   /* that were actually used in the encoder/decoder (determined on the fly) */
-  int16_t number_of_samples;
-  int declen = 0;
+  size_t number_of_samples;
+  int declen_int = 0;
+  size_t declen;
   int16_t dummy[FRAMESAMPLES/2];
 
 
@@ -888,7 +891,7 @@
     return (-1);
   }
 
-  if (len <= 0) {
+  if (len == 0) {
     /* return error code if the packet length is null  or less */
     ISAC_inst->errorcode = ISAC_EMPTY_PACKET;
     return -1;
@@ -905,14 +908,15 @@
   /* added for NetEq purposes (VAD/DTX related) */
   *speechType=1;
 
-  declen = WebRtcIsacfix_DecodeImpl(decoded, &ISAC_inst->ISACdec_obj,
-                                    &number_of_samples);
-  if (declen < 0) {
+  declen_int = WebRtcIsacfix_DecodeImpl(decoded, &ISAC_inst->ISACdec_obj,
+                                        &number_of_samples);
+  if (declen_int < 0) {
     /* Some error inside the decoder */
-    ISAC_inst->errorcode = -(int16_t)declen;
+    ISAC_inst->errorcode = -(int16_t)declen_int;
     memset(decoded, 0, sizeof(int16_t) * FRAMESAMPLES);
     return -1;
   }
+  declen = (size_t)declen_int;
 
   /* error check */
 
@@ -941,7 +945,7 @@
                                   dummy, &ISAC_inst->ISACdec_obj.decimatorstr_obj);
   }
 
-  return number_of_samples/2;
+  return (int)(number_of_samples / 2);
 }
 #endif /* WEBRTC_ISAC_FIX_NB_CALLS_ENABLED */
 
@@ -962,16 +966,15 @@
  * Output:
  *      - decoded           : The decoded vector
  *
- * Return value             : >0 - number of samples in decoded PLC vector
- *                            -1 - Error
+ * Return value             : Number of samples in decoded PLC vector
  */
 
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
-int16_t WebRtcIsacfix_DecodePlcNb(ISACFIX_MainStruct *ISAC_main_inst,
-                                  int16_t          *decoded,
-                                  int16_t noOfLostFrames )
+size_t WebRtcIsacfix_DecodePlcNb(ISACFIX_MainStruct* ISAC_main_inst,
+                                 int16_t* decoded,
+                                 size_t noOfLostFrames )
 {
-  int16_t no_of_samples, declen, k, ok;
+  size_t no_of_samples, declen, k;
   int16_t outframeNB[FRAMESAMPLES];
   int16_t outframeWB[FRAMESAMPLES];
   int16_t dummy[FRAMESAMPLES/2];
@@ -1028,16 +1031,15 @@
  * Output:
  *      - decoded           : The decoded vector
  *
- * Return value             : >0 - number of samples in decoded PLC vector
- *                            -1 - Error
+ * Return value             : Number of samples in decoded PLC vector
  */
 
-int16_t WebRtcIsacfix_DecodePlc(ISACFIX_MainStruct *ISAC_main_inst,
-                                int16_t          *decoded,
-                                int16_t noOfLostFrames)
+size_t WebRtcIsacfix_DecodePlc(ISACFIX_MainStruct* ISAC_main_inst,
+                               int16_t* decoded,
+                               size_t noOfLostFrames)
 {
 
-  int16_t no_of_samples, declen, k;
+  size_t no_of_samples, declen, k;
   int16_t outframe16[MAX_FRAMESAMPLES];
 
   ISACFIX_SubStruct *ISAC_inst;
@@ -1272,12 +1274,12 @@
  */
 
 int16_t WebRtcIsacfix_ReadFrameLen(const uint8_t* encoded,
-                                   int encoded_len_bytes,
-                                   int16_t* frameLength)
+                                   size_t encoded_len_bytes,
+                                   size_t* frameLength)
 {
   Bitstr_dec streamdata;
   int16_t err;
-  const int kRequiredEncodedLenBytes = 10;
+  const size_t kRequiredEncodedLenBytes = 10;
 
   if (encoded_len_bytes < kRequiredEncodedLenBytes) {
     return -1;
@@ -1311,12 +1313,12 @@
  */
 
 int16_t WebRtcIsacfix_ReadBwIndex(const uint8_t* encoded,
-                                  int encoded_len_bytes,
+                                  size_t encoded_len_bytes,
                                   int16_t* rateIndex)
 {
   Bitstr_dec streamdata;
   int16_t err;
-  const int kRequiredEncodedLenBytes = 10;
+  const size_t kRequiredEncodedLenBytes = 10;
 
   if (encoded_len_bytes < kRequiredEncodedLenBytes) {
     return -1;
@@ -1327,7 +1329,7 @@
   read_be16(encoded, kRequiredEncodedLenBytes, streamdata.stream);
 
   /* decode frame length, needed to get to the rateIndex in the bitstream */
-  int16_t frameLength;
+  size_t frameLength;
   err = WebRtcIsacfix_DecodeFrameLen(&streamdata, &frameLength);
   if (err<0)  // error check
     return err;
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c
index 13858d7..22224a8 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c
@@ -43,7 +43,7 @@
                                 int16_t* ar_f_Q0,
                                 int16_t* cth_Q15,
                                 int16_t* sth_Q15,
-                                int16_t order_coef);
+                                size_t order_coef);
 
 /* Inner loop used for function WebRtcIsacfix_NormLatticeFilterMa(). It does:
    for 0 <= n < HALF_SUBFRAMELEN - 1:
@@ -86,7 +86,7 @@
 
 /* filter the signal using normalized lattice filter */
 /* MA filter */
-void WebRtcIsacfix_NormLatticeFilterMa(int16_t orderCoef,
+void WebRtcIsacfix_NormLatticeFilterMa(size_t orderCoef,
                                        int32_t *stateGQ15,
                                        int16_t *lat_inQ0,
                                        int16_t *filt_coefQ15,
@@ -97,9 +97,10 @@
   int16_t sthQ15[MAX_AR_MODEL_ORDER];
   int16_t cthQ15[MAX_AR_MODEL_ORDER];
 
-  int u, i, k, n;
+  int u, n;
+  size_t i, k;
   int16_t temp2,temp3;
-  int16_t ord_1 = orderCoef+1;
+  size_t ord_1 = orderCoef+1;
   int32_t inv_cthQ16[MAX_AR_MODEL_ORDER];
 
   int32_t gain32, fQtmp;
@@ -210,7 +211,7 @@
 
 /* ----------------AR filter-------------------------*/
 /* filter the signal using normalized lattice filter */
-void WebRtcIsacfix_NormLatticeFilterAr(int16_t orderCoef,
+void WebRtcIsacfix_NormLatticeFilterAr(size_t orderCoef,
                                        int16_t *stateGQ0,
                                        int32_t *lat_inQ25,
                                        int16_t *filt_coefQ15,
@@ -218,7 +219,8 @@
                                        int16_t lo_hi,
                                        int16_t *lat_outQ0)
 {
-  int ii, n, k, i, u;
+  size_t ii, k, i;
+  int n, u;
   int16_t sthQ15[MAX_AR_MODEL_ORDER];
   int16_t cthQ15[MAX_AR_MODEL_ORDER];
   int32_t tmp32;
@@ -234,7 +236,7 @@
   int16_t sh;
 
   int16_t temp2,temp3;
-  int16_t ord_1 = orderCoef+1;
+  size_t ord_1 = orderCoef+1;
 
   for (u=0;u<SUBFRAMES;u++)
   {
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_c.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_c.c
index 43a1579..40c3bf8 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_c.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_c.c
@@ -25,11 +25,11 @@
                                 int16_t* ar_f_Q0,     // Input samples
                                 int16_t* cth_Q15,     // Filter coefficients
                                 int16_t* sth_Q15,     // Filter coefficients
-                                int16_t order_coef) { // order of the filter
+                                size_t order_coef) { // order of the filter
   int n = 0;
 
   for (n = 0; n < HALF_SUBFRAMELEN - 1; n++) {
-    int k = 0;
+    size_t k = 0;
     int16_t tmpAR = 0;
     int32_t tmp32 = 0;
     int32_t tmp32_2 = 0;
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c
index c596922..7197b15 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c
@@ -17,11 +17,11 @@
                                 int16_t* ar_f_Q0,     // Input samples
                                 int16_t* cth_Q15,     // Filter coefficients
                                 int16_t* sth_Q15,     // Filter coefficients
-                                int16_t order_coef) { // order of the filter
+                                size_t order_coef) { // order of the filter
   int n = 0;
 
   for (n = 0; n < HALF_SUBFRAMELEN - 1; n++) {
-    int count = order_coef - 1;
+    int count = (int)(order_coef - 1);
     int offset;
 #if !defined(MIPS_DSP_R1_LE)
     int16_t* tmp_cth;
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator.h b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator.h
index da401e5..40f15c4 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator.h
@@ -39,7 +39,7 @@
 
 void WebRtcIsacfix_PitchFilterCore(int loopNumber,
                                    int16_t gain,
-                                   int index,
+                                   size_t index,
                                    int16_t sign,
                                    int16_t* inputState,
                                    int16_t* outputBuff2,
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter.c
index c787d6e..d73a429 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter.c
@@ -34,8 +34,8 @@
   { 271, -743,  1570, -3320, 12963,  7301, -2292,  953, -325}
 };
 
-static __inline int32_t CalcLrIntQ(int32_t fixVal,
-                                   int16_t qDomain) {
+static __inline size_t CalcLrIntQ(int16_t fixVal,
+                                  int16_t qDomain) {
   int32_t roundVal = 1 << (qDomain - 1);
 
   return (fixVal + roundVal) >> qDomain;
@@ -55,7 +55,7 @@
   const int16_t Gain = 21299;     // 1.3 in Q14
   int16_t oldLagQ7;
   int16_t oldGainQ12, lagdeltaQ7, curLagQ7, gaindeltaQ12, curGainQ12;
-  int indW32 = 0, frcQQ = 0;
+  size_t indW32 = 0, frcQQ = 0;
   const int16_t* fracoeffQQ = NULL;
 
   // Assumptions in ARM assembly for WebRtcIsacfix_PitchFilterCoreARM().
@@ -141,13 +141,15 @@
                                     PitchFiltstr* pfp,
                                     int16_t* lagsQ7,
                                     int16_t* gainsQ12) {
-  int  k, n, m, ind, pos, pos3QQ;
+  int  k, n, m;
+  size_t ind, pos, pos3QQ;
 
   int16_t ubufQQ[PITCH_INTBUFFSIZE];
   int16_t oldLagQ7, lagdeltaQ7, curLagQ7;
   const int16_t* fracoeffQQ = NULL;
   int16_t scale;
-  int16_t cnt = 0, frcQQ, indW16 = 0, tmpW16;
+  int16_t cnt = 0, tmpW16;
+  size_t frcQQ, indW16 = 0;
   int32_t tmpW32, tmp2W32, csum1QQ, esumxQQ;
 
   // Set up buffer and states.
@@ -179,7 +181,7 @@
     for (cnt = 0; cnt < kSegments; cnt++) {
       // Update parameters for each segment.
       curLagQ7 += lagdeltaQ7;
-      indW16 = (int16_t)CalcLrIntQ(curLagQ7, 7);
+      indW16 = CalcLrIntQ(curLagQ7, 7);
       frcQQ = ((indW16 << 7) + 64 - curLagQ7) >> 4;
 
       if (frcQQ == PITCH_FRACS) {
@@ -202,7 +204,7 @@
 
         tmp2W32 = WEBRTC_SPL_MUL_16_32_RSFT14(indatQ0[ind], tmpW32);
         tmpW32 += 8192;
-        tmpW16 = (int16_t)(tmpW32 >> 14);
+        tmpW16 = tmpW32 >> 14;
         tmpW32 = tmpW16 * tmpW16;
 
         if ((tmp2W32 > 1073700000) || (csum1QQ > 1073700000) ||
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_armv6.S b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_armv6.S
index 57796b0..10b9579 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_armv6.S
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_armv6.S
@@ -21,7 +21,7 @@
 
 @ void WebRtcIsacfix_PitchFilterCore(int loopNumber,
 @                                    int16_t gain,
-@                                    int index,
+@                                    size_t index,
 @                                    int16_t sign,
 @                                    int16_t* inputState,
 @                                    int16_t* outputBuf2,
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_c.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_c.c
index 5c95678..366eef0 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_c.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_c.c
@@ -18,7 +18,7 @@
 
 void WebRtcIsacfix_PitchFilterCore(int loopNumber,
                                    int16_t gain,
-                                   int index,
+                                   size_t index,
                                    int16_t sign,
                                    int16_t* inputState,
                                    int16_t* outputBuf2,
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c
index 8334f7e..0f390b8 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c
@@ -12,7 +12,7 @@
 
 void WebRtcIsacfix_PitchFilterCore(int loopNumber,
                                    int16_t gain,
-                                   int index,
+                                   size_t index,
                                    int16_t sign,
                                    int16_t* inputState,
                                    int16_t* outputBuf2,
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/structs.h b/webrtc/modules/audio_coding/codecs/isac/fix/source/structs.h
index 5abbd7a..278af75 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/structs.h
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/structs.h
@@ -34,7 +34,7 @@
   int16_t   full;             /* 0 - first byte in memory filled, second empty*/
   /* 1 - both bytes are empty (we just filled the previous memory */
 
-  int stream_size;  /* The size of stream. */
+  size_t stream_size;  /* The size of stream in bytes. */
 } Bitstr_dec;
 
 /* Bitstream struct for encoder */
@@ -178,8 +178,8 @@
   int16_t pitchCycles;
   int16_t A;
   int16_t B;
-  int16_t pitchIndex;
-  int16_t stretchLag;
+  size_t pitchIndex;
+  size_t stretchLag;
   int16_t *prevPitchLP;                                  // [ FRAMESAMPLES/2 ]; saved 240
   int16_t seed;
 
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/test/isac_speed_test.cc b/webrtc/modules/audio_coding/codecs/isac/fix/test/isac_speed_test.cc
index 8f073ad..fc7588d 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/test/isac_speed_test.cc
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/test/isac_speed_test.cc
@@ -26,8 +26,8 @@
   void SetUp() override;
   void TearDown() override;
   virtual float EncodeABlock(int16_t* in_data, uint8_t* bit_stream,
-                             int max_bytes, int* encoded_bytes);
-  virtual float DecodeABlock(const uint8_t* bit_stream, int encoded_bytes,
+                             size_t max_bytes, size_t* encoded_bytes);
+  virtual float DecodeABlock(const uint8_t* bit_stream, size_t encoded_bytes,
                              int16_t* out_data);
   ISACFIX_MainStruct *ISACFIX_main_inst_;
 };
@@ -43,7 +43,7 @@
   AudioCodecSpeedTest::SetUp();
 
   // Check whether the allocated buffer for the bit stream is large enough.
-  EXPECT_GE(max_bytes_, STREAM_MAXW16_60MS);
+  EXPECT_GE(max_bytes_, static_cast<size_t>(STREAM_MAXW16_60MS));
 
   // Create encoder memory.
   EXPECT_EQ(0, WebRtcIsacfix_Create(&ISACFIX_main_inst_));
@@ -61,7 +61,7 @@
 }
 
 float IsacSpeedTest::EncodeABlock(int16_t* in_data, uint8_t* bit_stream,
-                                  int max_bytes, int* encoded_bytes) {
+                                  size_t max_bytes, size_t* encoded_bytes) {
   // ISAC takes 10 ms everycall
   const int subblocks = block_duration_ms_ / 10;
   const int subblock_length = 10 * input_sampling_khz_;
@@ -78,13 +78,13 @@
       EXPECT_EQ(0, value);
   }
   clocks = clock() - clocks;
-  *encoded_bytes = value;
+  *encoded_bytes = static_cast<size_t>(value);
   assert(*encoded_bytes <= max_bytes);
   return 1000.0 * clocks / CLOCKS_PER_SEC;
 }
 
 float IsacSpeedTest::DecodeABlock(const uint8_t* bit_stream,
-                                  int encoded_bytes,
+                                  size_t encoded_bytes,
                                   int16_t* out_data) {
   int value;
   int16_t audio_type;
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc b/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc
index 2628f1f..6a947c8 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc
@@ -50,7 +50,7 @@
 } BottleNeckModel;
 
 void get_arrival_time(int current_framesamples,   /* samples */
-                      int packet_size,            /* bytes */
+                      size_t packet_size,         /* bytes */
                       int bottleneck,             /* excluding headers; bits/s */
                       BottleNeckModel *BN_data)
 {
@@ -99,7 +99,8 @@
   FILE *inp, *outp, *f_bn, *outbits;
   int endfile;
 
-  int i, errtype, h = 0, k, packetLossPercent = 0;
+  size_t i;
+  int errtype, h = 0, k, packetLossPercent = 0;
   int16_t CodingMode;
   int16_t bottleneck;
   int framesize = 30;           /* ms */
@@ -108,14 +109,15 @@
   /* Runtime statistics */
   double starttime, runtime, length_file;
 
-  int16_t stream_len = 0;
+  int stream_len_int = 0;
+  size_t stream_len = 0;
   int16_t framecnt;
   int declen = 0;
   int16_t shortdata[FRAMESAMPLES_10ms];
   int16_t decoded[MAX_FRAMESAMPLES];
   uint16_t streamdata[500];
   int16_t speechType[1];
-  int16_t prevFrameSize = 1;
+  size_t prevFrameSize = 1;
   int16_t rateBPS = 0;
   int16_t fixedFL = 0;
   int16_t payloadSize = 0;
@@ -233,7 +235,7 @@
   CodingMode = 0;
   testNum = 0;
   testCE = 0;
-  for (i = 1; i + 2 < argc; i++) {
+  for (i = 1; i + 2 < static_cast<size_t>(argc); i++) {
     /* Instantaneous mode */
     if (!strcmp ("-I", argv[i])) {
       printf("\nInstantaneous BottleNeck\n");
@@ -565,19 +567,19 @@
           short bwe;
 
           /* Encode */
-          stream_len = WebRtcIsacfix_Encode(ISAC_main_inst,
-                                            shortdata,
-                                            (uint8_t*)streamdata);
+          stream_len_int = WebRtcIsacfix_Encode(ISAC_main_inst,
+                                                shortdata,
+                                                (uint8_t*)streamdata);
 
           /* If packet is ready, and CE testing, call the different API
              functions from the internal API. */
-          if (stream_len>0) {
+          if (stream_len_int>0) {
             if (testCE == 1) {
               err = WebRtcIsacfix_ReadBwIndex(
                   reinterpret_cast<const uint8_t*>(streamdata),
-                  stream_len,
+                  static_cast<size_t>(stream_len_int),
                   &bwe);
-              stream_len = WebRtcIsacfix_GetNewBitStream(
+              stream_len_int = WebRtcIsacfix_GetNewBitStream(
                   ISAC_main_inst,
                   bwe,
                   scale,
@@ -606,11 +608,11 @@
           }
         } else {
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
-          stream_len = WebRtcIsacfix_EncodeNb(ISAC_main_inst,
-                                              shortdata,
-                                              streamdata);
+          stream_len_int = WebRtcIsacfix_EncodeNb(ISAC_main_inst,
+                                                  shortdata,
+                                                  streamdata);
 #else
-          stream_len = -1;
+          stream_len_int = -1;
 #endif
         }
       }
@@ -619,13 +621,14 @@
         break;
       }
 
-      if (stream_len < 0 || err < 0) {
+      if (stream_len_int < 0 || err < 0) {
         /* exit if returned with error */
         errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
         printf("\nError in encoder: %d.\n", errtype);
       } else {
+        stream_len = static_cast<size_t>(stream_len_int);
         if (fwrite(streamdata, sizeof(char), stream_len, outbits) !=
-            (size_t)stream_len) {
+            stream_len) {
           return -1;
         }
       }
@@ -731,12 +734,12 @@
       /* iSAC decoding */
       if( lostFrame && framecnt >  0) {
         if (nbTest !=2) {
-          declen =
-              WebRtcIsacfix_DecodePlc(ISAC_main_inst, decoded, prevFrameSize);
+          declen = static_cast<int>(
+              WebRtcIsacfix_DecodePlc(ISAC_main_inst, decoded, prevFrameSize));
         } else {
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
-          declen = WebRtcIsacfix_DecodePlcNb(
-              ISAC_main_inst, decoded, prevFrameSize);
+          declen = static_cast<int>(WebRtcIsacfix_DecodePlcNb(
+              ISAC_main_inst, decoded, prevFrameSize));
 #else
           declen = -1;
 #endif
@@ -744,7 +747,7 @@
         lostPackets++;
       } else {
         if (nbTest !=2 ) {
-          short FL;
+          size_t FL;
           /* Call getFramelen, only used here for function test */
           err = WebRtcIsacfix_ReadFrameLen(
               reinterpret_cast<const uint8_t*>(streamdata), stream_len, &FL);
@@ -755,11 +758,11 @@
               decoded,
               speechType);
           /* Error check */
-          if (err < 0 || declen < 0 || FL != declen) {
+          if (err < 0 || declen < 0 || FL != static_cast<size_t>(declen)) {
             errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
             printf("\nError in decode_B/or getFrameLen: %d.\n", errtype);
           }
-          prevFrameSize = declen/480;
+          prevFrameSize = static_cast<size_t>(declen/480);
 
         } else {
 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
@@ -768,7 +771,7 @@
 #else
           declen = -1;
 #endif
-          prevFrameSize = static_cast<int16_t>(declen / 240);
+          prevFrameSize = static_cast<size_t>(declen / 240);
         }
       }
 
@@ -791,7 +794,7 @@
     framecnt++;
 
     totalsmpls += declen;
-    totalbits += 8 * stream_len;
+    totalbits += static_cast<int>(8 * stream_len);
 
     /* Error test number 10, garbage data */
     if (testNum == 10) {
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/test/test_iSACfixfloat.c b/webrtc/modules/audio_coding/codecs/isac/fix/test/test_iSACfixfloat.c
index 71bd272..b82af1c 100644
--- a/webrtc/modules/audio_coding/codecs/isac/fix/test/test_iSACfixfloat.c
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/test/test_iSACfixfloat.c
@@ -21,6 +21,7 @@
 /* include API */
 #include "isac.h"
 #include "isacfix.h"
+#include "webrtc/base/format_macros.h"
 
 /* max number of samples per frame (= 60 ms frame) */
 #define MAX_FRAMESAMPLES 960
@@ -57,7 +58,7 @@
 } BottleNeckModel;
 
 void get_arrival_time(int current_framesamples, /* samples */
-                      int packet_size,          /* bytes */
+                      size_t packet_size,       /* bytes */
                       int bottleneck,           /* excluding headers; bits/s */
                       BottleNeckModel* BN_data) {
   const int HeaderSize = 35;
@@ -98,7 +99,7 @@
   double runtime;
   double length_file;
 
-  int16_t stream_len = 0;
+  size_t stream_len = 0;
   int declen;
 
   int16_t shortdata[FRAMESAMPLES_10ms];
@@ -114,7 +115,7 @@
 #ifdef _DEBUG
   FILE* fy;
   double kbps;
-  int totalbits = 0;
+  size_t totalbits = 0;
   int totalsmpls = 0;
 #endif /* _DEBUG */
 
@@ -392,6 +393,8 @@
   while (endfile == 0) {
     cur_framesmpls = 0;
     while (1) {
+      int stream_len_int;
+
       /* Read 10 ms speech block */
       if (nbTest != 1)
         endfile = readframe(shortdata, inp, FRAMESAMPLES_10ms);
@@ -401,9 +404,9 @@
       /* iSAC encoding */
 
       if (mode == 0 || mode == 1) {
-        stream_len =
+        stream_len_int =
             WebRtcIsac_Encode(ISAC_main_inst, shortdata, (uint8_t*)streamdata);
-        if (stream_len < 0) {
+        if (stream_len_int < 0) {
           /* exit if returned with error */
           errtype = WebRtcIsac_GetErrorCode(ISAC_main_inst);
           printf("\n\nError in encoder: %d.\n\n", errtype);
@@ -412,20 +415,21 @@
       } else if (mode == 2 || mode == 3) {
         /* iSAC encoding */
         if (nbTest != 1) {
-          stream_len = WebRtcIsacfix_Encode(ISACFIX_main_inst, shortdata,
-                                            (uint8_t*)streamdata);
+          stream_len_int = WebRtcIsacfix_Encode(ISACFIX_main_inst, shortdata,
+                                                (uint8_t*)streamdata);
         } else {
-          stream_len =
+          stream_len_int =
               WebRtcIsacfix_EncodeNb(ISACFIX_main_inst, shortdata, streamdata);
         }
 
-        if (stream_len < 0) {
+        if (stream_len_int < 0) {
           /* exit if returned with error */
           errtype = WebRtcIsacfix_GetErrorCode(ISACFIX_main_inst);
           printf("\n\nError in encoder: %d.\n\n", errtype);
           // exit(EXIT_FAILURE);
         }
       }
+      stream_len = (size_t)stream_len_int;
 
       cur_framesmpls += FRAMESAMPLES_10ms;
 
@@ -494,10 +498,13 @@
 
         /* iSAC decoding */
         if (plc && (framecnt + 1) % 10 == 0) {
-          if (nbTest != 2)
-            declen = WebRtcIsacfix_DecodePlc(ISACFIX_main_inst, decoded, 1);
-          else
-            declen = WebRtcIsacfix_DecodePlcNb(ISACFIX_main_inst, decoded, 1);
+          if (nbTest != 2) {
+            declen =
+                (int)WebRtcIsacfix_DecodePlc(ISACFIX_main_inst, decoded, 1);
+          } else {
+            declen =
+                (int)WebRtcIsacfix_DecodePlcNb(ISACFIX_main_inst, decoded, 1);
+          }
         } else {
           if (nbTest != 2)
             declen = WebRtcIsacfix_Decode(ISACFIX_main_inst, streamdata,
@@ -551,10 +558,13 @@
         /* iSAC decoding */
 
         if (plc && (framecnt + 1) % 10 == 0) {
-          if (nbTest != 2)
-            declen = WebRtcIsacfix_DecodePlc(ISACFIX_main_inst, decoded, 1);
-          else
-            declen = WebRtcIsacfix_DecodePlcNb(ISACFIX_main_inst, decoded, 1);
+          if (nbTest != 2) {
+            declen =
+                (int)WebRtcIsacfix_DecodePlc(ISACFIX_main_inst, decoded, 1);
+          } else {
+            declen =
+                (int)WebRtcIsacfix_DecodePlcNb(ISACFIX_main_inst, decoded, 1);
+          }
         } else {
           if (nbTest != 2) {
             declen = WebRtcIsacfix_Decode(ISACFIX_main_inst, streamdata,
@@ -592,7 +602,7 @@
   }
 
 #ifdef _DEBUG
-  printf("\n\ntotal bits               = %d bits", totalbits);
+  printf("\n\ntotal bits               = %" PRIuS " bits", totalbits);
   printf("\nmeasured average bitrate = %0.3f kbits/s",
          (double)totalbits * (FS / 1000) / totalsmpls);
   printf("\n");
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/interface/audio_encoder_isac.h b/webrtc/modules/audio_coding/codecs/isac/main/interface/audio_encoder_isac.h
index c0f3b11..1bfd149 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/interface/audio_encoder_isac.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/interface/audio_encoder_isac.h
@@ -39,14 +39,14 @@
   }
   static inline int DecodeInternal(instance_type* inst,
                                    const uint8_t* encoded,
-                                   int16_t len,
+                                   size_t len,
                                    int16_t* decoded,
                                    int16_t* speech_type) {
     return WebRtcIsac_Decode(inst, encoded, len, decoded, speech_type);
   }
-  static inline int16_t DecodePlc(instance_type* inst,
-                                  int16_t* decoded,
-                                  int16_t num_lost_frames) {
+  static inline size_t DecodePlc(instance_type* inst,
+                                 int16_t* decoded,
+                                 size_t num_lost_frames) {
     return WebRtcIsac_DecodePlc(inst, decoded, num_lost_frames);
   }
 
@@ -102,7 +102,7 @@
   }
   static inline int16_t UpdateBwEstimate(instance_type* inst,
                                          const uint8_t* encoded,
-                                         int32_t packet_size,
+                                         size_t packet_size,
                                          uint16_t rtp_seq_number,
                                          uint32_t send_ts,
                                          uint32_t arr_ts) {
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h b/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h
index 429fc6b..0597de8 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h
@@ -11,6 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INTERFACE_ISAC_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INTERFACE_ISAC_H_
 
+#include <stddef.h>
+
 #include "webrtc/modules/audio_coding/codecs/isac/bandwidth_info.h"
 #include "webrtc/typedefs.h"
 
@@ -186,7 +188,7 @@
   int16_t WebRtcIsac_UpdateBwEstimate(
       ISACStruct*         ISAC_main_inst,
       const uint8_t* encoded,
-      int32_t         packet_size,
+      size_t         packet_size,
       uint16_t        rtp_seq_number,
       uint32_t        send_ts,
       uint32_t        arr_ts);
@@ -215,7 +217,7 @@
   int WebRtcIsac_Decode(
       ISACStruct*           ISAC_main_inst,
       const uint8_t* encoded,
-      int16_t         len,
+      size_t         len,
       int16_t*        decoded,
       int16_t*        speechType);
 
@@ -235,14 +237,13 @@
    * Output:
    *        - decoded           : The decoded vector.
    *
-   * Return value               : >0 - number of samples in decoded PLC vector
-   *                              -1 - Error
+   * Return value               : Number of samples in decoded PLC vector
    */
 
-  int16_t WebRtcIsac_DecodePlc(
+  size_t WebRtcIsac_DecodePlc(
       ISACStruct*  ISAC_main_inst,
       int16_t* decoded,
-      int16_t  noOfLostFrames);
+      size_t  noOfLostFrames);
 
 
   /******************************************************************************
@@ -704,7 +705,7 @@
   int WebRtcIsac_DecodeRcu(
       ISACStruct*           ISAC_main_inst,
       const uint8_t* encoded,
-      int16_t         len,
+      size_t         len,
       int16_t*        decoded,
       int16_t*        speechType);
 
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c b/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c
index 940e8f5..51da3f7 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c
@@ -142,7 +142,7 @@
     const int32_t frame_length,
     const uint32_t send_ts,
     const uint32_t arr_ts,
-    const int32_t pksize
+    const size_t pksize
     /*,    const uint16_t Index*/)
 {
   float weight = 0.0f;
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h b/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h
index 2916876..0704337 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h
@@ -95,7 +95,7 @@
       const int32_t frame_length,
       const uint32_t send_ts,
       const uint32_t arr_ts,
-      const int32_t pksize);
+      const size_t pksize);
 
   /* Update receiving estimates. Used when we only receive BWE index, no iSAC data packet. */
   int16_t WebRtcIsac_UpdateUplinkBwImpl(
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/codec.h b/webrtc/modules/audio_coding/codecs/isac/main/source/codec.h
index 4b36fff..7ef64b5 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/codec.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/codec.h
@@ -25,7 +25,7 @@
 void WebRtcIsac_ResetBitstream(Bitstr* bit_stream);
 
 int WebRtcIsac_EstimateBandwidth(BwEstimatorstr* bwest_str, Bitstr* streamdata,
-                                 int32_t packet_size,
+                                 size_t packet_size,
                                  uint16_t rtp_seq_number,
                                  uint32_t send_ts, uint32_t arr_ts,
                                  enum IsacSamplingRate encoderSampRate,
@@ -195,14 +195,14 @@
 
 /******************************* filter functions ****************************/
 
-void WebRtcIsac_AllPoleFilter(double* InOut, double* Coef, int lengthInOut,
+void WebRtcIsac_AllPoleFilter(double* InOut, double* Coef, size_t lengthInOut,
                               int orderCoef);
 
-void WebRtcIsac_AllZeroFilter(double* In, double* Coef, int lengthInOut,
+void WebRtcIsac_AllZeroFilter(double* In, double* Coef, size_t lengthInOut,
                               int orderCoef, double* Out);
 
 void WebRtcIsac_ZeroPoleFilter(double* In, double* ZeroCoef, double* PoleCoef,
-                               int lengthInOut, int orderCoef, double* Out);
+                               size_t lengthInOut, int orderCoef, double* Out);
 
 
 /***************************** filterbank functions **************************/
@@ -228,6 +228,6 @@
 
 void WebRtcIsac_Dir2Lat(double* a, int orderCoef, float* sth, float* cth);
 
-void WebRtcIsac_AutoCorr(double* r, const double* x, int N, int order);
+void WebRtcIsac_AutoCorr(double* r, const double* x, size_t N, size_t order);
 
 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_CODEC_H_ */
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/decode_bwe.c b/webrtc/modules/audio_coding/codecs/isac/main/source/decode_bwe.c
index 5abe204..019cc89 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/decode_bwe.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/decode_bwe.c
@@ -18,7 +18,7 @@
 WebRtcIsac_EstimateBandwidth(
     BwEstimatorstr*           bwest_str,
     Bitstr*                   streamdata,
-    int32_t               packet_size,
+    size_t                packet_size,
     uint16_t              rtp_seq_number,
     uint32_t              send_ts,
     uint32_t              arr_ts,
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/filter_functions.c b/webrtc/modules/audio_coding/codecs/isac/main/source/filter_functions.c
index 089f26e..d47eb1f 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/filter_functions.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/filter_functions.c
@@ -19,12 +19,15 @@
 
 
 
-void WebRtcIsac_AllPoleFilter(double *InOut, double *Coef, int lengthInOut, int orderCoef){
-
+void WebRtcIsac_AllPoleFilter(double* InOut,
+                              double* Coef,
+                              size_t lengthInOut,
+                              int orderCoef) {
   /* the state of filter is assumed to be in InOut[-1] to InOut[-orderCoef] */
   double scal;
   double sum;
-  int n,k;
+  size_t n;
+  int k;
 
   //if (fabs(Coef[0]-1.0)<0.001) {
   if ( (Coef[0] > 0.9999) && (Coef[0] < 1.0001) )
@@ -53,11 +56,15 @@
 }
 
 
-void WebRtcIsac_AllZeroFilter(double *In, double *Coef, int lengthInOut, int orderCoef, double *Out){
-
+void WebRtcIsac_AllZeroFilter(double* In,
+                              double* Coef,
+                              size_t lengthInOut,
+                              int orderCoef,
+                              double* Out) {
   /* the state of filter is assumed to be in In[-1] to In[-orderCoef] */
 
-  int n, k;
+  size_t n;
+  int k;
   double tmp;
 
   for(n = 0; n < lengthInOut; n++)
@@ -74,9 +81,12 @@
 }
 
 
-
-void WebRtcIsac_ZeroPoleFilter(double *In, double *ZeroCoef, double *PoleCoef, int lengthInOut, int orderCoef, double *Out){
-
+void WebRtcIsac_ZeroPoleFilter(double* In,
+                               double* ZeroCoef,
+                               double* PoleCoef,
+                               size_t lengthInOut,
+                               int orderCoef,
+                               double* Out) {
   /* the state of the zero section is assumed to be in In[-1] to In[-orderCoef] */
   /* the state of the pole section is assumed to be in Out[-1] to Out[-orderCoef] */
 
@@ -85,14 +95,8 @@
 }
 
 
-void WebRtcIsac_AutoCorr(
-    double *r,
-    const double *x,
-    int N,
-    int order
-                        )
-{
-  int  lag, n;
+void WebRtcIsac_AutoCorr(double* r, const double* x, size_t N, size_t order) {
+  size_t  lag, n;
   double sum, prod;
   const double *x_lag;
 
@@ -112,8 +116,8 @@
 }
 
 
-void WebRtcIsac_BwExpand(double *out, double *in, double coef, short length) {
-  int i;
+void WebRtcIsac_BwExpand(double* out, double* in, double coef, size_t length) {
+  size_t i;
   double  chirp;
 
   chirp = coef;
@@ -125,8 +129,10 @@
   }
 }
 
-void WebRtcIsac_WeightingFilter(const double *in, double *weiout, double *whiout, WeightFiltstr *wfdata) {
-
+void WebRtcIsac_WeightingFilter(const double* in,
+                                double* weiout,
+                                double* whiout,
+                                WeightFiltstr* wfdata) {
   double  tmpbuffer[PITCH_FRAME_LEN + PITCH_WLPCBUFLEN];
   double  corr[PITCH_WLPCORDER+1], rc[PITCH_WLPCORDER+1];
   double apol[PITCH_WLPCORDER+1], apolr[PITCH_WLPCORDER+1];
@@ -195,15 +201,13 @@
 static const double APlower[ALLPASSSECTIONS] = {0.1544, 0.744};
 
 
-
-void WebRtcIsac_AllpassFilterForDec(double *InOut,
-                                   const double *APSectionFactors,
-                                   int lengthInOut,
-                                   double *FilterState)
-{
+void WebRtcIsac_AllpassFilterForDec(double* InOut,
+                                    const double* APSectionFactors,
+                                    size_t lengthInOut,
+                                    double* FilterState) {
   //This performs all-pass filtering--a series of first order all-pass sections are used
   //to filter the input in a cascade manner.
-  int n,j;
+  size_t n,j;
   double temp;
   for (j=0; j<ALLPASSSECTIONS; j++){
     for (n=0;n<lengthInOut;n+=2){
@@ -214,12 +218,11 @@
   }
 }
 
-void WebRtcIsac_DecimateAllpass(const double *in,
-                                double *state_in,        /* array of size: 2*ALLPASSSECTIONS+1 */
-                                int N,                   /* number of input samples */
-                                double *out)             /* array of size N/2 */
-{
-  int n;
+void WebRtcIsac_DecimateAllpass(const double* in,
+                                double* state_in,
+                                size_t N,
+                                double* out) {
+  size_t n;
   double data_vec[PITCH_FRAME_LEN];
 
   /* copy input */
@@ -237,7 +240,6 @@
 }
 
 
-
 /* create high-pass filter ocefficients
  * z = 0.998 * exp(j*2*pi*35/8000);
  * p = 0.94 * exp(j*2*pi*140/8000);
@@ -247,9 +249,11 @@
 static const double b_coef[2] = {-1.99524591718270,  0.99600400000000};
 
 /* second order high-pass filter */
-void WebRtcIsac_Highpass(const double *in, double *out, double *state, int N)
-{
-  int k;
+void WebRtcIsac_Highpass(const double* in,
+                         double* out,
+                         double* state,
+                         size_t N) {
+  size_t k;
 
   for (k=0; k<N; k++) {
     *out = *in + state[1];
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c b/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c
index ac211e9..190277e 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c
@@ -507,7 +507,7 @@
   int streamLenLB = 0;
   int streamLenUB = 0;
   int streamLen = 0;
-  int16_t k = 0;
+  size_t k = 0;
   uint8_t garbageLen = 0;
   int32_t bottleneck = 0;
   int16_t bottleneckIdx = 0;
@@ -528,12 +528,12 @@
 
   if (instISAC->in_sample_rate_hz == 48000) {
     /* Samples in 10 ms @ 48 kHz. */
-    const int kNumInputSamples = FRAMESAMPLES_10ms * 3;
+    const size_t kNumInputSamples = FRAMESAMPLES_10ms * 3;
     /* Samples 10 ms @ 32 kHz. */
-    const int kNumOutputSamples = FRAMESAMPLES_10ms * 2;
+    const size_t kNumOutputSamples = FRAMESAMPLES_10ms * 2;
     /* Resampler divide the input into blocks of 3 samples, i.e.
      * kNumInputSamples / 3. */
-    const int kNumResamplerBlocks = FRAMESAMPLES_10ms;
+    const size_t kNumResamplerBlocks = FRAMESAMPLES_10ms;
     int32_t buffer32[FRAMESAMPLES_10ms * 3 + SIZE_RESAMPLER_STATE];
 
     /* Restore last samples from the past to the beginning of the buffer
@@ -1006,7 +1006,7 @@
  */
 int16_t WebRtcIsac_UpdateBwEstimate(ISACStruct* ISAC_main_inst,
                                     const uint8_t* encoded,
-                                    int32_t packet_size,
+                                    size_t packet_size,
                                     uint16_t rtp_seq_number,
                                     uint32_t send_ts,
                                     uint32_t arr_ts) {
@@ -1056,7 +1056,7 @@
 
 static int Decode(ISACStruct* ISAC_main_inst,
                   const uint8_t* encoded,
-                  int16_t lenEncodedBytes,
+                  size_t lenEncodedBytes,
                   int16_t* decoded,
                   int16_t* speechType,
                   int16_t isRCUPayload) {
@@ -1069,13 +1069,14 @@
   float outFrame[MAX_FRAMESAMPLES];
   int16_t outFrameLB[MAX_FRAMESAMPLES];
   int16_t outFrameUB[MAX_FRAMESAMPLES];
-  int numDecodedBytesLB;
+  int numDecodedBytesLBint;
+  size_t numDecodedBytesLB;
   int numDecodedBytesUB;
-  int16_t lenEncodedLBBytes;
+  size_t lenEncodedLBBytes;
   int16_t validChecksum = 1;
   int16_t k;
   uint16_t numLayer;
-  int16_t totSizeBytes;
+  size_t totSizeBytes;
   int16_t err;
 
   ISACMainStruct* instISAC = (ISACMainStruct*)ISAC_main_inst;
@@ -1089,7 +1090,7 @@
     return -1;
   }
 
-  if (lenEncodedBytes <= 0) {
+  if (lenEncodedBytes == 0) {
     /* return error code if the packet length is null. */
     instISAC->errorCode = ISAC_EMPTY_PACKET;
     return -1;
@@ -1115,11 +1116,12 @@
   /* Regardless of that the current codec is setup to work in
    * wideband or super-wideband, the decoding of the lower-band
    * has to be performed. */
-  numDecodedBytesLB = WebRtcIsac_DecodeLb(&instISAC->transform_tables,
-                                          outFrame, decInstLB,
-                                          &numSamplesLB, isRCUPayload);
-
-  if ((numDecodedBytesLB < 0) || (numDecodedBytesLB > lenEncodedLBBytes) ||
+  numDecodedBytesLBint = WebRtcIsac_DecodeLb(&instISAC->transform_tables,
+                                             outFrame, decInstLB,
+                                             &numSamplesLB, isRCUPayload);
+  numDecodedBytesLB = (size_t)numDecodedBytesLBint;
+  if ((numDecodedBytesLBint < 0) ||
+      (numDecodedBytesLB > lenEncodedLBBytes) ||
       (numSamplesLB > MAX_FRAMESAMPLES)) {
     instISAC->errorCode = ISAC_LENGTH_MISMATCH;
     return -1;
@@ -1362,7 +1364,7 @@
 
 int WebRtcIsac_Decode(ISACStruct* ISAC_main_inst,
                       const uint8_t* encoded,
-                      int16_t lenEncodedBytes,
+                      size_t lenEncodedBytes,
                       int16_t* decoded,
                       int16_t* speechType) {
   int16_t isRCUPayload = 0;
@@ -1394,7 +1396,7 @@
 
 int WebRtcIsac_DecodeRcu(ISACStruct* ISAC_main_inst,
                          const uint8_t* encoded,
-                         int16_t lenEncodedBytes,
+                         size_t lenEncodedBytes,
                          int16_t* decoded,
                          int16_t* speechType) {
   int16_t isRCUPayload = 1;
@@ -1417,13 +1419,12 @@
  * Output:
  *        - decoded           : The decoded vector
  *
- * Return value               : >0 - number of samples in decoded PLC vector
- *                              -1 - Error
+ * Return value               : Number of samples in decoded PLC vector
  */
-int16_t WebRtcIsac_DecodePlc(ISACStruct* ISAC_main_inst,
-                             int16_t* decoded,
-                             int16_t noOfLostFrames) {
-  int16_t numSamples = 0;
+size_t WebRtcIsac_DecodePlc(ISACStruct* ISAC_main_inst,
+                            int16_t* decoded,
+                            size_t noOfLostFrames) {
+  size_t numSamples = 0;
   ISACMainStruct* instISAC = (ISACMainStruct*)ISAC_main_inst;
 
   /* Limit number of frames to two = 60 millisecond.
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc b/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc
index a751c24..84c712e 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc
@@ -97,10 +97,12 @@
   encoded_bytes =  WebRtcIsac_Encode(isac_codec_, speech_data_, bitstream_);
   EXPECT_EQ(0, encoded_bytes);
   encoded_bytes =  WebRtcIsac_Encode(isac_codec_, speech_data_, bitstream_);
+  EXPECT_GT(encoded_bytes, 0);
 
   // Call to update bandwidth estimator with real data.
   EXPECT_EQ(0, WebRtcIsac_UpdateBwEstimate(isac_codec_, bitstream_,
-                                           encoded_bytes, 1, 12345, 56789));
+                                           static_cast<size_t>(encoded_bytes),
+                                           1, 12345, 56789));
 
   // Free memory.
   EXPECT_EQ(0, WebRtcIsac_Free(isac_codec_));
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c b/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c
index 4708a5c..60fc25b 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c
@@ -75,11 +75,11 @@
   0.00155690, 0.00124918, 0.00094895, 0.00066112, 0.00039320, 0.00015881
 };
 
-double WebRtcIsac_LevDurb(double *a, double *k, double *r, int order)
+double WebRtcIsac_LevDurb(double *a, double *k, double *r, size_t order)
 {
 
   double sum, alpha;
-  int m, m_h, i;
+  size_t m, m_h, i;
   alpha = 0; //warning -DH
   a[0] = 1.0;
   if (r[0] < LEVINSON_EPS) { /* if r[0] <= 0, set LPC coeff. to zero */
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h b/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h
index 866c76d..8dfe383 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h
@@ -21,7 +21,7 @@
 #include "settings.h"
 #include "structs.h"
 
-double WebRtcIsac_LevDurb(double *a, double *k, double *r, int order);
+double WebRtcIsac_LevDurb(double *a, double *k, double *r, size_t order);
 
 void WebRtcIsac_GetVars(const double *input, const int16_t *pitchGains_Q12,
                        double *oldEnergy, double *varscale);
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h b/webrtc/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h
index f5d9356..6fb02b3 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h
@@ -61,11 +61,15 @@
 
 void WebRtcIsac_WeightingFilter(const double *in, double *weiout, double *whiout, WeightFiltstr *wfdata);
 
-void WebRtcIsac_Highpass(const double *in, double *out, double *state, int N);
+void WebRtcIsac_Highpass(const double *in,
+                         double *out,
+                         double *state,
+                         size_t N);
 
 void WebRtcIsac_DecimateAllpass(const double *in,
-                                double *state_in,        /* array of size: 2*ALLPASSSECTIONS+1 */
-                                int N,                   /* number of input samples */
-                                double *out);            /* array of size N/2 */
+                                double *state_in,  /* array of size:
+                                                    *     2*ALLPASSSECTIONS+1 */
+                                size_t N,          /* number of input samples */
+                                double *out);      /* array of size N/2 */
 
 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_PITCH_ESTIMATOR_H_ */
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/test/ReleaseTest-API/ReleaseTest-API.cc b/webrtc/modules/audio_coding/codecs/isac/main/test/ReleaseTest-API/ReleaseTest-API.cc
index 8584c76..d385ff4 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/test/ReleaseTest-API/ReleaseTest-API.cc
+++ b/webrtc/modules/audio_coding/codecs/isac/main/test/ReleaseTest-API/ReleaseTest-API.cc
@@ -21,6 +21,7 @@
 /* include API */
 #include "isac.h"
 #include "utility.h"
+#include "webrtc/base/format_macros.h"
 
 /* Defines */
 #define SEED_FILE "randseed.txt" /* Used when running decoder on garbage data */
@@ -42,7 +43,8 @@
   FILE* inp, *outp, * f_bn = NULL, * vadp = NULL, *bandwidthp;
   int framecnt, endfile;
 
-  int i, errtype, VADusage = 0, packetLossPercent = 0;
+  size_t i;
+  int errtype, VADusage = 0, packetLossPercent = 0;
   int16_t CodingMode;
   int32_t bottleneck = 0;
   int framesize = 30; /* ms */
@@ -51,7 +53,7 @@
   /* Runtime statistics */
   double starttime, runtime, length_file;
 
-  int16_t stream_len = 0;
+  size_t stream_len = 0;
   int declen = 0, declenTC = 0;
   bool lostFrame = false;
 
@@ -75,14 +77,14 @@
   FILE* fy;
   double kbps;
 #endif /* _DEBUG */
-  int totalbits = 0;
+  size_t totalbits = 0;
   int totalsmpls = 0;
 
   /* If use GNS file */
   FILE* fp_gns = NULL;
   char gns_file[100];
-  short maxStreamLen30 = 0;
-  short maxStreamLen60 = 0;
+  size_t maxStreamLen30 = 0;
+  size_t maxStreamLen60 = 0;
   short sampFreqKHz = 32;
   short samplesIn10Ms;
   short useAssign = 0;
@@ -90,10 +92,10 @@
   bool doTransCoding = false;
   int32_t rateTransCoding = 0;
   uint8_t streamDataTransCoding[1200];
-  int16_t streamLenTransCoding = 0;
+  size_t streamLenTransCoding = 0;
   FILE* transCodingFile = NULL;
   FILE* transcodingBitstream = NULL;
-  uint32_t numTransCodingBytes = 0;
+  size_t numTransCodingBytes = 0;
 
   /* only one structure used for ISAC encoder */
   ISACStruct* ISAC_main_inst = NULL;
@@ -185,7 +187,7 @@
   char transCodingFileName[500];
   int16_t totFileLoop = 0;
   int16_t numFileLoop = 0;
-  for (i = 1; i + 2 < argc; i++) {
+  for (i = 1; i + 2 < static_cast<size_t>(argc); i++) {
     if (!strcmp("-LOOP", argv[i])) {
       i++;
       totFileLoop = (int16_t)atol(argv[i]);
@@ -579,6 +581,8 @@
 
     cur_framesmpls = 0;
     while (1) {
+      int stream_len_int = 0;
+
       /* Read 10 ms speech block */
       endfile = readframe(shortdata, inp, samplesIn10Ms);
 
@@ -598,21 +602,21 @@
 
       /* iSAC encoding */
       if (!(testNum == 3 && framecnt == 0)) {
-        stream_len =
+        stream_len_int =
             WebRtcIsac_Encode(ISAC_main_inst, shortdata, (uint8_t*)streamdata);
-        if ((payloadSize != 0) && (stream_len > payloadSize)) {
+        if ((payloadSize != 0) && (stream_len_int > payloadSize)) {
           if (testNum == 0) {
             printf("\n\n");
           }
 
           printf("\nError: Streamsize out of range %d\n",
-                 stream_len - payloadSize);
+                 stream_len_int - payloadSize);
           cout << flush;
         }
 
         WebRtcIsac_GetUplinkBw(ISAC_main_inst, &sendBN);
 
-        if (stream_len > 0) {
+        if (stream_len_int > 0) {
           if (doTransCoding) {
             int16_t indexStream;
             uint8_t auxUW8;
@@ -620,13 +624,15 @@
             /******************** Main Transcoding stream ********************/
             WebRtcIsac_GetDownLinkBwIndex(ISAC_main_inst, &bnIdxTC,
                                           &jitterInfoTC);
-            streamLenTransCoding = WebRtcIsac_GetNewBitStream(
+            int streamLenTransCoding_int = WebRtcIsac_GetNewBitStream(
                 ISAC_main_inst, bnIdxTC, jitterInfoTC, rateTransCoding,
                 streamDataTransCoding, false);
-            if (streamLenTransCoding < 0) {
+            if (streamLenTransCoding_int < 0) {
               fprintf(stderr, "Error in trans-coding\n");
               exit(0);
             }
+            streamLenTransCoding =
+                static_cast<size_t>(streamLenTransCoding_int);
             auxUW8 = (uint8_t)(((streamLenTransCoding & 0xFF00) >> 8) & 0x00FF);
             if (fwrite(&auxUW8, sizeof(uint8_t), 1, transcodingBitstream) !=
                 1) {
@@ -641,7 +647,7 @@
 
             if (fwrite(streamDataTransCoding, sizeof(uint8_t),
                        streamLenTransCoding, transcodingBitstream) !=
-                static_cast<size_t>(streamLenTransCoding)) {
+                streamLenTransCoding) {
               return -1;
             }
 
@@ -659,13 +665,15 @@
         break;
       }
 
-      if (stream_len < 0) {
+      if (stream_len_int < 0) {
         /* exit if returned with error */
         errtype = WebRtcIsac_GetErrorCode(ISAC_main_inst);
         fprintf(stderr, "Error in encoder: %d.\n", errtype);
         cout << flush;
         exit(0);
       }
+      stream_len = static_cast<size_t>(stream_len_int);
+
       cur_framesmpls += samplesIn10Ms;
       /* exit encoder loop if the encoder returned a bitstream */
       if (stream_len != 0)
@@ -703,17 +711,24 @@
 
     // RED.
     if (lostFrame) {
-      stream_len = WebRtcIsac_GetRedPayload(
+      int stream_len_int = WebRtcIsac_GetRedPayload(
           ISAC_main_inst, reinterpret_cast<uint8_t*>(streamdata));
+      if (stream_len_int < 0) {
+        fprintf(stderr, "Error getting RED payload\n");
+        exit(0);
+      }
+      stream_len = static_cast<size_t>(stream_len_int);
 
       if (doTransCoding) {
-        streamLenTransCoding = WebRtcIsac_GetNewBitStream(
+        int streamLenTransCoding_int = WebRtcIsac_GetNewBitStream(
             ISAC_main_inst, bnIdxTC, jitterInfoTC, rateTransCoding,
             streamDataTransCoding, true);
-        if (streamLenTransCoding < 0) {
+        if (streamLenTransCoding_int < 0) {
           fprintf(stderr, "Error in RED trans-coding\n");
           exit(0);
         }
+        streamLenTransCoding =
+            static_cast<size_t>(streamLenTransCoding_int);
       }
     }
 
@@ -891,7 +906,7 @@
 #endif /* _DEBUG */
   }
   printf("\n");
-  printf("total bits               = %d bits\n", totalbits);
+  printf("total bits               = %" PRIuS " bits\n", totalbits);
   printf("measured average bitrate = %0.3f kbits/s\n",
          (double)totalbits * (sampFreqKHz) / totalsmpls);
   if (doTransCoding) {
@@ -910,11 +925,11 @@
          (100 * runtime / length_file));
 
   if (maxStreamLen30 != 0) {
-    printf("Maximum payload size 30ms Frames %d bytes (%0.3f kbps)\n",
+    printf("Maximum payload size 30ms Frames %" PRIuS " bytes (%0.3f kbps)\n",
            maxStreamLen30, maxStreamLen30 * 8 / 30.);
   }
   if (maxStreamLen60 != 0) {
-    printf("Maximum payload size 60ms Frames %d bytes (%0.3f kbps)\n",
+    printf("Maximum payload size 60ms Frames %" PRIuS " bytes (%0.3f kbps)\n",
            maxStreamLen60, maxStreamLen60 * 8 / 60.);
   }
   // fprintf(stderr, "\n");
@@ -923,12 +938,12 @@
   fprintf(stderr, "   %0.1f kbps",
           (double)totalbits * (sampFreqKHz) / totalsmpls);
   if (maxStreamLen30 != 0) {
-    fprintf(stderr, "   plmax-30ms %d bytes (%0.0f kbps)", maxStreamLen30,
-            maxStreamLen30 * 8 / 30.);
+    fprintf(stderr, "   plmax-30ms %" PRIuS " bytes (%0.0f kbps)",
+            maxStreamLen30, maxStreamLen30 * 8 / 30.);
   }
   if (maxStreamLen60 != 0) {
-    fprintf(stderr, "   plmax-60ms %d bytes (%0.0f kbps)", maxStreamLen60,
-            maxStreamLen60 * 8 / 60.);
+    fprintf(stderr, "   plmax-60ms %" PRIuS " bytes (%0.0f kbps)",
+            maxStreamLen60, maxStreamLen60 * 8 / 60.);
   }
   if (doTransCoding) {
     fprintf(stderr, "  transcoding rate %.0f kbps",
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/test/SwitchingSampRate/SwitchingSampRate.cc b/webrtc/modules/audio_coding/codecs/isac/main/test/SwitchingSampRate/SwitchingSampRate.cc
index a11e408..08061ac 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/test/SwitchingSampRate/SwitchingSampRate.cc
+++ b/webrtc/modules/audio_coding/codecs/isac/main/test/SwitchingSampRate/SwitchingSampRate.cc
@@ -51,9 +51,9 @@
 
   short clientCntr;
 
-  unsigned int lenEncodedInBytes[MAX_NUM_CLIENTS];
+  size_t lenEncodedInBytes[MAX_NUM_CLIENTS];
   unsigned int lenAudioIn10ms[MAX_NUM_CLIENTS];
-  unsigned int lenEncodedInBytesTmp[MAX_NUM_CLIENTS];
+  size_t lenEncodedInBytesTmp[MAX_NUM_CLIENTS];
   unsigned int lenAudioIn10msTmp[MAX_NUM_CLIENTS];
   BottleNeckModel* packetData[MAX_NUM_CLIENTS];
 
@@ -189,9 +189,9 @@
   }
 
 
-  short streamLen;
+  size_t streamLen;
   short numSamplesRead;
-  int lenDecodedAudio;
+  size_t lenDecodedAudio;
   short senderIdx;
   short receiverIdx;
 
@@ -282,11 +282,11 @@
       // Encode
 
 
-      streamLen = WebRtcIsac_Encode(codecInstance[senderIdx],
-                                    audioBuff10ms,
-                                    (uint8_t*)bitStream);
+      int streamLen_int = WebRtcIsac_Encode(codecInstance[senderIdx],
+                                            audioBuff10ms,
+                                            (uint8_t*)bitStream);
       int16_t ggg;
-      if (streamLen > 0) {
+      if (streamLen_int > 0) {
         if ((WebRtcIsac_ReadFrameLen(
                 codecInstance[receiverIdx],
                 reinterpret_cast<const uint8_t*>(bitStream),
@@ -295,11 +295,12 @@
       }
 
       // Sanity check
-      if(streamLen < 0)
+      if(streamLen_int < 0)
       {
         printf(" Encoder error in client %d \n", senderIdx + 1);
         return -1;
       }
+      streamLen = static_cast<size_t>(streamLen_int);
 
 
       if(streamLen > 0)
@@ -423,18 +424,18 @@
         }
         /**/
         // Decode
-        lenDecodedAudio = WebRtcIsac_Decode(
+        int lenDecodedAudio_int = WebRtcIsac_Decode(
             codecInstance[receiverIdx],
             reinterpret_cast<const uint8_t*>(bitStream),
             streamLen,
             audioBuff60ms,
             speechType);
-        if(lenDecodedAudio < 0)
+        if(lenDecodedAudio_int < 0)
         {
           printf(" Decoder error in client %d \n", receiverIdx + 1);
           return -1;
         }
-
+        lenDecodedAudio = static_cast<size_t>(lenDecodedAudio_int);
 
         if(encoderSampRate[senderIdx] == 16000)
         {
@@ -442,7 +443,7 @@
                                 resamplerState[receiverIdx]);
           if (fwrite(resampledAudio60ms, sizeof(short), lenDecodedAudio << 1,
                      outFile[receiverIdx]) !=
-              static_cast<size_t>(lenDecodedAudio << 1)) {
+              lenDecodedAudio << 1) {
             return -1;
           }
         }
@@ -450,7 +451,7 @@
         {
           if (fwrite(audioBuff60ms, sizeof(short), lenDecodedAudio,
                      outFile[receiverIdx]) !=
-              static_cast<size_t>(lenDecodedAudio)) {
+              lenDecodedAudio) {
             return -1;
           }
         }
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/test/simpleKenny.c b/webrtc/modules/audio_coding/codecs/isac/main/test/simpleKenny.c
index 214dccd..2f44ca8 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/test/simpleKenny.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/test/simpleKenny.c
@@ -26,6 +26,7 @@
 /* include API */
 #include "isac.h"
 #include "utility.h"
+#include "webrtc/base/format_macros.h"
 //#include "commonDefs.h"
 
 /* max number of samples per frame (= 60 ms frame) */
@@ -57,7 +58,7 @@
   /* Runtime statistics */
   double rate;
   double rateRCU;
-  unsigned long totalbits = 0;
+  size_t totalbits = 0;
   unsigned long totalBitsRCU = 0;
   unsigned long totalsmpls = 0;
 
@@ -72,7 +73,7 @@
   int32_t rateLimit;
   ISACStruct* ISAC_main_inst;
 
-  int16_t stream_len = 0;
+  size_t stream_len = 0;
   int declen = 0;
   int16_t err;
   int cur_framesmpls;
@@ -94,7 +95,7 @@
   FILE* averageFile;
   int sampFreqKHz;
   int samplesIn10Ms;
-  int16_t maxStreamLen = 0;
+  size_t maxStreamLen = 0;
   char histFileName[500];
   char averageFileName[500];
   unsigned int hist[600];
@@ -310,22 +311,22 @@
 
     if (onlyDecode) {
       uint8_t auxUW8;
-      size_t auxSizet;
       if (fread(&auxUW8, sizeof(uint8_t), 1, inp) < 1) {
         break;
       }
-      stream_len = ((uint8_t)auxUW8) << 8;
+      stream_len = auxUW8 << 8;
       if (fread(&auxUW8, sizeof(uint8_t), 1, inp) < 1) {
         break;
       }
-      stream_len |= (uint16_t)auxUW8;
-      auxSizet = (size_t)stream_len;
-      if (fread(payload, 1, auxSizet, inp) < auxSizet) {
+      stream_len |= auxUW8;
+      if (fread(payload, 1, stream_len, inp) < stream_len) {
         printf("last payload is corrupted\n");
         break;
       }
     } else {
       while (stream_len == 0) {
+        int stream_len_int;
+
         // Read 10 ms speech block
         endfile = readframe(shortdata, inp, samplesIn10Ms);
         if (endfile) {
@@ -334,15 +335,16 @@
         cur_framesmpls += samplesIn10Ms;
 
         //-------- iSAC encoding ---------
-        stream_len = WebRtcIsac_Encode(ISAC_main_inst, shortdata, payload);
+        stream_len_int = WebRtcIsac_Encode(ISAC_main_inst, shortdata, payload);
 
-        if (stream_len < 0) {
+        if (stream_len_int < 0) {
           // exit if returned with error
           // errType=WebRtcIsac_GetErrorCode(ISAC_main_inst);
           fprintf(stderr, "\nError in encoder\n");
           getc(stdin);
           exit(EXIT_FAILURE);
         }
+        stream_len = (size_t)stream_len_int;
       }
       //===================================================================
       if (endfile) {
@@ -396,15 +398,16 @@
       if (fwrite(&auxUW8, sizeof(uint8_t), 1, outp) != 1) {
         return -1;
       }
-      if (fwrite(payload, 1, stream_len, outp) != (size_t)stream_len) {
+      if (fwrite(payload, 1, stream_len, outp) != stream_len) {
         return -1;
       }
     } else {
       //======================= iSAC decoding ===========================
 
       if ((rand() % 100) < packetLossPercent) {
-        declen = WebRtcIsac_DecodeRcu(ISAC_main_inst, payloadRCU, rcuStreamLen,
-                                      decoded, speechType);
+        declen = WebRtcIsac_DecodeRcu(ISAC_main_inst, payloadRCU,
+                                      (size_t)rcuStreamLen, decoded,
+                                      speechType);
         lostPacketCntr++;
       } else {
         declen = WebRtcIsac_Decode(ISAC_main_inst, payload, stream_len, decoded,
@@ -458,7 +461,7 @@
   printf("\n");
   printf("Measured bit-rate........... %0.3f kbps\n", rate);
   printf("Measured RCU bit-ratre...... %0.3f kbps\n", rateRCU);
-  printf("Maximum bit-rate/payloadsize %0.3f / %d\n",
+  printf("Maximum bit-rate/payloadsize %0.3f / %" PRIuS "\n",
          maxStreamLen * 8 / 0.03, maxStreamLen);
   printf("Measured packet-loss........ %0.1f%% \n",
          100.0f * (float)lostPacketCntr / (float)packetCntr);
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/util/utility.c b/webrtc/modules/audio_coding/codecs/isac/main/util/utility.c
index 0a2256a..d9c4332 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/util/utility.c
+++ b/webrtc/modules/audio_coding/codecs/isac/main/util/utility.c
@@ -135,7 +135,7 @@
 void
 get_arrival_time(
     int              current_framesamples,   /* samples */
-    int              packet_size,            /* bytes */
+    size_t           packet_size,            /* bytes */
     int              bottleneck,             /* excluding headers; bits/s */
     BottleNeckModel* BN_data,
     short            senderSampFreqHz,
diff --git a/webrtc/modules/audio_coding/codecs/isac/main/util/utility.h b/webrtc/modules/audio_coding/codecs/isac/main/util/utility.h
index f9fba94..1bb6d29 100644
--- a/webrtc/modules/audio_coding/codecs/isac/main/util/utility.h
+++ b/webrtc/modules/audio_coding/codecs/isac/main/util/utility.h
@@ -99,7 +99,7 @@
 
   void get_arrival_time(
       int              current_framesamples,   /* samples */
-      int              packet_size,            /* bytes */
+      size_t           packet_size,            /* bytes */
       int              bottleneck,             /* excluding headers; bits/s */
       BottleNeckModel* BN_data,
       short            senderSampFreqHz,
diff --git a/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h b/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h
index 18d4068..545fc19 100644
--- a/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h
+++ b/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h
@@ -24,8 +24,8 @@
   MOCK_CONST_METHOD0(SampleRateHz, int());
   MOCK_CONST_METHOD0(NumChannels, int());
   MOCK_CONST_METHOD0(MaxEncodedBytes, size_t());
-  MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, int());
-  MOCK_CONST_METHOD0(Max10MsFramesInAPacket, int());
+  MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t());
+  MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t());
   MOCK_CONST_METHOD0(GetTargetBitrate, int());
   MOCK_METHOD1(SetTargetBitrate, void(int));
   MOCK_METHOD1(SetProjectedPacketLossRate, void(double));
@@ -42,8 +42,8 @@
   MOCK_CONST_METHOD0(SampleRateHz, int());
   MOCK_CONST_METHOD0(NumChannels, int());
   MOCK_CONST_METHOD0(MaxEncodedBytes, size_t());
-  MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, int());
-  MOCK_CONST_METHOD0(Max10MsFramesInAPacket, int());
+  MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t());
+  MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t());
   MOCK_CONST_METHOD0(GetTargetBitrate, int());
   MOCK_METHOD1(SetTargetBitrate, void(int));
   MOCK_METHOD1(SetProjectedPacketLossRate, void(double));
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
index 9bf1ae3..37ce873 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
@@ -34,16 +34,6 @@
 // We always encode at 48 kHz.
 const int kSampleRateHz = 48000;
 
-int16_t ClampInt16(size_t x) {
-  return static_cast<int16_t>(
-      std::min(x, static_cast<size_t>(std::numeric_limits<int16_t>::max())));
-}
-
-int16_t CastInt16(size_t x) {
-  DCHECK_LE(x, static_cast<size_t>(std::numeric_limits<int16_t>::max()));
-  return static_cast<int16_t>(x);
-}
-
 }  // namespace
 
 AudioEncoderOpus::Config::Config()
@@ -72,13 +62,13 @@
 
 AudioEncoderOpus::AudioEncoderOpus(const Config& config)
     : num_10ms_frames_per_packet_(
-          rtc::CheckedDivExact(config.frame_size_ms, 10)),
+          static_cast<size_t>(rtc::CheckedDivExact(config.frame_size_ms, 10))),
       num_channels_(config.num_channels),
       payload_type_(config.payload_type),
       application_(config.application),
       dtx_enabled_(config.dtx_enabled),
-      samples_per_10ms_frame_(rtc::CheckedDivExact(kSampleRateHz, 100) *
-                              num_channels_),
+      samples_per_10ms_frame_(static_cast<size_t>(
+          rtc::CheckedDivExact(kSampleRateHz, 100) * num_channels_)),
       packet_loss_rate_(0.0) {
   CHECK(config.IsOk());
   input_buffer_.reserve(num_10ms_frames_per_packet_ * samples_per_10ms_frame_);
@@ -121,11 +111,11 @@
   return 2 * approx_encoded_bytes;
 }
 
-int AudioEncoderOpus::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderOpus::Num10MsFramesInNextPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
-int AudioEncoderOpus::Max10MsFramesInAPacket() const {
+size_t AudioEncoderOpus::Max10MsFramesInAPacket() const {
   return num_10ms_frames_per_packet_;
 }
 
@@ -195,18 +185,17 @@
     first_timestamp_in_buffer_ = rtp_timestamp;
   input_buffer_.insert(input_buffer_.end(), audio,
                        audio + samples_per_10ms_frame_);
-  if (input_buffer_.size() < (static_cast<size_t>(num_10ms_frames_per_packet_) *
-                              samples_per_10ms_frame_)) {
+  if (input_buffer_.size() <
+      (num_10ms_frames_per_packet_ * samples_per_10ms_frame_)) {
     return EncodedInfo();
   }
   CHECK_EQ(input_buffer_.size(),
-           static_cast<size_t>(num_10ms_frames_per_packet_) *
-           samples_per_10ms_frame_);
+           num_10ms_frames_per_packet_ * samples_per_10ms_frame_);
   int status = WebRtcOpus_Encode(
       inst_, &input_buffer_[0],
-      rtc::CheckedDivExact(CastInt16(input_buffer_.size()),
-                           static_cast<int16_t>(num_channels_)),
-      ClampInt16(max_encoded_bytes), encoded);
+      rtc::CheckedDivExact(input_buffer_.size(),
+                           static_cast<size_t>(num_channels_)),
+      max_encoded_bytes, encoded);
   CHECK_GE(status, 0);  // Fails only if fed invalid data.
   input_buffer_.clear();
   EncodedInfo info;
diff --git a/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h b/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h
index 3393bd5..5fab599 100644
--- a/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h
+++ b/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h
@@ -50,8 +50,8 @@
   int SampleRateHz() const override;
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   void SetTargetBitrate(int bits_per_second) override;
   void SetProjectedPacketLossRate(double fraction) override;
@@ -66,13 +66,13 @@
                              uint8_t* encoded) override;
 
  private:
-  const int num_10ms_frames_per_packet_;
+  const size_t num_10ms_frames_per_packet_;
   const int num_channels_;
   const int payload_type_;
   const ApplicationMode application_;
   int bitrate_bps_;
   const bool dtx_enabled_;
-  const int samples_per_10ms_frame_;
+  const size_t samples_per_10ms_frame_;
   std::vector<int16_t> input_buffer_;
   OpusEncInst* inst_;
   uint32_t first_timestamp_in_buffer_;
diff --git a/webrtc/modules/audio_coding/codecs/opus/interface/opus_interface.h b/webrtc/modules/audio_coding/codecs/opus/interface/opus_interface.h
index 925cd85..007f5c5 100644
--- a/webrtc/modules/audio_coding/codecs/opus/interface/opus_interface.h
+++ b/webrtc/modules/audio_coding/codecs/opus/interface/opus_interface.h
@@ -11,6 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_OPUS_INTERFACE_OPUS_INTERFACE_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_OPUS_INTERFACE_OPUS_INTERFACE_H_
 
+#include <stddef.h>
+
 #include "webrtc/typedefs.h"
 
 #ifdef __cplusplus
@@ -66,8 +68,8 @@
  */
 int WebRtcOpus_Encode(OpusEncInst* inst,
                       const int16_t* audio_in,
-                      int16_t samples,
-                      int16_t length_encoded_buffer,
+                      size_t samples,
+                      size_t length_encoded_buffer,
                       uint8_t* encoded);
 
 /****************************************************************************
@@ -237,7 +239,7 @@
  *                             -1 - Error
  */
 int WebRtcOpus_Decode(OpusDecInst* inst, const uint8_t* encoded,
-                      int16_t encoded_bytes, int16_t* decoded,
+                      size_t encoded_bytes, int16_t* decoded,
                       int16_t* audio_type);
 
 /****************************************************************************
@@ -276,7 +278,7 @@
  *                             -1 - Error
  */
 int WebRtcOpus_DecodeFec(OpusDecInst* inst, const uint8_t* encoded,
-                         int16_t encoded_bytes, int16_t* decoded,
+                         size_t encoded_bytes, int16_t* decoded,
                          int16_t* audio_type);
 
 /****************************************************************************
@@ -293,7 +295,7 @@
  */
 int WebRtcOpus_DurationEst(OpusDecInst* inst,
                            const uint8_t* payload,
-                           int payload_length_bytes);
+                           size_t payload_length_bytes);
 
 /* TODO(minyue): Check whether it is needed to add a decoder context to the
  * arguments, like WebRtcOpus_DurationEst(...). In fact, the packet itself tells
@@ -313,7 +315,7 @@
  *                                  0 - No FEC data in the packet.
  */
 int WebRtcOpus_FecDurationEst(const uint8_t* payload,
-                              int payload_length_bytes);
+                              size_t payload_length_bytes);
 
 /****************************************************************************
  * WebRtcOpus_PacketHasFec(...)
@@ -327,7 +329,7 @@
  *                                 1 - the packet contains FEC.
  */
 int WebRtcOpus_PacketHasFec(const uint8_t* payload,
-                            int payload_length_bytes);
+                            size_t payload_length_bytes);
 
 #ifdef __cplusplus
 }  // extern "C"
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_fec_test.cc b/webrtc/modules/audio_coding/codecs/opus/opus_fec_test.cc
index f0ef70a..c86fab7 100644
--- a/webrtc/modules/audio_coding/codecs/opus/opus_fec_test.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/opus_fec_test.cc
@@ -45,15 +45,15 @@
 
   int block_duration_ms_;
   int sampling_khz_;
-  int block_length_sample_;
+  size_t block_length_sample_;
 
   int channels_;
   int bit_rate_;
 
   size_t data_pointer_;
   size_t loop_length_samples_;
-  int max_bytes_;
-  int encoded_bytes_;
+  size_t max_bytes_;
+  size_t encoded_bytes_;
 
   WebRtcOpusEncInst* opus_encoder_;
   WebRtcOpusDecInst* opus_decoder_;
@@ -122,7 +122,8 @@
 OpusFecTest::OpusFecTest()
     : block_duration_ms_(kOpusBlockDurationMs),
       sampling_khz_(kOpusSamplingKhz),
-      block_length_sample_(block_duration_ms_ * sampling_khz_),
+      block_length_sample_(
+          static_cast<size_t>(block_duration_ms_ * sampling_khz_)),
       data_pointer_(0),
       max_bytes_(0),
       encoded_bytes_(0),
@@ -137,7 +138,7 @@
                                 max_bytes_, &bit_stream_[0]);
   EXPECT_GT(value, 0);
 
-  encoded_bytes_ = value;
+  encoded_bytes_ = static_cast<size_t>(value);
 }
 
 void OpusFecTest::DecodeABlock(bool lost_previous, bool lost_current) {
@@ -154,14 +155,14 @@
     } else {
       value_1 = WebRtcOpus_DecodePlc(opus_decoder_, &out_data_[0], 1);
     }
-    EXPECT_EQ(block_length_sample_, value_1);
+    EXPECT_EQ(static_cast<int>(block_length_sample_), value_1);
   }
 
   if (!lost_current) {
     // Decode current frame.
     value_2 = WebRtcOpus_Decode(opus_decoder_, &bit_stream_[0], encoded_bytes_,
                                 &out_data_[value_1 * channels_], &audio_type);
-    EXPECT_EQ(block_length_sample_, value_2);
+    EXPECT_EQ(static_cast<int>(block_length_sample_), value_2);
   }
 }
 
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_interface.c b/webrtc/modules/audio_coding/codecs/opus/opus_interface.c
index e250616..e2a8383 100644
--- a/webrtc/modules/audio_coding/codecs/opus/opus_interface.c
+++ b/webrtc/modules/audio_coding/codecs/opus/opus_interface.c
@@ -80,8 +80,8 @@
 
 int WebRtcOpus_Encode(OpusEncInst* inst,
                       const int16_t* audio_in,
-                      int16_t samples,
-                      int16_t length_encoded_buffer,
+                      size_t samples,
+                      size_t length_encoded_buffer,
                       uint8_t* encoded) {
   int res;
 
@@ -91,9 +91,9 @@
 
   res = opus_encode(inst->encoder,
                     (const opus_int16*)audio_in,
-                    samples,
+                    (int)samples,
                     encoded,
-                    length_encoded_buffer);
+                    (opus_int32)length_encoded_buffer);
 
   if (res == 1) {
     // Indicates DTX since the packet has nothing but a header. In principle,
@@ -260,7 +260,7 @@
 }
 
 /* For decoder to determine if it is to output speech or comfort noise. */
-static int16_t DetermineAudioType(OpusDecInst* inst, int16_t encoded_bytes) {
+static int16_t DetermineAudioType(OpusDecInst* inst, size_t encoded_bytes) {
   // Audio type becomes comfort noise if |encoded_byte| is 1 and keeps
   // to be so if the following |encoded_byte| are 0 or 1.
   if (encoded_bytes == 0 && inst->in_dtx_mode) {
@@ -278,9 +278,9 @@
  * is set to the number of samples needed for PLC in case of losses.
  * It is up to the caller to make sure the value is correct. */
 static int DecodeNative(OpusDecInst* inst, const uint8_t* encoded,
-                        int16_t encoded_bytes, int frame_size,
+                        size_t encoded_bytes, int frame_size,
                         int16_t* decoded, int16_t* audio_type, int decode_fec) {
-  int res = opus_decode(inst->decoder, encoded, encoded_bytes,
+  int res = opus_decode(inst->decoder, encoded, (opus_int32)encoded_bytes,
                         (opus_int16*)decoded, frame_size, decode_fec);
 
   if (res <= 0)
@@ -292,7 +292,7 @@
 }
 
 int WebRtcOpus_Decode(OpusDecInst* inst, const uint8_t* encoded,
-                      int16_t encoded_bytes, int16_t* decoded,
+                      size_t encoded_bytes, int16_t* decoded,
                       int16_t* audio_type) {
   int decoded_samples;
 
@@ -340,7 +340,7 @@
 }
 
 int WebRtcOpus_DecodeFec(OpusDecInst* inst, const uint8_t* encoded,
-                         int16_t encoded_bytes, int16_t* decoded,
+                         size_t encoded_bytes, int16_t* decoded,
                          int16_t* audio_type) {
   int decoded_samples;
   int fec_samples;
@@ -362,9 +362,9 @@
 
 int WebRtcOpus_DurationEst(OpusDecInst* inst,
                            const uint8_t* payload,
-                           int payload_length_bytes) {
+                           size_t payload_length_bytes) {
   int frames, samples;
-  frames = opus_packet_get_nb_frames(payload, payload_length_bytes);
+  frames = opus_packet_get_nb_frames(payload, (opus_int32)payload_length_bytes);
   if (frames < 0) {
     /* Invalid payload data. */
     return 0;
@@ -378,7 +378,7 @@
 }
 
 int WebRtcOpus_FecDurationEst(const uint8_t* payload,
-                              int payload_length_bytes) {
+                              size_t payload_length_bytes) {
   int samples;
   if (WebRtcOpus_PacketHasFec(payload, payload_length_bytes) != 1) {
     return 0;
@@ -393,13 +393,13 @@
 }
 
 int WebRtcOpus_PacketHasFec(const uint8_t* payload,
-                            int payload_length_bytes) {
+                            size_t payload_length_bytes) {
   int frames, channels, payload_length_ms;
   int n;
   opus_int16 frame_sizes[48];
   const unsigned char *frame_data[48];
 
-  if (payload == NULL || payload_length_bytes <= 0)
+  if (payload == NULL || payload_length_bytes == 0)
     return 0;
 
   /* In CELT_ONLY mode, packets should not have FEC. */
@@ -432,8 +432,8 @@
   }
 
   /* The following is to parse the LBRR flags. */
-  if (opus_packet_parse(payload, payload_length_bytes, NULL, frame_data,
-                        frame_sizes, NULL) < 0) {
+  if (opus_packet_parse(payload, (opus_int32)payload_length_bytes, NULL,
+                        frame_data, frame_sizes, NULL) < 0) {
     return 0;
   }
 
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_speed_test.cc b/webrtc/modules/audio_coding/codecs/opus/opus_speed_test.cc
index b39de49..926bcaf 100644
--- a/webrtc/modules/audio_coding/codecs/opus/opus_speed_test.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/opus_speed_test.cc
@@ -24,8 +24,8 @@
   void SetUp() override;
   void TearDown() override;
   virtual float EncodeABlock(int16_t* in_data, uint8_t* bit_stream,
-                             int max_bytes, int* encoded_bytes);
-  virtual float DecodeABlock(const uint8_t* bit_stream, int encoded_bytes,
+                             size_t max_bytes, size_t* encoded_bytes);
+  virtual float DecodeABlock(const uint8_t* bit_stream, size_t encoded_bytes,
                              int16_t* out_data);
   WebRtcOpusEncInst* opus_encoder_;
   WebRtcOpusDecInst* opus_decoder_;
@@ -58,19 +58,19 @@
 }
 
 float OpusSpeedTest::EncodeABlock(int16_t* in_data, uint8_t* bit_stream,
-                                  int max_bytes, int* encoded_bytes) {
+                                  size_t max_bytes, size_t* encoded_bytes) {
   clock_t clocks = clock();
   int value = WebRtcOpus_Encode(opus_encoder_, in_data,
                                 input_length_sample_, max_bytes,
                                 bit_stream);
   clocks = clock() - clocks;
   EXPECT_GT(value, 0);
-  *encoded_bytes = value;
+  *encoded_bytes = static_cast<size_t>(value);
   return 1000.0 * clocks / CLOCKS_PER_SEC;
 }
 
 float OpusSpeedTest::DecodeABlock(const uint8_t* bit_stream,
-                                  int encoded_bytes, int16_t* out_data) {
+                                  size_t encoded_bytes, int16_t* out_data) {
   int value;
   int16_t audio_type;
   clock_t clocks = clock();
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc b/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc
index e218a6b..2208f74 100644
--- a/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc
@@ -25,11 +25,11 @@
 // Maximum number of bytes in output bitstream.
 const size_t kMaxBytes = 1000;
 // Sample rate of Opus.
-const int kOpusRateKhz = 48;
+const size_t kOpusRateKhz = 48;
 // Number of samples-per-channel in a 20 ms frame, sampled at 48 kHz.
-const int kOpus20msFrameSamples = kOpusRateKhz * 20;
+const size_t kOpus20msFrameSamples = kOpusRateKhz * 20;
 // Number of samples-per-channel in a 10 ms frame, sampled at 48 kHz.
-const int kOpus10msFrameSamples = kOpusRateKhz * 10;
+const size_t kOpus10msFrameSamples = kOpusRateKhz * 10;
 
 class OpusTest : public TestWithParam<::testing::tuple<int, int>> {
  protected:
@@ -45,7 +45,7 @@
 
   int EncodeDecode(WebRtcOpusEncInst* encoder,
                    const int16_t* input_audio,
-                   int input_samples,
+                   size_t input_samples,
                    WebRtcOpusDecInst* decoder,
                    int16_t* output_audio,
                    int16_t* audio_type);
@@ -58,7 +58,7 @@
 
   AudioLoop speech_data_;
   uint8_t bitstream_[kMaxBytes];
-  int encoded_bytes_;
+  size_t encoded_bytes_;
   int channels_;
   int application_;
 };
@@ -97,15 +97,14 @@
 
 int OpusTest::EncodeDecode(WebRtcOpusEncInst* encoder,
                            const int16_t* input_audio,
-                           int input_samples,
+                           size_t input_samples,
                            WebRtcOpusDecInst* decoder,
                            int16_t* output_audio,
                            int16_t* audio_type) {
-  encoded_bytes_ = WebRtcOpus_Encode(encoder,
-                                    input_audio,
-                                    input_samples, kMaxBytes,
-                                    bitstream_);
-  EXPECT_GE(encoded_bytes_, 0);
+  int encoded_bytes_int = WebRtcOpus_Encode(encoder, input_audio, input_samples,
+                                            kMaxBytes, bitstream_);
+  EXPECT_GE(encoded_bytes_int, 0);
+  encoded_bytes_ = static_cast<size_t>(encoded_bytes_int);
   return WebRtcOpus_Decode(decoder, bitstream_,
                            encoded_bytes_, output_audio,
                            audio_type);
@@ -139,13 +138,14 @@
 
   for (int i = 0; i < 100; ++i) {
     EXPECT_EQ(kOpus20msFrameSamples,
-              EncodeDecode(opus_encoder_, speech_data_.GetNextBlock(),
-                           kOpus20msFrameSamples, opus_decoder_,
-                           output_data_decode, &audio_type));
+              static_cast<size_t>(EncodeDecode(
+                  opus_encoder_, speech_data_.GetNextBlock(),
+                  kOpus20msFrameSamples, opus_decoder_, output_data_decode,
+                  &audio_type)));
     // If not DTX, it should never enter DTX mode. If DTX, we do not care since
     // whether it enters DTX depends on the signal type.
     if (!dtx) {
-      EXPECT_GT(encoded_bytes_, 1);
+      EXPECT_GT(encoded_bytes_, 1U);
       EXPECT_EQ(0, opus_encoder_->in_dtx_mode);
       EXPECT_EQ(0, opus_decoder_->in_dtx_mode);
       EXPECT_EQ(0, audio_type);  // Speech.
@@ -156,11 +156,11 @@
   // However, DTX may happen after a while.
   for (int i = 0; i < 30; ++i) {
     EXPECT_EQ(kOpus20msFrameSamples,
-              EncodeDecode(opus_encoder_, silence,
-                           kOpus20msFrameSamples, opus_decoder_,
-                           output_data_decode, &audio_type));
+              static_cast<size_t>(EncodeDecode(
+                  opus_encoder_, silence, kOpus20msFrameSamples, opus_decoder_,
+                  output_data_decode, &audio_type)));
     if (!dtx) {
-      EXPECT_GT(encoded_bytes_, 1);
+      EXPECT_GT(encoded_bytes_, 1U);
       EXPECT_EQ(0, opus_encoder_->in_dtx_mode);
       EXPECT_EQ(0, opus_decoder_->in_dtx_mode);
       EXPECT_EQ(0, audio_type);  // Speech.
@@ -180,17 +180,17 @@
     // DTX mode is maintained 19 frames.
     for (int i = 0; i < 19; ++i) {
       EXPECT_EQ(kOpus20msFrameSamples,
-                EncodeDecode(opus_encoder_, silence,
-                             kOpus20msFrameSamples, opus_decoder_,
-                             output_data_decode, &audio_type));
+                static_cast<size_t>(EncodeDecode(
+                    opus_encoder_, silence, kOpus20msFrameSamples,
+                    opus_decoder_, output_data_decode, &audio_type)));
       if (dtx) {
-        EXPECT_EQ(0, encoded_bytes_)  // Send 0 byte.
+        EXPECT_EQ(0U, encoded_bytes_)  // Send 0 byte.
             << "Opus should have entered DTX mode.";
         EXPECT_EQ(1, opus_encoder_->in_dtx_mode);
         EXPECT_EQ(1, opus_decoder_->in_dtx_mode);
         EXPECT_EQ(2, audio_type);  // Comfort noise.
       } else {
-        EXPECT_GT(encoded_bytes_, 1);
+        EXPECT_GT(encoded_bytes_, 1U);
         EXPECT_EQ(0, opus_encoder_->in_dtx_mode);
         EXPECT_EQ(0, opus_decoder_->in_dtx_mode);
         EXPECT_EQ(0, audio_type);  // Speech.
@@ -199,27 +199,27 @@
 
     // Quit DTX after 19 frames.
     EXPECT_EQ(kOpus20msFrameSamples,
-              EncodeDecode(opus_encoder_, silence,
-                           kOpus20msFrameSamples, opus_decoder_,
-                           output_data_decode, &audio_type));
+              static_cast<size_t>(EncodeDecode(
+                  opus_encoder_, silence, kOpus20msFrameSamples, opus_decoder_,
+                  output_data_decode, &audio_type)));
 
-    EXPECT_GT(encoded_bytes_, 1);
+    EXPECT_GT(encoded_bytes_, 1U);
     EXPECT_EQ(0, opus_encoder_->in_dtx_mode);
     EXPECT_EQ(0, opus_decoder_->in_dtx_mode);
     EXPECT_EQ(0, audio_type);  // Speech.
 
     // Enters DTX again immediately.
     EXPECT_EQ(kOpus20msFrameSamples,
-              EncodeDecode(opus_encoder_, silence,
-                           kOpus20msFrameSamples, opus_decoder_,
-                           output_data_decode, &audio_type));
+              static_cast<size_t>(EncodeDecode(
+                  opus_encoder_, silence, kOpus20msFrameSamples, opus_decoder_,
+                  output_data_decode, &audio_type)));
     if (dtx) {
-      EXPECT_EQ(1, encoded_bytes_);  // Send 1 byte.
+      EXPECT_EQ(1U, encoded_bytes_);  // Send 1 byte.
       EXPECT_EQ(1, opus_encoder_->in_dtx_mode);
       EXPECT_EQ(1, opus_decoder_->in_dtx_mode);
       EXPECT_EQ(2, audio_type);  // Comfort noise.
     } else {
-      EXPECT_GT(encoded_bytes_, 1);
+      EXPECT_GT(encoded_bytes_, 1U);
       EXPECT_EQ(0, opus_encoder_->in_dtx_mode);
       EXPECT_EQ(0, opus_decoder_->in_dtx_mode);
       EXPECT_EQ(0, audio_type);  // Speech.
@@ -230,10 +230,10 @@
   if (dtx) {
     // Verify that encoder/decoder can jump out from DTX mode.
     EXPECT_EQ(kOpus20msFrameSamples,
-              EncodeDecode(opus_encoder_, silence,
-                           kOpus20msFrameSamples, opus_decoder_,
-                           output_data_decode, &audio_type));
-    EXPECT_GT(encoded_bytes_, 1);
+              static_cast<size_t>(EncodeDecode(
+                  opus_encoder_, silence, kOpus20msFrameSamples, opus_decoder_,
+                  output_data_decode, &audio_type)));
+    EXPECT_GT(encoded_bytes_, 1U);
     EXPECT_EQ(0, opus_encoder_->in_dtx_mode);
     EXPECT_EQ(0, opus_decoder_->in_dtx_mode);
     EXPECT_EQ(0, audio_type);  // Speech.
@@ -311,9 +311,10 @@
   int16_t audio_type;
   int16_t* output_data_decode = new int16_t[kOpus20msFrameSamples * channels_];
   EXPECT_EQ(kOpus20msFrameSamples,
-            EncodeDecode(opus_encoder_, speech_data_.GetNextBlock(),
-                         kOpus20msFrameSamples, opus_decoder_,
-                         output_data_decode, &audio_type));
+            static_cast<size_t>(EncodeDecode(
+                opus_encoder_, speech_data_.GetNextBlock(),
+                kOpus20msFrameSamples, opus_decoder_, output_data_decode,
+                &audio_type)));
 
   // Free memory.
   delete[] output_data_decode;
@@ -370,16 +371,17 @@
   int16_t audio_type;
   int16_t* output_data_decode = new int16_t[kOpus20msFrameSamples * channels_];
   EXPECT_EQ(kOpus20msFrameSamples,
-            EncodeDecode(opus_encoder_, speech_data_.GetNextBlock(),
-                         kOpus20msFrameSamples, opus_decoder_,
-                         output_data_decode, &audio_type));
+            static_cast<size_t>(EncodeDecode(
+                opus_encoder_, speech_data_.GetNextBlock(),
+                kOpus20msFrameSamples, opus_decoder_, output_data_decode,
+                &audio_type)));
 
   EXPECT_EQ(0, WebRtcOpus_DecoderInit(opus_decoder_));
 
   EXPECT_EQ(kOpus20msFrameSamples,
-            WebRtcOpus_Decode(opus_decoder_, bitstream_,
-                              encoded_bytes_, output_data_decode,
-                              &audio_type));
+            static_cast<size_t>(WebRtcOpus_Decode(
+                opus_decoder_, bitstream_, encoded_bytes_, output_data_decode,
+                &audio_type)));
 
   // Free memory.
   delete[] output_data_decode;
@@ -508,14 +510,16 @@
   int16_t audio_type;
   int16_t* output_data_decode = new int16_t[kOpus20msFrameSamples * channels_];
   EXPECT_EQ(kOpus20msFrameSamples,
-            EncodeDecode(opus_encoder_, speech_data_.GetNextBlock(),
-                         kOpus20msFrameSamples, opus_decoder_,
-                         output_data_decode, &audio_type));
+            static_cast<size_t>(EncodeDecode(
+                opus_encoder_, speech_data_.GetNextBlock(),
+                kOpus20msFrameSamples, opus_decoder_, output_data_decode,
+                &audio_type)));
 
   // Call decoder PLC.
   int16_t* plc_buffer = new int16_t[kOpus20msFrameSamples * channels_];
   EXPECT_EQ(kOpus20msFrameSamples,
-            WebRtcOpus_DecodePlc(opus_decoder_, plc_buffer, 1));
+            static_cast<size_t>(WebRtcOpus_DecodePlc(
+                opus_decoder_, plc_buffer, 1)));
 
   // Free memory.
   delete[] plc_buffer;
@@ -535,24 +539,26 @@
   EXPECT_EQ(0, WebRtcOpus_DecoderCreate(&opus_decoder_, channels_));
 
   // 10 ms. We use only first 10 ms of a 20 ms block.
-  encoded_bytes_ = WebRtcOpus_Encode(opus_encoder_,
-                                     speech_data_.GetNextBlock(),
-                                     kOpus10msFrameSamples, kMaxBytes,
-                                     bitstream_);
-  EXPECT_GE(encoded_bytes_, 0);
+  int encoded_bytes_int = WebRtcOpus_Encode(opus_encoder_,
+                                            speech_data_.GetNextBlock(),
+                                            kOpus10msFrameSamples,
+                                            kMaxBytes, bitstream_);
+  EXPECT_GE(encoded_bytes_int, 0);
   EXPECT_EQ(kOpus10msFrameSamples,
-            WebRtcOpus_DurationEst(opus_decoder_, bitstream_,
-                                   encoded_bytes_));
+            static_cast<size_t>(WebRtcOpus_DurationEst(
+                opus_decoder_, bitstream_,
+                static_cast<size_t>(encoded_bytes_int))));
 
   // 20 ms
-  encoded_bytes_ = WebRtcOpus_Encode(opus_encoder_,
-                                     speech_data_.GetNextBlock(),
-                                     kOpus20msFrameSamples, kMaxBytes,
-                                     bitstream_);
-  EXPECT_GE(encoded_bytes_, 0);
+  encoded_bytes_int = WebRtcOpus_Encode(opus_encoder_,
+                                        speech_data_.GetNextBlock(),
+                                        kOpus20msFrameSamples,
+                                        kMaxBytes, bitstream_);
+  EXPECT_GE(encoded_bytes_int, 0);
   EXPECT_EQ(kOpus20msFrameSamples,
-            WebRtcOpus_DurationEst(opus_decoder_, bitstream_,
-                                   encoded_bytes_));
+            static_cast<size_t>(WebRtcOpus_DurationEst(
+                opus_decoder_, bitstream_,
+                static_cast<size_t>(encoded_bytes_int))));
 
   // Free memory.
   EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_));
@@ -595,11 +601,13 @@
   encoded_bytes_ = opus_repacketizer_out(rp, bitstream_, kMaxBytes);
 
   EXPECT_EQ(kOpus20msFrameSamples * kPackets,
-            WebRtcOpus_DurationEst(opus_decoder_, bitstream_, encoded_bytes_));
+            static_cast<size_t>(WebRtcOpus_DurationEst(
+                opus_decoder_, bitstream_, encoded_bytes_)));
 
   EXPECT_EQ(kOpus20msFrameSamples * kPackets,
-            WebRtcOpus_Decode(opus_decoder_, bitstream_, encoded_bytes_,
-                              output_data_decode.get(), &audio_type));
+            static_cast<size_t>(WebRtcOpus_Decode(
+                opus_decoder_, bitstream_, encoded_bytes_,
+                output_data_decode.get(), &audio_type)));
 
   // Free memory.
   opus_repacketizer_destroy(rp);
diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc b/webrtc/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc
index 0c246c3..4ca6fe9 100644
--- a/webrtc/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc
+++ b/webrtc/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc
@@ -23,10 +23,10 @@
   return AudioEncoderPcm::Config::IsOk();
 }
 
-int16_t AudioEncoderPcm16B::EncodeCall(const int16_t* audio,
-                                       size_t input_len,
-                                       uint8_t* encoded) {
-  return WebRtcPcm16b_Encode(audio, static_cast<int16_t>(input_len), encoded);
+size_t AudioEncoderPcm16B::EncodeCall(const int16_t* audio,
+                                      size_t input_len,
+                                      uint8_t* encoded) {
+  return WebRtcPcm16b_Encode(audio, input_len, encoded);
 }
 
 int AudioEncoderPcm16B::BytesPerSample() const {
diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h b/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h
index f02cf92..6a0fb43 100644
--- a/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h
+++ b/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h
@@ -31,9 +31,9 @@
       : AudioEncoderPcm(config, config.sample_rate_hz) {}
 
  protected:
-  int16_t EncodeCall(const int16_t* audio,
-                     size_t input_len,
-                     uint8_t* encoded) override;
+  size_t EncodeCall(const int16_t* audio,
+                    size_t input_len,
+                    uint8_t* encoded) override;
 
   int BytesPerSample() const override;
 };
diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/include/pcm16b.h b/webrtc/modules/audio_coding/codecs/pcm16b/include/pcm16b.h
index 1cdf92d..d65d08a 100644
--- a/webrtc/modules/audio_coding/codecs/pcm16b/include/pcm16b.h
+++ b/webrtc/modules/audio_coding/codecs/pcm16b/include/pcm16b.h
@@ -14,6 +14,8 @@
  * Define the fixpoint numeric formats
  */
 
+#include <stddef.h>
+
 #include "webrtc/typedefs.h"
 
 #ifdef __cplusplus
@@ -36,9 +38,9 @@
  *                                Always equal to twice the len input parameter.
  */
 
-int16_t WebRtcPcm16b_Encode(const int16_t* speech,
-                            int16_t len,
-                            uint8_t* encoded);
+size_t WebRtcPcm16b_Encode(const int16_t* speech,
+                           size_t len,
+                           uint8_t* encoded);
 
 /****************************************************************************
  * WebRtcPcm16b_Decode(...)
@@ -55,9 +57,9 @@
  * Returned value               : Samples in speech
  */
 
-int16_t WebRtcPcm16b_Decode(const uint8_t* encoded,
-                            int16_t len,
-                            int16_t* speech);
+size_t WebRtcPcm16b_Decode(const uint8_t* encoded,
+                           size_t len,
+                           int16_t* speech);
 
 #ifdef __cplusplus
 }
diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.c b/webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.c
index b6de0b5..120c790 100644
--- a/webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.c
+++ b/webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.c
@@ -12,10 +12,10 @@
 
 #include "webrtc/typedefs.h"
 
-int16_t WebRtcPcm16b_Encode(const int16_t* speech,
-                            int16_t len,
-                            uint8_t* encoded) {
-  int i;
+size_t WebRtcPcm16b_Encode(const int16_t* speech,
+                           size_t len,
+                           uint8_t* encoded) {
+  size_t i;
   for (i = 0; i < len; ++i) {
     uint16_t s = speech[i];
     encoded[2 * i] = s >> 8;
@@ -24,10 +24,10 @@
   return 2 * len;
 }
 
-int16_t WebRtcPcm16b_Decode(const uint8_t* encoded,
-                            int16_t len,
-                            int16_t* speech) {
-  int i;
+size_t WebRtcPcm16b_Decode(const uint8_t* encoded,
+                           size_t len,
+                           int16_t* speech) {
+  size_t i;
   for (i = 0; i < len / 2; ++i)
     speech[i] = encoded[2 * i] << 8 | encoded[2 * i + 1];
   return len / 2;
diff --git a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
index 16ba290..dccaf43 100644
--- a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
+++ b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
@@ -41,11 +41,11 @@
   return 2 * speech_encoder_->MaxEncodedBytes();
 }
 
-int AudioEncoderCopyRed::Num10MsFramesInNextPacket() const {
+size_t AudioEncoderCopyRed::Num10MsFramesInNextPacket() const {
   return speech_encoder_->Num10MsFramesInNextPacket();
 }
 
-int AudioEncoderCopyRed::Max10MsFramesInAPacket() const {
+size_t AudioEncoderCopyRed::Max10MsFramesInAPacket() const {
   return speech_encoder_->Max10MsFramesInAPacket();
 }
 
diff --git a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
index 78e1e9a..644255b 100644
--- a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
+++ b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
@@ -40,8 +40,8 @@
   int NumChannels() const override;
   size_t MaxEncodedBytes() const override;
   int RtpTimestampRateHz() const override;
-  int Num10MsFramesInNextPacket() const override;
-  int Max10MsFramesInAPacket() const override;
+  size_t Num10MsFramesInNextPacket() const override;
+  size_t Max10MsFramesInAPacket() const override;
   int GetTargetBitrate() const override;
   void SetTargetBitrate(int bits_per_second) override;
   void SetProjectedPacketLossRate(double fraction) override;
diff --git a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
index 4debdfa..a1ddf4b 100644
--- a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
@@ -113,13 +113,13 @@
 }
 
 TEST_F(AudioEncoderCopyRedTest, CheckFrameSizePropagation) {
-  EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket()).WillOnce(Return(17));
-  EXPECT_EQ(17, red_->Num10MsFramesInNextPacket());
+  EXPECT_CALL(mock_encoder_, Num10MsFramesInNextPacket()).WillOnce(Return(17U));
+  EXPECT_EQ(17U, red_->Num10MsFramesInNextPacket());
 }
 
 TEST_F(AudioEncoderCopyRedTest, CheckMaxFrameSizePropagation) {
-  EXPECT_CALL(mock_encoder_, Max10MsFramesInAPacket()).WillOnce(Return(17));
-  EXPECT_EQ(17, red_->Max10MsFramesInAPacket());
+  EXPECT_CALL(mock_encoder_, Max10MsFramesInAPacket()).WillOnce(Return(17U));
+  EXPECT_EQ(17U, red_->Max10MsFramesInAPacket());
 }
 
 TEST_F(AudioEncoderCopyRedTest, CheckSetBitratePropagation) {
diff --git a/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.cc b/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.cc
index c7cafdf..3395721 100644
--- a/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.cc
+++ b/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.cc
@@ -65,7 +65,8 @@
   memcpy(&in_data_[loop_length_samples_], &in_data_[0],
          input_length_sample_ * channels_ * sizeof(int16_t));
 
-  max_bytes_ = input_length_sample_ * channels_ * sizeof(int16_t);
+  max_bytes_ =
+      static_cast<size_t>(input_length_sample_ * channels_ * sizeof(int16_t));
   out_data_.reset(new int16_t[output_length_sample_ * channels_]);
   bit_stream_.reset(new uint8_t[max_bytes_]);
 
diff --git a/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.h b/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.h
index 35ac69e..2736c29 100644
--- a/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.h
+++ b/webrtc/modules/audio_coding/codecs/tools/audio_codec_speed_test.h
@@ -36,14 +36,14 @@
   // 3. assign |encoded_bytes| with the length of the bit stream (in bytes),
   // 4. return the cost of time (in millisecond) spent on actual encoding.
   virtual float EncodeABlock(int16_t* in_data, uint8_t* bit_stream,
-                             int max_bytes, int* encoded_bytes) = 0;
+                             size_t max_bytes, size_t* encoded_bytes) = 0;
 
   // DecodeABlock(...) does the following:
   // 1. decodes the bit stream in |bit_stream| with a length of |encoded_bytes|
   // (in bytes),
   // 2. save the decoded audio in |out_data|,
   // 3. return the cost of time (in millisecond) spent on actual decoding.
-  virtual float DecodeABlock(const uint8_t* bit_stream, int encoded_bytes,
+  virtual float DecodeABlock(const uint8_t* bit_stream, size_t encoded_bytes,
                              int16_t* out_data) = 0;
 
   // Encoding and decode an audio of |audio_duration| (in seconds) and
@@ -67,9 +67,9 @@
   rtc::scoped_ptr<uint8_t[]> bit_stream_;
 
   // Maximum number of bytes in output bitstream for a frame of audio.
-  int max_bytes_;
+  size_t max_bytes_;
 
-  int encoded_bytes_;
+  size_t encoded_bytes_;
   float encoding_time_ms_;
   float decoding_time_ms_;
   FILE* out_file_;