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))
