Using AudioOption to enable audio network adaptor.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2397573006
Cr-Commit-Position: refs/heads/master@{#14845}
diff --git a/webrtc/api/call/audio_send_stream.cc b/webrtc/api/call/audio_send_stream.cc
index 06cbc54..52c30f0 100644
--- a/webrtc/api/call/audio_send_stream.cc
+++ b/webrtc/api/call/audio_send_stream.cc
@@ -34,6 +34,8 @@
 AudioSendStream::Config::Config(Transport* send_transport)
     : send_transport(send_transport) {}
 
+AudioSendStream::Config::~Config() = default;
+
 std::string AudioSendStream::Config::ToString() const {
   std::stringstream ss;
   ss << "{rtp: " << rtp.ToString();
@@ -82,6 +84,8 @@
   ss << ", opus_max_playback_rate: " << opus_max_playback_rate;
   ss << ", cng_payload_type: " << cng_payload_type;
   ss << ", cng_plfreq: " << cng_plfreq;
+  ss << ", min_ptime: " << min_ptime_ms;
+  ss << ", max_ptime: " << max_ptime_ms;
   ss << ", codec_inst: " << ::ToString(codec_inst);
   ss << '}';
   return ss.str();
@@ -89,30 +93,16 @@
 
 bool AudioSendStream::Config::SendCodecSpec::operator==(
     const AudioSendStream::Config::SendCodecSpec& rhs) const {
-  if (nack_enabled != rhs.nack_enabled) {
-    return false;
+  if (nack_enabled == rhs.nack_enabled &&
+      transport_cc_enabled == rhs.transport_cc_enabled &&
+      enable_codec_fec == rhs.enable_codec_fec &&
+      enable_opus_dtx == rhs.enable_opus_dtx &&
+      opus_max_playback_rate == rhs.opus_max_playback_rate &&
+      cng_payload_type == rhs.cng_payload_type &&
+      cng_plfreq == rhs.cng_plfreq && max_ptime_ms == rhs.max_ptime_ms &&
+      min_ptime_ms == rhs.min_ptime_ms && codec_inst == rhs.codec_inst) {
+    return true;
   }
-  if (transport_cc_enabled != rhs.transport_cc_enabled) {
-    return false;
-  }
-  if (enable_codec_fec != rhs.enable_codec_fec) {
-    return false;
-  }
-  if (enable_opus_dtx != rhs.enable_opus_dtx) {
-    return false;
-  }
-  if (opus_max_playback_rate != rhs.opus_max_playback_rate) {
-    return false;
-  }
-  if (cng_payload_type != rhs.cng_payload_type) {
-    return false;
-  }
-  if (cng_plfreq != rhs.cng_plfreq) {
-    return false;
-  }
-  if (codec_inst != rhs.codec_inst) {
-    return false;
-  }
-  return true;
+  return false;
 }
 }  // namespace webrtc
diff --git a/webrtc/api/call/audio_send_stream.h b/webrtc/api/call/audio_send_stream.h
index 7ff791e..78ab8ec 100644
--- a/webrtc/api/call/audio_send_stream.h
+++ b/webrtc/api/call/audio_send_stream.h
@@ -55,6 +55,7 @@
   struct Config {
     Config() = delete;
     explicit Config(Transport* send_transport);
+    ~Config();
     std::string ToString() const;
 
     // Send-stream specific RTP settings.
@@ -92,6 +93,10 @@
     int min_bitrate_kbps = -1;
     int max_bitrate_kbps = -1;
 
+    // Defines whether to turn on audio network adaptor, and defines its config
+    // string.
+    rtc::Optional<std::string> audio_network_adaptor_config;
+
     struct SendCodecSpec {
       SendCodecSpec();
       std::string ToString() const;
@@ -108,6 +113,8 @@
       int opus_max_playback_rate = 0;
       int cng_payload_type = -1;
       int cng_plfreq = -1;
+      int max_ptime_ms = -1;
+      int min_ptime_ms = -1;
       webrtc::CodecInst codec_inst;
     } send_codec_spec;
   };