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
// maximum bitrate.
@Nullable public Integer maxBitrateBps;
// Not implemented.
// The minimum bitrate in bps for video.
@Nullable public Integer minBitrateBps;
// The max framerate in fps for video.
@Nullable public Integer maxFramerate;
// SSRC to be used by this encoding.
// Can't be changed between getParameters/setParameters.
public Long ssrc;
@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.maxBitrateBps = maxBitrateBps;
this.minBitrateBps = minBitrateBps;
this.maxFramerate = maxFramerate;
this.ssrc = ssrc;
}
@ -65,6 +69,12 @@ public class RtpParameters {
return minBitrateBps;
}
@Nullable
@CalledByNative("Encoding")
Integer getMaxFramerate() {
return maxFramerate;
}
@CalledByNative("Encoding")
Long getSsrc() {
return ssrc;

View File

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

View File

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