Android JNI generation: Set JNI namespace in build files
This CL removes the use of the @JNINamespace annotation and instead sets the correct JNI namespace in the build file. Bug: webrtc:8278 Change-Id: Ia4490399e45a97d56b02c260fd80df4edfa092bf Reviewed-on: https://webrtc-review.googlesource.com/76440 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23299}
This commit is contained in:

committed by
Commit Bot

parent
7e6fcea7de
commit
c7da266cb8
@ -28,6 +28,7 @@ generate_jni("generated_jni") {
|
|||||||
"java/org/webrtc/examples/androidnativeapi/CallClient.java",
|
"java/org/webrtc/examples/androidnativeapi/CallClient.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc_examples"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,13 +13,10 @@ package org.webrtc.examples.androidnativeapi;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import org.webrtc.JNINamespace;
|
|
||||||
import org.webrtc.NativeClassQualifiedName;
|
|
||||||
import org.webrtc.SurfaceTextureHelper;
|
import org.webrtc.SurfaceTextureHelper;
|
||||||
import org.webrtc.VideoCapturer;
|
import org.webrtc.VideoCapturer;
|
||||||
import org.webrtc.VideoSink;
|
import org.webrtc.VideoSink;
|
||||||
|
|
||||||
@JNINamespace("webrtc_examples")
|
|
||||||
public class CallClient {
|
public class CallClient {
|
||||||
private static final String TAG = "CallClient";
|
private static final String TAG = "CallClient";
|
||||||
private static final int CAPTURE_WIDTH = 640;
|
private static final int CAPTURE_WIDTH = 640;
|
||||||
@ -65,13 +62,10 @@ public class CallClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static native long nativeCreateClient();
|
private static native long nativeCreateClient();
|
||||||
@NativeClassQualifiedName("webrtc_examples::AndroidCallClient")
|
private static native void nativeCall(
|
||||||
private static native void nativeCall(long nativePtr, VideoSink localSink, VideoSink remoteSink);
|
long nativeAndroidCallClient, VideoSink localSink, VideoSink remoteSink);
|
||||||
@NativeClassQualifiedName("webrtc_examples::AndroidCallClient")
|
private static native void nativeHangup(long nativeAndroidCallClient);
|
||||||
private static native void nativeHangup(long nativePtr);
|
private static native void nativeDelete(long nativeAndroidCallClient);
|
||||||
@NativeClassQualifiedName("webrtc_examples::AndroidCallClient")
|
|
||||||
private static native void nativeDelete(long nativePtr);
|
|
||||||
@NativeClassQualifiedName("webrtc_examples::AndroidCallClient")
|
|
||||||
private static native VideoCapturer.CapturerObserver nativeGetJavaVideoCapturerObserver(
|
private static native VideoCapturer.CapturerObserver nativeGetJavaVideoCapturerObserver(
|
||||||
long nativePtr);
|
long nativeAndroidCallClient);
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ generate_jni("generated_base_jni") {
|
|||||||
"src/java/org/webrtc/JniCommon.java",
|
"src/java/org/webrtc/JniCommon.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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",
|
"src/java/org/webrtc/audio/WebRtcAudioManager.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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",
|
"src/java/org/webrtc/audio/WebRtcAudioTrack.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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
|
sources += [ "api/org/webrtc/HardwareVideoEncoderFactory.java" ] # TODO(andersc): This currently depends on SoftwareVideoEncoderFactory
|
||||||
}
|
}
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -418,6 +422,7 @@ generate_jni("generated_vp8_jni") {
|
|||||||
]
|
]
|
||||||
|
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,6 +445,7 @@ generate_jni("generated_vp9_jni") {
|
|||||||
]
|
]
|
||||||
|
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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",
|
"api/org/webrtc/TurnCustomizer.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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",
|
"api/org/webrtc/Metrics.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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/Histogram.java",
|
||||||
"src/java/org/webrtc/JniCommon.java",
|
"src/java/org/webrtc/JniCommon.java",
|
||||||
"src/java/org/webrtc/JniHelper.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/RefCountDelegate.java",
|
||||||
"src/java/org/webrtc/WebRtcClassLoader.java",
|
"src/java/org/webrtc/WebRtcClassLoader.java",
|
||||||
]
|
]
|
||||||
@ -827,6 +833,7 @@ generate_jni("generated_java_audio_jni") {
|
|||||||
"api/org/webrtc/audio/JavaAudioDeviceModule.java",
|
"api/org/webrtc/audio/JavaAudioDeviceModule.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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",
|
"src/java/org/webrtc/WebRtcClassLoader.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
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",
|
"native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java",
|
||||||
]
|
]
|
||||||
jni_package = ""
|
jni_package = ""
|
||||||
|
namespace = "webrtc::jni"
|
||||||
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
/** Java wrapper for a C++ AudioTrackInterface */
|
/** Java wrapper for a C++ AudioTrackInterface */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class AudioTrack extends MediaStreamTrack {
|
public class AudioTrack extends MediaStreamTrack {
|
||||||
public AudioTrack(long nativeTrack) {
|
public AudioTrack(long nativeTrack) {
|
||||||
super(nativeTrack);
|
super(nativeTrack);
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class CallSessionFileRotatingLogSink {
|
public class CallSessionFileRotatingLogSink {
|
||||||
private long nativeSink;
|
private long nativeSink;
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
/** Java wrapper for a C++ DataChannelInterface. */
|
/** Java wrapper for a C++ DataChannelInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class DataChannel {
|
public class DataChannel {
|
||||||
/** Java wrapper for WebIDL RTCDataChannel. */
|
/** Java wrapper for WebIDL RTCDataChannel. */
|
||||||
public static class Init {
|
public static class Init {
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
/** Java wrapper for a C++ DtmfSenderInterface. */
|
/** Java wrapper for a C++ DtmfSenderInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class DtmfSender {
|
public class DtmfSender {
|
||||||
final long nativeDtmfSender;
|
final long nativeDtmfSender;
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ import javax.annotation.Nullable;
|
|||||||
|
|
||||||
/** Factory for android hardware video encoders. */
|
/** Factory for android hardware video encoders. */
|
||||||
@SuppressWarnings("deprecation") // API 16 requires the use of deprecated methods.
|
@SuppressWarnings("deprecation") // API 16 requires the use of deprecated methods.
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class HardwareVideoEncoderFactory implements VideoEncoderFactory {
|
public class HardwareVideoEncoderFactory implements VideoEncoderFactory {
|
||||||
private static final String TAG = "HardwareVideoEncoderFactory";
|
private static final String TAG = "HardwareVideoEncoderFactory";
|
||||||
|
|
||||||
|
@ -37,7 +37,6 @@ import org.webrtc.VideoFrame;
|
|||||||
// This class is an implementation detail of the Java PeerConnection API.
|
// This class is an implementation detail of the Java PeerConnection API.
|
||||||
@TargetApi(19)
|
@TargetApi(19)
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class MediaCodecVideoEncoder {
|
public class MediaCodecVideoEncoder {
|
||||||
// This class is constructed, operated, and destroyed by its C++ incarnation,
|
// This class is constructed, operated, and destroyed by its C++ incarnation,
|
||||||
// so the class and its methods have non-public visibility. The API this
|
// so the class and its methods have non-public visibility. The API this
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
/** Java wrapper for a C++ MediaSourceInterface. */
|
/** Java wrapper for a C++ MediaSourceInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class MediaSource {
|
public class MediaSource {
|
||||||
/** Tracks MediaSourceInterface.SourceState */
|
/** Tracks MediaSourceInterface.SourceState */
|
||||||
public enum State {
|
public enum State {
|
||||||
|
@ -15,7 +15,6 @@ import java.util.List;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/** Java wrapper for a C++ MediaStreamInterface. */
|
/** Java wrapper for a C++ MediaStreamInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class MediaStream {
|
public class MediaStream {
|
||||||
private static final String TAG = "MediaStream";
|
private static final String TAG = "MediaStream";
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/** Java wrapper for a C++ MediaStreamTrackInterface. */
|
/** Java wrapper for a C++ MediaStreamTrackInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class MediaStreamTrack {
|
public class MediaStreamTrack {
|
||||||
public static final String AUDIO_TRACK_KIND = "audio";
|
public static final String AUDIO_TRACK_KIND = "audio";
|
||||||
public static final String VIDEO_TRACK_KIND = "video";
|
public static final String VIDEO_TRACK_KIND = "video";
|
||||||
|
@ -28,7 +28,6 @@ import java.util.Map;
|
|||||||
// Most histograms are not updated frequently (e.g. most video metrics are an
|
// Most histograms are not updated frequently (e.g. most video metrics are an
|
||||||
// average over the call and recorded when a stream is removed).
|
// average over the call and recorded when a stream is removed).
|
||||||
// The metrics can for example be retrieved when a peer connection is closed.
|
// The metrics can for example be retrieved when a peer connection is closed.
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class Metrics {
|
public class Metrics {
|
||||||
private static final String TAG = "Metrics";
|
private static final String TAG = "Metrics";
|
||||||
|
|
||||||
|
@ -278,18 +278,13 @@ public class NetworkMonitor {
|
|||||||
return connectionType != ConnectionType.CONNECTION_NONE;
|
return connectionType != ConnectionType.CONNECTION_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor")
|
private native void nativeNotifyConnectionTypeChanged(long nativeAndroidNetworkMonitor);
|
||||||
private native void nativeNotifyConnectionTypeChanged(long nativePtr);
|
private native void nativeNotifyOfNetworkConnect(
|
||||||
|
long nativeAndroidNetworkMonitor, NetworkInformation networkInfo);
|
||||||
@NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor")
|
private native void nativeNotifyOfNetworkDisconnect(
|
||||||
private native void nativeNotifyOfNetworkConnect(long nativePtr, NetworkInformation networkInfo);
|
long nativeAndroidNetworkMonitor, long networkHandle);
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor")
|
|
||||||
private native void nativeNotifyOfNetworkDisconnect(long nativePtr, long networkHandle);
|
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::jni::AndroidNetworkMonitor")
|
|
||||||
private native void nativeNotifyOfActiveNetworkList(
|
private native void nativeNotifyOfActiveNetworkList(
|
||||||
long nativePtr, NetworkInformation[] networkInfos);
|
long nativeAndroidNetworkMonitor, NetworkInformation[] networkInfos);
|
||||||
|
|
||||||
// For testing only.
|
// For testing only.
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -21,7 +21,6 @@ import javax.annotation.Nullable;
|
|||||||
* JS APIs: http://dev.w3.org/2011/webrtc/editor/webrtc.html and
|
* JS APIs: http://dev.w3.org/2011/webrtc/editor/webrtc.html and
|
||||||
* http://www.w3.org/TR/mediacapture-streams/
|
* http://www.w3.org/TR/mediacapture-streams/
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class PeerConnection {
|
public class PeerConnection {
|
||||||
/** Tracks PeerConnectionInterface::IceGatheringState */
|
/** Tracks PeerConnectionInterface::IceGatheringState */
|
||||||
public enum IceGatheringState {
|
public enum IceGatheringState {
|
||||||
|
@ -20,7 +20,6 @@ import org.webrtc.audio.LegacyAudioDeviceModule;
|
|||||||
* Java wrapper for a C++ PeerConnectionFactoryInterface. Main entry point to
|
* Java wrapper for a C++ PeerConnectionFactoryInterface. Main entry point to
|
||||||
* the PeerConnection API for clients.
|
* the PeerConnection API for clients.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class PeerConnectionFactory {
|
public class PeerConnectionFactory {
|
||||||
public static final String TRIAL_ENABLED = "Enabled";
|
public static final String TRIAL_ENABLED = "Enabled";
|
||||||
@Deprecated public static final String VIDEO_FRAME_EMIT_TRIAL = "VideoFrameEmit";
|
@Deprecated public static final String VIDEO_FRAME_EMIT_TRIAL = "VideoFrameEmit";
|
||||||
|
@ -14,7 +14,6 @@ import javax.annotation.Nullable;
|
|||||||
import org.webrtc.MediaStreamTrack;
|
import org.webrtc.MediaStreamTrack;
|
||||||
|
|
||||||
/** Java wrapper for a C++ RtpReceiverInterface. */
|
/** Java wrapper for a C++ RtpReceiverInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class RtpReceiver {
|
public class RtpReceiver {
|
||||||
/** Java wrapper for a C++ RtpReceiverObserverInterface*/
|
/** Java wrapper for a C++ RtpReceiverObserverInterface*/
|
||||||
public static interface Observer {
|
public static interface Observer {
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/** Java wrapper for a C++ RtpSenderInterface. */
|
/** Java wrapper for a C++ RtpSenderInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class RtpSender {
|
public class RtpSender {
|
||||||
final long nativeRtpSender;
|
final long nativeRtpSender;
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ import org.webrtc.RtpParameters.Encoding;
|
|||||||
* <p>WebRTC specification for RTCRtpTransceiver, the JavaScript analog:
|
* <p>WebRTC specification for RTCRtpTransceiver, the JavaScript analog:
|
||||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver
|
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class RtpTransceiver {
|
public class RtpTransceiver {
|
||||||
/** Java version of webrtc::RtpTransceiverDirection - the ordering must be kept in sync. */
|
/** Java version of webrtc::RtpTransceiverDirection - the ordering must be kept in sync. */
|
||||||
public enum RtpTransceiverDirection {
|
public enum RtpTransceiverDirection {
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
/** Java wrapper for a C++ TurnCustomizer. */
|
/** Java wrapper for a C++ TurnCustomizer. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class TurnCustomizer {
|
public class TurnCustomizer {
|
||||||
final long nativeTurnCustomizer;
|
final long nativeTurnCustomizer;
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
/**
|
/**
|
||||||
* A combined video decoder that falls back on a secondary decoder if the primary decoder fails.
|
* A combined video decoder that falls back on a secondary decoder if the primary decoder fails.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoDecoderFallback extends WrappedNativeVideoDecoder {
|
public class VideoDecoderFallback extends WrappedNativeVideoDecoder {
|
||||||
private final VideoDecoder fallback;
|
private final VideoDecoder fallback;
|
||||||
private final VideoDecoder primary;
|
private final VideoDecoder primary;
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
/**
|
/**
|
||||||
* A combined video encoder that falls back on a secondary encoder if the primary encoder fails.
|
* A combined video encoder that falls back on a secondary encoder if the primary encoder fails.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoEncoderFallback extends WrappedNativeVideoEncoder {
|
public class VideoEncoderFallback extends WrappedNativeVideoEncoder {
|
||||||
private final VideoEncoder fallback;
|
private final VideoEncoder fallback;
|
||||||
private final VideoEncoder primary;
|
private final VideoEncoder primary;
|
||||||
|
@ -24,7 +24,6 @@ import java.util.concurrent.LinkedBlockingQueue;
|
|||||||
/**
|
/**
|
||||||
* Can be used to save the video frames to file.
|
* Can be used to save the video frames to file.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoFileRenderer implements VideoSink {
|
public class VideoFileRenderer implements VideoSink {
|
||||||
private static final String TAG = "VideoFileRenderer";
|
private static final String TAG = "VideoFileRenderer";
|
||||||
|
|
||||||
|
@ -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
|
* format and serves as a fallback for video sinks that can only handle I420, e.g. the internal
|
||||||
* WebRTC software encoders.
|
* WebRTC software encoders.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoFrame implements RefCounted {
|
public class VideoFrame implements RefCounted {
|
||||||
/**
|
/**
|
||||||
* Implements image storage medium. Might be for example an OpenGL texture or a memory region
|
* Implements image storage medium. Might be for example an OpenGL texture or a memory region
|
||||||
|
@ -21,7 +21,6 @@ import javax.annotation.Nullable;
|
|||||||
* drawer.drawYuv depending on the type of the buffer. The frame will be rendered with rotation
|
* 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.
|
* taken into account. You can supply an additional render matrix for custom transformations.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoFrameDrawer {
|
public class VideoFrameDrawer {
|
||||||
/**
|
/**
|
||||||
* Draws a VideoFrame.TextureBuffer. Calls either drawer.drawOes or drawer.drawRgb
|
* Draws a VideoFrame.TextureBuffer. Calls either drawer.drawOes or drawer.drawRgb
|
||||||
|
@ -20,7 +20,6 @@ import org.webrtc.VideoFrame;
|
|||||||
* class also provides a createGui() method for creating a GUI-rendering window
|
* class also provides a createGui() method for creating a GUI-rendering window
|
||||||
* on various platforms.
|
* on various platforms.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoRenderer {
|
public class VideoRenderer {
|
||||||
/**
|
/**
|
||||||
* Java version of webrtc::VideoFrame. Frames are only constructed from native code and test
|
* Java version of webrtc::VideoFrame. Frames are only constructed from native code and test
|
||||||
|
@ -15,7 +15,6 @@ import javax.annotation.Nullable;
|
|||||||
/**
|
/**
|
||||||
* Java wrapper of native AndroidVideoTrackSource.
|
* Java wrapper of native AndroidVideoTrackSource.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoSource extends MediaSource {
|
public class VideoSource extends MediaSource {
|
||||||
private final NativeCapturerObserver capturerObserver;
|
private final NativeCapturerObserver capturerObserver;
|
||||||
|
|
||||||
|
@ -15,7 +15,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Java version of VideoTrackInterface. */
|
/** Java version of VideoTrackInterface. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class VideoTrack extends MediaStreamTrack {
|
public class VideoTrack extends MediaStreamTrack {
|
||||||
private final List<VideoRenderer> renderers = new ArrayList<>();
|
private final List<VideoRenderer> renderers = new ArrayList<>();
|
||||||
private final IdentityHashMap<VideoSink, Long> sinks = new IdentityHashMap<VideoSink, Long>();
|
private final IdentityHashMap<VideoSink, Long> sinks = new IdentityHashMap<VideoSink, Long>();
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
/** Wraps libyuv methods to Java. All passed byte buffers must be direct byte buffers. */
|
/** Wraps libyuv methods to Java. All passed byte buffers must be direct byte buffers. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class YuvHelper {
|
public class YuvHelper {
|
||||||
/** Helper method for copying I420 to tightly packed destination buffer. */
|
/** Helper method for copying I420 to tightly packed destination buffer. */
|
||||||
public static void I420Copy(ByteBuffer srcY, int srcStrideY, ByteBuffer srcU, int srcStrideU,
|
public static void I420Copy(ByteBuffer srcY, int srcStrideY, ByteBuffer srcU, int srcStrideU,
|
||||||
|
@ -12,7 +12,6 @@ package org.webrtc.audio;
|
|||||||
|
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import org.webrtc.JNINamespace;
|
|
||||||
import org.webrtc.JniCommon;
|
import org.webrtc.JniCommon;
|
||||||
import org.webrtc.Logging;
|
import org.webrtc.Logging;
|
||||||
|
|
||||||
@ -20,7 +19,6 @@ import org.webrtc.Logging;
|
|||||||
* AudioDeviceModule implemented using android.media.AudioRecord as input and
|
* AudioDeviceModule implemented using android.media.AudioRecord as input and
|
||||||
* android.media.AudioTrack as output.
|
* android.media.AudioTrack as output.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class JavaAudioDeviceModule implements AudioDeviceModule {
|
public class JavaAudioDeviceModule implements AudioDeviceModule {
|
||||||
private static final String TAG = "JavaAudioDeviceModule";
|
private static final String TAG = "JavaAudioDeviceModule";
|
||||||
|
|
||||||
|
@ -36,13 +36,12 @@ void GetDefaultAudioParameters(JNIEnv* env,
|
|||||||
AudioParameters* output_parameters) {
|
AudioParameters* output_parameters) {
|
||||||
const JavaParamRef<jobject> j_context(application_context);
|
const JavaParamRef<jobject> j_context(application_context);
|
||||||
const ScopedJavaLocalRef<jobject> j_audio_manager =
|
const ScopedJavaLocalRef<jobject> j_audio_manager =
|
||||||
android_adm::GetAudioManager(env, j_context);
|
jni::GetAudioManager(env, j_context);
|
||||||
const int sample_rate =
|
const int sample_rate = jni::GetDefaultSampleRate(env, j_audio_manager);
|
||||||
android_adm::GetDefaultSampleRate(env, j_audio_manager);
|
jni::GetAudioParameters(env, j_context, j_audio_manager, sample_rate,
|
||||||
android_adm::GetAudioParameters(env, j_context, j_audio_manager, sample_rate,
|
|
||||||
false /* use_stereo_input */,
|
false /* use_stereo_input */,
|
||||||
false /* use_stereo_output */,
|
false /* use_stereo_output */, input_parameters,
|
||||||
input_parameters, output_parameters);
|
output_parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
@ -61,9 +60,9 @@ rtc::scoped_refptr<AudioDeviceModule> CreateAAudioAudioDeviceModule(
|
|||||||
return CreateAudioDeviceModuleFromInputAndOutput(
|
return CreateAudioDeviceModuleFromInputAndOutput(
|
||||||
AudioDeviceModule::kAndroidAAudioAudio, false /* use_stereo_input */,
|
AudioDeviceModule::kAndroidAAudioAudio, false /* use_stereo_input */,
|
||||||
false /* use_stereo_output */,
|
false /* use_stereo_output */,
|
||||||
android_adm::kLowLatencyModeDelayEstimateInMilliseconds,
|
jni::kLowLatencyModeDelayEstimateInMilliseconds,
|
||||||
rtc::MakeUnique<android_adm::AAudioRecorder>(input_parameters),
|
rtc::MakeUnique<jni::AAudioRecorder>(input_parameters),
|
||||||
rtc::MakeUnique<android_adm::AAudioPlayer>(output_parameters));
|
rtc::MakeUnique<jni::AAudioPlayer>(output_parameters));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -74,26 +73,25 @@ rtc::scoped_refptr<AudioDeviceModule> CreateJavaAudioDeviceModule(
|
|||||||
// Get default audio input/output parameters.
|
// Get default audio input/output parameters.
|
||||||
const JavaParamRef<jobject> j_context(application_context);
|
const JavaParamRef<jobject> j_context(application_context);
|
||||||
const ScopedJavaLocalRef<jobject> j_audio_manager =
|
const ScopedJavaLocalRef<jobject> j_audio_manager =
|
||||||
android_adm::GetAudioManager(env, j_context);
|
jni::GetAudioManager(env, j_context);
|
||||||
AudioParameters input_parameters;
|
AudioParameters input_parameters;
|
||||||
AudioParameters output_parameters;
|
AudioParameters output_parameters;
|
||||||
GetDefaultAudioParameters(env, application_context, &input_parameters,
|
GetDefaultAudioParameters(env, application_context, &input_parameters,
|
||||||
&output_parameters);
|
&output_parameters);
|
||||||
// Create ADM from AudioRecord and AudioTrack.
|
// Create ADM from AudioRecord and AudioTrack.
|
||||||
auto audio_input = rtc::MakeUnique<android_adm::AudioRecordJni>(
|
auto audio_input = rtc::MakeUnique<jni::AudioRecordJni>(
|
||||||
env, input_parameters,
|
env, input_parameters, jni::kHighLatencyModeDelayEstimateInMilliseconds,
|
||||||
android_adm::kHighLatencyModeDelayEstimateInMilliseconds,
|
jni::AudioRecordJni::CreateJavaWebRtcAudioRecord(env, j_context,
|
||||||
android_adm::AudioRecordJni::CreateJavaWebRtcAudioRecord(
|
j_audio_manager));
|
||||||
env, j_context, j_audio_manager));
|
auto audio_output = rtc::MakeUnique<jni::AudioTrackJni>(
|
||||||
auto audio_output = rtc::MakeUnique<android_adm::AudioTrackJni>(
|
|
||||||
env, output_parameters,
|
env, output_parameters,
|
||||||
android_adm::AudioTrackJni::CreateJavaWebRtcAudioTrack(env, j_context,
|
jni::AudioTrackJni::CreateJavaWebRtcAudioTrack(env, j_context,
|
||||||
j_audio_manager));
|
j_audio_manager));
|
||||||
return CreateAudioDeviceModuleFromInputAndOutput(
|
return CreateAudioDeviceModuleFromInputAndOutput(
|
||||||
AudioDeviceModule::kAndroidJavaAudio, false /* use_stereo_input */,
|
AudioDeviceModule::kAndroidJavaAudio, false /* use_stereo_input */,
|
||||||
false /* use_stereo_output */,
|
false /* use_stereo_output */,
|
||||||
android_adm::kHighLatencyModeDelayEstimateInMilliseconds,
|
jni::kHighLatencyModeDelayEstimateInMilliseconds, std::move(audio_input),
|
||||||
std::move(audio_input), std::move(audio_output));
|
std::move(audio_output));
|
||||||
}
|
}
|
||||||
|
|
||||||
rtc::scoped_refptr<AudioDeviceModule> CreateOpenSLESAudioDeviceModule(
|
rtc::scoped_refptr<AudioDeviceModule> CreateOpenSLESAudioDeviceModule(
|
||||||
@ -106,16 +104,16 @@ rtc::scoped_refptr<AudioDeviceModule> CreateOpenSLESAudioDeviceModule(
|
|||||||
GetDefaultAudioParameters(env, application_context, &input_parameters,
|
GetDefaultAudioParameters(env, application_context, &input_parameters,
|
||||||
&output_parameters);
|
&output_parameters);
|
||||||
// Create ADM from OpenSLESRecorder and OpenSLESPlayer.
|
// Create ADM from OpenSLESRecorder and OpenSLESPlayer.
|
||||||
auto engine_manager = rtc::MakeUnique<android_adm::OpenSLEngineManager>();
|
auto engine_manager = rtc::MakeUnique<jni::OpenSLEngineManager>();
|
||||||
auto audio_input = rtc::MakeUnique<android_adm::OpenSLESRecorder>(
|
auto audio_input = rtc::MakeUnique<jni::OpenSLESRecorder>(
|
||||||
input_parameters, engine_manager.get());
|
input_parameters, engine_manager.get());
|
||||||
auto audio_output = rtc::MakeUnique<android_adm::OpenSLESPlayer>(
|
auto audio_output = rtc::MakeUnique<jni::OpenSLESPlayer>(
|
||||||
output_parameters, std::move(engine_manager));
|
output_parameters, std::move(engine_manager));
|
||||||
return CreateAudioDeviceModuleFromInputAndOutput(
|
return CreateAudioDeviceModuleFromInputAndOutput(
|
||||||
AudioDeviceModule::kAndroidOpenSLESAudio, false /* use_stereo_input */,
|
AudioDeviceModule::kAndroidOpenSLESAudio, false /* use_stereo_input */,
|
||||||
false /* use_stereo_output */,
|
false /* use_stereo_output */,
|
||||||
android_adm::kLowLatencyModeDelayEstimateInMilliseconds,
|
jni::kLowLatencyModeDelayEstimateInMilliseconds, std::move(audio_input),
|
||||||
std::move(audio_input), std::move(audio_output));
|
std::move(audio_output));
|
||||||
}
|
}
|
||||||
|
|
||||||
rtc::scoped_refptr<AudioDeviceModule>
|
rtc::scoped_refptr<AudioDeviceModule>
|
||||||
@ -125,24 +123,23 @@ CreateJavaInputAndOpenSLESOutputAudioDeviceModule(JNIEnv* env,
|
|||||||
// Get default audio input/output parameters.
|
// Get default audio input/output parameters.
|
||||||
const JavaParamRef<jobject> j_context(application_context);
|
const JavaParamRef<jobject> j_context(application_context);
|
||||||
const ScopedJavaLocalRef<jobject> j_audio_manager =
|
const ScopedJavaLocalRef<jobject> j_audio_manager =
|
||||||
android_adm::GetAudioManager(env, j_context);
|
jni::GetAudioManager(env, j_context);
|
||||||
AudioParameters input_parameters;
|
AudioParameters input_parameters;
|
||||||
AudioParameters output_parameters;
|
AudioParameters output_parameters;
|
||||||
GetDefaultAudioParameters(env, application_context, &input_parameters,
|
GetDefaultAudioParameters(env, application_context, &input_parameters,
|
||||||
&output_parameters);
|
&output_parameters);
|
||||||
// Create ADM from AudioRecord and OpenSLESPlayer.
|
// Create ADM from AudioRecord and OpenSLESPlayer.
|
||||||
auto audio_input = rtc::MakeUnique<android_adm::AudioRecordJni>(
|
auto audio_input = rtc::MakeUnique<jni::AudioRecordJni>(
|
||||||
env, input_parameters,
|
env, input_parameters, jni::kLowLatencyModeDelayEstimateInMilliseconds,
|
||||||
android_adm::kLowLatencyModeDelayEstimateInMilliseconds,
|
jni::AudioRecordJni::CreateJavaWebRtcAudioRecord(env, j_context,
|
||||||
android_adm::AudioRecordJni::CreateJavaWebRtcAudioRecord(
|
j_audio_manager));
|
||||||
env, j_context, j_audio_manager));
|
auto audio_output = rtc::MakeUnique<jni::OpenSLESPlayer>(
|
||||||
auto audio_output = rtc::MakeUnique<android_adm::OpenSLESPlayer>(
|
output_parameters, rtc::MakeUnique<jni::OpenSLEngineManager>());
|
||||||
output_parameters, rtc::MakeUnique<android_adm::OpenSLEngineManager>());
|
|
||||||
return CreateAudioDeviceModuleFromInputAndOutput(
|
return CreateAudioDeviceModuleFromInputAndOutput(
|
||||||
AudioDeviceModule::kAndroidJavaInputAndOpenSLESOutputAudio,
|
AudioDeviceModule::kAndroidJavaInputAndOpenSLESOutputAudio,
|
||||||
false /* use_stereo_input */, false /* use_stereo_output */,
|
false /* use_stereo_input */, false /* use_stereo_output */,
|
||||||
android_adm::kLowLatencyModeDelayEstimateInMilliseconds,
|
jni::kLowLatencyModeDelayEstimateInMilliseconds, std::move(audio_input),
|
||||||
std::move(audio_input), std::move(audio_output));
|
std::move(audio_output));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -32,7 +32,7 @@ namespace {
|
|||||||
class ClassLoader {
|
class ClassLoader {
|
||||||
public:
|
public:
|
||||||
explicit ClassLoader(JNIEnv* env)
|
explicit ClassLoader(JNIEnv* env)
|
||||||
: class_loader_(Java_WebRtcClassLoader_getClassLoader(env)) {
|
: class_loader_(jni::Java_WebRtcClassLoader_getClassLoader(env)) {
|
||||||
class_loader_class_ = reinterpret_cast<jclass>(
|
class_loader_class_ = reinterpret_cast<jclass>(
|
||||||
env->NewGlobalRef(env->FindClass("java/lang/ClassLoader")));
|
env->NewGlobalRef(env->FindClass("java/lang/ClassLoader")));
|
||||||
CHECK_EXCEPTION(env);
|
CHECK_EXCEPTION(env);
|
||||||
|
@ -112,13 +112,13 @@ Iterable GetJavaMapEntrySet(JNIEnv* jni, const JavaRef<jobject>& j_map) {
|
|||||||
ScopedJavaLocalRef<jobject> GetJavaMapEntryKey(
|
ScopedJavaLocalRef<jobject> GetJavaMapEntryKey(
|
||||||
JNIEnv* jni,
|
JNIEnv* jni,
|
||||||
const JavaRef<jobject>& j_entry) {
|
const JavaRef<jobject>& j_entry) {
|
||||||
return Java_JniHelper_getKey(jni, j_entry);
|
return jni::Java_JniHelper_getKey(jni, j_entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
ScopedJavaLocalRef<jobject> GetJavaMapEntryValue(
|
ScopedJavaLocalRef<jobject> GetJavaMapEntryValue(
|
||||||
JNIEnv* jni,
|
JNIEnv* jni,
|
||||||
const JavaRef<jobject>& j_entry) {
|
const JavaRef<jobject>& j_entry) {
|
||||||
return Java_JniHelper_getValue(jni, j_entry);
|
return jni::Java_JniHelper_getValue(jni, j_entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t JavaToNativeLong(JNIEnv* env, const JavaRef<jobject>& j_long) {
|
int64_t JavaToNativeLong(JNIEnv* env, const JavaRef<jobject>& j_long) {
|
||||||
@ -143,7 +143,7 @@ rtc::Optional<int32_t> JavaToNativeOptionalInt(
|
|||||||
// Given a jstring, reinterprets it to a new native string.
|
// Given a jstring, reinterprets it to a new native string.
|
||||||
std::string JavaToNativeString(JNIEnv* jni, const JavaRef<jstring>& j_string) {
|
std::string JavaToNativeString(JNIEnv* jni, const JavaRef<jstring>& j_string) {
|
||||||
const ScopedJavaLocalRef<jbyteArray> j_byte_array =
|
const ScopedJavaLocalRef<jbyteArray> 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());
|
const size_t len = jni->GetArrayLength(j_byte_array.obj());
|
||||||
CHECK_EXCEPTION(jni) << "error during GetArrayLength";
|
CHECK_EXCEPTION(jni) << "error during GetArrayLength";
|
||||||
@ -243,7 +243,8 @@ ScopedJavaLocalRef<jobjectArray> NativeToJavaStringArray(
|
|||||||
&NativeToJavaString;
|
&NativeToJavaString;
|
||||||
return NativeToJavaObjectArray(
|
return NativeToJavaObjectArray(
|
||||||
env, container,
|
env, container,
|
||||||
static_cast<jclass>(Java_JniHelper_getStringClass(env).obj()), convert);
|
static_cast<jclass>(jni::Java_JniHelper_getStringClass(env).obj()),
|
||||||
|
convert);
|
||||||
}
|
}
|
||||||
|
|
||||||
JavaListBuilder::JavaListBuilder(JNIEnv* env)
|
JavaListBuilder::JavaListBuilder(JNIEnv* env)
|
||||||
|
@ -50,7 +50,7 @@ using ::testing::Return;
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Number of callbacks (input or output) the tests waits for before we set
|
// Number of callbacks (input or output) the tests waits for before we set
|
||||||
// an event indicating that the test was OK.
|
// an event indicating that the test was OK.
|
||||||
@ -1135,6 +1135,6 @@ TEST_F(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) {
|
|||||||
latency_audio_stream->PrintResults();
|
latency_audio_stream->PrintResults();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -21,7 +21,7 @@ namespace {
|
|||||||
TEST(JavaTypesTest, TestJavaToNativeStringMap) {
|
TEST(JavaTypesTest, TestJavaToNativeStringMap) {
|
||||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||||
ScopedJavaLocalRef<jobject> j_map =
|
ScopedJavaLocalRef<jobject> j_map =
|
||||||
Java_JavaTypesTestHelper_createTestStringMap(env);
|
jni::Java_JavaTypesTestHelper_createTestStringMap(env);
|
||||||
|
|
||||||
std::map<std::string, std::string> output = JavaToNativeStringMap(env, j_map);
|
std::map<std::string, std::string> output = JavaToNativeStringMap(env, j_map);
|
||||||
|
|
||||||
|
@ -61,7 +61,8 @@ TEST(PeerConnectionFactoryTest, NativeToJavaPeerConnectionFactory) {
|
|||||||
JNIEnv* jni = AttachCurrentThreadIfNeeded();
|
JNIEnv* jni = AttachCurrentThreadIfNeeded();
|
||||||
|
|
||||||
RTC_LOG(INFO) << "Initializing java peer connection factory.";
|
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.";
|
RTC_LOG(INFO) << "Java peer connection factory initialized.";
|
||||||
|
|
||||||
// Create threads.
|
// Create threads.
|
||||||
|
@ -62,10 +62,10 @@ TEST(JavaVideoSourceTest, OnFrameCapturedFrameIsDeliveredToSink) {
|
|||||||
false /* is_screencast */);
|
false /* is_screencast */);
|
||||||
video_track_source->AddOrUpdateSink(&test_video_sink, rtc::VideoSinkWants());
|
video_track_source->AddOrUpdateSink(&test_video_sink, rtc::VideoSinkWants());
|
||||||
|
|
||||||
Java_JavaVideoSourceTestHelper_startCapture(
|
jni::Java_JavaVideoSourceTestHelper_startCapture(
|
||||||
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
||||||
true /* success */);
|
true /* success */);
|
||||||
Java_JavaVideoSourceTestHelper_deliverFrame(
|
jni::Java_JavaVideoSourceTestHelper_deliverFrame(
|
||||||
env, video_track_source->GetJavaVideoCapturerObserver(env));
|
env, video_track_source->GetJavaVideoCapturerObserver(env));
|
||||||
|
|
||||||
std::vector<VideoFrame> frames = test_video_sink.GetFrames();
|
std::vector<VideoFrame> frames = test_video_sink.GetFrames();
|
||||||
@ -86,7 +86,7 @@ TEST(JavaVideoSourceTest, CapturerStartedSuccessStateBecomesLive) {
|
|||||||
rtc::ThreadManager::Instance()->CurrentThread(),
|
rtc::ThreadManager::Instance()->CurrentThread(),
|
||||||
false /* is_screencast */);
|
false /* is_screencast */);
|
||||||
|
|
||||||
Java_JavaVideoSourceTestHelper_startCapture(
|
jni::Java_JavaVideoSourceTestHelper_startCapture(
|
||||||
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
||||||
true /* success */);
|
true /* success */);
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ TEST(JavaVideoSourceTest, CapturerStartedFailureStateBecomesEnded) {
|
|||||||
rtc::ThreadManager::Instance()->CurrentThread(),
|
rtc::ThreadManager::Instance()->CurrentThread(),
|
||||||
false /* is_screencast */);
|
false /* is_screencast */);
|
||||||
|
|
||||||
Java_JavaVideoSourceTestHelper_startCapture(
|
jni::Java_JavaVideoSourceTestHelper_startCapture(
|
||||||
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
||||||
false /* success */);
|
false /* success */);
|
||||||
|
|
||||||
@ -122,10 +122,10 @@ TEST(JavaVideoSourceTest, CapturerStoppedStateBecomesEnded) {
|
|||||||
rtc::ThreadManager::Instance()->CurrentThread(),
|
rtc::ThreadManager::Instance()->CurrentThread(),
|
||||||
false /* is_screencast */);
|
false /* is_screencast */);
|
||||||
|
|
||||||
Java_JavaVideoSourceTestHelper_startCapture(
|
jni::Java_JavaVideoSourceTestHelper_startCapture(
|
||||||
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
env, video_track_source->GetJavaVideoCapturerObserver(env),
|
||||||
true /* success */);
|
true /* success */);
|
||||||
Java_JavaVideoSourceTestHelper_stopCapture(
|
jni::Java_JavaVideoSourceTestHelper_stopCapture(
|
||||||
env, video_track_source->GetJavaVideoCapturerObserver(env));
|
env, video_track_source->GetJavaVideoCapturerObserver(env));
|
||||||
|
|
||||||
EXPECT_EQ(VideoTrackSourceInterface::SourceState::kEnded,
|
EXPECT_EQ(VideoTrackSourceInterface::SourceState::kEnded,
|
||||||
|
@ -19,7 +19,6 @@ package org.webrtc;
|
|||||||
* Histogram.createCounts("WebRTC.Video.SomeMetric", 1, 10000, 50);
|
* Histogram.createCounts("WebRTC.Video.SomeMetric", 1, 10000, 50);
|
||||||
* someMetricHistogram.addSample(someVariable);
|
* someMetricHistogram.addSample(someVariable);
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
class Histogram {
|
class Histogram {
|
||||||
private final long handle;
|
private final long handle;
|
||||||
|
|
||||||
|
@ -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();
|
|
||||||
}
|
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
/** Class with static JNI helper functions that are used in many places. */
|
/** Class with static JNI helper functions that are used in many places. */
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class JniCommon {
|
public class JniCommon {
|
||||||
/** Functions to increment/decrement an rtc::RefCountInterface pointer. */
|
/** Functions to increment/decrement an rtc::RefCountInterface pointer. */
|
||||||
public static native void nativeAddRef(long refCountedPointer);
|
public static native void nativeAddRef(long refCountedPointer);
|
||||||
|
@ -13,7 +13,6 @@ package org.webrtc;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class NV12Buffer implements VideoFrame.Buffer {
|
public class NV12Buffer implements VideoFrame.Buffer {
|
||||||
private final int width;
|
private final int width;
|
||||||
private final int height;
|
private final int height;
|
||||||
|
@ -14,7 +14,6 @@ import java.nio.ByteBuffer;
|
|||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
public class NV21Buffer implements VideoFrame.Buffer {
|
public class NV21Buffer implements VideoFrame.Buffer {
|
||||||
private final byte[] data;
|
private final byte[] data;
|
||||||
private final int width;
|
private final int width;
|
||||||
|
@ -16,7 +16,6 @@ import javax.annotation.Nullable;
|
|||||||
* Implements VideoCapturer.CapturerObserver and feeds frames to
|
* Implements VideoCapturer.CapturerObserver and feeds frames to
|
||||||
* webrtc::jni::AndroidVideoTrackSource.
|
* webrtc::jni::AndroidVideoTrackSource.
|
||||||
*/
|
*/
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
class NativeCapturerObserver implements VideoCapturer.CapturerObserver {
|
class NativeCapturerObserver implements VideoCapturer.CapturerObserver {
|
||||||
// Pointer to webrtc::jni::AndroidVideoTrackSource.
|
// Pointer to webrtc::jni::AndroidVideoTrackSource.
|
||||||
private final long nativeSource;
|
private final long nativeSource;
|
||||||
|
@ -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();
|
|
||||||
}
|
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
class VP8Decoder extends WrappedNativeVideoDecoder {
|
class VP8Decoder extends WrappedNativeVideoDecoder {
|
||||||
@Override
|
@Override
|
||||||
long createNativeDecoder() {
|
long createNativeDecoder() {
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
class VP8Encoder extends WrappedNativeVideoEncoder {
|
class VP8Encoder extends WrappedNativeVideoEncoder {
|
||||||
@Override
|
@Override
|
||||||
long createNativeEncoder() {
|
long createNativeEncoder() {
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
class VP9Decoder extends WrappedNativeVideoDecoder {
|
class VP9Decoder extends WrappedNativeVideoDecoder {
|
||||||
@Override
|
@Override
|
||||||
long createNativeDecoder() {
|
long createNativeDecoder() {
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
package org.webrtc;
|
package org.webrtc;
|
||||||
|
|
||||||
@JNINamespace("webrtc::jni")
|
|
||||||
class VP9Encoder extends WrappedNativeVideoEncoder {
|
class VP9Encoder extends WrappedNativeVideoEncoder {
|
||||||
@Override
|
@Override
|
||||||
long createNativeEncoder() {
|
long createNativeEncoder() {
|
||||||
|
@ -22,7 +22,6 @@ class VideoDecoderWrapper {
|
|||||||
Integer qp) -> nativeOnDecodedFrame(nativeDecoder, frame, decodeTimeMs, qp);
|
Integer qp) -> nativeOnDecodedFrame(nativeDecoder, frame, decodeTimeMs, qp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::jni::VideoDecoderWrapper")
|
|
||||||
private static native void nativeOnDecodedFrame(
|
private static native void nativeOnDecodedFrame(
|
||||||
long nativeDecoder, VideoFrame frame, Integer decodeTimeMs, Integer qp);
|
long nativeVideoDecoderWrapper, VideoFrame frame, Integer decodeTimeMs, Integer qp);
|
||||||
}
|
}
|
||||||
|
@ -44,8 +44,7 @@ class VideoEncoderWrapper {
|
|||||||
frame.rotation, frame.completeFrame, frame.qp);
|
frame.rotation, frame.completeFrame, frame.qp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::jni::VideoEncoderWrapper")
|
private static native void nativeOnEncodedFrame(long nativeVideoEncoderWrapper, ByteBuffer buffer,
|
||||||
private static native void nativeOnEncodedFrame(long nativeEncoder, ByteBuffer buffer,
|
|
||||||
int encodedWidth, int encodedHeight, long captureTimeNs, int frameType, int rotation,
|
int encodedWidth, int encodedHeight, long captureTimeNs, int frameType, int rotation,
|
||||||
boolean completeFrame, Integer qp);
|
boolean completeFrame, Integer qp);
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,6 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import org.webrtc.CalledByNative;
|
import org.webrtc.CalledByNative;
|
||||||
import org.webrtc.Logging;
|
import org.webrtc.Logging;
|
||||||
import org.webrtc.NativeClassQualifiedName;
|
|
||||||
import org.webrtc.ThreadUtils;
|
import org.webrtc.ThreadUtils;
|
||||||
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback;
|
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback;
|
||||||
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordStartErrorCode;
|
import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordStartErrorCode;
|
||||||
@ -321,11 +320,9 @@ class WebRtcAudioRecord {
|
|||||||
return (channels == 1 ? AudioFormat.CHANNEL_IN_MONO : AudioFormat.CHANNEL_IN_STEREO);
|
return (channels == 1 ? AudioFormat.CHANNEL_IN_MONO : AudioFormat.CHANNEL_IN_STEREO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::android_adm::AudioRecordJni")
|
private native void nativeCacheDirectBufferAddress(
|
||||||
private native void nativeCacheDirectBufferAddress(long nativeAudioRecord, ByteBuffer byteBuffer);
|
long nativeAudioRecordJni, ByteBuffer byteBuffer);
|
||||||
|
private native void nativeDataIsRecorded(long nativeAudioRecordJni, int bytes);
|
||||||
@NativeClassQualifiedName("webrtc::android_adm::AudioRecordJni")
|
|
||||||
private native void nativeDataIsRecorded(long nativeAudioRecord, int bytes);
|
|
||||||
|
|
||||||
// Sets all recorded samples to zero if |mute| is true, i.e., ensures that
|
// Sets all recorded samples to zero if |mute| is true, i.e., ensures that
|
||||||
// the microphone is muted.
|
// the microphone is muted.
|
||||||
|
@ -26,7 +26,6 @@ import org.webrtc.ThreadUtils;
|
|||||||
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback;
|
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback;
|
||||||
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackStartErrorCode;
|
import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackStartErrorCode;
|
||||||
import org.webrtc.CalledByNative;
|
import org.webrtc.CalledByNative;
|
||||||
import org.webrtc.NativeClassQualifiedName;
|
|
||||||
|
|
||||||
class WebRtcAudioTrack {
|
class WebRtcAudioTrack {
|
||||||
private static final String TAG = "WebRtcAudioTrackExternal";
|
private static final String TAG = "WebRtcAudioTrackExternal";
|
||||||
@ -443,12 +442,9 @@ class WebRtcAudioTrack {
|
|||||||
return (channels == 1 ? AudioFormat.CHANNEL_OUT_MONO : AudioFormat.CHANNEL_OUT_STEREO);
|
return (channels == 1 ? AudioFormat.CHANNEL_OUT_MONO : AudioFormat.CHANNEL_OUT_STEREO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NativeClassQualifiedName("webrtc::android_adm::AudioTrackJni")
|
|
||||||
private static native void nativeCacheDirectBufferAddress(
|
private static native void nativeCacheDirectBufferAddress(
|
||||||
long nativeAudioRecord, ByteBuffer byteBuffer);
|
long nativeAudioTrackJni, ByteBuffer byteBuffer);
|
||||||
|
private static native void nativeGetPlayoutData(long nativeAudioTrackJni, int bytes);
|
||||||
@NativeClassQualifiedName("webrtc::android_adm::AudioTrackJni")
|
|
||||||
private static native void nativeGetPlayoutData(long nativeAudioRecord, int bytes);
|
|
||||||
|
|
||||||
// Sets all samples to be played out to zero if |mute| is true, i.e.,
|
// Sets all samples to be played out to zero if |mute| is true, i.e.,
|
||||||
// ensures that the speaker is muted.
|
// ensures that the speaker is muted.
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
enum AudioDeviceMessageType : uint32_t {
|
enum AudioDeviceMessageType : uint32_t {
|
||||||
kMessageOutputStreamDisconnected,
|
kMessageOutputStreamDisconnected,
|
||||||
@ -241,6 +241,6 @@ void AAudioPlayer::HandleStreamDisconnected() {
|
|||||||
StartPlayout();
|
StartPlayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -29,7 +29,7 @@ namespace webrtc {
|
|||||||
class AudioDeviceBuffer;
|
class AudioDeviceBuffer;
|
||||||
class FineAudioBuffer;
|
class FineAudioBuffer;
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Implements low-latency 16-bit mono PCM audio output support for Android
|
// Implements low-latency 16-bit mono PCM audio output support for Android
|
||||||
// using the C based AAudio API.
|
// 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;
|
double latency_millis_ RTC_GUARDED_BY(thread_checker_aaudio_) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
enum AudioDeviceMessageType : uint32_t {
|
enum AudioDeviceMessageType : uint32_t {
|
||||||
kMessageInputStreamDisconnected,
|
kMessageInputStreamDisconnected,
|
||||||
@ -230,6 +230,6 @@ void AAudioRecorder::HandleStreamDisconnected() {
|
|||||||
StartRecording();
|
StartRecording();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -27,7 +27,7 @@ namespace webrtc {
|
|||||||
class FineAudioBuffer;
|
class FineAudioBuffer;
|
||||||
class AudioDeviceBuffer;
|
class AudioDeviceBuffer;
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Implements low-latency 16-bit mono PCM audio input support for Android
|
// Implements low-latency 16-bit mono PCM audio input support for Android
|
||||||
// using the C based AAudio API.
|
// using the C based AAudio API.
|
||||||
@ -126,7 +126,7 @@ class AAudioRecorder : public AudioInput,
|
|||||||
bool first_data_callback_ = true;
|
bool first_data_callback_ = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -496,6 +496,6 @@ bool AAudioWrapper::OptimizeBuffers() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// AAudio callback interface for audio transport to/from the AAudio stream.
|
// AAudio callback interface for audio transport to/from the AAudio stream.
|
||||||
// The interface also contains an error callback method for notifications of
|
// The interface also contains an error callback method for notifications of
|
||||||
@ -122,7 +122,7 @@ class AAudioWrapper {
|
|||||||
int32_t frames_per_burst_ = 0;
|
int32_t frames_per_burst_ = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
const int kDefaultSampleRate = 44100;
|
const int kDefaultSampleRate = 44100;
|
||||||
// Delay estimates for the two different supported modes. These values are based
|
// 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 kLowLatencyModeDelayEstimateInMilliseconds = 50;
|
||||||
const int kHighLatencyModeDelayEstimateInMilliseconds = 150;
|
const int kHighLatencyModeDelayEstimateInMilliseconds = 150;
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -20,8 +20,7 @@
|
|||||||
#include "system_wrappers/include/metrics.h"
|
#include "system_wrappers/include/metrics.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
namespace jni {
|
||||||
namespace android_adm {
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -632,6 +631,5 @@ rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceModuleFromInputAndOutput(
|
|||||||
playout_delay_ms, std::move(audio_input), std::move(audio_output));
|
playout_delay_ms, std::move(audio_input), std::move(audio_output));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -18,8 +18,7 @@
|
|||||||
#include "sdk/android/native_api/jni/scoped_java_ref.h"
|
#include "sdk/android/native_api/jni/scoped_java_ref.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
namespace jni {
|
||||||
namespace android_adm {
|
|
||||||
|
|
||||||
class AudioInput {
|
class AudioInput {
|
||||||
public:
|
public:
|
||||||
@ -91,7 +90,7 @@ rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceModuleFromInputAndOutput(
|
|||||||
std::unique_ptr<AudioInput> audio_input,
|
std::unique_ptr<AudioInput> audio_input,
|
||||||
std::unique_ptr<AudioOutput> audio_output);
|
std::unique_ptr<AudioOutput> audio_output);
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
// Scoped class which logs its time of life as a UMA statistic. It generates
|
// 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
|
} // namespace webrtc
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Implements 16-bit mono PCM audio input support for Android using the Java
|
// 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
|
// 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_;
|
AudioDeviceBuffer* audio_device_buffer_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
ScopedJavaLocalRef<jobject> AudioTrackJni::CreateJavaWebRtcAudioTrack(
|
ScopedJavaLocalRef<jobject> AudioTrackJni::CreateJavaWebRtcAudioTrack(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
@ -216,6 +216,6 @@ void AudioTrackJni::GetPlayoutData(JNIEnv* env,
|
|||||||
RTC_DCHECK_EQ(length, bytes_per_frame * samples);
|
RTC_DCHECK_EQ(length, bytes_per_frame * samples);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Implements 16-bit mono PCM audio output support for Android using the Java
|
// 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
|
// 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_;
|
AudioDeviceBuffer* audio_device_buffer_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -28,20 +28,18 @@ static jlong JNI_JavaAudioDeviceModule_CreateAudioDeviceModule(
|
|||||||
jboolean j_use_stereo_output) {
|
jboolean j_use_stereo_output) {
|
||||||
AudioParameters input_parameters;
|
AudioParameters input_parameters;
|
||||||
AudioParameters output_parameters;
|
AudioParameters output_parameters;
|
||||||
android_adm::GetAudioParameters(env, j_context, j_audio_manager, sample_rate,
|
GetAudioParameters(env, j_context, j_audio_manager, sample_rate,
|
||||||
j_use_stereo_input, j_use_stereo_output,
|
j_use_stereo_input, j_use_stereo_output, &input_parameters,
|
||||||
&input_parameters, &output_parameters);
|
&output_parameters);
|
||||||
auto audio_input = rtc::MakeUnique<android_adm::AudioRecordJni>(
|
auto audio_input = rtc::MakeUnique<AudioRecordJni>(
|
||||||
env, input_parameters,
|
env, input_parameters, kHighLatencyModeDelayEstimateInMilliseconds,
|
||||||
android_adm::kHighLatencyModeDelayEstimateInMilliseconds,
|
|
||||||
j_webrtc_audio_record);
|
j_webrtc_audio_record);
|
||||||
auto audio_output = rtc::MakeUnique<android_adm::AudioTrackJni>(
|
auto audio_output = rtc::MakeUnique<AudioTrackJni>(env, output_parameters,
|
||||||
env, output_parameters, j_webrtc_audio_track);
|
j_webrtc_audio_track);
|
||||||
return jlongFromPointer(
|
return jlongFromPointer(CreateAudioDeviceModuleFromInputAndOutput(
|
||||||
CreateAudioDeviceModuleFromInputAndOutput(
|
AudioDeviceModule::kAndroidJavaAudio,
|
||||||
AudioDeviceModule::kAndroidJavaAudio, j_use_stereo_input,
|
j_use_stereo_input, j_use_stereo_output,
|
||||||
j_use_stereo_output,
|
kHighLatencyModeDelayEstimateInMilliseconds,
|
||||||
android_adm::kHighLatencyModeDelayEstimateInMilliseconds,
|
|
||||||
std::move(audio_input), std::move(audio_output))
|
std::move(audio_input), std::move(audio_output))
|
||||||
.release());
|
.release());
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Returns a string representation given an integer SL_RESULT_XXX code.
|
// Returns a string representation given an integer SL_RESULT_XXX code.
|
||||||
// The mapping can be found in <SLES/OpenSLES.h>.
|
// The mapping can be found in <SLES/OpenSLES.h>.
|
||||||
@ -140,6 +140,6 @@ SLObjectItf OpenSLEngineManager::GetOpenSLEngine() {
|
|||||||
return engine_object_.Get();
|
return engine_object_.Get();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Returns a string representation given an integer SL_RESULT_XXX code.
|
// Returns a string representation given an integer SL_RESULT_XXX code.
|
||||||
// The mapping can be found in <SLES/OpenSLES.h>.
|
// The mapping can be found in <SLES/OpenSLES.h>.
|
||||||
@ -83,7 +83,7 @@ class OpenSLEngineManager {
|
|||||||
ScopedSLObjectItf engine_object_;
|
ScopedSLObjectItf engine_object_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
OpenSLESPlayer::OpenSLESPlayer(
|
OpenSLESPlayer::OpenSLESPlayer(
|
||||||
const AudioParameters& audio_parameters,
|
const AudioParameters& audio_parameters,
|
||||||
@ -441,6 +441,6 @@ SLuint32 OpenSLESPlayer::GetPlayState() const {
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -29,7 +29,7 @@ namespace webrtc {
|
|||||||
|
|
||||||
class FineAudioBuffer;
|
class FineAudioBuffer;
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Implements 16-bit mono PCM audio output support for Android using the
|
// 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.
|
// 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_;
|
uint32_t last_play_time_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
OpenSLESRecorder::OpenSLESRecorder(const AudioParameters& audio_parameters,
|
OpenSLESRecorder::OpenSLESRecorder(const AudioParameters& audio_parameters,
|
||||||
OpenSLEngineManager* engine_manager)
|
OpenSLEngineManager* engine_manager)
|
||||||
@ -441,6 +441,6 @@ SLuint32 OpenSLESRecorder::GetBufferCount() {
|
|||||||
return state.count;
|
return state.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -29,7 +29,7 @@ namespace webrtc {
|
|||||||
|
|
||||||
class FineAudioBuffer;
|
class FineAudioBuffer;
|
||||||
|
|
||||||
namespace android_adm {
|
namespace jni {
|
||||||
|
|
||||||
// Implements 16-bit mono PCM audio input support for Android using the
|
// 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.
|
// 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_;
|
uint32_t last_rec_time_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace android_adm
|
} // namespace jni
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user