blob: b8b4adf367d60edfedaed748871fbf7a4e02104f [file] [log] [blame]
qiangchen42f96d52017-08-08 17:08:03 -07001/*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include <jni.h>
12#undef JNIEXPORT
13#define JNIEXPORT __attribute__((visibility("default")))
14
15#include "webrtc/examples/unityplugin/classreferenceholder.h"
16#include "webrtc/rtc_base/ssladapter.h"
17#include "webrtc/sdk/android/src/jni/classreferenceholder.h"
18#include "webrtc/sdk/android/src/jni/jni_helpers.h"
19
20namespace webrtc_jni {
21
22extern "C" jint JNIEXPORT JNICALL JNI_OnLoad(JavaVM* jvm, void* reserved) {
23 jint ret = InitGlobalJniVariables(jvm);
24 RTC_DCHECK_GE(ret, 0);
25 if (ret < 0)
26 return -1;
27
28 RTC_CHECK(rtc::InitializeSSL()) << "Failed to InitializeSSL()";
29 LoadGlobalClassReferenceHolder();
30 unity_plugin::LoadGlobalClassReferenceHolder();
31
32 return ret;
33}
34
35extern "C" void JNIEXPORT JNICALL JNI_OnUnLoad(JavaVM* jvm, void* reserved) {
36 FreeGlobalClassReferenceHolder();
37 unity_plugin::FreeGlobalClassReferenceHolder();
38 RTC_CHECK(rtc::CleanupSSL()) << "Failed to CleanupSSL()";
39}
40
41} // namespace webrtc_jni