Esempio n. 1
0
static void nativeNew(JNIEnv *env, jobject thiz, jstring cmdline)
{
    const char *str;

    str = env->GetStringUTFChars(cmdline, NULL);
    if (!str) {
        throw_IllegalArgumentException(env, "cmdline invalid");
        return;
    }

    if (parse_arg(str) < 0) {
        E("parse_arg failed");
        goto out;
    }

    gfq.weak_thiz = env->NewWeakGlobalRef(thiz);
    if (!gfq.weak_thiz) {
        E("Create weak-reference for libfqrtmp instance failed");
        goto out;
    }

    libfqrtmp_event_send(OPENING, 0, jnu_new_string(""));

    gfq.rtmp_hdlr = new RtmpHandler;
    if (gfq.rtmp_hdlr->connect(liveurl) < 0) {
        libfqrtmp_event_send(ENCOUNTERED_ERROR,
                             -1001, jnu_new_string("rtmp_connect failed"));
        goto out;
    }

    libfqrtmp_event_send(CONNECTED, 0, jnu_new_string(""));

out:
    env->ReleaseStringUTFChars(cmdline, str);
}
void
Java_org_videolan_libvlc_MediaDiscoverer_nativeNew(JNIEnv *env,
                                                   jobject thiz, jobject libVlc,
                                                   jstring jname)
{
    vlcjni_object *p_obj;
    const char* p_name;

    if (!jname || !(p_name = (*env)->GetStringUTFChars(env, jname, 0)))
    {
        throw_IllegalArgumentException(env, "jname invalid");
        return;
    }

    p_obj = VLCJniObject_newFromJavaLibVlc(env, thiz, libVlc);
    if (!p_obj)
    {
        (*env)->ReleaseStringUTFChars(env, jname, p_name);
        return;
    }

    p_obj->u.p_md = libvlc_media_discoverer_new(p_obj->p_libvlc, p_name);

    (*env)->ReleaseStringUTFChars(env, jname, p_name);

    if (!p_obj->u.p_md)
    {
        VLCJniObject_release(env, thiz, p_obj);
        throw_IllegalStateException(env, "can't create MediaDiscoverer instance");
        return;
    }
}
jfloat
Java_org_videolan_libvlc_MediaPlayer_00024Equalizer_nativeGetBandFrequency(JNIEnv *env,
                                                                           jobject thiz,
                                                                           jint index)
{
    if (index < 0)
    {
        throw_IllegalArgumentException(env, "index invalid");
        return 0.0;
    }

    return libvlc_audio_equalizer_get_band_frequency(index);
}
jstring
Java_org_videolan_libvlc_MediaPlayer_00024Equalizer_nativeGetPresetName(JNIEnv *env,
                                                                        jobject thiz,
                                                                        jint index)
{
    const char *psz_name;

    if (index < 0)
    {
        throw_IllegalArgumentException(env, "index invalid");
        return NULL;
    }

    psz_name = libvlc_audio_equalizer_get_preset_name(index);

    return psz_name ? (*env)->NewStringUTF(env, psz_name) : NULL;

}
jboolean
Java_org_videolan_libvlc_MediaPlayer_nativeSetSubtitleFile(JNIEnv *env,
                                                           jobject thiz,
                                                           jstring jpath)
{
    vlcjni_object *p_obj = VLCJniObject_getInstance(env, thiz);
    const char* psz_path;

    if (!jpath || !(psz_path = (*env)->GetStringUTFChars(env, jpath, 0)))
    {
        throw_IllegalArgumentException(env, "path invalid");
        return false;
    }

    if (!p_obj)
        return false;

    jboolean ret = libvlc_video_set_subtitle_file(p_obj->u.p_mp, psz_path);

    (*env)->ReleaseStringUTFChars(env, jpath, psz_path);
    return ret;
}
jboolean
Java_org_videolan_libvlc_MediaPlayer_nativeSetAudioOutputDevice(JNIEnv *env,
                                                                jobject thiz,
                                                                jstring jid)
{
    const char* psz_id;
    int i_ret;
    vlcjni_object *p_obj = VLCJniObject_getInstance(env, thiz);

    if (!p_obj)
        return false;

    if (!jid || !(psz_id = (*env)->GetStringUTFChars(env, jid, 0)))
    {
        throw_IllegalArgumentException(env, "aout invalid");
        return false;
    }

    libvlc_audio_output_device_set(p_obj->u.p_mp, NULL, psz_id);
    (*env)->ReleaseStringUTFChars(env, jid, psz_id);
    return true;
}
jboolean
Java_org_videolan_libvlc_MediaPlayer_nativeSetAudioOutput(JNIEnv *env,
                                                          jobject thiz,
                                                          jstring jaout)
{
    const char* psz_aout;
    int i_ret;
    vlcjni_object *p_obj = VLCJniObject_getInstance(env, thiz);

    if (!p_obj)
        return false;

    if (!jaout || !(psz_aout = (*env)->GetStringUTFChars(env, jaout, 0)))
    {
        throw_IllegalArgumentException(env, "aout invalid");
        return false;
    }

    i_ret = libvlc_audio_output_set(p_obj->u.p_mp, psz_aout);
    (*env)->ReleaseStringUTFChars(env, jaout, psz_aout);

    return i_ret == 0 ? true : false;
}