Expose adaptive_ptime from Android SDK.

Bug: None
Change-Id: Ideec24a0561efef83387f9b9605a5b68371fefa3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215228
Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33768}
diff --git a/sdk/android/api/org/webrtc/RtpParameters.java b/sdk/android/api/org/webrtc/RtpParameters.java
index e4e0930..673ef47 100644
--- a/sdk/android/api/org/webrtc/RtpParameters.java
+++ b/sdk/android/api/org/webrtc/RtpParameters.java
@@ -79,6 +79,9 @@
     // SSRC to be used by this encoding.
     // Can't be changed between getParameters/setParameters.
     public Long ssrc;
+    // Set to true to allow dynamic frame length changes for audio:
+    // https://w3c.github.io/webrtc-extensions/#dom-rtcrtpencodingparameters-adaptiveptime
+    public boolean adaptiveAudioPacketTime;
 
     // This constructor is useful for creating simulcast layers.
     public Encoding(String rid, boolean active, Double scaleResolutionDownBy) {
@@ -90,7 +93,8 @@
     @CalledByNative("Encoding")
     Encoding(String rid, boolean active, double bitratePriority, @Priority int networkPriority,
         Integer maxBitrateBps, Integer minBitrateBps, Integer maxFramerate,
-        Integer numTemporalLayers, Double scaleResolutionDownBy, Long ssrc) {
+        Integer numTemporalLayers, Double scaleResolutionDownBy, Long ssrc,
+        boolean adaptiveAudioPacketTime) {
       this.rid = rid;
       this.active = active;
       this.bitratePriority = bitratePriority;
@@ -101,6 +105,7 @@
       this.numTemporalLayers = numTemporalLayers;
       this.scaleResolutionDownBy = scaleResolutionDownBy;
       this.ssrc = ssrc;
+      this.adaptiveAudioPacketTime = adaptiveAudioPacketTime;
     }
 
     @Nullable
@@ -159,6 +164,11 @@
     Long getSsrc() {
       return ssrc;
     }
+
+    @CalledByNative("Encoding")
+    boolean getAdaptivePTime() {
+      return adaptiveAudioPacketTime;
+    }
   }
 
   public static class Codec {
diff --git a/sdk/android/src/jni/pc/rtp_parameters.cc b/sdk/android/src/jni/pc/rtp_parameters.cc
index a65fa6e..4bd9ee0 100644
--- a/sdk/android/src/jni/pc/rtp_parameters.cc
+++ b/sdk/android/src/jni/pc/rtp_parameters.cc
@@ -53,7 +53,8 @@
       NativeToJavaInteger(env, encoding.max_framerate),
       NativeToJavaInteger(env, encoding.num_temporal_layers),
       NativeToJavaDouble(env, encoding.scale_resolution_down_by),
-      encoding.ssrc ? NativeToJavaLong(env, *encoding.ssrc) : nullptr);
+      encoding.ssrc ? NativeToJavaLong(env, *encoding.ssrc) : nullptr,
+      encoding.adaptive_ptime);
 }
 
 ScopedJavaLocalRef<jobject> NativeToJavaRtpCodecParameter(
@@ -115,6 +116,8 @@
       Java_Encoding_getScaleResolutionDownBy(jni, j_encoding_parameters);
   encoding.scale_resolution_down_by =
       JavaToNativeOptionalDouble(jni, j_scale_resolution_down_by);
+  encoding.adaptive_ptime =
+      Java_Encoding_getAdaptivePTime(jni, j_encoding_parameters);
   ScopedJavaLocalRef<jobject> j_ssrc =
       Java_Encoding_getSsrc(jni, j_encoding_parameters);
   if (!IsNull(jni, j_ssrc))