Fix Chromium clang plugin warnings

This adds a new file, webrtc/modules/audio_coding/neteq/tools/packet_source.cc, so that I'll have somewhere to put the new non-inlined methods.

NOTRY=true
BUG=webrtc:163

Review-Url: https://codereview.webrtc.org/2290593002
Cr-Commit-Position: refs/heads/master@{#13956}
diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn
index 0313b2b..2925e08 100644
--- a/webrtc/modules/audio_coding/BUILD.gn
+++ b/webrtc/modules/audio_coding/BUILD.gn
@@ -898,11 +898,6 @@
     configs += [ "../..:common_config" ]
     public_configs = [ "../..:common_inherited_config" ]
 
-    if (is_clang) {
-      # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163).
-      configs -= [ "//build/config/clang:find_bad_constructs" ]
-    }
-
     defines = audio_coding_defines
 
     deps = audio_coding_deps + [
@@ -1209,6 +1204,7 @@
       "neteq/tools/output_wav_file.h",
       "neteq/tools/packet.cc",
       "neteq/tools/packet.h",
+      "neteq/tools/packet_source.cc",
       "neteq/tools/packet_source.h",
       "neteq/tools/resample_input_audio_file.cc",
       "neteq/tools/resample_input_audio_file.h",
diff --git a/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.cc b/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.cc
index 025a0e9..aac5e16 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.cc
+++ b/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.cc
@@ -112,6 +112,8 @@
       exptected_output_channels_(exptected_output_channels) {
 }
 
+AcmReceiveTestOldApi::~AcmReceiveTestOldApi() = default;
+
 void AcmReceiveTestOldApi::RegisterDefaultCodecs() {
   CodecInst my_codec_param;
   for (int n = 0; n < acm_->NumberOfCodecs(); n++) {
diff --git a/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.h b/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.h
index 6952641..5d6fbb3 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.h
+++ b/webrtc/modules/audio_coding/acm2/acm_receive_test_oldapi.h
@@ -38,7 +38,7 @@
                        AudioSink* audio_sink,
                        int output_freq_hz,
                        NumOutputChannels exptected_output_channels);
-  virtual ~AcmReceiveTestOldApi() {}
+  virtual ~AcmReceiveTestOldApi();
 
   // Registers the codecs with default parameters from ACM.
   void RegisterDefaultCodecs();
diff --git a/webrtc/modules/audio_coding/neteq/neteq.gypi b/webrtc/modules/audio_coding/neteq/neteq.gypi
index f43a261..d9c152e 100644
--- a/webrtc/modules/audio_coding/neteq/neteq.gypi
+++ b/webrtc/modules/audio_coding/neteq/neteq.gypi
@@ -246,6 +246,7 @@
             'tools/output_wav_file.h',
             'tools/packet.cc',
             'tools/packet.h',
+            'tools/packet_source.cc',
             'tools/packet_source.h',
             'tools/resample_input_audio_file.cc',
             'tools/resample_input_audio_file.h',
diff --git a/webrtc/modules/audio_coding/neteq/tools/packet.cc b/webrtc/modules/audio_coding/neteq/tools/packet.cc
index a31d080..0ed1be1 100644
--- a/webrtc/modules/audio_coding/neteq/tools/packet.cc
+++ b/webrtc/modules/audio_coding/neteq/tools/packet.cc
@@ -77,6 +77,8 @@
   valid_header_ = ParseHeader(*parser);
 }
 
+Packet::~Packet() = default;
+
 bool Packet::ExtractRedHeaders(std::list<RTPHeader*>* headers) const {
   //
   //  0                   1                    2                   3
diff --git a/webrtc/modules/audio_coding/neteq/tools/packet.h b/webrtc/modules/audio_coding/neteq/tools/packet.h
index 86eedc0..d150805 100644
--- a/webrtc/modules/audio_coding/neteq/tools/packet.h
+++ b/webrtc/modules/audio_coding/neteq/tools/packet.h
@@ -62,7 +62,7 @@
          size_t virtual_packet_length_bytes,
          double time_ms);
 
-  virtual ~Packet() {}
+  virtual ~Packet();
 
   // Parses the first bytes of the RTP payload, interpreting them as RED headers
   // according to RFC 2198. The headers will be inserted into |headers|. The
diff --git a/webrtc/modules/audio_coding/neteq/tools/packet_source.cc b/webrtc/modules/audio_coding/neteq/tools/packet_source.cc
new file mode 100644
index 0000000..d6cb37e
--- /dev/null
+++ b/webrtc/modules/audio_coding/neteq/tools/packet_source.cc
@@ -0,0 +1,30 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "webrtc/modules/audio_coding/neteq/tools/packet_source.h"
+
+namespace webrtc {
+namespace test {
+
+PacketSource::PacketSource() : use_ssrc_filter_(false), ssrc_(0) {}
+
+PacketSource::~PacketSource() = default;
+
+void PacketSource::FilterOutPayloadType(uint8_t payload_type) {
+  filter_.set(payload_type, true);
+}
+
+void PacketSource::SelectSsrc(uint32_t ssrc) {
+  use_ssrc_filter_ = true;
+  ssrc_ = ssrc;
+}
+
+}  // namespace test
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_coding/neteq/tools/packet_source.h b/webrtc/modules/audio_coding/neteq/tools/packet_source.h
index 3ec576d..caae4ae 100644
--- a/webrtc/modules/audio_coding/neteq/tools/packet_source.h
+++ b/webrtc/modules/audio_coding/neteq/tools/packet_source.h
@@ -24,21 +24,16 @@
 // Interface class for an object delivering RTP packets to test applications.
 class PacketSource {
  public:
-  PacketSource() : use_ssrc_filter_(false), ssrc_(0) {}
-  virtual ~PacketSource() {}
+  PacketSource();
+  virtual ~PacketSource();
 
   // Returns next packet. Returns nullptr if the source is depleted, or if an
   // error occurred.
   virtual std::unique_ptr<Packet> NextPacket() = 0;
 
-  virtual void FilterOutPayloadType(uint8_t payload_type) {
-    filter_.set(payload_type, true);
-  }
+  virtual void FilterOutPayloadType(uint8_t payload_type);
 
-  virtual void SelectSsrc(uint32_t ssrc) {
-    use_ssrc_filter_ = true;
-    ssrc_ = ssrc;
-  }
+  virtual void SelectSsrc(uint32_t ssrc);
 
  protected:
   std::bitset<128> filter_;  // Payload type is 7 bits in the RFC.