#include #include #include "jni_utils.h" #include "log.h" #include "globals.h" extern "C" { jni_func(void, attachSurface, jobject surface_); jni_func(void, detachSurface); }; static jobject surface; jni_func(void, attachSurface, jobject surface_) { CHECK_MPV_INIT(); surface = env->NewGlobalRef(surface_); if (!surface) die("invalid surface provided"); int64_t wid = reinterpret_cast(surface); int result = mpv_set_option(g_mpv, "wid", MPV_FORMAT_INT64, &wid); if (result < 0) ALOGE("mpv_set_option(wid) returned error %s", mpv_error_string(result)); } jni_func(void, detachSurface) { CHECK_MPV_INIT(); int64_t wid = 0; int result = mpv_set_option(g_mpv, "wid", MPV_FORMAT_INT64, &wid); if (result < 0) ALOGE("mpv_set_option(wid) returned error %s", mpv_error_string(result)); env->DeleteGlobalRef(surface); surface = NULL; }