mirror of https://github.com/NekoX-Dev/NekoX.git
55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
/*
|
|
* Copyright 2015 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.
|
|
*/
|
|
#include "sdk/android/src/jni/jni_helpers.h"
|
|
|
|
#include <vector>
|
|
|
|
#include "sdk/android/native_api/jni/java_types.h"
|
|
#include "tgnet/FileLog.h"
|
|
|
|
namespace webrtc {
|
|
namespace jni {
|
|
|
|
ScopedJavaLocalRef<jobject> NewDirectByteBuffer(JNIEnv* env,
|
|
void* address,
|
|
jlong capacity) {
|
|
ScopedJavaLocalRef<jobject> buffer(
|
|
env, env->NewDirectByteBuffer(address, capacity));
|
|
CHECK_EXCEPTION(env) << "error NewDirectByteBuffer";
|
|
return buffer;
|
|
}
|
|
|
|
jobject NewGlobalRef(JNIEnv* jni, jobject o) {
|
|
DEBUG_REF("webrtc 2 new global ref");
|
|
jobject ret = jni->NewGlobalRef(o);
|
|
CHECK_EXCEPTION(jni) << "error during NewGlobalRef";
|
|
RTC_CHECK(ret);
|
|
return ret;
|
|
}
|
|
|
|
void DeleteGlobalRef(JNIEnv* jni, jobject o) {
|
|
DEBUG_DELREF("webrtc 2 delete global ref");
|
|
jni->DeleteGlobalRef(o);
|
|
CHECK_EXCEPTION(jni) << "error during DeleteGlobalRef";
|
|
}
|
|
|
|
// Scope Java local references to the lifetime of this object. Use in all C++
|
|
// callbacks (i.e. entry points that don't originate in a Java callstack
|
|
// through a "native" method call).
|
|
ScopedLocalRefFrame::ScopedLocalRefFrame(JNIEnv* jni) : jni_(jni) {
|
|
RTC_CHECK(!jni_->PushLocalFrame(0)) << "Failed to PushLocalFrame";
|
|
}
|
|
ScopedLocalRefFrame::~ScopedLocalRefFrame() {
|
|
jni_->PopLocalFrame(nullptr);
|
|
}
|
|
|
|
} // namespace jni
|
|
} // namespace webrtc
|