summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorAman Gupta <aman@tmm1.net>2020-03-12 13:32:51 -0700
committersfan5 <sfan5@live.de>2020-03-12 22:08:25 +0100
commit5105a3b05ae7707f89bc269af7d8321e5ddb4fed (patch)
treeef2b59830ffbedb3f251c029df5ac75ccc1b4944 /video
parentc05e5d9d78af0c36bc8f54fe00ccf9248d69260a (diff)
downloadmpv-5105a3b05ae7707f89bc269af7d8321e5ddb4fed.tar.bz2
mpv-5105a3b05ae7707f89bc269af7d8321e5ddb4fed.tar.xz
video/out/android_common: use jni helpers
Signed-off-by: Aman Gupta <aman@tmm1.net>
Diffstat (limited to 'video')
-rw-r--r--video/out/android_common.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/video/out/android_common.c b/video/out/android_common.c
index f333d56325..24b87d6017 100644
--- a/video/out/android_common.c
+++ b/video/out/android_common.c
@@ -20,6 +20,7 @@
#include "android_common.h"
#include "common/msg.h"
+#include "misc/jni.h"
#include "options/m_config.h"
#include "vo.h"
@@ -51,18 +52,18 @@ int vo_android_init(struct vo *vo)
.log = mp_log_new(ctx, vo->log, "android"),
};
- jobject surface = (jobject)(intptr_t)vo->opts->WinID;
- JavaVM *vm = (JavaVM *)av_jni_get_java_vm(NULL);
- JNIEnv *env;
- int ret = (*vm)->GetEnv(vm, (void**)&env, JNI_VERSION_1_6);
- if (ret == JNI_EDETACHED) {
- if ((*vm)->AttachCurrentThread(vm, &env, NULL) != 0) {
- MP_FATAL(ctx, "Could not attach Java VM.\n");
- goto fail;
- }
+ JNIEnv *env = MP_JNI_GET_ENV(ctx);
+ if (!env) {
+ MP_FATAL(ctx, "Could not attach java VM.\n");
+ goto fail;
}
+
+ jobject surface = (jobject)(intptr_t)vo->opts->WinID;
ctx->native_window = ANativeWindow_fromSurface(env, surface);
- (*vm)->DetachCurrentThread(vm);
+ if (!ctx->native_window) {
+ MP_FATAL(ctx, "Failed to create ANativeWindow\n");
+ goto fail;
+ }
return 1;
fail: