Create an experimental Android NDK.
Following files were split: sdk/android/native_api/jni_helpers.h -> sdk/android/native_api/jni/java_types.h sdk/android/native_api/jni_helpers.cc -> sdk/android/native_api/jni/java_types.cc Skipping presubmit to avoid changing moved code. Bug: webrtc:8769 Change-Id: I0ef0f6b297b5002322915660d26cca33e91ff05b No-Presubmit: true Reviewed-on: https://webrtc-review.googlesource.com/40800 Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21799}
This commit is contained in:
committed by
Commit Bot
parent
4f6e4f0884
commit
82f96e6a56
@ -12,8 +12,7 @@
|
||||
|
||||
#include "modules/video_coding/codecs/test/android_test_initializer.h"
|
||||
#include "rtc_base/ignore_wundef.h"
|
||||
#include "sdk/android/src/jni/classreferenceholder.h"
|
||||
#include "sdk/android/src/jni/jni_helpers.h"
|
||||
#include "sdk/android/native_api/base/init.h"
|
||||
|
||||
// Note: this dependency is dangerous since it reaches into Chromium's base.
|
||||
// There's a risk of e.g. macro clashes. This file may only be used in tests.
|
||||
@ -40,10 +39,7 @@ void EnsureInitializedOnce() {
|
||||
JavaVM* jvm = NULL;
|
||||
RTC_CHECK_EQ(0, jni->GetJavaVM(&jvm));
|
||||
|
||||
jint ret = jni::InitGlobalJniVariables(jvm);
|
||||
RTC_DCHECK_GE(ret, 0);
|
||||
|
||||
jni::LoadGlobalClassReferenceHolder();
|
||||
InitAndroid(jvm);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@ -15,9 +15,10 @@
|
||||
|
||||
#if defined(WEBRTC_ANDROID)
|
||||
#include "modules/video_coding/codecs/test/android_test_initializer.h"
|
||||
#include "sdk/android/src/jni/class_loader.h"
|
||||
#include "sdk/android/src/jni/videodecoderfactorywrapper.h"
|
||||
#include "sdk/android/src/jni/videoencoderfactorywrapper.h"
|
||||
#include "sdk/android/native_api/codecs/wrapper.h"
|
||||
#include "sdk/android/native_api/jni/class_loader.h"
|
||||
#include "sdk/android/native_api/jni/jvm.h"
|
||||
#include "sdk/android/native_api/jni/scoped_java_ref.h"
|
||||
#elif defined(WEBRTC_IOS)
|
||||
#include "modules/video_coding/codecs/test/objc_codec_h264_test.h"
|
||||
#endif
|
||||
@ -375,18 +376,18 @@ void VideoProcessorIntegrationTest::CreateEncoderAndDecoder() {
|
||||
std::unique_ptr<VideoEncoderFactory> encoder_factory;
|
||||
if (config_.hw_encoder) {
|
||||
#if defined(WEBRTC_ANDROID)
|
||||
JNIEnv* env = jni::AttachCurrentThreadIfNeeded();
|
||||
jni::ScopedJavaLocalRef<jclass> factory_class =
|
||||
jni::GetClass(env, "org/webrtc/HardwareVideoEncoderFactory");
|
||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||
ScopedJavaLocalRef<jclass> factory_class =
|
||||
GetClass(env, "org/webrtc/HardwareVideoEncoderFactory");
|
||||
jmethodID factory_constructor = env->GetMethodID(
|
||||
factory_class.obj(), "<init>", "(Lorg/webrtc/EglBase$Context;ZZ)V");
|
||||
jni::ScopedJavaLocalRef<jobject> factory_object(
|
||||
ScopedJavaLocalRef<jobject> factory_object(
|
||||
env, env->NewObject(factory_class.obj(), factory_constructor,
|
||||
nullptr /* shared_context */,
|
||||
false /* enable_intel_vp8_encoder */,
|
||||
true /* enable_h264_high_profile */));
|
||||
encoder_factory = rtc::MakeUnique<webrtc::jni::VideoEncoderFactoryWrapper>(
|
||||
env, factory_object);
|
||||
encoder_factory =
|
||||
JavaToNativeVideoEncoderFactory(env, factory_object.obj());
|
||||
#elif defined(WEBRTC_IOS)
|
||||
EXPECT_EQ(kVideoCodecH264, config_.codec_settings.codecType)
|
||||
<< "iOS HW codecs only support H264.";
|
||||
@ -401,16 +402,16 @@ void VideoProcessorIntegrationTest::CreateEncoderAndDecoder() {
|
||||
std::unique_ptr<VideoDecoderFactory> decoder_factory;
|
||||
if (config_.hw_decoder) {
|
||||
#if defined(WEBRTC_ANDROID)
|
||||
JNIEnv* env = jni::AttachCurrentThreadIfNeeded();
|
||||
jni::ScopedJavaLocalRef<jclass> factory_class =
|
||||
jni::GetClass(env, "org/webrtc/HardwareVideoDecoderFactory");
|
||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||
ScopedJavaLocalRef<jclass> factory_class =
|
||||
GetClass(env, "org/webrtc/HardwareVideoDecoderFactory");
|
||||
jmethodID factory_constructor = env->GetMethodID(
|
||||
factory_class.obj(), "<init>", "(Lorg/webrtc/EglBase$Context;)V");
|
||||
jni::ScopedJavaLocalRef<jobject> factory_object(
|
||||
ScopedJavaLocalRef<jobject> factory_object(
|
||||
env, env->NewObject(factory_class.obj(), factory_constructor,
|
||||
nullptr /* shared_context */));
|
||||
decoder_factory = rtc::MakeUnique<webrtc::jni::VideoDecoderFactoryWrapper>(
|
||||
env, factory_object);
|
||||
decoder_factory =
|
||||
JavaToNativeVideoDecoderFactory(env, factory_object.obj());
|
||||
#elif defined(WEBRTC_IOS)
|
||||
EXPECT_EQ(kVideoCodecH264, config_.codec_settings.codecType)
|
||||
<< "iOS HW codecs only support H264.";
|
||||
|
||||
Reference in New Issue
Block a user