From 7d8f5949b2aa29b31da4bc3b28091fc872de6e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Mon, 23 Apr 2018 15:07:34 +0200 Subject: [PATCH] Make depending on a specific audio implementation optional. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Splits out audio_java into audio_api_java and java_audio_device_module_java. Makes depending on java_audio_device_module_jni optional for clients that do not use it. It is only necessary to depend on this target if depending on java_audio_device_module_java. Also some cleanup. Bug: webrtc:7452 Change-Id: Ic6c4dbe11db3ed8330802a8e90203acb8ef18e72 Reviewed-on: https://webrtc-review.googlesource.com/70220 Commit-Queue: Sami Kalliomäki Reviewed-by: Magnus Jedvert Cr-Commit-Position: refs/heads/master@{#22981} --- examples/BUILD.gn | 9 +- sdk/android/BUILD.gn | 82 +++++++++++++------ .../webrtc/audio/LegacyAudioDeviceModule.java | 4 - .../jni/audio_device/audio_device_module.cc | 2 +- .../src/jni/audio_device/audio_record_jni.cc | 2 +- .../src/jni/audio_device/audio_track_jni.cc | 2 +- .../audio_device/java_audio_device_module.cc | 2 +- 7 files changed, 62 insertions(+), 41 deletions(-) diff --git a/examples/BUILD.gn b/examples/BUILD.gn index b88b734a9e..c9c275280b 100644 --- a/examples/BUILD.gn +++ b/examples/BUILD.gn @@ -106,21 +106,16 @@ if (is_android) { "androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java", ] - javac_args = [ - "-Xep:ParameterNotNullable:ERROR", - "-Xep:FieldMissingNullable:ERROR", - "-Xep:ReturnMissingNullable:ERROR", - ] - deps = [ ":AppRTCMobile_resources", "../modules/audio_device:audio_device_java", "../rtc_base:base_java", - "../sdk/android:audio_java", + "../sdk/android:audio_api_java", "../sdk/android:base_java", "../sdk/android:camera_java", "../sdk/android:filevideo_java", "../sdk/android:hwcodecs_java", + "../sdk/android:java_audio_device_module_java", "../sdk/android:libjingle_peerconnection_java", "../sdk/android:libjingle_peerconnection_metrics_default_java", "../sdk/android:peerconnection_java", diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index ae3b0afef0..9a51ea33e9 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -130,8 +130,8 @@ rtc_source_set("native_api_audio_device_module") { deps = [ ":base_jni", - ":java_audio_device_jni", - ":opensles_audio_device_jni", + ":java_audio_device_module", + ":opensles_audio_device_module", "../../modules/audio_device:audio_device", "../../rtc_base:checks", "../../rtc_base:rtc_base_approved", @@ -139,11 +139,11 @@ rtc_source_set("native_api_audio_device_module") { "../../system_wrappers:metrics_api", ] if (rtc_enable_android_aaudio) { - deps += [ ":aaudio_audio_device_jni" ] + deps += [ ":aaudio_audio_device_module" ] } } -rtc_source_set("audio_device_base_jni") { +rtc_source_set("audio_device_module_base") { visibility = [ "*" ] sources = [ @@ -154,7 +154,7 @@ rtc_source_set("audio_device_base_jni") { deps = [ ":base_jni", - ":generated_audio_device_base_jni", + ":generated_audio_device_module_base_jni", ":native_api_jni", "../../api:optional", "../../modules/audio_device:audio_device_buffer", @@ -165,7 +165,7 @@ rtc_source_set("audio_device_base_jni") { } if (rtc_enable_android_aaudio) { - rtc_source_set("aaudio_audio_device_jni") { + rtc_source_set("aaudio_audio_device_module") { visibility = [ "*" ] defines = [ "AUDIO_DEVICE_INCLUDE_ANDROID_AAUDIO" ] sources = [ @@ -178,7 +178,7 @@ if (rtc_enable_android_aaudio) { ] libs = [ "aaudio" ] deps = [ - ":audio_device_base_jni", + ":audio_device_module_base", ":base_jni", "../../api:array_view", "../../api:optional", @@ -192,7 +192,7 @@ if (rtc_enable_android_aaudio) { } } -rtc_source_set("opensles_audio_device_jni") { +rtc_source_set("opensles_audio_device_module") { visibility = [ "*" ] sources = [ "src/jni/audio_device/opensles_common.cc", @@ -204,7 +204,7 @@ rtc_source_set("opensles_audio_device_jni") { ] libs = [ "OpenSLES" ] deps = [ - ":audio_device_base_jni", + ":audio_device_module_base", ":base_jni", "../../api:array_view", "../../api:optional", @@ -215,7 +215,7 @@ rtc_source_set("opensles_audio_device_jni") { ] } -rtc_source_set("java_audio_device_jni") { +rtc_source_set("java_audio_device_module") { visibility = [ "*" ] sources = [ @@ -223,12 +223,11 @@ rtc_source_set("java_audio_device_jni") { "src/jni/audio_device/audio_record_jni.h", "src/jni/audio_device/audio_track_jni.cc", "src/jni/audio_device/audio_track_jni.h", - "src/jni/audio_device/java_audio_device_module.cc", ] deps = [ - ":audio_device_base_jni", + ":audio_device_module_base", ":base_jni", - ":generated_java_audio_device_jni", + ":generated_java_audio_device_module_native_jni", "../../api:optional", "../../modules/audio_device:audio_device", "../../modules/audio_device:audio_device_buffer", @@ -248,7 +247,7 @@ rtc_static_library("null_audio_jni") { ] } -generate_jni("generated_audio_device_base_jni") { +generate_jni("generated_audio_device_module_base_jni") { sources = [ "src/java/org/webrtc/audio/WebRtcAudioManager.java", ] @@ -256,9 +255,8 @@ generate_jni("generated_audio_device_base_jni") { jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } -generate_jni("generated_java_audio_device_jni") { +generate_jni("generated_java_audio_device_module_native_jni") { sources = [ - "api/org/webrtc/audio/JavaAudioDeviceModule.java", "src/java/org/webrtc/audio/WebRtcAudioRecord.java", "src/java/org/webrtc/audio/WebRtcAudioTrack.java", ] @@ -589,7 +587,6 @@ rtc_static_library("peerconnection_jni") { ":base_jni", ":generated_external_classes_jni", ":generated_peerconnection_jni", - ":java_audio_device_jni", ":native_api_jni", "../..:webrtc_common", "../../api:libjingle_peerconnection_api", @@ -616,6 +613,7 @@ rtc_static_library("libjingle_peerconnection_jni") { public_deps = [ ":audio_jni", ":base_jni", + ":java_audio_device_module_jni", ":media_jni", ":peerconnection_jni", ":video_jni", @@ -704,11 +702,12 @@ dist_jar("libwebrtc") { no_build_hooks = true deps = [ - ":audio_java", + ":audio_api_java", ":base_java", ":camera_java", ":filevideo_java", ":hwcodecs_java", + ":java_audio_device_module_java", ":libjingle_peerconnection_java", ":libjingle_peerconnection_metrics_default_java", ":peerconnection_java", @@ -782,11 +781,18 @@ rtc_android_library("video_api_java") { ] } -rtc_android_library("audio_java") { +rtc_android_library("audio_api_java") { + java_files = [ "api/org/webrtc/audio/AudioDeviceModule.java" ] + + deps = [ + ":base_java", + "//rtc_base:base_java", + ] +} + +rtc_android_library("java_audio_device_module_java") { java_files = [ - "api/org/webrtc/audio/AudioDeviceModule.java", "api/org/webrtc/audio/JavaAudioDeviceModule.java", - "api/org/webrtc/audio/LegacyAudioDeviceModule.java", "src/java/org/webrtc/audio/VolumeLogger.java", "src/java/org/webrtc/audio/WebRtcAudioEffects.java", "src/java/org/webrtc/audio/WebRtcAudioManager.java", @@ -796,12 +802,33 @@ rtc_android_library("audio_java") { ] deps = [ + ":audio_api_java", ":base_java", - "//modules/audio_device:audio_device_java", "//rtc_base:base_java", ] } +# JNI target for java_audio_device_module_java +rtc_source_set("java_audio_device_module_jni") { + sources = [ + "src/jni/audio_device/java_audio_device_module.cc", + ] + + deps = [ + ":base_jni", + ":generated_java_audio_jni", + ":java_audio_device_module", + ] +} + +generate_jni("generated_java_audio_jni") { + sources = [ + "api/org/webrtc/audio/JavaAudioDeviceModule.java", + ] + jni_package = "" + jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" +} + rtc_android_library("video_java") { java_files = [ "api/org/webrtc/EglRenderer.java", @@ -937,6 +964,7 @@ rtc_android_library("hwcodecs_java") { rtc_android_library("peerconnection_java") { java_files = [ + "api/org/webrtc/audio/LegacyAudioDeviceModule.java", "api/org/webrtc/AudioProcessingFactory.java", "api/org/webrtc/AudioSource.java", "api/org/webrtc/AudioTrack.java", @@ -975,10 +1003,11 @@ rtc_android_library("peerconnection_java") { ] deps = [ - ":audio_java", + ":audio_api_java", ":base_java", ":video_api_java", ":video_java", # TODO(sakal): Remove dependency. + "//modules/audio_device:audio_device_java", "//rtc_base:base_java", ] } @@ -989,10 +1018,12 @@ rtc_android_library("libjingle_peerconnection_java") { java_files = [ "src/java/org/webrtc/Empty.java" ] deps = [ + ":audio_api_java", ":base_java", ":camera_java", ":filevideo_java", ":hwcodecs_java", + ":java_audio_device_module_java", ":peerconnection_java", ":screencapturer_java", ":surfaceviewrenderer_java", @@ -1258,18 +1289,17 @@ rtc_source_set("native_unittests") { } deps = [ - ":audio_device_base_jni", + ":audio_device_module_base", ":audio_jni", ":base_jni", ":generated_native_unittests_jni", - ":java_audio_device_jni", ":media_jni", ":native_api_audio_device_module", ":native_api_base", ":native_api_jni", ":native_api_peerconnection", ":native_unittests_java", - ":opensles_audio_device_jni", + ":opensles_audio_device_module", ":video_jni", "../../system_wrappers:system_wrappers", "//api/audio_codecs:builtin_audio_decoder_factory", diff --git a/sdk/android/api/org/webrtc/audio/LegacyAudioDeviceModule.java b/sdk/android/api/org/webrtc/audio/LegacyAudioDeviceModule.java index b21f8620bd..de0d0d61f9 100644 --- a/sdk/android/api/org/webrtc/audio/LegacyAudioDeviceModule.java +++ b/sdk/android/api/org/webrtc/audio/LegacyAudioDeviceModule.java @@ -21,10 +21,6 @@ import org.webrtc.voiceengine.WebRtcAudioTrack; */ @Deprecated public class LegacyAudioDeviceModule implements AudioDeviceModule { - public static AudioDeviceModule Create() { - return new LegacyAudioDeviceModule(); - } - @Override public long getNativeAudioDeviceModulePointer() { // Returning a null pointer will make WebRTC construct the built-in legacy AudioDeviceModule for diff --git a/sdk/android/src/jni/audio_device/audio_device_module.cc b/sdk/android/src/jni/audio_device/audio_device_module.cc index 555086cefa..0176dcdb02 100644 --- a/sdk/android/src/jni/audio_device/audio_device_module.cc +++ b/sdk/android/src/jni/audio_device/audio_device_module.cc @@ -16,7 +16,7 @@ #include "rtc_base/logging.h" #include "rtc_base/refcountedobject.h" #include "rtc_base/thread_checker.h" -#include "sdk/android/generated_audio_device_base_jni/jni/WebRtcAudioManager_jni.h" +#include "sdk/android/generated_audio_device_module_base_jni/jni/WebRtcAudioManager_jni.h" #include "system_wrappers/include/metrics.h" namespace webrtc { diff --git a/sdk/android/src/jni/audio_device/audio_record_jni.cc b/sdk/android/src/jni/audio_device/audio_record_jni.cc index 9b1d5f8982..f735cfcdd1 100644 --- a/sdk/android/src/jni/audio_device/audio_record_jni.cc +++ b/sdk/android/src/jni/audio_device/audio_record_jni.cc @@ -19,7 +19,7 @@ #include "rtc_base/logging.h" #include "rtc_base/platform_thread.h" #include "rtc_base/timeutils.h" -#include "sdk/android/generated_java_audio_device_jni/jni/WebRtcAudioRecord_jni.h" +#include "sdk/android/generated_java_audio_device_module_native_jni/jni/WebRtcAudioRecord_jni.h" #include "sdk/android/src/jni/audio_device/audio_common.h" #include "sdk/android/src/jni/jni_helpers.h" #include "system_wrappers/include/metrics.h" diff --git a/sdk/android/src/jni/audio_device/audio_track_jni.cc b/sdk/android/src/jni/audio_device/audio_track_jni.cc index 0e6c554ae9..d638e1ac6e 100644 --- a/sdk/android/src/jni/audio_device/audio_track_jni.cc +++ b/sdk/android/src/jni/audio_device/audio_track_jni.cc @@ -17,7 +17,7 @@ #include "rtc_base/format_macros.h" #include "rtc_base/logging.h" #include "rtc_base/platform_thread.h" -#include "sdk/android/generated_java_audio_device_jni/jni/WebRtcAudioTrack_jni.h" +#include "sdk/android/generated_java_audio_device_module_native_jni/jni/WebRtcAudioTrack_jni.h" #include "sdk/android/src/jni/jni_helpers.h" namespace webrtc { diff --git a/sdk/android/src/jni/audio_device/java_audio_device_module.cc b/sdk/android/src/jni/audio_device/java_audio_device_module.cc index 02226c40d3..267058f317 100644 --- a/sdk/android/src/jni/audio_device/java_audio_device_module.cc +++ b/sdk/android/src/jni/audio_device/java_audio_device_module.cc @@ -8,7 +8,7 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "sdk/android/generated_java_audio_device_jni/jni/JavaAudioDeviceModule_jni.h" +#include "sdk/android/generated_java_audio_jni/jni/JavaAudioDeviceModule_jni.h" #include "sdk/android/src/jni/audio_device/audio_record_jni.h" #include "sdk/android/src/jni/audio_device/audio_track_jni.h" #include "sdk/android/src/jni/jni_helpers.h"