Fix clang style warnings in webrtc/modules/audio_coding

Mostly this consists of marking functions with override when
applicable, and moving function bodies from .h to .cc files.

BUG=163
R=henrik.lundin@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44979004

Cr-Commit-Position: refs/heads/master@{#8938}
diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn
index d18ed66..7a053a9 100644
--- a/webrtc/modules/audio_coding/BUILD.gn
+++ b/webrtc/modules/audio_coding/BUILD.gn
@@ -51,12 +51,6 @@
     ":audio_coding_config",
   ]
 
-  if (is_clang) {
-    # Suppress warnings from Chrome's Clang plugins.
-    # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
-    configs -= [ "//build/config/clang:find_bad_constructs" ]
-  }
-
   if (is_win) {
     cflags = [
       # TODO(kjellander): Bug 261: fix this warning.
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc
index 6d7b095..6b04081 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc
@@ -118,6 +118,8 @@
       decoder_(nullptr) {
 }
 
+AudioDecoderProxy::~AudioDecoderProxy() = default;
+
 void AudioDecoderProxy::SetDecoder(AudioDecoder* decoder) {
   CriticalSectionScoped decoder_lock(decoder_lock_.get());
   decoder_ = decoder;
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h
index d491dfd..d775434 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h
@@ -45,6 +45,7 @@
 class AudioDecoderProxy final : public AudioDecoder {
  public:
   AudioDecoderProxy();
+  ~AudioDecoderProxy() override;
   void SetDecoder(AudioDecoder* decoder);
   bool IsSet() const;
   int Decode(const uint8_t* encoded,
diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc
index 9b61d33..f1d7a5d 100644
--- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc
+++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc
@@ -94,6 +94,17 @@
   }
 }
 
+AudioCoding::Config::Config()
+    : neteq_config(),
+      clock(Clock::GetRealTimeClock()),
+      transport(nullptr),
+      vad_callback(nullptr),
+      play_dtmf(true),
+      initial_playout_delay_ms(0),
+      playout_channels(1),
+      playout_frequency_hz(32000) {
+}
+
 AudioCoding* AudioCoding::Create(const Config& config) {
   return new AudioCodingImpl(config);
 }
diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc
index d78af65..4918d21 100644
--- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc
+++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc
@@ -909,6 +909,14 @@
   return receiver_.SetInitialDelay(delay_ms);
 }
 
+int AudioCodingModuleImpl::SetDtmfPlayoutStatus(bool enable) {
+  return 0;
+}
+
+bool AudioCodingModuleImpl::DtmfPlayoutStatus() const {
+  return true;
+}
+
 int AudioCodingModuleImpl::EnableNack(size_t max_nack_list_size) {
   return receiver_.EnableNack(max_nack_list_size);
 }
@@ -933,6 +941,20 @@
 
 }  // namespace acm2
 
+AudioCodingImpl::AudioCodingImpl(const Config& config) {
+  AudioCodingModule::Config config_old = config.ToOldConfig();
+  acm_old_.reset(new acm2::AudioCodingModuleImpl(config_old));
+  acm_old_->RegisterTransportCallback(config.transport);
+  acm_old_->RegisterVADCallback(config.vad_callback);
+  acm_old_->SetDtmfPlayoutStatus(config.play_dtmf);
+  if (config.initial_playout_delay_ms > 0) {
+    acm_old_->SetInitialPlayoutDelay(config.initial_playout_delay_ms);
+  }
+  playout_frequency_hz_ = config.playout_frequency_hz;
+}
+
+AudioCodingImpl::~AudioCodingImpl() = default;
+
 bool AudioCodingImpl::RegisterSendCodec(AudioEncoder* send_codec) {
   FATAL() << "Not implemented yet.";
   return false;
diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h
index 1e9cbb9..d307cda 100644
--- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h
+++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h
@@ -37,7 +37,7 @@
   friend webrtc::AudioCodingImpl;
 
   explicit AudioCodingModuleImpl(const AudioCodingModule::Config& config);
-  ~AudioCodingModuleImpl();
+  ~AudioCodingModuleImpl() override;
 
   /////////////////////////////////////////
   //   Sender
@@ -168,10 +168,10 @@
   //
   // Configure Dtmf playout status i.e on/off playout the incoming outband Dtmf
   // tone.
-  int SetDtmfPlayoutStatus(bool enable) override { return 0; }
+  int SetDtmfPlayoutStatus(bool enable) override;
 
   // Get Dtmf playout status.
-  bool DtmfPlayoutStatus() const override { return true; }
+  bool DtmfPlayoutStatus() const override;
 
   // Estimate the Bandwidth based on the incoming stream, needed
   // for one way audio where the RTCP send the BW estimate.
@@ -314,19 +314,8 @@
 
 class AudioCodingImpl : public AudioCoding {
  public:
-  AudioCodingImpl(const Config& config) {
-    AudioCodingModule::Config config_old = config.ToOldConfig();
-    acm_old_.reset(new acm2::AudioCodingModuleImpl(config_old));
-    acm_old_->RegisterTransportCallback(config.transport);
-    acm_old_->RegisterVADCallback(config.vad_callback);
-    acm_old_->SetDtmfPlayoutStatus(config.play_dtmf);
-    if (config.initial_playout_delay_ms > 0) {
-      acm_old_->SetInitialPlayoutDelay(config.initial_playout_delay_ms);
-    }
-    playout_frequency_hz_ = config.playout_frequency_hz;
-  }
-
-  ~AudioCodingImpl() override{};
+  AudioCodingImpl(const Config& config);
+  ~AudioCodingImpl() override;
 
   bool RegisterSendCodec(AudioEncoder* send_codec) override;
 
diff --git a/webrtc/modules/audio_coding/main/acm2/nack.cc b/webrtc/modules/audio_coding/main/acm2/nack.cc
index 4324cd2..525b1ea 100644
--- a/webrtc/modules/audio_coding/main/acm2/nack.cc
+++ b/webrtc/modules/audio_coding/main/acm2/nack.cc
@@ -40,6 +40,8 @@
       samples_per_packet_(sample_rate_khz_ * kDefaultPacketSizeMs),
       max_nack_list_size_(kNackListSizeLimit) {}
 
+Nack::~Nack() = default;
+
 Nack* Nack::Create(int nack_threshold_packets) {
   return new Nack(nack_threshold_packets);
 }
diff --git a/webrtc/modules/audio_coding/main/acm2/nack.h b/webrtc/modules/audio_coding/main/acm2/nack.h
index 4224c99..1fb3e9b 100644
--- a/webrtc/modules/audio_coding/main/acm2/nack.h
+++ b/webrtc/modules/audio_coding/main/acm2/nack.h
@@ -59,7 +59,7 @@
   // Factory method.
   static Nack* Create(int nack_threshold_packets);
 
-  ~Nack() {}
+  ~Nack();
 
   // Set a maximum for the size of the NACK list. If the last received packet
   // has sequence number of N, then NACK list will not contain any element
diff --git a/webrtc/modules/audio_coding/main/interface/audio_coding_module.h b/webrtc/modules/audio_coding/main/interface/audio_coding_module.h
index 796444e..0a14788 100644
--- a/webrtc/modules/audio_coding/main/interface/audio_coding_module.h
+++ b/webrtc/modules/audio_coding/main/interface/audio_coding_module.h
@@ -997,15 +997,7 @@
 class AudioCoding {
  public:
   struct Config {
-    Config()
-        : neteq_config(),
-          clock(Clock::GetRealTimeClock()),
-          transport(NULL),
-          vad_callback(NULL),
-          play_dtmf(true),
-          initial_playout_delay_ms(0),
-          playout_channels(1),
-          playout_frequency_hz(32000) {}
+    Config();
 
     AudioCodingModule::Config ToOldConfig() const {
       AudioCodingModule::Config old_config;
diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc
index ce24e4a..c3f1dbb 100644
--- a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc
+++ b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc
@@ -38,6 +38,14 @@
 namespace webrtc {
 
 // PCMu
+
+int AudioDecoderPcmU::Init() {
+  return 0;
+}
+size_t AudioDecoderPcmU::Channels() const {
+  return 1;
+}
+
 int AudioDecoderPcmU::DecodeInternal(const uint8_t* encoded,
                                      size_t encoded_len,
                                      int sample_rate_hz,
@@ -57,7 +65,19 @@
   return static_cast<int>(encoded_len / Channels());
 }
 
+size_t AudioDecoderPcmUMultiCh::Channels() const {
+  return channels_;
+}
+
 // PCMa
+
+int AudioDecoderPcmA::Init() {
+  return 0;
+}
+size_t AudioDecoderPcmA::Channels() const {
+  return 1;
+}
+
 int AudioDecoderPcmA::DecodeInternal(const uint8_t* encoded,
                                      size_t encoded_len,
                                      int sample_rate_hz,
@@ -77,10 +97,21 @@
   return static_cast<int>(encoded_len / Channels());
 }
 
+size_t AudioDecoderPcmAMultiCh::Channels() const {
+  return channels_;
+}
+
 // PCM16B
 #ifdef WEBRTC_CODEC_PCM16
 AudioDecoderPcm16B::AudioDecoderPcm16B() {}
 
+int AudioDecoderPcm16B::Init() {
+  return 0;
+}
+size_t AudioDecoderPcm16B::Channels() const {
+  return 1;
+}
+
 int AudioDecoderPcm16B::DecodeInternal(const uint8_t* encoded,
                                        size_t encoded_len,
                                        int sample_rate_hz,
@@ -105,6 +136,10 @@
     : channels_(num_channels) {
   DCHECK(num_channels > 0);
 }
+
+size_t AudioDecoderPcm16BMultiCh::Channels() const {
+  return channels_;
+}
 #endif
 
 // iLBC
@@ -117,6 +152,10 @@
   WebRtcIlbcfix_DecoderFree(dec_state_);
 }
 
+bool AudioDecoderIlbc::HasDecodePlc() const {
+  return true;
+}
+
 int AudioDecoderIlbc::DecodeInternal(const uint8_t* encoded,
                                      size_t encoded_len,
                                      int sample_rate_hz,
@@ -138,6 +177,10 @@
 int AudioDecoderIlbc::Init() {
   return WebRtcIlbcfix_Decoderinit30Ms(dec_state_);
 }
+
+size_t AudioDecoderIlbc::Channels() const {
+  return 1;
+}
 #endif
 
 // G.722
@@ -150,6 +193,10 @@
   WebRtcG722_FreeDecoder(dec_state_);
 }
 
+bool AudioDecoderG722::HasDecodePlc() const {
+  return false;
+}
+
 int AudioDecoderG722::DecodeInternal(const uint8_t* encoded,
                                      size_t encoded_len,
                                      int sample_rate_hz,
@@ -174,6 +221,10 @@
   return static_cast<int>(2 * encoded_len / Channels());
 }
 
+size_t AudioDecoderG722::Channels() const {
+  return 1;
+}
+
 AudioDecoderG722Stereo::AudioDecoderG722Stereo() {
   WebRtcG722_CreateDecoder(&dec_state_left_);
   WebRtcG722_CreateDecoder(&dec_state_right_);
@@ -222,6 +273,10 @@
   return ret;
 }
 
+size_t AudioDecoderG722Stereo::Channels() const {
+  return 2;
+}
+
 int AudioDecoderG722Stereo::Init() {
   int r = WebRtcG722_DecoderInit(dec_state_left_);
   if (r != 0)
@@ -332,6 +387,10 @@
   fec = WebRtcOpus_PacketHasFec(encoded, static_cast<int>(encoded_len));
   return (fec == 1);
 }
+
+size_t AudioDecoderOpus::Channels() const {
+  return channels_;
+}
 #endif
 
 AudioDecoderCng::AudioDecoderCng() {
@@ -346,6 +405,30 @@
   return WebRtcCng_InitDec(dec_state_);
 }
 
+int AudioDecoderCng::IncomingPacket(const uint8_t* payload,
+                                    size_t payload_len,
+                                    uint16_t rtp_sequence_number,
+                                    uint32_t rtp_timestamp,
+                                    uint32_t arrival_timestamp) {
+  return -1;
+}
+
+CNG_dec_inst* AudioDecoderCng::CngDecoderInstance() {
+  return dec_state_;
+}
+
+size_t AudioDecoderCng::Channels() const {
+  return 1;
+}
+
+int AudioDecoderCng::DecodeInternal(const uint8_t* encoded,
+                                    size_t encoded_len,
+                                    int sample_rate_hz,
+                                    int16_t* decoded,
+                                    SpeechType* speech_type) {
+  return -1;
+}
+
 bool CodecSupported(NetEqDecoder codec_type) {
   switch (codec_type) {
     case kDecoderPCMu:
diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h
index 5f9c35b..202d79d 100644
--- a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h
+++ b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h
@@ -37,9 +37,9 @@
 class AudioDecoderPcmU : public AudioDecoder {
  public:
   AudioDecoderPcmU() {}
-  virtual int Init() { return 0; }
-  virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const;
-  size_t Channels() const override { return 1; }
+  int Init() override;
+  int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -55,9 +55,9 @@
 class AudioDecoderPcmA : public AudioDecoder {
  public:
   AudioDecoderPcmA() {}
-  virtual int Init() { return 0; }
-  virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const;
-  size_t Channels() const override { return 1; }
+  int Init() override;
+  int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -76,7 +76,7 @@
       : AudioDecoderPcmU(), channels_(channels) {
     assert(channels > 0);
   }
-  size_t Channels() const override { return channels_; }
+  size_t Channels() const override;
 
  private:
   const size_t channels_;
@@ -89,7 +89,7 @@
       : AudioDecoderPcmA(), channels_(channels) {
     assert(channels > 0);
   }
-  size_t Channels() const override { return channels_; }
+  size_t Channels() const override;
 
  private:
   const size_t channels_;
@@ -102,9 +102,9 @@
 class AudioDecoderPcm16B : public AudioDecoder {
  public:
   AudioDecoderPcm16B();
-  virtual int Init() { return 0; }
-  virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const;
-  size_t Channels() const override { return 1; }
+  int Init() override;
+  int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -123,7 +123,7 @@
 class AudioDecoderPcm16BMultiCh : public AudioDecoderPcm16B {
  public:
   explicit AudioDecoderPcm16BMultiCh(int num_channels);
-  size_t Channels() const override { return channels_; }
+  size_t Channels() const override;
 
  private:
   const size_t channels_;
@@ -135,11 +135,11 @@
 class AudioDecoderIlbc : public AudioDecoder {
  public:
   AudioDecoderIlbc();
-  virtual ~AudioDecoderIlbc();
-  virtual bool HasDecodePlc() const { return true; }
-  virtual int DecodePlc(int num_frames, int16_t* decoded);
-  virtual int Init();
-  size_t Channels() const override { return 1; }
+  ~AudioDecoderIlbc() override;
+  bool HasDecodePlc() const override;
+  int DecodePlc(int num_frames, int16_t* decoded) override;
+  int Init() override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -158,11 +158,11 @@
 class AudioDecoderG722 : public AudioDecoder {
  public:
   AudioDecoderG722();
-  virtual ~AudioDecoderG722();
-  virtual bool HasDecodePlc() const { return false; }
-  virtual int Init();
-  virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const;
-  size_t Channels() const override { return 1; }
+  ~AudioDecoderG722() override;
+  bool HasDecodePlc() const override;
+  int Init() override;
+  int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -179,8 +179,8 @@
 class AudioDecoderG722Stereo : public AudioDecoder {
  public:
   AudioDecoderG722Stereo();
-  virtual ~AudioDecoderG722Stereo();
-  virtual int Init();
+  ~AudioDecoderG722Stereo() override;
+  int Init() override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -188,7 +188,7 @@
                      int sample_rate_hz,
                      int16_t* decoded,
                      SpeechType* speech_type) override;
-  size_t Channels() const override { return 2; }
+  size_t Channels() const override;
 
  private:
   // Splits the stereo-interleaved payload in |encoded| into separate payloads
@@ -210,14 +210,14 @@
 class AudioDecoderOpus : public AudioDecoder {
  public:
   explicit AudioDecoderOpus(int num_channels);
-  virtual ~AudioDecoderOpus();
+  ~AudioDecoderOpus() override;
 
-  virtual int Init();
-  virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const;
-  virtual int PacketDurationRedundant(const uint8_t* encoded,
-                                      size_t encoded_len) const;
-  virtual bool PacketHasFec(const uint8_t* encoded, size_t encoded_len) const;
-  size_t Channels() const override { return channels_; }
+  int Init() override;
+  int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
+  int PacketDurationRedundant(const uint8_t* encoded,
+                              size_t encoded_len) const override;
+  bool PacketHasFec(const uint8_t* encoded, size_t encoded_len) const override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
@@ -247,25 +247,23 @@
 class AudioDecoderCng : public AudioDecoder {
  public:
   explicit AudioDecoderCng();
-  virtual ~AudioDecoderCng();
-  virtual int Init();
-  virtual int IncomingPacket(const uint8_t* payload,
-                             size_t payload_len,
-                             uint16_t rtp_sequence_number,
-                             uint32_t rtp_timestamp,
-                             uint32_t arrival_timestamp) { return -1; }
+  ~AudioDecoderCng() override;
+  int Init() override;
+  int IncomingPacket(const uint8_t* payload,
+                     size_t payload_len,
+                     uint16_t rtp_sequence_number,
+                     uint32_t rtp_timestamp,
+                     uint32_t arrival_timestamp) override;
 
-  CNG_dec_inst* CngDecoderInstance() override { return dec_state_; }
-  size_t Channels() const override { return 1; }
+  CNG_dec_inst* CngDecoderInstance() override;
+  size_t Channels() const override;
 
  protected:
   int DecodeInternal(const uint8_t* encoded,
                      size_t encoded_len,
                      int sample_rate_hz,
                      int16_t* decoded,
-                     SpeechType* speech_type) override  {
-    return -1;
-  }
+                     SpeechType* speech_type) override;
 
  private:
   CNG_dec_inst* dec_state_;
diff --git a/webrtc/modules/interface/module.h b/webrtc/modules/interface/module.h
index a83f148..529138d 100644
--- a/webrtc/modules/interface/module.h
+++ b/webrtc/modules/interface/module.h
@@ -73,7 +73,7 @@
   virtual int32_t Release() = 0;
 
  protected:
-  virtual ~RefCountedModule() {}
+  ~RefCountedModule() override = default;
 };
 
 }  // namespace webrtc