Android: Clean up JNI generated code

It's now possible to generate JNI code for constructors and enums
correctly. This CL cleans that up.

Bug: webrtc:8278,webrtc:8551,webrtc:8556
Change-Id: I2284a30139cbb186c80713eb6113eda5659c16ad
Reviewed-on: https://webrtc-review.googlesource.com/25622
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20860}
This commit is contained in:
Magnus Jedvert
2017-11-23 16:56:44 +01:00
committed by Commit Bot
parent aea1d1ad3f
commit 1f2a3e7058
14 changed files with 23 additions and 68 deletions

View File

@ -12,8 +12,6 @@ package org.webrtc;
import java.nio.ByteBuffer;
import java.util.concurrent.TimeUnit;
// TODO(bugs.webrtc.org/8556): Remove unnecessary import.
import org.webrtc.EncodedImage;
/**
* An encoded frame from a video stream. Used as an input for decoders and as an output for
@ -36,9 +34,8 @@ public class EncodedImage {
return nativeIndex;
}
// TODO(bugs.webrtc.org/8556): Remove unnecessary 'EncodedImage.'.
@CalledByNative("FrameType")
static EncodedImage.FrameType fromNativeIndex(int nativeIndex) {
static FrameType fromNativeIndex(int nativeIndex) {
for (FrameType type : FrameType.values()) {
if (type.getNative() == nativeIndex) {
return type;
@ -58,6 +55,7 @@ public class EncodedImage {
public final boolean completeFrame;
public final Integer qp;
@CalledByNative
private EncodedImage(ByteBuffer buffer, int encodedWidth, int encodedHeight, long captureTimeNs,
FrameType frameType, int rotation, boolean completeFrame, Integer qp) {
this.buffer = buffer;
@ -138,13 +136,4 @@ public class EncodedImage {
rotation, completeFrame, qp);
}
}
// TODO(bugs.webrtc.org/8551) Remove.
@CalledByNative
static EncodedImage create(ByteBuffer buffer, int encodedWidth, int encodedHeight,
long captureTimeNs, EncodedImage.FrameType frameType, int rotation, boolean completeFrame,
Integer qp) {
return new EncodedImage(
buffer, encodedWidth, encodedHeight, captureTimeNs, frameType, rotation, completeFrame, qp);
}
}

View File

@ -38,6 +38,9 @@ public class Metrics {
public final Map<String, HistogramInfo> map =
new HashMap<String, HistogramInfo>(); // <name, HistogramInfo>
@CalledByNative
Metrics() {}
/**
* Class holding histogram information.
*/
@ -48,6 +51,7 @@ public class Metrics {
public final Map<Integer, Integer> samples =
new HashMap<Integer, Integer>(); // <value, # of events>
@CalledByNative("HistogramInfo")
public HistogramInfo(int min, int max, int bucketCount) {
this.min = min;
this.max = max;
@ -76,18 +80,6 @@ public class Metrics {
return getAndResetNative();
}
// TODO(bugs.webrtc.org/8551) Remove.
@CalledByNative
static Metrics createMetrics() {
return new Metrics();
}
// TODO(bugs.webrtc.org/8551) Remove.
@CalledByNative
static HistogramInfo createHistogramInfo(int min, int max, int bucketCount) {
return new HistogramInfo(min, max, bucketCount);
}
private static native void enableNative();
private static native Metrics getAndResetNative();
}

View File

@ -35,7 +35,6 @@ import java.net.SocketException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.webrtc.NetworkMonitorAutoDetect;
/**
* Borrowed from Chromium's
@ -90,7 +89,7 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
}
@CalledByNative("NetworkInformation")
private NetworkMonitorAutoDetect.ConnectionType getConnectionType() {
private ConnectionType getConnectionType() {
return type;
}

View File

@ -21,6 +21,7 @@ public interface VideoDecoder {
public final int width;
public final int height;
@CalledByNative("Settings")
public Settings(int numberOfCores, int width, int height) {
this.numberOfCores = numberOfCores;
this.width = width;

View File

@ -10,6 +10,8 @@
package org.webrtc;
import org.webrtc.EncodedImage;
/**
* Interface for a video encoder that can be used with WebRTC. All calls will be made on the
* encoding thread. The encoder may be constructed on a different thread and changing thread after
@ -25,6 +27,7 @@ public interface VideoEncoder {
public final int maxFramerate;
public final boolean automaticResizeOn;
@CalledByNative("Settings")
public Settings(int numberOfCores, int width, int height, int startBitrate, int maxFramerate,
boolean automaticResizeOn) {
this.numberOfCores = numberOfCores;
@ -40,6 +43,7 @@ public interface VideoEncoder {
public class EncodeInfo {
public final EncodedImage.FrameType[] frameTypes;
@CalledByNative("EncodeInfo")
public EncodeInfo(EncodedImage.FrameType[] frameTypes) {
this.frameTypes = frameTypes;
}
@ -67,6 +71,7 @@ public interface VideoEncoder {
* Initializes the allocation with a two dimensional array of bitrates. The first index of the
* array is the spatial layer and the second index in the temporal layer.
*/
@CalledByNative("BitrateAllocation")
public BitrateAllocation(int[][] bitratesBbs) {
this.bitratesBbs = bitratesBbs;
}

View File

@ -121,6 +121,7 @@ public class VideoFrame {
private final int rotation;
private final long timestampNs;
@CalledByNative
public VideoFrame(Buffer buffer, int rotation, long timestampNs) {
if (buffer == null) {
throw new IllegalArgumentException("buffer not allowed to be null");
@ -206,12 +207,6 @@ public class VideoFrame {
return newBuffer;
}
// TODO(bugs.webrtc.org/8278): Add a way to generate JNI code for constructors directly.
@CalledByNative
static VideoFrame create(Buffer buffer, int rotation, long timestampNs) {
return new VideoFrame(buffer, rotation, timestampNs);
}
private static native void cropAndScaleI420Native(ByteBuffer srcY, int srcStrideY,
ByteBuffer srcU, int srcStrideU, ByteBuffer srcV, int srcStrideV, int cropX, int cropY,
int cropWidth, int cropHeight, ByteBuffer dstY, int dstStrideY, ByteBuffer dstU,