Android: Add maxFramerate to RtpParameters.

Bug: webrtc:9597
Change-Id: I1049b66860abbd69c4822756dee452b0db459ed4
Reviewed-on: https://webrtc-review.googlesource.com/91440
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24789}
This commit is contained in:
Åsa Persson
2018-08-13 16:46:57 +02:00
committed by Commit Bot
parent ee414728e9
commit 4e5342f06a
3 changed files with 19 additions and 2 deletions

View File

@ -34,17 +34,21 @@ public class RtpParameters {
// Specific maximum bandwidth defined in RFC3890. If null, there is no // Specific maximum bandwidth defined in RFC3890. If null, there is no
// maximum bitrate. // maximum bitrate.
@Nullable public Integer maxBitrateBps; @Nullable public Integer maxBitrateBps;
// Not implemented. // The minimum bitrate in bps for video.
@Nullable public Integer minBitrateBps; @Nullable public Integer minBitrateBps;
// The max framerate in fps for video.
@Nullable public Integer maxFramerate;
// SSRC to be used by this encoding. // SSRC to be used by this encoding.
// Can't be changed between getParameters/setParameters. // Can't be changed between getParameters/setParameters.
public Long ssrc; public Long ssrc;
@CalledByNative("Encoding") @CalledByNative("Encoding")
Encoding(boolean active, Integer maxBitrateBps, Integer minBitrateBps, Long ssrc) { Encoding(boolean active, Integer maxBitrateBps, Integer minBitrateBps, Integer maxFramerate,
Long ssrc) {
this.active = active; this.active = active;
this.maxBitrateBps = maxBitrateBps; this.maxBitrateBps = maxBitrateBps;
this.minBitrateBps = minBitrateBps; this.minBitrateBps = minBitrateBps;
this.maxFramerate = maxFramerate;
this.ssrc = ssrc; this.ssrc = ssrc;
} }
@ -65,6 +69,12 @@ public class RtpParameters {
return minBitrateBps; return minBitrateBps;
} }
@Nullable
@CalledByNative("Encoding")
Integer getMaxFramerate() {
return maxFramerate;
}
@CalledByNative("Encoding") @CalledByNative("Encoding")
Long getSsrc() { Long getSsrc() {
return ssrc; return ssrc;

View File

@ -854,9 +854,11 @@ public class PeerConnectionTest {
assertEquals(1, rtpParameters.encodings.size()); assertEquals(1, rtpParameters.encodings.size());
assertNull(rtpParameters.encodings.get(0).maxBitrateBps); assertNull(rtpParameters.encodings.get(0).maxBitrateBps);
assertNull(rtpParameters.encodings.get(0).minBitrateBps); assertNull(rtpParameters.encodings.get(0).minBitrateBps);
assertNull(rtpParameters.encodings.get(0).maxFramerate);
rtpParameters.encodings.get(0).maxBitrateBps = 300000; rtpParameters.encodings.get(0).maxBitrateBps = 300000;
rtpParameters.encodings.get(0).minBitrateBps = 100000; rtpParameters.encodings.get(0).minBitrateBps = 100000;
rtpParameters.encodings.get(0).maxFramerate = 20;
assertTrue(videoSender.setParameters(rtpParameters)); assertTrue(videoSender.setParameters(rtpParameters));
// Create a DTMF sender. // Create a DTMF sender.
@ -869,6 +871,7 @@ public class PeerConnectionTest {
rtpParameters = videoSender.getParameters(); rtpParameters = videoSender.getParameters();
assertEquals(300000, (int) rtpParameters.encodings.get(0).maxBitrateBps); assertEquals(300000, (int) rtpParameters.encodings.get(0).maxBitrateBps);
assertEquals(100000, (int) rtpParameters.encodings.get(0).minBitrateBps); assertEquals(100000, (int) rtpParameters.encodings.get(0).minBitrateBps);
assertEquals(20, (int) rtpParameters.encodings.get(0).maxFramerate);
// Test send & receive UTF-8 text. // Test send & receive UTF-8 text.
answeringExpectations.expectMessage( answeringExpectations.expectMessage(

View File

@ -26,6 +26,7 @@ ScopedJavaLocalRef<jobject> NativeToJavaRtpEncodingParameter(
return Java_Encoding_Constructor( return Java_Encoding_Constructor(
env, encoding.active, NativeToJavaInteger(env, encoding.max_bitrate_bps), env, encoding.active, NativeToJavaInteger(env, encoding.max_bitrate_bps),
NativeToJavaInteger(env, encoding.min_bitrate_bps), NativeToJavaInteger(env, encoding.min_bitrate_bps),
NativeToJavaInteger(env, encoding.max_framerate),
encoding.ssrc ? NativeToJavaLong(env, *encoding.ssrc) : nullptr); encoding.ssrc ? NativeToJavaLong(env, *encoding.ssrc) : nullptr);
} }
@ -68,6 +69,9 @@ RtpEncodingParameters JavaToNativeRtpEncodingParameters(
ScopedJavaLocalRef<jobject> j_min_bitrate = ScopedJavaLocalRef<jobject> j_min_bitrate =
Java_Encoding_getMinBitrateBps(jni, j_encoding_parameters); Java_Encoding_getMinBitrateBps(jni, j_encoding_parameters);
encoding.min_bitrate_bps = JavaToNativeOptionalInt(jni, j_min_bitrate); encoding.min_bitrate_bps = JavaToNativeOptionalInt(jni, j_min_bitrate);
ScopedJavaLocalRef<jobject> j_max_framerate =
Java_Encoding_getMaxFramerate(jni, j_encoding_parameters);
encoding.max_framerate = JavaToNativeOptionalInt(jni, j_max_framerate);
ScopedJavaLocalRef<jobject> j_ssrc = ScopedJavaLocalRef<jobject> j_ssrc =
Java_Encoding_getSsrc(jni, j_encoding_parameters); Java_Encoding_getSsrc(jni, j_encoding_parameters);
if (!IsNull(jni, j_ssrc)) if (!IsNull(jni, j_ssrc))