Relevant changes: * src/buildtools: ecc8e25..565d04e * src/testing/gmock: 2976396..0421b6f * src/testing/gtest: 23574bf..9855a87 * src/third_party/android_tools: 21f4bcb..4238a28 * src/third_party/boringssl/src: de24aad..12fe1b2 * src/third_party/icu: c81a1a3..6b3ce81 * src/third_party/libjpeg_turbo: f4631b6..631e2dd * src/third_party/libsrtp: 9c53f85..502e81a * src/third_party/libvpx: aa9b5f1..a208eca * src/third_party/libyuv: 6dde4f1..3c4f573 * src/third_party/openmax_dl: 22bb108..2eb98d8 * src/tools/grit: 1dac9ae..15d48e3 * src/tools/gyp: 5122240..6ee91ad * src/tools/swarming_client: b39a448..2866a22 Details:f8d6ba9..a28d8d5/DEPS Clang version changed 245402:245965 Details:f8d6ba9..a28d8d5/tools/clang/scripts/update.sh BUG=None R=glaznev@webrtc.org TBR=glaznev@chromium.org, henrika@chromium.org Review URL: https://codereview.webrtc.org/1308693010 . Cr-Commit-Position: refs/heads/master@{#9818}
47 lines
1.7 KiB
C++
47 lines
1.7 KiB
C++
/*
|
|
* Copyright (c) 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 "webrtc/modules/audio_device/android/ensure_initialized.h"
|
|
|
|
#include <pthread.h>
|
|
|
|
// Note: this dependency is dangerous since it reaches into Chromium's
|
|
// base. You can't include anything in this file that includes WebRTC's
|
|
// base/checks.h, for instance, since it will clash with Chromium's
|
|
// logging.h. Therefore, the CHECKs in this file will actually use
|
|
// Chromium's checks rather than the WebRTC ones.
|
|
#include "base/android/jni_android.h"
|
|
#include "webrtc/modules/audio_device/android/audio_record_jni.h"
|
|
#include "webrtc/modules/audio_device/android/audio_track_jni.h"
|
|
#include "webrtc/modules/utility/interface/jvm_android.h"
|
|
|
|
namespace webrtc {
|
|
namespace audiodevicemodule {
|
|
|
|
static pthread_once_t g_initialize_once = PTHREAD_ONCE_INIT;
|
|
|
|
void EnsureInitializedOnce() {
|
|
CHECK(::base::android::IsVMInitialized());
|
|
JNIEnv* jni = ::base::android::AttachCurrentThread();
|
|
JavaVM* jvm = NULL;
|
|
CHECK_EQ(0, jni->GetJavaVM(&jvm));
|
|
jobject context = ::base::android::GetApplicationContext();
|
|
|
|
// Initialize the Java environment (currently only used by the audio manager).
|
|
webrtc::JVM::Initialize(jvm, context);
|
|
}
|
|
|
|
void EnsureInitialized() {
|
|
CHECK_EQ(0, pthread_once(&g_initialize_once, &EnsureInitializedOnce));
|
|
}
|
|
|
|
} // namespace audiodevicemodule
|
|
} // namespace webrtc
|