From 613591a5b8e67fd4fc5995aec405e0dff97c9e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85sa=20Persson?= Date: Tue, 29 May 2018 09:21:31 +0200 Subject: [PATCH] Add min_bitrate_bps to RtpEncodingParameters. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This CL adds the field but does not implement any functionality using it. Bug: webrtc:9341 Change-Id: I533fc7f8bc1e40207aa16b834e0d7daa60709614 Reviewed-on: https://webrtc-review.googlesource.com/78741 Commit-Queue: Åsa Persson Reviewed-by: Magnus Jedvert Reviewed-by: Taylor Brandstetter Cr-Commit-Position: refs/heads/master@{#23466} --- api/rtpparameters.h | 3 +++ sdk/android/api/org/webrtc/RtpParameters.java | 11 ++++++++++- .../src/org/webrtc/PeerConnectionTest.java | 3 +++ sdk/android/src/jni/pc/rtpparameters.cc | 8 ++++++-- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/api/rtpparameters.h b/api/rtpparameters.h index c12b0c9588..8e6b84c30e 100644 --- a/api/rtpparameters.h +++ b/api/rtpparameters.h @@ -417,6 +417,9 @@ struct RtpEncodingParameters { // fixed. rtc::Optional max_bitrate_bps; + // TODO(asapersson): Not implemented. + rtc::Optional min_bitrate_bps; + // TODO(deadbeef): Not implemented. rtc::Optional max_framerate; diff --git a/sdk/android/api/org/webrtc/RtpParameters.java b/sdk/android/api/org/webrtc/RtpParameters.java index e376c082ac..a398235338 100644 --- a/sdk/android/api/org/webrtc/RtpParameters.java +++ b/sdk/android/api/org/webrtc/RtpParameters.java @@ -34,14 +34,17 @@ public class RtpParameters { // Specific maximum bandwidth defined in RFC3890. If null, there is no // maximum bitrate. @Nullable public Integer maxBitrateBps; + // Not implemented. + @Nullable public Integer minBitrateBps; // SSRC to be used by this encoding. // Can't be changed between getParameters/setParameters. public Long ssrc; @CalledByNative("Encoding") - Encoding(boolean active, Integer maxBitrateBps, Long ssrc) { + Encoding(boolean active, Integer maxBitrateBps, Integer minBitrateBps, Long ssrc) { this.active = active; this.maxBitrateBps = maxBitrateBps; + this.minBitrateBps = minBitrateBps; this.ssrc = ssrc; } @@ -56,6 +59,12 @@ public class RtpParameters { return maxBitrateBps; } + @Nullable + @CalledByNative("Encoding") + Integer getMinBitrateBps() { + return minBitrateBps; + } + @CalledByNative("Encoding") Long getSsrc() { return ssrc; diff --git a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java index 9aeda834a0..fa61b3ddff 100644 --- a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java +++ b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java @@ -844,8 +844,10 @@ public class PeerConnectionTest { assertNotNull(rtpParameters); assertEquals(1, rtpParameters.encodings.size()); assertNull(rtpParameters.encodings.get(0).maxBitrateBps); + assertNull(rtpParameters.encodings.get(0).minBitrateBps); rtpParameters.encodings.get(0).maxBitrateBps = 300000; + rtpParameters.encodings.get(0).minBitrateBps = 100000; assertTrue(videoSender.setParameters(rtpParameters)); // Create a DTMF sender. @@ -857,6 +859,7 @@ public class PeerConnectionTest { // Verify that we can read back the updated value. rtpParameters = videoSender.getParameters(); assertEquals(300000, (int) rtpParameters.encodings.get(0).maxBitrateBps); + assertEquals(100000, (int) rtpParameters.encodings.get(0).minBitrateBps); // Test send & receive UTF-8 text. answeringExpectations.expectMessage( diff --git a/sdk/android/src/jni/pc/rtpparameters.cc b/sdk/android/src/jni/pc/rtpparameters.cc index 385eb8ae31..5778ab8a77 100644 --- a/sdk/android/src/jni/pc/rtpparameters.cc +++ b/sdk/android/src/jni/pc/rtpparameters.cc @@ -25,6 +25,7 @@ ScopedJavaLocalRef NativeToJavaRtpEncodingParameter( const RtpEncodingParameters& encoding) { return Java_Encoding_Constructor( env, encoding.active, NativeToJavaInteger(env, encoding.max_bitrate_bps), + NativeToJavaInteger(env, encoding.min_bitrate_bps), encoding.ssrc ? NativeToJavaLong(env, *encoding.ssrc) : nullptr); } @@ -53,9 +54,12 @@ RtpEncodingParameters JavaToNativeRtpEncodingParameters( const JavaRef& j_encoding_parameters) { RtpEncodingParameters encoding; encoding.active = Java_Encoding_getActive(jni, j_encoding_parameters); - ScopedJavaLocalRef j_bitrate = + ScopedJavaLocalRef j_max_bitrate = Java_Encoding_getMaxBitrateBps(jni, j_encoding_parameters); - encoding.max_bitrate_bps = JavaToNativeOptionalInt(jni, j_bitrate); + encoding.max_bitrate_bps = JavaToNativeOptionalInt(jni, j_max_bitrate); + ScopedJavaLocalRef j_min_bitrate = + Java_Encoding_getMinBitrateBps(jni, j_encoding_parameters); + encoding.min_bitrate_bps = JavaToNativeOptionalInt(jni, j_min_bitrate); ScopedJavaLocalRef j_ssrc = Java_Encoding_getSsrc(jni, j_encoding_parameters); if (!IsNull(jni, j_ssrc))