Add support for DegradationPreference in Android SDK
This wires the current degradation preference in the SDK, it will later be nullable in a follow up change once the native API supports it. Bug: webrtc:11164 Change-Id: I8324e6e0af996dfddfa07e3aff4ba242d9533388 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161321 Commit-Queue: Florent Castelli <orphis@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30170}
This commit is contained in:
committed by
Commit Bot
parent
75b58972cb
commit
266021dfa2
@ -20,6 +20,28 @@ namespace jni {
|
||||
|
||||
namespace {
|
||||
|
||||
webrtc::DegradationPreference JavaToNativeDegradationPreference(
|
||||
JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_degradation_preference) {
|
||||
std::string enum_name = GetJavaEnumName(jni, j_degradation_preference);
|
||||
|
||||
if (enum_name == "DISABLED")
|
||||
return webrtc::DegradationPreference::DISABLED;
|
||||
|
||||
if (enum_name == "MAINTAIN_FRAMERATE")
|
||||
return webrtc::DegradationPreference::MAINTAIN_FRAMERATE;
|
||||
|
||||
if (enum_name == "MAINTAIN_RESOLUTION")
|
||||
return webrtc::DegradationPreference::MAINTAIN_RESOLUTION;
|
||||
|
||||
if (enum_name == "BALANCED")
|
||||
return webrtc::DegradationPreference::BALANCED;
|
||||
|
||||
RTC_CHECK(false) << "Unexpected DegradationPreference enum_name "
|
||||
<< enum_name;
|
||||
return webrtc::DegradationPreference::DISABLED;
|
||||
}
|
||||
|
||||
ScopedJavaLocalRef<jobject> NativeToJavaRtpEncodingParameter(
|
||||
JNIEnv* env,
|
||||
const RtpEncodingParameters& encoding) {
|
||||
@ -103,6 +125,13 @@ RtpParameters JavaToNativeRtpParameters(JNIEnv* jni,
|
||||
Java_RtpParameters_getTransactionId(jni, j_parameters);
|
||||
parameters.transaction_id = JavaToNativeString(jni, j_transaction_id);
|
||||
|
||||
ScopedJavaLocalRef<jobject> j_degradation_preference =
|
||||
Java_RtpParameters_getDegradationPreference(jni, j_parameters);
|
||||
if (!IsNull(jni, j_degradation_preference)) {
|
||||
parameters.degradation_preference =
|
||||
JavaToNativeDegradationPreference(jni, j_degradation_preference);
|
||||
}
|
||||
|
||||
ScopedJavaLocalRef<jobject> j_rtcp =
|
||||
Java_RtpParameters_getRtcp(jni, j_parameters);
|
||||
ScopedJavaLocalRef<jstring> j_rtcp_cname = Java_Rtcp_getCname(jni, j_rtcp);
|
||||
@ -158,6 +187,8 @@ ScopedJavaLocalRef<jobject> NativeToJavaRtpParameters(
|
||||
const RtpParameters& parameters) {
|
||||
return Java_RtpParameters_Constructor(
|
||||
env, NativeToJavaString(env, parameters.transaction_id),
|
||||
Java_DegradationPreference_fromNativeIndex(
|
||||
env, static_cast<int>(parameters.degradation_preference)),
|
||||
NativeToJavaRtpRtcpParameters(env, parameters.rtcp),
|
||||
NativeToJavaList(env, parameters.header_extensions,
|
||||
&NativeToJavaRtpHeaderExtensionParameter),
|
||||
|
||||
Reference in New Issue
Block a user