diff options
author | sfan5 <sfan5@live.de> | 2024-01-27 22:28:54 +0100 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2024-01-27 22:35:25 +0100 |
commit | c6ccabe5854254320b175cde4106ec40d7a30946 (patch) | |
tree | 95d18cc94e8dd62c2216cf3363aead222e26e55a | |
parent | dcf8adf28967cb138ece45d0f383d3e83f14f826 (diff) | |
download | mpv-c6ccabe5854254320b175cde4106ec40d7a30946.tar.bz2 mpv-c6ccabe5854254320b175cde4106ec40d7a30946.tar.xz |
hwdec_aimagereader: handle lack of JNI gracefully
Hwdec drivers are always loaded so it's rude to abort.
fixes #13367
-rw-r--r-- | video/out/hwdec/hwdec_aimagereader.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/video/out/hwdec/hwdec_aimagereader.c b/video/out/hwdec/hwdec_aimagereader.c index 0dd5497516..c08f97b3c7 100644 --- a/video/out/hwdec/hwdec_aimagereader.c +++ b/video/out/hwdec/hwdec_aimagereader.c @@ -138,6 +138,10 @@ static int init(struct ra_hwdec *hw) if (!gl_check_extension(exts, "EGL_ANDROID_image_native_buffer")) return -1; + JNIEnv *env = MP_JNI_GET_ENV(hw); + if (!env) + return -1; + if (!load_lib_functions(p, hw->log)) return -1; @@ -167,8 +171,6 @@ static int init(struct ra_hwdec *hw) } assert(window); - JNIEnv *env = MP_JNI_GET_ENV(hw); - assert(env); jobject surface = p->ANativeWindow_toSurface(env, window); p->surface = (*env)->NewGlobalRef(env, surface); (*env)->DeleteLocalRef(env, surface); @@ -192,10 +194,10 @@ static int init(struct ra_hwdec *hw) static void uninit(struct ra_hwdec *hw) { struct priv_owner *p = hw->priv; - JNIEnv *env = MP_JNI_GET_ENV(hw); - assert(env); if (p->surface) { + JNIEnv *env = MP_JNI_GET_ENV(hw); + assert(env); (*env)->DeleteGlobalRef(env, p->surface); p->surface = NULL; } |