Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9090ff79 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 6766

* changes:
  Don't pass references to temporary objects, and handle the case where we dont have a Surface.
parents c266156a 0fc736f3
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -101,10 +101,9 @@ void JNIMediaPlayerListener::notify(int msg, int ext1, int ext2)

// ----------------------------------------------------------------------------

static sp<Surface> get_surface(JNIEnv* env, jobject clazz)
static Surface* get_surface(JNIEnv* env, jobject clazz)
{
    Surface* const p = (Surface*)env->GetIntField(clazz, fields.surface_native);
    return sp<Surface>(p);
    return (Surface*)env->GetIntField(clazz, fields.surface_native);
}

static sp<MediaPlayer> getMediaPlayer(JNIEnv* env, jobject thiz)
@@ -205,7 +204,7 @@ static void setVideoSurface(const sp<MediaPlayer>& mp, JNIEnv *env, jobject thiz
{
    jobject surface = env->GetObjectField(thiz, fields.surface);
    if (surface != NULL) {
        const sp<Surface>& native_surface = get_surface(env, surface);
        const sp<Surface> native_surface = get_surface(env, surface);
        LOGV("prepare: surface=%p (id=%d)",
             native_surface.get(), native_surface->ID());
        mp->setVideoSurface(native_surface);
@@ -245,7 +244,7 @@ android_media_MediaPlayer_prepareAsync(JNIEnv *env, jobject thiz)
    }
    jobject surface = env->GetObjectField(thiz, fields.surface);
    if (surface != NULL) {
        const sp<Surface>& native_surface = get_surface(env, surface);
        const sp<Surface> native_surface = get_surface(env, surface);
        LOGV("prepareAsync: surface=%p (id=%d)",
             native_surface.get(), native_surface->ID());
        mp->setVideoSurface(native_surface);
+4 −1
Original line number Diff line number Diff line
@@ -233,7 +233,10 @@ status_t MediaPlayer::setVideoSurface(const sp<Surface>& surface)
    LOGV("setVideoSurface");
    Mutex::Autolock _l(mLock);
    if (mPlayer == 0) return NO_INIT;
    if (surface != NULL)
        return  mPlayer->setVideoSurface(surface->getISurface());
    else
        return  mPlayer->setVideoSurface(NULL);
}

// must call with lock held