JNIEXPORT void JNICALL NAME(nativeCreate)(JNIEnv *env, jobject thiz) { initClasses(env, thiz); vlc_mutex_t *parse_lock = calloc(1, sizeof(vlc_mutex_t)); vlc_mutex_init(parse_lock); setIntValue(env, thiz, "mNativeMediaParseLock", (jint) parse_lock); vlc_cond_t *parse_cond = calloc(1, sizeof(vlc_cond_t)); vlc_cond_init(parse_cond); setIntValue(env, thiz, "mNativeMediaParseCond", (jint) parse_cond); setIntValue(env, thiz, "mNativeMediaBufferingCount", 0); const char *argv[] = {"-I", "dummy", "-vvv", "--no-plugins-cache", "--no-drop-late-frames", "--input-timeshift-path", "/data/local/tmp"}; libvlc_instance_t *instance = libvlc_new_with_builtins(sizeof(argv) / sizeof(*argv), argv, vlc_builtins_modules); setIntValue(env, thiz, "mLibVlcInstance", (jint) instance); libvlc_media_player_t *mp = libvlc_media_player_new(instance); setIntValue(env, thiz, "mLibVlcMediaPlayer", (jint) mp); /* throw? */ libvlc_event_manager_t *em = libvlc_media_player_event_manager(mp); for (int i = 0; i < sizeof(mp_listening) / sizeof(*mp_listening); i++) { libvlc_event_attach(em, mp_listening[i], vlc_event_callback, thiz); } }
libvlc_instance_t * libvlc_new( int argc, const char *const *argv) { return libvlc_new_with_builtins(argc, argv, NULL); }