Move Java PeerConnectionFactory.fieldTrialsFindFullName to different file.
Currently, Java equivalent of webrtc::field_trial::FindFullName is in PeeerConnectionFactory, which belongs to peerconnection_java GN target. Move that method into a separate file and GN target to make it easier to use the fieldTrialsFindFullName method in other code. Bug: webrtc:13973 Change-Id: I4d7d30339883af76c1d066f72270c6caf9c64c49 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261500 Reviewed-by: Xavier Lepaul <xalep@webrtc.org> Commit-Queue: Xavier Lepaul <xalep@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37233}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
50674f7f69
commit
d609473b9c
@ -117,6 +117,7 @@ if (is_android) {
|
|||||||
":base_jni",
|
":base_jni",
|
||||||
":builtin_audio_codecs_jni",
|
":builtin_audio_codecs_jni",
|
||||||
":default_video_codec_factory_jni",
|
":default_video_codec_factory_jni",
|
||||||
|
":field_trial_jni",
|
||||||
":java_audio_device_module_jni",
|
":java_audio_device_module_jni",
|
||||||
":peerconnection_jni",
|
":peerconnection_jni",
|
||||||
":video_jni",
|
":video_jni",
|
||||||
@ -269,7 +270,6 @@ if (is_android) {
|
|||||||
"api/org/webrtc/MediaSource.java",
|
"api/org/webrtc/MediaSource.java",
|
||||||
"api/org/webrtc/MediaStream.java",
|
"api/org/webrtc/MediaStream.java",
|
||||||
"api/org/webrtc/MediaStreamTrack.java",
|
"api/org/webrtc/MediaStreamTrack.java",
|
||||||
"api/org/webrtc/NativeLibraryLoader.java",
|
|
||||||
"api/org/webrtc/NativePeerConnectionFactory.java",
|
"api/org/webrtc/NativePeerConnectionFactory.java",
|
||||||
"api/org/webrtc/NetEqFactoryFactory.java",
|
"api/org/webrtc/NetEqFactoryFactory.java",
|
||||||
"api/org/webrtc/NetworkChangeDetector.java",
|
"api/org/webrtc/NetworkChangeDetector.java",
|
||||||
@ -302,7 +302,6 @@ if (is_android) {
|
|||||||
"api/org/webrtc/VideoTrack.java",
|
"api/org/webrtc/VideoTrack.java",
|
||||||
"src/java/org/webrtc/NativeAndroidVideoTrackSource.java",
|
"src/java/org/webrtc/NativeAndroidVideoTrackSource.java",
|
||||||
"src/java/org/webrtc/NativeCapturerObserver.java",
|
"src/java/org/webrtc/NativeCapturerObserver.java",
|
||||||
"src/java/org/webrtc/NativeLibrary.java",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
@ -310,10 +309,12 @@ if (is_android) {
|
|||||||
":base_java",
|
":base_java",
|
||||||
":builtin_audio_codecs_java",
|
":builtin_audio_codecs_java",
|
||||||
":default_video_codec_factory_java",
|
":default_video_codec_factory_java",
|
||||||
|
":field_trial_java",
|
||||||
|
|
||||||
#TODO(bugs.webrtc.org/7452): Make injection mandatory and remove this dep.
|
#TODO(bugs.webrtc.org/7452): Make injection mandatory and remove this dep.
|
||||||
":java_audio_device_module_java",
|
":java_audio_device_module_java",
|
||||||
":logging_java",
|
":logging_java",
|
||||||
|
":native_library_java",
|
||||||
":swcodecs_java",
|
":swcodecs_java",
|
||||||
":video_api_java",
|
":video_api_java",
|
||||||
":video_java",
|
":video_java",
|
||||||
@ -327,6 +328,24 @@ if (is_android) {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rtc_android_library("native_library_java") {
|
||||||
|
sources = [
|
||||||
|
"api/org/webrtc/NativeLibraryLoader.java",
|
||||||
|
"src/java/org/webrtc/NativeLibrary.java",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":logging_java",
|
||||||
|
"//rtc_base:base_java",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc_android_library("field_trial_java") {
|
||||||
|
sources = [ "api/org/webrtc/FieldTrial.java" ]
|
||||||
|
|
||||||
|
deps = [ ":native_library_java" ]
|
||||||
|
}
|
||||||
|
|
||||||
# Modules, in alphabetical order.
|
# Modules, in alphabetical order.
|
||||||
|
|
||||||
rtc_android_library("camera_java") {
|
rtc_android_library("camera_java") {
|
||||||
@ -814,6 +833,16 @@ if (current_os == "linux" || is_android) {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rtc_library("field_trial_jni") {
|
||||||
|
visibility = [ "*" ]
|
||||||
|
sources = [ "src/jni/field_trial.cc" ]
|
||||||
|
deps = [
|
||||||
|
":base_jni",
|
||||||
|
":generated_field_trial_jni",
|
||||||
|
"../../system_wrappers:field_trial",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
# JNI target for java_audio_device_module_java
|
# JNI target for java_audio_device_module_java
|
||||||
rtc_library("java_audio_device_module_jni") {
|
rtc_library("java_audio_device_module_jni") {
|
||||||
visibility = [ "*" ]
|
visibility = [ "*" ]
|
||||||
@ -1420,6 +1449,12 @@ if (current_os == "linux" || is_android) {
|
|||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
generate_jni("generated_field_trial_jni") {
|
||||||
|
sources = [ "api/org/webrtc/FieldTrial.java" ]
|
||||||
|
namespace = "webrtc::jni"
|
||||||
|
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
||||||
|
}
|
||||||
|
|
||||||
generate_jni("generated_java_audio_jni") {
|
generate_jni("generated_java_audio_jni") {
|
||||||
sources = [ "api/org/webrtc/audio/JavaAudioDeviceModule.java" ]
|
sources = [ "api/org/webrtc/audio/JavaAudioDeviceModule.java" ]
|
||||||
namespace = "webrtc::jni"
|
namespace = "webrtc::jni"
|
||||||
@ -1525,6 +1560,7 @@ if (is_android) {
|
|||||||
":hwcodecs_java",
|
":hwcodecs_java",
|
||||||
":libjingle_peerconnection_java",
|
":libjingle_peerconnection_java",
|
||||||
":libjingle_peerconnection_metrics_default_java",
|
":libjingle_peerconnection_metrics_default_java",
|
||||||
|
":native_library_java",
|
||||||
":peerconnection_java",
|
":peerconnection_java",
|
||||||
":surfaceviewrenderer_java",
|
":surfaceviewrenderer_java",
|
||||||
":swcodecs_java",
|
":swcodecs_java",
|
||||||
@ -1633,7 +1669,6 @@ if (is_android) {
|
|||||||
":native_test_jni_onload",
|
":native_test_jni_onload",
|
||||||
":opensles_audio_device_module",
|
":opensles_audio_device_module",
|
||||||
":video_jni",
|
":video_jni",
|
||||||
"../../api:field_trials_view",
|
|
||||||
"../../api:scoped_refptr",
|
"../../api:scoped_refptr",
|
||||||
"../../api/rtc_event_log:rtc_event_log_factory",
|
"../../api/rtc_event_log:rtc_event_log_factory",
|
||||||
"../../api/task_queue:default_task_queue_factory",
|
"../../api/task_queue:default_task_queue_factory",
|
||||||
@ -1688,6 +1723,7 @@ if (is_android) {
|
|||||||
deps = [
|
deps = [
|
||||||
":base_java",
|
":base_java",
|
||||||
":java_audio_device_module_java",
|
":java_audio_device_module_java",
|
||||||
|
":native_library_java",
|
||||||
":peerconnection_java",
|
":peerconnection_java",
|
||||||
":video_api_java",
|
":video_api_java",
|
||||||
":video_java",
|
":video_java",
|
||||||
|
|||||||
26
sdk/android/api/org/webrtc/FieldTrial.java
Normal file
26
sdk/android/api/org/webrtc/FieldTrial.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by a BSD-style license
|
||||||
|
* that can be found in the LICENSE file in the root of the source
|
||||||
|
* tree. An additional intellectual property rights grant can be found
|
||||||
|
* in the file PATENTS. All contributing project authors may
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.webrtc;
|
||||||
|
|
||||||
|
public class FieldTrial {
|
||||||
|
// Wrapper of webrtc::field_trial::FindFullName. Develop the feature with default behaviour off.
|
||||||
|
// Example usage:
|
||||||
|
// if (FieldTrial.fieldTrialsFindFullName("WebRTCExperiment").equals("Enabled")) {
|
||||||
|
// method1();
|
||||||
|
// } else {
|
||||||
|
// method2();
|
||||||
|
// }
|
||||||
|
public static String fieldTrialsFindFullName(String name) {
|
||||||
|
return NativeLibrary.isLoaded() ? nativeFindFieldTrialsFullName(name) : "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static native String nativeFindFieldTrialsFullName(String name);
|
||||||
|
}
|
||||||
@ -14,6 +14,7 @@ import android.content.Context;
|
|||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import org.webrtc.FieldTrial;
|
||||||
import org.webrtc.Logging.Severity;
|
import org.webrtc.Logging.Severity;
|
||||||
import org.webrtc.PeerConnection;
|
import org.webrtc.PeerConnection;
|
||||||
import org.webrtc.audio.AudioDeviceModule;
|
import org.webrtc.audio.AudioDeviceModule;
|
||||||
@ -335,15 +336,12 @@ public class PeerConnectionFactory {
|
|||||||
nativeInitializeFieldTrials(fieldTrialsInitString);
|
nativeInitializeFieldTrials(fieldTrialsInitString);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wrapper of webrtc::field_trial::FindFullName. Develop the feature with default behaviour off.
|
/**
|
||||||
// Example usage:
|
* @deprecated Use {@link org.webrtc.FieldTrial#fieldTrialsFindFullName(String) } instead.
|
||||||
// if (PeerConnectionFactory.fieldTrialsFindFullName("WebRTCExperiment").equals("Enabled")) {
|
*/
|
||||||
// method1();
|
@Deprecated
|
||||||
// } else {
|
|
||||||
// method2();
|
|
||||||
// }
|
|
||||||
public static String fieldTrialsFindFullName(String name) {
|
public static String fieldTrialsFindFullName(String name) {
|
||||||
return NativeLibrary.isLoaded() ? nativeFindFieldTrialsFullName(name) : "";
|
return FieldTrial.fieldTrialsFindFullName(name);
|
||||||
}
|
}
|
||||||
// Start/stop internal capturing of internal tracing.
|
// Start/stop internal capturing of internal tracing.
|
||||||
public static boolean startInternalTracingCapture(String tracingFilename) {
|
public static boolean startInternalTracingCapture(String tracingFilename) {
|
||||||
@ -582,7 +580,6 @@ public class PeerConnectionFactory {
|
|||||||
// (for example, at application startup time).
|
// (for example, at application startup time).
|
||||||
private static native void nativeInitializeAndroidGlobals();
|
private static native void nativeInitializeAndroidGlobals();
|
||||||
private static native void nativeInitializeFieldTrials(String fieldTrialsInitString);
|
private static native void nativeInitializeFieldTrials(String fieldTrialsInitString);
|
||||||
private static native String nativeFindFieldTrialsFullName(String name);
|
|
||||||
private static native void nativeInitializeInternalTracer();
|
private static native void nativeInitializeInternalTracer();
|
||||||
// Internal tracing shutdown, called to prevent resource leaks. Must be called after
|
// Internal tracing shutdown, called to prevent resource leaks. Must be called after
|
||||||
// PeerConnectionFactory is gone to prevent races with code performing tracing.
|
// PeerConnectionFactory is gone to prevent races with code performing tracing.
|
||||||
|
|||||||
27
sdk/android/src/jni/field_trial.cc
Normal file
27
sdk/android/src/jni/field_trial.cc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by a BSD-style license
|
||||||
|
* that can be found in the LICENSE file in the root of the source
|
||||||
|
* tree. An additional intellectual property rights grant can be found
|
||||||
|
* in the file PATENTS. All contributing project authors may
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "system_wrappers/include/field_trial.h"
|
||||||
|
|
||||||
|
#include "sdk/android/generated_field_trial_jni/FieldTrial_jni.h"
|
||||||
|
#include "sdk/android/src/jni/jni_helpers.h"
|
||||||
|
|
||||||
|
namespace webrtc {
|
||||||
|
namespace jni {
|
||||||
|
|
||||||
|
static ScopedJavaLocalRef<jstring> JNI_FieldTrial_FindFieldTrialsFullName(
|
||||||
|
JNIEnv* jni,
|
||||||
|
const JavaParamRef<jstring>& j_name) {
|
||||||
|
return NativeToJavaString(
|
||||||
|
jni, field_trial::FindFullName(JavaToStdString(jni, j_name)));
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace jni
|
||||||
|
} // namespace webrtc
|
||||||
@ -213,14 +213,6 @@ static void JNI_PeerConnectionFactory_InitializeInternalTracer(JNIEnv* jni) {
|
|||||||
rtc::tracing::SetupInternalTracer();
|
rtc::tracing::SetupInternalTracer();
|
||||||
}
|
}
|
||||||
|
|
||||||
static ScopedJavaLocalRef<jstring>
|
|
||||||
JNI_PeerConnectionFactory_FindFieldTrialsFullName(
|
|
||||||
JNIEnv* jni,
|
|
||||||
const JavaParamRef<jstring>& j_name) {
|
|
||||||
return NativeToJavaString(
|
|
||||||
jni, field_trial::FindFullName(JavaToStdString(jni, j_name)));
|
|
||||||
}
|
|
||||||
|
|
||||||
static jboolean JNI_PeerConnectionFactory_StartInternalTracingCapture(
|
static jboolean JNI_PeerConnectionFactory_StartInternalTracingCapture(
|
||||||
JNIEnv* jni,
|
JNIEnv* jni,
|
||||||
const JavaParamRef<jstring>& j_event_tracing_filename) {
|
const JavaParamRef<jstring>& j_event_tracing_filename) {
|
||||||
|
|||||||
Reference in New Issue
Block a user