diff --git a/examples/androidnativeapi/BUILD.gn b/examples/androidnativeapi/BUILD.gn index cbb1de47d2..3897a3300d 100644 --- a/examples/androidnativeapi/BUILD.gn +++ b/examples/androidnativeapi/BUILD.gn @@ -28,6 +28,7 @@ generate_jni("generated_jni") { "java/org/webrtc/examples/androidnativeapi/CallClient.java", ] jni_package = "" + namespace = "webrtc_examples" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } diff --git a/examples/androidnativeapi/java/org/webrtc/examples/androidnativeapi/CallClient.java b/examples/androidnativeapi/java/org/webrtc/examples/androidnativeapi/CallClient.java index 439665cd68..b95e29bd01 100644 --- a/examples/androidnativeapi/java/org/webrtc/examples/androidnativeapi/CallClient.java +++ b/examples/androidnativeapi/java/org/webrtc/examples/androidnativeapi/CallClient.java @@ -13,13 +13,10 @@ package org.webrtc.examples.androidnativeapi; import android.content.Context; import android.os.Handler; import android.os.HandlerThread; -import org.webrtc.JNINamespace; -import org.webrtc.NativeClassQualifiedName; import org.webrtc.SurfaceTextureHelper; import org.webrtc.VideoCapturer; import org.webrtc.VideoSink; -@JNINamespace("webrtc_examples") public class CallClient { private static final String TAG = "CallClient"; private static final int CAPTURE_WIDTH = 640; @@ -65,13 +62,10 @@ public class CallClient { } private static native long nativeCreateClient(); - @NativeClassQualifiedName("webrtc_examples::AndroidCallClient") - private static native void nativeCall(long nativePtr, VideoSink localSink, VideoSink remoteSink); - @NativeClassQualifiedName("webrtc_examples::AndroidCallClient") - private static native void nativeHangup(long nativePtr); - @NativeClassQualifiedName("webrtc_examples::AndroidCallClient") - private static native void nativeDelete(long nativePtr); - @NativeClassQualifiedName("webrtc_examples::AndroidCallClient") + private static native void nativeCall( + long nativeAndroidCallClient, VideoSink localSink, VideoSink remoteSink); + private static native void nativeHangup(long nativeAndroidCallClient); + private static native void nativeDelete(long nativeAndroidCallClient); private static native VideoCapturer.CapturerObserver nativeGetJavaVideoCapturerObserver( - long nativePtr); + long nativeAndroidCallClient); } diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 62cb141d92..4286ef71fe 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -42,6 +42,7 @@ generate_jni("generated_base_jni") { "src/java/org/webrtc/JniCommon.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -252,6 +253,7 @@ generate_jni("generated_audio_device_module_base_jni") { "src/java/org/webrtc/audio/WebRtcAudioManager.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -261,6 +263,7 @@ generate_jni("generated_java_audio_device_module_native_jni") { "src/java/org/webrtc/audio/WebRtcAudioTrack.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -297,6 +300,7 @@ generate_jni("generated_video_jni") { sources += [ "api/org/webrtc/HardwareVideoEncoderFactory.java" ] # TODO(andersc): This currently depends on SoftwareVideoEncoderFactory } jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -418,6 +422,7 @@ generate_jni("generated_vp8_jni") { ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -440,6 +445,7 @@ generate_jni("generated_vp9_jni") { ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -509,6 +515,7 @@ generate_jni("generated_peerconnection_jni") { "api/org/webrtc/TurnCustomizer.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -628,6 +635,7 @@ generate_jni("generated_metrics_jni") { "api/org/webrtc/Metrics.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -734,8 +742,6 @@ rtc_android_library("base_java") { "src/java/org/webrtc/Histogram.java", "src/java/org/webrtc/JniCommon.java", "src/java/org/webrtc/JniHelper.java", - "src/java/org/webrtc/JNINamespace.java", - "src/java/org/webrtc/NativeClassQualifiedName.java", "src/java/org/webrtc/RefCountDelegate.java", "src/java/org/webrtc/WebRtcClassLoader.java", ] @@ -827,6 +833,7 @@ generate_jni("generated_java_audio_jni") { "api/org/webrtc/audio/JavaAudioDeviceModule.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -1138,6 +1145,7 @@ generate_jni("generated_native_api_jni") { "src/java/org/webrtc/WebRtcClassLoader.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } @@ -1252,6 +1260,7 @@ generate_jni("generated_native_unittests_jni") { "native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java", ] jni_package = "" + namespace = "webrtc::jni" jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" } diff --git a/sdk/android/api/org/webrtc/AudioTrack.java b/sdk/android/api/org/webrtc/AudioTrack.java index 6663666b40..828e89c5e5 100644 --- a/sdk/android/api/org/webrtc/AudioTrack.java +++ b/sdk/android/api/org/webrtc/AudioTrack.java @@ -11,7 +11,6 @@ package org.webrtc; /** Java wrapper for a C++ AudioTrackInterface */ -@JNINamespace("webrtc::jni") public class AudioTrack extends MediaStreamTrack { public AudioTrack(long nativeTrack) { super(nativeTrack); diff --git a/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java b/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java index b55c042ed3..c6b9e97e7d 100644 --- a/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java +++ b/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java @@ -10,7 +10,6 @@ package org.webrtc; -@JNINamespace("webrtc::jni") public class CallSessionFileRotatingLogSink { private long nativeSink; diff --git a/sdk/android/api/org/webrtc/DataChannel.java b/sdk/android/api/org/webrtc/DataChannel.java index 21873df2a0..6b034096dc 100644 --- a/sdk/android/api/org/webrtc/DataChannel.java +++ b/sdk/android/api/org/webrtc/DataChannel.java @@ -13,7 +13,6 @@ package org.webrtc; import java.nio.ByteBuffer; /** Java wrapper for a C++ DataChannelInterface. */ -@JNINamespace("webrtc::jni") public class DataChannel { /** Java wrapper for WebIDL RTCDataChannel. */ public static class Init { diff --git a/sdk/android/api/org/webrtc/DtmfSender.java b/sdk/android/api/org/webrtc/DtmfSender.java index 4dcb794405..9f203f390e 100644 --- a/sdk/android/api/org/webrtc/DtmfSender.java +++ b/sdk/android/api/org/webrtc/DtmfSender.java @@ -11,7 +11,6 @@ package org.webrtc; /** Java wrapper for a C++ DtmfSenderInterface. */ -@JNINamespace("webrtc::jni") public class DtmfSender { final long nativeDtmfSender; diff --git a/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java b/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java index 70b7ebb6bc..19c641b89a 100644 --- a/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java +++ b/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java @@ -26,7 +26,6 @@ import javax.annotation.Nullable; /** Factory for android hardware video encoders. */ @SuppressWarnings("deprecation") // API 16 requires the use of deprecated methods. -@JNINamespace("webrtc::jni") public class HardwareVideoEncoderFactory implements VideoEncoderFactory { private static final String TAG = "HardwareVideoEncoderFactory"; diff --git a/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java b/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java index e4eb90c5cf..2858c6c6e9 100644 --- a/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java +++ b/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java @@ -37,7 +37,6 @@ import org.webrtc.VideoFrame; // This class is an implementation detail of the Java PeerConnection API. @TargetApi(19) @SuppressWarnings("deprecation") -@JNINamespace("webrtc::jni") public class MediaCodecVideoEncoder { // This class is constructed, operated, and destroyed by its C++ incarnation, // so the class and its methods have non-public visibility. The API this diff --git a/sdk/android/api/org/webrtc/MediaSource.java b/sdk/android/api/org/webrtc/MediaSource.java index 8e6da176cf..3f20dd7353 100644 --- a/sdk/android/api/org/webrtc/MediaSource.java +++ b/sdk/android/api/org/webrtc/MediaSource.java @@ -11,7 +11,6 @@ package org.webrtc; /** Java wrapper for a C++ MediaSourceInterface. */ -@JNINamespace("webrtc::jni") public class MediaSource { /** Tracks MediaSourceInterface.SourceState */ public enum State { diff --git a/sdk/android/api/org/webrtc/MediaStream.java b/sdk/android/api/org/webrtc/MediaStream.java index 459c128a9b..7f4a43402d 100644 --- a/sdk/android/api/org/webrtc/MediaStream.java +++ b/sdk/android/api/org/webrtc/MediaStream.java @@ -15,7 +15,6 @@ import java.util.List; import java.util.Iterator; /** Java wrapper for a C++ MediaStreamInterface. */ -@JNINamespace("webrtc::jni") public class MediaStream { private static final String TAG = "MediaStream"; diff --git a/sdk/android/api/org/webrtc/MediaStreamTrack.java b/sdk/android/api/org/webrtc/MediaStreamTrack.java index 65da734ee5..198da1e3e8 100644 --- a/sdk/android/api/org/webrtc/MediaStreamTrack.java +++ b/sdk/android/api/org/webrtc/MediaStreamTrack.java @@ -13,7 +13,6 @@ package org.webrtc; import javax.annotation.Nullable; /** Java wrapper for a C++ MediaStreamTrackInterface. */ -@JNINamespace("webrtc::jni") public class MediaStreamTrack { public static final String AUDIO_TRACK_KIND = "audio"; public static final String VIDEO_TRACK_KIND = "video"; diff --git a/sdk/android/api/org/webrtc/Metrics.java b/sdk/android/api/org/webrtc/Metrics.java index 43cf439c0b..3098f7265c 100644 --- a/sdk/android/api/org/webrtc/Metrics.java +++ b/sdk/android/api/org/webrtc/Metrics.java @@ -28,7 +28,6 @@ import java.util.Map; // Most histograms are not updated frequently (e.g. most video metrics are an // average over the call and recorded when a stream is removed). // The metrics can for example be retrieved when a peer connection is closed. -@JNINamespace("webrtc::jni") public class Metrics { private static final String TAG = "Metrics"; diff --git a/sdk/android/api/org/webrtc/NetworkMonitor.java b/sdk/android/api/org/webrtc/NetworkMonitor.java index ff3ea15903..ba6bae0ed8 100644 --- a/sdk/android/api/org/webrtc/NetworkMonitor.java +++ b/sdk/android/api/org/webrtc/NetworkMonitor.java @@ -278,18 +278,13 @@ public class NetworkMonitor { return connectionType != ConnectionType.CONNECTION_NONE; } - @NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor") - private native void nativeNotifyConnectionTypeChanged(long nativePtr); - - @NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor") - private native void nativeNotifyOfNetworkConnect(long nativePtr, NetworkInformation networkInfo); - - @NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor") - private native void nativeNotifyOfNetworkDisconnect(long nativePtr, long networkHandle); - - @NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor") + private native void nativeNotifyConnectionTypeChanged(long nativeAndroidNetworkMonitor); + private native void nativeNotifyOfNetworkConnect( + long nativeAndroidNetworkMonitor, NetworkInformation networkInfo); + private native void nativeNotifyOfNetworkDisconnect( + long nativeAndroidNetworkMonitor, long networkHandle); private native void nativeNotifyOfActiveNetworkList( - long nativePtr, NetworkInformation[] networkInfos); + long nativeAndroidNetworkMonitor, NetworkInformation[] networkInfos); // For testing only. @Nullable diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java index 71a258e6c0..b9e31e1e6b 100644 --- a/sdk/android/api/org/webrtc/PeerConnection.java +++ b/sdk/android/api/org/webrtc/PeerConnection.java @@ -21,7 +21,6 @@ import javax.annotation.Nullable; * JS APIs: http://dev.w3.org/2011/webrtc/editor/webrtc.html and * http://www.w3.org/TR/mediacapture-streams/ */ -@JNINamespace("webrtc::jni") public class PeerConnection { /** Tracks PeerConnectionInterface::IceGatheringState */ public enum IceGatheringState { diff --git a/sdk/android/api/org/webrtc/PeerConnectionFactory.java b/sdk/android/api/org/webrtc/PeerConnectionFactory.java index 04806b868b..07afac68f6 100644 --- a/sdk/android/api/org/webrtc/PeerConnectionFactory.java +++ b/sdk/android/api/org/webrtc/PeerConnectionFactory.java @@ -20,7 +20,6 @@ import org.webrtc.audio.LegacyAudioDeviceModule; * Java wrapper for a C++ PeerConnectionFactoryInterface. Main entry point to * the PeerConnection API for clients. */ -@JNINamespace("webrtc::jni") public class PeerConnectionFactory { public static final String TRIAL_ENABLED = "Enabled"; @Deprecated public static final String VIDEO_FRAME_EMIT_TRIAL = "VideoFrameEmit"; diff --git a/sdk/android/api/org/webrtc/RtpReceiver.java b/sdk/android/api/org/webrtc/RtpReceiver.java index b77051919a..193820b5ac 100644 --- a/sdk/android/api/org/webrtc/RtpReceiver.java +++ b/sdk/android/api/org/webrtc/RtpReceiver.java @@ -14,7 +14,6 @@ import javax.annotation.Nullable; import org.webrtc.MediaStreamTrack; /** Java wrapper for a C++ RtpReceiverInterface. */ -@JNINamespace("webrtc::jni") public class RtpReceiver { /** Java wrapper for a C++ RtpReceiverObserverInterface*/ public static interface Observer { diff --git a/sdk/android/api/org/webrtc/RtpSender.java b/sdk/android/api/org/webrtc/RtpSender.java index e20352b381..4e268f3361 100644 --- a/sdk/android/api/org/webrtc/RtpSender.java +++ b/sdk/android/api/org/webrtc/RtpSender.java @@ -13,7 +13,6 @@ package org.webrtc; import javax.annotation.Nullable; /** Java wrapper for a C++ RtpSenderInterface. */ -@JNINamespace("webrtc::jni") public class RtpSender { final long nativeRtpSender; diff --git a/sdk/android/api/org/webrtc/RtpTransceiver.java b/sdk/android/api/org/webrtc/RtpTransceiver.java index 3086950dc3..93326a41a3 100644 --- a/sdk/android/api/org/webrtc/RtpTransceiver.java +++ b/sdk/android/api/org/webrtc/RtpTransceiver.java @@ -31,7 +31,6 @@ import org.webrtc.RtpParameters.Encoding; *

WebRTC specification for RTCRtpTransceiver, the JavaScript analog: * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver */ -@JNINamespace("webrtc::jni") public class RtpTransceiver { /** Java version of webrtc::RtpTransceiverDirection - the ordering must be kept in sync. */ public enum RtpTransceiverDirection { diff --git a/sdk/android/api/org/webrtc/TurnCustomizer.java b/sdk/android/api/org/webrtc/TurnCustomizer.java index 1c2b080db6..bfc72ea2d0 100644 --- a/sdk/android/api/org/webrtc/TurnCustomizer.java +++ b/sdk/android/api/org/webrtc/TurnCustomizer.java @@ -11,7 +11,6 @@ package org.webrtc; /** Java wrapper for a C++ TurnCustomizer. */ -@JNINamespace("webrtc::jni") public class TurnCustomizer { final long nativeTurnCustomizer; diff --git a/sdk/android/api/org/webrtc/VideoDecoderFallback.java b/sdk/android/api/org/webrtc/VideoDecoderFallback.java index f748da78b2..743a614621 100644 --- a/sdk/android/api/org/webrtc/VideoDecoderFallback.java +++ b/sdk/android/api/org/webrtc/VideoDecoderFallback.java @@ -13,7 +13,6 @@ package org.webrtc; /** * A combined video decoder that falls back on a secondary decoder if the primary decoder fails. */ -@JNINamespace("webrtc::jni") public class VideoDecoderFallback extends WrappedNativeVideoDecoder { private final VideoDecoder fallback; private final VideoDecoder primary; diff --git a/sdk/android/api/org/webrtc/VideoEncoderFallback.java b/sdk/android/api/org/webrtc/VideoEncoderFallback.java index 59e7ffc271..cd45eb7520 100644 --- a/sdk/android/api/org/webrtc/VideoEncoderFallback.java +++ b/sdk/android/api/org/webrtc/VideoEncoderFallback.java @@ -13,7 +13,6 @@ package org.webrtc; /** * A combined video encoder that falls back on a secondary encoder if the primary encoder fails. */ -@JNINamespace("webrtc::jni") public class VideoEncoderFallback extends WrappedNativeVideoEncoder { private final VideoEncoder fallback; private final VideoEncoder primary; diff --git a/sdk/android/api/org/webrtc/VideoFileRenderer.java b/sdk/android/api/org/webrtc/VideoFileRenderer.java index c599491f04..adfd6eec13 100644 --- a/sdk/android/api/org/webrtc/VideoFileRenderer.java +++ b/sdk/android/api/org/webrtc/VideoFileRenderer.java @@ -24,7 +24,6 @@ import java.util.concurrent.LinkedBlockingQueue; /** * Can be used to save the video frames to file. */ -@JNINamespace("webrtc::jni") public class VideoFileRenderer implements VideoSink { private static final String TAG = "VideoFileRenderer"; diff --git a/sdk/android/api/org/webrtc/VideoFrame.java b/sdk/android/api/org/webrtc/VideoFrame.java index 91c596c01c..b496f00910 100644 --- a/sdk/android/api/org/webrtc/VideoFrame.java +++ b/sdk/android/api/org/webrtc/VideoFrame.java @@ -26,7 +26,6 @@ import javax.annotation.Nullable; * format and serves as a fallback for video sinks that can only handle I420, e.g. the internal * WebRTC software encoders. */ -@JNINamespace("webrtc::jni") public class VideoFrame implements RefCounted { /** * Implements image storage medium. Might be for example an OpenGL texture or a memory region diff --git a/sdk/android/api/org/webrtc/VideoFrameDrawer.java b/sdk/android/api/org/webrtc/VideoFrameDrawer.java index 9909f378bf..1e8a04d3f3 100644 --- a/sdk/android/api/org/webrtc/VideoFrameDrawer.java +++ b/sdk/android/api/org/webrtc/VideoFrameDrawer.java @@ -21,7 +21,6 @@ import javax.annotation.Nullable; * drawer.drawYuv depending on the type of the buffer. The frame will be rendered with rotation * taken into account. You can supply an additional render matrix for custom transformations. */ -@JNINamespace("webrtc::jni") public class VideoFrameDrawer { /** * Draws a VideoFrame.TextureBuffer. Calls either drawer.drawOes or drawer.drawRgb diff --git a/sdk/android/api/org/webrtc/VideoRenderer.java b/sdk/android/api/org/webrtc/VideoRenderer.java index 7b289b0f7d..f781679b3c 100644 --- a/sdk/android/api/org/webrtc/VideoRenderer.java +++ b/sdk/android/api/org/webrtc/VideoRenderer.java @@ -20,7 +20,6 @@ import org.webrtc.VideoFrame; * class also provides a createGui() method for creating a GUI-rendering window * on various platforms. */ -@JNINamespace("webrtc::jni") public class VideoRenderer { /** * Java version of webrtc::VideoFrame. Frames are only constructed from native code and test diff --git a/sdk/android/api/org/webrtc/VideoSource.java b/sdk/android/api/org/webrtc/VideoSource.java index a326a2c884..3a290e3895 100644 --- a/sdk/android/api/org/webrtc/VideoSource.java +++ b/sdk/android/api/org/webrtc/VideoSource.java @@ -15,7 +15,6 @@ import javax.annotation.Nullable; /** * Java wrapper of native AndroidVideoTrackSource. */ -@JNINamespace("webrtc::jni") public class VideoSource extends MediaSource { private final NativeCapturerObserver capturerObserver; diff --git a/sdk/android/api/org/webrtc/VideoTrack.java b/sdk/android/api/org/webrtc/VideoTrack.java index e0eebeda0d..214078b2ca 100644 --- a/sdk/android/api/org/webrtc/VideoTrack.java +++ b/sdk/android/api/org/webrtc/VideoTrack.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.List; /** Java version of VideoTrackInterface. */ -@JNINamespace("webrtc::jni") public class VideoTrack extends MediaStreamTrack { private final List renderers = new ArrayList<>(); private final IdentityHashMap sinks = new IdentityHashMap(); diff --git a/sdk/android/api/org/webrtc/YuvHelper.java b/sdk/android/api/org/webrtc/YuvHelper.java index da94fec4bc..f82fde880a 100644 --- a/sdk/android/api/org/webrtc/YuvHelper.java +++ b/sdk/android/api/org/webrtc/YuvHelper.java @@ -13,7 +13,6 @@ package org.webrtc; import java.nio.ByteBuffer; /** Wraps libyuv methods to Java. All passed byte buffers must be direct byte buffers. */ -@JNINamespace("webrtc::jni") public class YuvHelper { /** Helper method for copying I420 to tightly packed destination buffer. */ public static void I420Copy(ByteBuffer srcY, int srcStrideY, ByteBuffer srcU, int srcStrideU, diff --git a/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java b/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java index 93e8ba550e..4daa5f0648 100644 --- a/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java +++ b/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java @@ -12,7 +12,6 @@ package org.webrtc.audio; import android.media.AudioManager; import android.content.Context; -import org.webrtc.JNINamespace; import org.webrtc.JniCommon; import org.webrtc.Logging; @@ -20,7 +19,6 @@ import org.webrtc.Logging; * AudioDeviceModule implemented using android.media.AudioRecord as input and * android.media.AudioTrack as output. */ -@JNINamespace("webrtc::jni") public class JavaAudioDeviceModule implements AudioDeviceModule { private static final String TAG = "JavaAudioDeviceModule"; diff --git a/sdk/android/native_api/audio_device_module/audio_device_android.cc b/sdk/android/native_api/audio_device_module/audio_device_android.cc index cf738d01ee..8a426a611d 100644 --- a/sdk/android/native_api/audio_device_module/audio_device_android.cc +++ b/sdk/android/native_api/audio_device_module/audio_device_android.cc @@ -36,13 +36,12 @@ void GetDefaultAudioParameters(JNIEnv* env, AudioParameters* output_parameters) { const JavaParamRef j_context(application_context); const ScopedJavaLocalRef j_audio_manager = - android_adm::GetAudioManager(env, j_context); - const int sample_rate = - android_adm::GetDefaultSampleRate(env, j_audio_manager); - android_adm::GetAudioParameters(env, j_context, j_audio_manager, sample_rate, - false /* use_stereo_input */, - false /* use_stereo_output */, - input_parameters, output_parameters); + jni::GetAudioManager(env, j_context); + const int sample_rate = jni::GetDefaultSampleRate(env, j_audio_manager); + jni::GetAudioParameters(env, j_context, j_audio_manager, sample_rate, + false /* use_stereo_input */, + false /* use_stereo_output */, input_parameters, + output_parameters); } } // namespace @@ -61,9 +60,9 @@ rtc::scoped_refptr CreateAAudioAudioDeviceModule( return CreateAudioDeviceModuleFromInputAndOutput( AudioDeviceModule::kAndroidAAudioAudio, false /* use_stereo_input */, false /* use_stereo_output */, - android_adm::kLowLatencyModeDelayEstimateInMilliseconds, - rtc::MakeUnique(input_parameters), - rtc::MakeUnique(output_parameters)); + jni::kLowLatencyModeDelayEstimateInMilliseconds, + rtc::MakeUnique(input_parameters), + rtc::MakeUnique(output_parameters)); } #endif @@ -74,26 +73,25 @@ rtc::scoped_refptr CreateJavaAudioDeviceModule( // Get default audio input/output parameters. const JavaParamRef j_context(application_context); const ScopedJavaLocalRef j_audio_manager = - android_adm::GetAudioManager(env, j_context); + jni::GetAudioManager(env, j_context); AudioParameters input_parameters; AudioParameters output_parameters; GetDefaultAudioParameters(env, application_context, &input_parameters, &output_parameters); // Create ADM from AudioRecord and AudioTrack. - auto audio_input = rtc::MakeUnique( - env, input_parameters, - android_adm::kHighLatencyModeDelayEstimateInMilliseconds, - android_adm::AudioRecordJni::CreateJavaWebRtcAudioRecord( - env, j_context, j_audio_manager)); - auto audio_output = rtc::MakeUnique( + auto audio_input = rtc::MakeUnique( + env, input_parameters, jni::kHighLatencyModeDelayEstimateInMilliseconds, + jni::AudioRecordJni::CreateJavaWebRtcAudioRecord(env, j_context, + j_audio_manager)); + auto audio_output = rtc::MakeUnique( env, output_parameters, - android_adm::AudioTrackJni::CreateJavaWebRtcAudioTrack(env, j_context, - j_audio_manager)); + jni::AudioTrackJni::CreateJavaWebRtcAudioTrack(env, j_context, + j_audio_manager)); return CreateAudioDeviceModuleFromInputAndOutput( AudioDeviceModule::kAndroidJavaAudio, false /* use_stereo_input */, false /* use_stereo_output */, - android_adm::kHighLatencyModeDelayEstimateInMilliseconds, - std::move(audio_input), std::move(audio_output)); + jni::kHighLatencyModeDelayEstimateInMilliseconds, std::move(audio_input), + std::move(audio_output)); } rtc::scoped_refptr CreateOpenSLESAudioDeviceModule( @@ -106,16 +104,16 @@ rtc::scoped_refptr CreateOpenSLESAudioDeviceModule( GetDefaultAudioParameters(env, application_context, &input_parameters, &output_parameters); // Create ADM from OpenSLESRecorder and OpenSLESPlayer. - auto engine_manager = rtc::MakeUnique(); - auto audio_input = rtc::MakeUnique( + auto engine_manager = rtc::MakeUnique(); + auto audio_input = rtc::MakeUnique( input_parameters, engine_manager.get()); - auto audio_output = rtc::MakeUnique( + auto audio_output = rtc::MakeUnique( output_parameters, std::move(engine_manager)); return CreateAudioDeviceModuleFromInputAndOutput( AudioDeviceModule::kAndroidOpenSLESAudio, false /* use_stereo_input */, false /* use_stereo_output */, - android_adm::kLowLatencyModeDelayEstimateInMilliseconds, - std::move(audio_input), std::move(audio_output)); + jni::kLowLatencyModeDelayEstimateInMilliseconds, std::move(audio_input), + std::move(audio_output)); } rtc::scoped_refptr @@ -125,24 +123,23 @@ CreateJavaInputAndOpenSLESOutputAudioDeviceModule(JNIEnv* env, // Get default audio input/output parameters. const JavaParamRef j_context(application_context); const ScopedJavaLocalRef j_audio_manager = - android_adm::GetAudioManager(env, j_context); + jni::GetAudioManager(env, j_context); AudioParameters input_parameters; AudioParameters output_parameters; GetDefaultAudioParameters(env, application_context, &input_parameters, &output_parameters); // Create ADM from AudioRecord and OpenSLESPlayer. - auto audio_input = rtc::MakeUnique( - env, input_parameters, - android_adm::kLowLatencyModeDelayEstimateInMilliseconds, - android_adm::AudioRecordJni::CreateJavaWebRtcAudioRecord( - env, j_context, j_audio_manager)); - auto audio_output = rtc::MakeUnique( - output_parameters, rtc::MakeUnique()); + auto audio_input = rtc::MakeUnique( + env, input_parameters, jni::kLowLatencyModeDelayEstimateInMilliseconds, + jni::AudioRecordJni::CreateJavaWebRtcAudioRecord(env, j_context, + j_audio_manager)); + auto audio_output = rtc::MakeUnique( + output_parameters, rtc::MakeUnique()); return CreateAudioDeviceModuleFromInputAndOutput( AudioDeviceModule::kAndroidJavaInputAndOpenSLESOutputAudio, false /* use_stereo_input */, false /* use_stereo_output */, - android_adm::kLowLatencyModeDelayEstimateInMilliseconds, - std::move(audio_input), std::move(audio_output)); + jni::kLowLatencyModeDelayEstimateInMilliseconds, std::move(audio_input), + std::move(audio_output)); } } // namespace webrtc diff --git a/sdk/android/native_api/jni/class_loader.cc b/sdk/android/native_api/jni/class_loader.cc index 0b5a87fbb3..2c06460f9e 100644 --- a/sdk/android/native_api/jni/class_loader.cc +++ b/sdk/android/native_api/jni/class_loader.cc @@ -32,7 +32,7 @@ namespace { class ClassLoader { public: explicit ClassLoader(JNIEnv* env) - : class_loader_(Java_WebRtcClassLoader_getClassLoader(env)) { + : class_loader_(jni::Java_WebRtcClassLoader_getClassLoader(env)) { class_loader_class_ = reinterpret_cast( env->NewGlobalRef(env->FindClass("java/lang/ClassLoader"))); CHECK_EXCEPTION(env); diff --git a/sdk/android/native_api/jni/java_types.cc b/sdk/android/native_api/jni/java_types.cc index fd383d59e5..fbc35aae5c 100644 --- a/sdk/android/native_api/jni/java_types.cc +++ b/sdk/android/native_api/jni/java_types.cc @@ -112,13 +112,13 @@ Iterable GetJavaMapEntrySet(JNIEnv* jni, const JavaRef& j_map) { ScopedJavaLocalRef GetJavaMapEntryKey( JNIEnv* jni, const JavaRef& j_entry) { - return Java_JniHelper_getKey(jni, j_entry); + return jni::Java_JniHelper_getKey(jni, j_entry); } ScopedJavaLocalRef GetJavaMapEntryValue( JNIEnv* jni, const JavaRef& j_entry) { - return Java_JniHelper_getValue(jni, j_entry); + return jni::Java_JniHelper_getValue(jni, j_entry); } int64_t JavaToNativeLong(JNIEnv* env, const JavaRef& j_long) { @@ -143,7 +143,7 @@ rtc::Optional JavaToNativeOptionalInt( // Given a jstring, reinterprets it to a new native string. std::string JavaToNativeString(JNIEnv* jni, const JavaRef& j_string) { const ScopedJavaLocalRef j_byte_array = - Java_JniHelper_getStringBytes(jni, j_string); + jni::Java_JniHelper_getStringBytes(jni, j_string); const size_t len = jni->GetArrayLength(j_byte_array.obj()); CHECK_EXCEPTION(jni) << "error during GetArrayLength"; @@ -243,7 +243,8 @@ ScopedJavaLocalRef NativeToJavaStringArray( &NativeToJavaString; return NativeToJavaObjectArray( env, container, - static_cast(Java_JniHelper_getStringClass(env).obj()), convert); + static_cast(jni::Java_JniHelper_getStringClass(env).obj()), + convert); } JavaListBuilder::JavaListBuilder(JNIEnv* env) diff --git a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc index 3b3f254ef1..4181094e68 100644 --- a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc +++ b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc @@ -50,7 +50,7 @@ using ::testing::Return; namespace webrtc { -namespace android_adm { +namespace jni { // Number of callbacks (input or output) the tests waits for before we set // an event indicating that the test was OK. @@ -1135,6 +1135,6 @@ TEST_F(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) { latency_audio_stream->PrintResults(); } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/native_unittests/java_types_unittest.cc b/sdk/android/native_unittests/java_types_unittest.cc index a549e03ca4..bd769e6eed 100644 --- a/sdk/android/native_unittests/java_types_unittest.cc +++ b/sdk/android/native_unittests/java_types_unittest.cc @@ -21,7 +21,7 @@ namespace { TEST(JavaTypesTest, TestJavaToNativeStringMap) { JNIEnv* env = AttachCurrentThreadIfNeeded(); ScopedJavaLocalRef j_map = - Java_JavaTypesTestHelper_createTestStringMap(env); + jni::Java_JavaTypesTestHelper_createTestStringMap(env); std::map output = JavaToNativeStringMap(env, j_map); diff --git a/sdk/android/native_unittests/peerconnection/peerconnectionfactory_unittest.cc b/sdk/android/native_unittests/peerconnection/peerconnectionfactory_unittest.cc index 97f6497794..b06290f6ae 100644 --- a/sdk/android/native_unittests/peerconnection/peerconnectionfactory_unittest.cc +++ b/sdk/android/native_unittests/peerconnection/peerconnectionfactory_unittest.cc @@ -61,7 +61,8 @@ TEST(PeerConnectionFactoryTest, NativeToJavaPeerConnectionFactory) { JNIEnv* jni = AttachCurrentThreadIfNeeded(); RTC_LOG(INFO) << "Initializing java peer connection factory."; - Java_PeerConnectionFactoryInitializationHelper_initializeFactoryForTests(jni); + jni::Java_PeerConnectionFactoryInitializationHelper_initializeFactoryForTests( + jni); RTC_LOG(INFO) << "Java peer connection factory initialized."; // Create threads. diff --git a/sdk/android/native_unittests/video/videosource_unittest.cc b/sdk/android/native_unittests/video/videosource_unittest.cc index 1db049288d..5365ababf6 100644 --- a/sdk/android/native_unittests/video/videosource_unittest.cc +++ b/sdk/android/native_unittests/video/videosource_unittest.cc @@ -62,10 +62,10 @@ TEST(JavaVideoSourceTest, OnFrameCapturedFrameIsDeliveredToSink) { false /* is_screencast */); video_track_source->AddOrUpdateSink(&test_video_sink, rtc::VideoSinkWants()); - Java_JavaVideoSourceTestHelper_startCapture( + jni::Java_JavaVideoSourceTestHelper_startCapture( env, video_track_source->GetJavaVideoCapturerObserver(env), true /* success */); - Java_JavaVideoSourceTestHelper_deliverFrame( + jni::Java_JavaVideoSourceTestHelper_deliverFrame( env, video_track_source->GetJavaVideoCapturerObserver(env)); std::vector frames = test_video_sink.GetFrames(); @@ -86,7 +86,7 @@ TEST(JavaVideoSourceTest, CapturerStartedSuccessStateBecomesLive) { rtc::ThreadManager::Instance()->CurrentThread(), false /* is_screencast */); - Java_JavaVideoSourceTestHelper_startCapture( + jni::Java_JavaVideoSourceTestHelper_startCapture( env, video_track_source->GetJavaVideoCapturerObserver(env), true /* success */); @@ -104,7 +104,7 @@ TEST(JavaVideoSourceTest, CapturerStartedFailureStateBecomesEnded) { rtc::ThreadManager::Instance()->CurrentThread(), false /* is_screencast */); - Java_JavaVideoSourceTestHelper_startCapture( + jni::Java_JavaVideoSourceTestHelper_startCapture( env, video_track_source->GetJavaVideoCapturerObserver(env), false /* success */); @@ -122,10 +122,10 @@ TEST(JavaVideoSourceTest, CapturerStoppedStateBecomesEnded) { rtc::ThreadManager::Instance()->CurrentThread(), false /* is_screencast */); - Java_JavaVideoSourceTestHelper_startCapture( + jni::Java_JavaVideoSourceTestHelper_startCapture( env, video_track_source->GetJavaVideoCapturerObserver(env), true /* success */); - Java_JavaVideoSourceTestHelper_stopCapture( + jni::Java_JavaVideoSourceTestHelper_stopCapture( env, video_track_source->GetJavaVideoCapturerObserver(env)); EXPECT_EQ(VideoTrackSourceInterface::SourceState::kEnded, diff --git a/sdk/android/src/java/org/webrtc/Histogram.java b/sdk/android/src/java/org/webrtc/Histogram.java index 9043e4b0c8..877986134a 100644 --- a/sdk/android/src/java/org/webrtc/Histogram.java +++ b/sdk/android/src/java/org/webrtc/Histogram.java @@ -19,7 +19,6 @@ package org.webrtc; * Histogram.createCounts("WebRTC.Video.SomeMetric", 1, 10000, 50); * someMetricHistogram.addSample(someVariable); */ -@JNINamespace("webrtc::jni") class Histogram { private final long handle; diff --git a/sdk/android/src/java/org/webrtc/JNINamespace.java b/sdk/android/src/java/org/webrtc/JNINamespace.java deleted file mode 100644 index f0fe20f157..0000000000 --- a/sdk/android/src/java/org/webrtc/JNINamespace.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2017 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; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * @JNINamespace is used by the JNI generator to create the necessary JNI - * bindings and expose this method to native code using the specified namespace. - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -public @interface JNINamespace { - public String value(); -} diff --git a/sdk/android/src/java/org/webrtc/JniCommon.java b/sdk/android/src/java/org/webrtc/JniCommon.java index 0b0790f818..e1b2e513d7 100644 --- a/sdk/android/src/java/org/webrtc/JniCommon.java +++ b/sdk/android/src/java/org/webrtc/JniCommon.java @@ -13,7 +13,6 @@ package org.webrtc; import java.nio.ByteBuffer; /** Class with static JNI helper functions that are used in many places. */ -@JNINamespace("webrtc::jni") public class JniCommon { /** Functions to increment/decrement an rtc::RefCountInterface pointer. */ public static native void nativeAddRef(long refCountedPointer); diff --git a/sdk/android/src/java/org/webrtc/NV12Buffer.java b/sdk/android/src/java/org/webrtc/NV12Buffer.java index 0a85d7f51c..7fe7f587af 100644 --- a/sdk/android/src/java/org/webrtc/NV12Buffer.java +++ b/sdk/android/src/java/org/webrtc/NV12Buffer.java @@ -13,7 +13,6 @@ package org.webrtc; import java.nio.ByteBuffer; import javax.annotation.Nullable; -@JNINamespace("webrtc::jni") public class NV12Buffer implements VideoFrame.Buffer { private final int width; private final int height; diff --git a/sdk/android/src/java/org/webrtc/NV21Buffer.java b/sdk/android/src/java/org/webrtc/NV21Buffer.java index a2c47b93e4..a2a7743485 100644 --- a/sdk/android/src/java/org/webrtc/NV21Buffer.java +++ b/sdk/android/src/java/org/webrtc/NV21Buffer.java @@ -14,7 +14,6 @@ import java.nio.ByteBuffer; import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Nullable; -@JNINamespace("webrtc::jni") public class NV21Buffer implements VideoFrame.Buffer { private final byte[] data; private final int width; diff --git a/sdk/android/src/java/org/webrtc/NativeCapturerObserver.java b/sdk/android/src/java/org/webrtc/NativeCapturerObserver.java index ba5d6a7f05..63a46b8804 100644 --- a/sdk/android/src/java/org/webrtc/NativeCapturerObserver.java +++ b/sdk/android/src/java/org/webrtc/NativeCapturerObserver.java @@ -16,7 +16,6 @@ import javax.annotation.Nullable; * Implements VideoCapturer.CapturerObserver and feeds frames to * webrtc::jni::AndroidVideoTrackSource. */ -@JNINamespace("webrtc::jni") class NativeCapturerObserver implements VideoCapturer.CapturerObserver { // Pointer to webrtc::jni::AndroidVideoTrackSource. private final long nativeSource; diff --git a/sdk/android/src/java/org/webrtc/NativeClassQualifiedName.java b/sdk/android/src/java/org/webrtc/NativeClassQualifiedName.java deleted file mode 100644 index 5adce75ce5..0000000000 --- a/sdk/android/src/java/org/webrtc/NativeClassQualifiedName.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2017 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; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * @NativeClassQualifiedName is used by the JNI generator to create the necessary JNI - * bindings to call into the specified native class name. - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface NativeClassQualifiedName { - /* - * Tells which native class the method is going to be bound to. - * The first parameter of the annotated method must be an int nativePtr pointing to - * an instance of this class. - */ - public String value(); -} diff --git a/sdk/android/src/java/org/webrtc/VP8Decoder.java b/sdk/android/src/java/org/webrtc/VP8Decoder.java index f9d5165212..c307edcf26 100644 --- a/sdk/android/src/java/org/webrtc/VP8Decoder.java +++ b/sdk/android/src/java/org/webrtc/VP8Decoder.java @@ -10,7 +10,6 @@ package org.webrtc; -@JNINamespace("webrtc::jni") class VP8Decoder extends WrappedNativeVideoDecoder { @Override long createNativeDecoder() { diff --git a/sdk/android/src/java/org/webrtc/VP8Encoder.java b/sdk/android/src/java/org/webrtc/VP8Encoder.java index f9967426f6..f04c079566 100644 --- a/sdk/android/src/java/org/webrtc/VP8Encoder.java +++ b/sdk/android/src/java/org/webrtc/VP8Encoder.java @@ -10,7 +10,6 @@ package org.webrtc; -@JNINamespace("webrtc::jni") class VP8Encoder extends WrappedNativeVideoEncoder { @Override long createNativeEncoder() { diff --git a/sdk/android/src/java/org/webrtc/VP9Decoder.java b/sdk/android/src/java/org/webrtc/VP9Decoder.java index 52d8f02c00..5c7dc969eb 100644 --- a/sdk/android/src/java/org/webrtc/VP9Decoder.java +++ b/sdk/android/src/java/org/webrtc/VP9Decoder.java @@ -10,7 +10,6 @@ package org.webrtc; -@JNINamespace("webrtc::jni") class VP9Decoder extends WrappedNativeVideoDecoder { @Override long createNativeDecoder() { diff --git a/sdk/android/src/java/org/webrtc/VP9Encoder.java b/sdk/android/src/java/org/webrtc/VP9Encoder.java index ca9398ebf9..449eb7eb53 100644 --- a/sdk/android/src/java/org/webrtc/VP9Encoder.java +++ b/sdk/android/src/java/org/webrtc/VP9Encoder.java @@ -10,7 +10,6 @@ package org.webrtc; -@JNINamespace("webrtc::jni") class VP9Encoder extends WrappedNativeVideoEncoder { @Override long createNativeEncoder() { diff --git a/sdk/android/src/java/org/webrtc/VideoDecoderWrapper.java b/sdk/android/src/java/org/webrtc/VideoDecoderWrapper.java index 93e74e05e4..2aae041640 100644 --- a/sdk/android/src/java/org/webrtc/VideoDecoderWrapper.java +++ b/sdk/android/src/java/org/webrtc/VideoDecoderWrapper.java @@ -22,7 +22,6 @@ class VideoDecoderWrapper { Integer qp) -> nativeOnDecodedFrame(nativeDecoder, frame, decodeTimeMs, qp); } - @NativeClassQualifiedName("webrtc::jni::VideoDecoderWrapper") private static native void nativeOnDecodedFrame( - long nativeDecoder, VideoFrame frame, Integer decodeTimeMs, Integer qp); + long nativeVideoDecoderWrapper, VideoFrame frame, Integer decodeTimeMs, Integer qp); } diff --git a/sdk/android/src/java/org/webrtc/VideoEncoderWrapper.java b/sdk/android/src/java/org/webrtc/VideoEncoderWrapper.java index c8a48ff920..207d7d09c9 100644 --- a/sdk/android/src/java/org/webrtc/VideoEncoderWrapper.java +++ b/sdk/android/src/java/org/webrtc/VideoEncoderWrapper.java @@ -44,8 +44,7 @@ class VideoEncoderWrapper { frame.rotation, frame.completeFrame, frame.qp); } - @NativeClassQualifiedName("webrtc::jni::VideoEncoderWrapper") - private static native void nativeOnEncodedFrame(long nativeEncoder, ByteBuffer buffer, + private static native void nativeOnEncodedFrame(long nativeVideoEncoderWrapper, ByteBuffer buffer, int encodedWidth, int encodedHeight, long captureTimeNs, int frameType, int rotation, boolean completeFrame, Integer qp); } diff --git a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java index 5ae94d6991..66f619dfbf 100644 --- a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java +++ b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java @@ -24,7 +24,6 @@ import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; import org.webrtc.CalledByNative; import org.webrtc.Logging; -import org.webrtc.NativeClassQualifiedName; import org.webrtc.ThreadUtils; import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback; import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordStartErrorCode; @@ -321,11 +320,9 @@ class WebRtcAudioRecord { return (channels == 1 ? AudioFormat.CHANNEL_IN_MONO : AudioFormat.CHANNEL_IN_STEREO); } - @NativeClassQualifiedName("webrtc::android_adm::AudioRecordJni") - private native void nativeCacheDirectBufferAddress(long nativeAudioRecord, ByteBuffer byteBuffer); - - @NativeClassQualifiedName("webrtc::android_adm::AudioRecordJni") - private native void nativeDataIsRecorded(long nativeAudioRecord, int bytes); + private native void nativeCacheDirectBufferAddress( + long nativeAudioRecordJni, ByteBuffer byteBuffer); + private native void nativeDataIsRecorded(long nativeAudioRecordJni, int bytes); // Sets all recorded samples to zero if |mute| is true, i.e., ensures that // the microphone is muted. diff --git a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java index a52a50b328..f3a38f0c23 100644 --- a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java +++ b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java @@ -26,7 +26,6 @@ import org.webrtc.ThreadUtils; import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback; import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackStartErrorCode; import org.webrtc.CalledByNative; -import org.webrtc.NativeClassQualifiedName; class WebRtcAudioTrack { private static final String TAG = "WebRtcAudioTrackExternal"; @@ -443,12 +442,9 @@ class WebRtcAudioTrack { return (channels == 1 ? AudioFormat.CHANNEL_OUT_MONO : AudioFormat.CHANNEL_OUT_STEREO); } - @NativeClassQualifiedName("webrtc::android_adm::AudioTrackJni") private static native void nativeCacheDirectBufferAddress( - long nativeAudioRecord, ByteBuffer byteBuffer); - - @NativeClassQualifiedName("webrtc::android_adm::AudioTrackJni") - private static native void nativeGetPlayoutData(long nativeAudioRecord, int bytes); + long nativeAudioTrackJni, ByteBuffer byteBuffer); + private static native void nativeGetPlayoutData(long nativeAudioTrackJni, int bytes); // Sets all samples to be played out to zero if |mute| is true, i.e., // ensures that the speaker is muted. diff --git a/sdk/android/src/jni/audio_device/aaudio_player.cc b/sdk/android/src/jni/audio_device/aaudio_player.cc index c0f715f9f1..e6bcddd8f6 100644 --- a/sdk/android/src/jni/audio_device/aaudio_player.cc +++ b/sdk/android/src/jni/audio_device/aaudio_player.cc @@ -18,7 +18,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { enum AudioDeviceMessageType : uint32_t { kMessageOutputStreamDisconnected, @@ -241,6 +241,6 @@ void AAudioPlayer::HandleStreamDisconnected() { StartPlayout(); } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/aaudio_player.h b/sdk/android/src/jni/audio_device/aaudio_player.h index b3b8840b7d..92d18003f2 100644 --- a/sdk/android/src/jni/audio_device/aaudio_player.h +++ b/sdk/android/src/jni/audio_device/aaudio_player.h @@ -29,7 +29,7 @@ namespace webrtc { class AudioDeviceBuffer; class FineAudioBuffer; -namespace android_adm { +namespace jni { // Implements low-latency 16-bit mono PCM audio output support for Android // using the C based AAudio API. @@ -146,7 +146,7 @@ class AAudioPlayer final : public AudioOutput, double latency_millis_ RTC_GUARDED_BY(thread_checker_aaudio_) = 0; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/aaudio_recorder.cc b/sdk/android/src/jni/audio_device/aaudio_recorder.cc index 0da5ba350c..7235e187d8 100644 --- a/sdk/android/src/jni/audio_device/aaudio_recorder.cc +++ b/sdk/android/src/jni/audio_device/aaudio_recorder.cc @@ -21,7 +21,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { enum AudioDeviceMessageType : uint32_t { kMessageInputStreamDisconnected, @@ -230,6 +230,6 @@ void AAudioRecorder::HandleStreamDisconnected() { StartRecording(); } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/aaudio_recorder.h b/sdk/android/src/jni/audio_device/aaudio_recorder.h index 32f2aea647..ec380830af 100644 --- a/sdk/android/src/jni/audio_device/aaudio_recorder.h +++ b/sdk/android/src/jni/audio_device/aaudio_recorder.h @@ -27,7 +27,7 @@ namespace webrtc { class FineAudioBuffer; class AudioDeviceBuffer; -namespace android_adm { +namespace jni { // Implements low-latency 16-bit mono PCM audio input support for Android // using the C based AAudio API. @@ -126,7 +126,7 @@ class AAudioRecorder : public AudioInput, bool first_data_callback_ = true; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/aaudio_wrapper.cc b/sdk/android/src/jni/audio_device/aaudio_wrapper.cc index 54aead7de9..a9d647f69a 100644 --- a/sdk/android/src/jni/audio_device/aaudio_wrapper.cc +++ b/sdk/android/src/jni/audio_device/aaudio_wrapper.cc @@ -33,7 +33,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { namespace { @@ -496,6 +496,6 @@ bool AAudioWrapper::OptimizeBuffers() { return true; } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/aaudio_wrapper.h b/sdk/android/src/jni/audio_device/aaudio_wrapper.h index f9e7b85fa6..1900ab988c 100644 --- a/sdk/android/src/jni/audio_device/aaudio_wrapper.h +++ b/sdk/android/src/jni/audio_device/aaudio_wrapper.h @@ -18,7 +18,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { // AAudio callback interface for audio transport to/from the AAudio stream. // The interface also contains an error callback method for notifications of @@ -122,7 +122,7 @@ class AAudioWrapper { int32_t frames_per_burst_ = 0; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/audio_common.h b/sdk/android/src/jni/audio_device/audio_common.h index 868af590bd..fdecf384c9 100644 --- a/sdk/android/src/jni/audio_device/audio_common.h +++ b/sdk/android/src/jni/audio_device/audio_common.h @@ -13,7 +13,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { const int kDefaultSampleRate = 44100; // Delay estimates for the two different supported modes. These values are based @@ -25,7 +25,7 @@ const int kDefaultSampleRate = 44100; const int kLowLatencyModeDelayEstimateInMilliseconds = 50; const int kHighLatencyModeDelayEstimateInMilliseconds = 150; -} // namespace android_adm +} // namespace jni } // namespace webrtc 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 b3ea0d79a3..dd08a86405 100644 --- a/sdk/android/src/jni/audio_device/audio_device_module.cc +++ b/sdk/android/src/jni/audio_device/audio_device_module.cc @@ -20,8 +20,7 @@ #include "system_wrappers/include/metrics.h" namespace webrtc { - -namespace android_adm { +namespace jni { namespace { @@ -632,6 +631,5 @@ rtc::scoped_refptr CreateAudioDeviceModuleFromInputAndOutput( playout_delay_ms, std::move(audio_input), std::move(audio_output)); } -} // namespace android_adm - +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/audio_device_module.h b/sdk/android/src/jni/audio_device/audio_device_module.h index 27de3a0fcc..c8fdfc3d6c 100644 --- a/sdk/android/src/jni/audio_device/audio_device_module.h +++ b/sdk/android/src/jni/audio_device/audio_device_module.h @@ -18,8 +18,7 @@ #include "sdk/android/native_api/jni/scoped_java_ref.h" namespace webrtc { - -namespace android_adm { +namespace jni { class AudioInput { public: @@ -91,7 +90,7 @@ rtc::scoped_refptr CreateAudioDeviceModuleFromInputAndOutput( std::unique_ptr audio_input, std::unique_ptr audio_output); -} // namespace android_adm +} // namespace jni } // 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 b2bd5f7121..dfe19558d9 100644 --- a/sdk/android/src/jni/audio_device/audio_record_jni.cc +++ b/sdk/android/src/jni/audio_device/audio_record_jni.cc @@ -26,7 +26,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { namespace { // Scoped class which logs its time of life as a UMA statistic. It generates @@ -243,6 +243,6 @@ void AudioRecordJni::DataIsRecorded(JNIEnv* env, } } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/audio_record_jni.h b/sdk/android/src/jni/audio_device/audio_record_jni.h index 23ae51b93f..7578f83948 100644 --- a/sdk/android/src/jni/audio_device/audio_record_jni.h +++ b/sdk/android/src/jni/audio_device/audio_record_jni.h @@ -21,7 +21,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { // Implements 16-bit mono PCM audio input support for Android using the Java // AudioRecord interface. Most of the work is done by its Java counterpart in @@ -131,7 +131,7 @@ class AudioRecordJni : public AudioInput { AudioDeviceBuffer* audio_device_buffer_; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc 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 e1718c1c01..1b49de6c0e 100644 --- a/sdk/android/src/jni/audio_device/audio_track_jni.cc +++ b/sdk/android/src/jni/audio_device/audio_track_jni.cc @@ -22,7 +22,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { ScopedJavaLocalRef AudioTrackJni::CreateJavaWebRtcAudioTrack( JNIEnv* env, @@ -216,6 +216,6 @@ void AudioTrackJni::GetPlayoutData(JNIEnv* env, RTC_DCHECK_EQ(length, bytes_per_frame * samples); } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/audio_track_jni.h b/sdk/android/src/jni/audio_device/audio_track_jni.h index e93b35a442..1225caf515 100644 --- a/sdk/android/src/jni/audio_device/audio_track_jni.h +++ b/sdk/android/src/jni/audio_device/audio_track_jni.h @@ -23,7 +23,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { // Implements 16-bit mono PCM audio output support for Android using the Java // AudioTrack interface. Most of the work is done by its Java counterpart in @@ -123,7 +123,7 @@ class AudioTrackJni : public AudioOutput { AudioDeviceBuffer* audio_device_buffer_; }; -} // namespace android_adm +} // namespace jni } // 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 267058f317..50c02913b9 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 @@ -28,22 +28,20 @@ static jlong JNI_JavaAudioDeviceModule_CreateAudioDeviceModule( jboolean j_use_stereo_output) { AudioParameters input_parameters; AudioParameters output_parameters; - android_adm::GetAudioParameters(env, j_context, j_audio_manager, sample_rate, - j_use_stereo_input, j_use_stereo_output, - &input_parameters, &output_parameters); - auto audio_input = rtc::MakeUnique( - env, input_parameters, - android_adm::kHighLatencyModeDelayEstimateInMilliseconds, + GetAudioParameters(env, j_context, j_audio_manager, sample_rate, + j_use_stereo_input, j_use_stereo_output, &input_parameters, + &output_parameters); + auto audio_input = rtc::MakeUnique( + env, input_parameters, kHighLatencyModeDelayEstimateInMilliseconds, j_webrtc_audio_record); - auto audio_output = rtc::MakeUnique( - env, output_parameters, j_webrtc_audio_track); - return jlongFromPointer( - CreateAudioDeviceModuleFromInputAndOutput( - AudioDeviceModule::kAndroidJavaAudio, j_use_stereo_input, - j_use_stereo_output, - android_adm::kHighLatencyModeDelayEstimateInMilliseconds, - std::move(audio_input), std::move(audio_output)) - .release()); + auto audio_output = rtc::MakeUnique(env, output_parameters, + j_webrtc_audio_track); + return jlongFromPointer(CreateAudioDeviceModuleFromInputAndOutput( + AudioDeviceModule::kAndroidJavaAudio, + j_use_stereo_input, j_use_stereo_output, + kHighLatencyModeDelayEstimateInMilliseconds, + std::move(audio_input), std::move(audio_output)) + .release()); } } // namespace jni diff --git a/sdk/android/src/jni/audio_device/opensles_common.cc b/sdk/android/src/jni/audio_device/opensles_common.cc index e21b7bfb35..ba0713116c 100644 --- a/sdk/android/src/jni/audio_device/opensles_common.cc +++ b/sdk/android/src/jni/audio_device/opensles_common.cc @@ -17,7 +17,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { // Returns a string representation given an integer SL_RESULT_XXX code. // The mapping can be found in . @@ -140,6 +140,6 @@ SLObjectItf OpenSLEngineManager::GetOpenSLEngine() { return engine_object_.Get(); } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/opensles_common.h b/sdk/android/src/jni/audio_device/opensles_common.h index a498aec584..0a8c115acc 100644 --- a/sdk/android/src/jni/audio_device/opensles_common.h +++ b/sdk/android/src/jni/audio_device/opensles_common.h @@ -20,7 +20,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { // Returns a string representation given an integer SL_RESULT_XXX code. // The mapping can be found in . @@ -83,7 +83,7 @@ class OpenSLEngineManager { ScopedSLObjectItf engine_object_; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/opensles_player.cc b/sdk/android/src/jni/audio_device/opensles_player.cc index 7af3fa4fe3..f5f56bf112 100644 --- a/sdk/android/src/jni/audio_device/opensles_player.cc +++ b/sdk/android/src/jni/audio_device/opensles_player.cc @@ -40,7 +40,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { OpenSLESPlayer::OpenSLESPlayer( const AudioParameters& audio_parameters, @@ -441,6 +441,6 @@ SLuint32 OpenSLESPlayer::GetPlayState() const { return state; } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/opensles_player.h b/sdk/android/src/jni/audio_device/opensles_player.h index fe110a6ef2..d5f4a68749 100644 --- a/sdk/android/src/jni/audio_device/opensles_player.h +++ b/sdk/android/src/jni/audio_device/opensles_player.h @@ -29,7 +29,7 @@ namespace webrtc { class FineAudioBuffer; -namespace android_adm { +namespace jni { // Implements 16-bit mono PCM audio output support for Android using the // C based OpenSL ES API. No calls from C/C++ to Java using JNI is done. @@ -188,7 +188,7 @@ class OpenSLESPlayer : public AudioOutput { uint32_t last_play_time_; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/opensles_recorder.cc b/sdk/android/src/jni/audio_device/opensles_recorder.cc index b8be33f8c0..4c51d387b0 100644 --- a/sdk/android/src/jni/audio_device/opensles_recorder.cc +++ b/sdk/android/src/jni/audio_device/opensles_recorder.cc @@ -41,7 +41,7 @@ namespace webrtc { -namespace android_adm { +namespace jni { OpenSLESRecorder::OpenSLESRecorder(const AudioParameters& audio_parameters, OpenSLEngineManager* engine_manager) @@ -441,6 +441,6 @@ SLuint32 OpenSLESRecorder::GetBufferCount() { return state.count; } -} // namespace android_adm +} // namespace jni } // namespace webrtc diff --git a/sdk/android/src/jni/audio_device/opensles_recorder.h b/sdk/android/src/jni/audio_device/opensles_recorder.h index cb109c34cd..6408be0f56 100644 --- a/sdk/android/src/jni/audio_device/opensles_recorder.h +++ b/sdk/android/src/jni/audio_device/opensles_recorder.h @@ -29,7 +29,7 @@ namespace webrtc { class FineAudioBuffer; -namespace android_adm { +namespace jni { // Implements 16-bit mono PCM audio input support for Android using the // C based OpenSL ES API. No calls from C/C++ to Java using JNI is done. @@ -185,7 +185,7 @@ class OpenSLESRecorder : public AudioInput { uint32_t last_rec_time_; }; -} // namespace android_adm +} // namespace jni } // namespace webrtc