Пример #1
0
IjkMediaPlayer *ijkmp_create(void *(*msg_loop)(void*))
{
    IjkMediaPlayer *mp = (IjkMediaPlayer *) av_mallocz(sizeof(IjkMediaPlayer));
    if (!mp)
        goto fail;

    mp->ffplayer = ffp_create();
    if (!mp)
        goto fail;

    mp->ffplayer->vout = SDL_VoutAndroid_CreateForAndroidSurface();
    if (!mp->ffplayer->vout)
        goto fail;

    mp->ffplayer->aout = SDL_AoutAndroid_CreateForAudioTrack();
    if (!mp->ffplayer->vout)
        goto fail;

    mp->msg_loop = msg_loop;

    ijkmp_inc_ref(mp);
    pthread_mutex_init(&mp->mutex, NULL);

    return mp;

fail:
    ijkmp_destroy_p(&mp);
    return NULL;
}
Пример #2
0
void ijkmp_android_set_opensles_enabled(IjkMediaPlayer *mp, bool enabled)
{
    if (!mp)
         return;

    MPTRACE("ijkmp_android_set_opensles_enabled(%d)", enabled ? 1 : 0);
    pthread_mutex_lock(&mp->mutex);

    if (mp) {
        if (enabled) {
            if (!SDL_AoutAndroid_IsObjectOfOpenSLES(mp->ffplayer->aout)) {
                ALOGI("recreate aout for OpenSL ES\n");
                SDL_AoutFreeP(&mp->ffplayer->aout);
                mp->ffplayer->aout = SDL_AoutAndroid_CreateForOpenSLES();
            }
        } else {
            if (!SDL_AoutAndroid_IsObjectOfAudioTrack(mp->ffplayer->aout)) {
                ALOGI("recreate aout for AudioTrack\n");
                SDL_AoutFreeP(&mp->ffplayer->aout);
                mp->ffplayer->aout = SDL_AoutAndroid_CreateForAudioTrack();
            }
        }
    }

    pthread_mutex_unlock(&mp->mutex);
    MPTRACE("ijkmp_android_set_opensles_enabled()=void");
}
Пример #3
0
static SDL_Aout *func_open_audio_output(IJKFF_Pipeline *pipeline, FFPlayer *ffp)
{
    if (ffp->opensles) {
        return SDL_AoutAndroid_CreateForOpenSLES();
    } else {
        return SDL_AoutAndroid_CreateForAudioTrack();
    }
}
Пример #4
0
IjkMediaPlayer *ijkmp_android_create(int(*msg_loop)(void*))
{
    IjkMediaPlayer *mp = ijkmp_create(msg_loop);
    if (!mp)
        goto fail;

    mp->ffplayer->vout = SDL_VoutAndroid_CreateForAndroidSurface();
    if (!mp->ffplayer->vout)
        goto fail;

    mp->ffplayer->aout = SDL_AoutAndroid_CreateForAudioTrack();
    if (!mp->ffplayer->aout)
        goto fail;

    return mp;

    fail:
    ijkmp_dec_ref_p(&mp);
    return NULL;
}