From 85f20cbe4a536255c0bf5ec436a5f795ce14569c Mon Sep 17 00:00:00 2001 From: Rasmus Brandt Date: Thu, 23 Aug 2018 13:52:45 +0200 Subject: [PATCH] Add VideoEncoder::Settings::numberOfSimulcastStreams. This helps Java encoders take action if simulcast is enabled or not. Bug: webrtc:9646 Change-Id: Iad967e237bdc790ff2af111bdec1319f3e661ff7 Reviewed-on: https://webrtc-review.googlesource.com/95651 Reviewed-by: Magnus Jedvert Commit-Queue: Rasmus Brandt Cr-Commit-Position: refs/heads/master@{#24430} --- sdk/android/api/org/webrtc/VideoEncoder.java | 10 +++++++++- sdk/android/src/jni/videoencoderwrapper.cc | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sdk/android/api/org/webrtc/VideoEncoder.java b/sdk/android/api/org/webrtc/VideoEncoder.java index b739e99aa6..e1984fa83c 100644 --- a/sdk/android/api/org/webrtc/VideoEncoder.java +++ b/sdk/android/api/org/webrtc/VideoEncoder.java @@ -26,18 +26,26 @@ public interface VideoEncoder { public final int height; public final int startBitrate; // Kilobits per second. public final int maxFramerate; + public final int numberOfSimulcastStreams; public final boolean automaticResizeOn; @CalledByNative("Settings") public Settings(int numberOfCores, int width, int height, int startBitrate, int maxFramerate, - boolean automaticResizeOn) { + int numberOfSimulcastStreams, boolean automaticResizeOn) { this.numberOfCores = numberOfCores; this.width = width; this.height = height; this.startBitrate = startBitrate; this.maxFramerate = maxFramerate; + this.numberOfSimulcastStreams = numberOfSimulcastStreams; this.automaticResizeOn = automaticResizeOn; } + + // TODO(http://bugs.webrtc.org/9646): Remove when downstream clients have been updated. + public Settings(int numberOfCores, int width, int height, int startBitrate, int maxFramerate, + boolean automaticResizeOn) { + this(numberOfCores, width, height, startBitrate, maxFramerate, 1, automaticResizeOn); + } } /** Additional info for encoding. */ diff --git a/sdk/android/src/jni/videoencoderwrapper.cc b/sdk/android/src/jni/videoencoderwrapper.cc index 717f94495f..ff8be05274 100644 --- a/sdk/android/src/jni/videoencoderwrapper.cc +++ b/sdk/android/src/jni/videoencoderwrapper.cc @@ -70,7 +70,9 @@ int32_t VideoEncoderWrapper::InitEncodeInternal(JNIEnv* jni) { ScopedJavaLocalRef settings = Java_Settings_Constructor( jni, number_of_cores_, codec_settings_.width, codec_settings_.height, static_cast(codec_settings_.startBitrate), - static_cast(codec_settings_.maxFramerate), automatic_resize_on); + static_cast(codec_settings_.maxFramerate), + static_cast(codec_settings_.numberOfSimulcastStreams), + automatic_resize_on); ScopedJavaLocalRef callback = Java_VideoEncoderWrapper_createEncoderCallback(jni,