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

@ -19,7 +19,7 @@ import java.lang.annotation.Target;
* @CalledByNative is used by the JNI generator to create the necessary JNI
* bindings and expose this method to native code.
*/
@Target(ElementType.METHOD)
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
@Retention(RetentionPolicy.CLASS)
@interface CalledByNative {
/*

View File

@ -16,12 +16,6 @@ import org.webrtc.VideoDecoder;
* This class contains the Java glue code for JNI generation of VideoDecoder.
*/
class VideoDecoderWrapper {
// TODO(bugs.webrtc.org/8551) Remove.
@CalledByNative
static VideoDecoder.Settings createSettings(int numberOfCores, int width, int height) {
return new VideoDecoder.Settings(numberOfCores, width, height);
}
@CalledByNative
static VideoDecoder.Callback createDecoderCallback(final long nativeDecoder) {
return (VideoFrame frame, Integer decodeTimeMs,

View File

@ -11,7 +11,6 @@
package org.webrtc;
// Explicit imports necessary for JNI generation.
import org.webrtc.EncodedImage;
import org.webrtc.VideoEncoder;
import java.nio.ByteBuffer;
@ -19,23 +18,6 @@ import java.nio.ByteBuffer;
* This class contains the Java glue code for JNI generation of VideoEncoder.
*/
class VideoEncoderWrapper {
@CalledByNative
static VideoEncoder.Settings createSettings(int numberOfCores, int width, int height,
int startBitrate, int maxFramerate, boolean automaticResizeOn) {
return new VideoEncoder.Settings(
numberOfCores, width, height, startBitrate, maxFramerate, automaticResizeOn);
}
@CalledByNative
static VideoEncoder.EncodeInfo createEncodeInfo(EncodedImage.FrameType[] frameTypes) {
return new VideoEncoder.EncodeInfo(frameTypes);
}
@CalledByNative
static VideoEncoder.BitrateAllocation createBitrateAllocation(int[][] bitratesBbs) {
return new VideoEncoder.BitrateAllocation(bitratesBbs);
}
@CalledByNative
static boolean getScalingSettingsOn(VideoEncoder.ScalingSettings scalingSettings) {
return scalingSettings.on;

View File

@ -30,13 +30,13 @@ JNI_FUNCTION_DECLARATION(jobject,
Metrics_getAndResetNative,
JNIEnv* jni,
jclass) {
jobject j_metrics = Java_Metrics_createMetrics(jni);
jobject j_metrics = Java_Metrics_Constructor(jni);
std::map<std::string, std::unique_ptr<metrics::SampleInfo>> histograms;
metrics::GetAndReset(&histograms);
for (const auto& kv : histograms) {
// Create and add samples to |HistogramInfo|.
jobject j_info = Java_Metrics_createHistogramInfo(
jobject j_info = Java_HistogramInfo_Constructor(
jni, kv.second->min, kv.second->max,
static_cast<int>(kv.second->bucket_count));
for (const auto& sample : kv.second->samples) {

View File

@ -25,7 +25,7 @@ jobject NativeToJavaEncodedImage(JNIEnv* jni, const EncodedImage& image) {
jobject buffer = jni->NewDirectByteBuffer(image._buffer, image._length);
jobject frame_type = NativeToJavaFrameType(jni, image._frameType);
jobject qp = (image.qp_ == -1) ? nullptr : JavaIntegerFromInt(jni, image.qp_);
return Java_EncodedImage_create(
return Java_EncodedImage_Constructor(
jni, buffer, image._encodedWidth, image._encodedHeight,
image.capture_time_ms_ * rtc::kNumNanosecsPerMillisec, frame_type,
static_cast<jint>(image.rotation_), image._completeFrame, qp);

View File

@ -57,7 +57,7 @@ int32_t VideoDecoderWrapper::InitDecode(const VideoCodec* codec_settings,
}
int32_t VideoDecoderWrapper::InitDecodeInternal(JNIEnv* jni) {
jobject settings = Java_VideoDecoderWrapper_createSettings(
jobject settings = Java_Settings_Constructor(
jni, number_of_cores_, codec_settings_.width, codec_settings_.height);
jobject callback = Java_VideoDecoderWrapper_createDecoderCallback(

View File

@ -74,7 +74,7 @@ int32_t VideoEncoderWrapper::InitEncodeInternal(JNIEnv* jni) {
automatic_resize_on = true;
}
jobject settings = Java_VideoEncoderWrapper_createSettings(
jobject settings = Java_Settings_Constructor(
jni, number_of_cores_, codec_settings_.width, codec_settings_.height,
codec_settings_.startBitrate, codec_settings_.maxFramerate,
automatic_resize_on);
@ -127,8 +127,7 @@ int32_t VideoEncoderWrapper::Encode(
jobject j_frame_type = NativeToJavaFrameType(jni, (*frame_types)[i]);
jni->SetObjectArrayElement(j_frame_types, i, j_frame_type);
}
jobject encode_info =
Java_VideoEncoderWrapper_createEncodeInfo(jni, j_frame_types);
jobject encode_info = Java_EncodeInfo_Constructor(jni, j_frame_types);
FrameExtraInfo info;
info.capture_time_ns = frame.timestamp_us() * rtc::kNumNanosecsPerMicrosec;
@ -385,8 +384,7 @@ jobject VideoEncoderWrapper::ToJavaBitrateAllocation(
jni->SetObjectArrayElement(j_allocation_array, spatial_i,
j_array_spatial_layer);
}
return Java_VideoEncoderWrapper_createBitrateAllocation(jni,
j_allocation_array);
return Java_BitrateAllocation_Constructor(jni, j_allocation_array);
}
std::string VideoEncoderWrapper::GetImplementationName(JNIEnv* jni) const {

View File

@ -403,7 +403,7 @@ jobject NativeToJavaFrame(JNIEnv* jni, const VideoFrame& frame) {
} else {
j_buffer = WrapI420Buffer(jni, buffer->ToI420());
}
return Java_VideoFrame_create(
return Java_VideoFrame_Constructor(
jni, j_buffer, static_cast<jint>(frame.rotation()),
static_cast<jlong>(frame.timestamp_us() * rtc::kNumNanosecsPerMicrosec));
}