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}
This commit is contained in:
Yura Yaroshevich 2021-04-19 10:14:03 +03:00 committed by Commit Bot
parent d71b38e2fb
commit d29c689463
2 changed files with 15 additions and 2 deletions

View File

@ -79,6 +79,9 @@ public class RtpParameters {
// 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 @@ public class RtpParameters {
@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 @@ public class RtpParameters {
this.numTemporalLayers = numTemporalLayers;
this.scaleResolutionDownBy = scaleResolutionDownBy;
this.ssrc = ssrc;
this.adaptiveAudioPacketTime = adaptiveAudioPacketTime;
}
@Nullable
@ -159,6 +164,11 @@ public class RtpParameters {
Long getSsrc() {
return ssrc;
}
@CalledByNative("Encoding")
boolean getAdaptivePTime() {
return adaptiveAudioPacketTime;
}
}
public static class Codec {

View File

@ -53,7 +53,8 @@ ScopedJavaLocalRef<jobject> NativeToJavaRtpEncodingParameter(
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 @@ RtpEncodingParameters JavaToNativeRtpEncodingParameters(
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))