Add RtpEncodingParameters.adaptive_ptime.

When enabled:
- Creates an audio network adapter config that is passed to audio send
stream.
- Configures a lower default min bitrate.

All parameters can be configured via a field trial that can also force
enable the audio network adaptor (this is mainly intended for testing).

Bug: chromium:1086942
Change-Id: I48dfcca1ee2948084199352abed6212a6c78eb6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177840
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31565}
diff --git a/api/rtp_parameters.h b/api/rtp_parameters.h
index 11335e9..b667bf8 100644
--- a/api/rtp_parameters.h
+++ b/api/rtp_parameters.h
@@ -473,6 +473,10 @@
   // Called "encodingId" in ORTC.
   std::string rid;
 
+  // Allow dynamic frame length changes for audio:
+  // https://w3c.github.io/webrtc-extensions/#dom-rtcrtpencodingparameters-adaptiveptime
+  bool adaptive_ptime = false;
+
   bool operator==(const RtpEncodingParameters& o) const {
     return ssrc == o.ssrc && bitrate_priority == o.bitrate_priority &&
            network_priority == o.network_priority &&
@@ -481,7 +485,8 @@
            max_framerate == o.max_framerate &&
            num_temporal_layers == o.num_temporal_layers &&
            scale_resolution_down_by == o.scale_resolution_down_by &&
-           active == o.active && rid == o.rid;
+           active == o.active && rid == o.rid &&
+           adaptive_ptime == o.adaptive_ptime;
   }
   bool operator!=(const RtpEncodingParameters& o) const {
     return !(*this == o);