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