diff options
| -rw-r--r-- | media/jni/android_media_MediaPlayer.cpp | 9 | ||||
| -rw-r--r-- | media/libmedia/mediaplayer.cpp | 5 |
2 files changed, 8 insertions, 6 deletions
diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp index b173129c6dec..d26d03948279 100644 --- a/media/jni/android_media_MediaPlayer.cpp +++ b/media/jni/android_media_MediaPlayer.cpp @@ -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); diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp index 6b35fa7d9515..aeb43c5e0ff0 100644 --- a/media/libmedia/mediaplayer.cpp +++ b/media/libmedia/mediaplayer.cpp @@ -233,7 +233,10 @@ status_t MediaPlayer::setVideoSurface(const sp<Surface>& surface) LOGV("setVideoSurface"); Mutex::Autolock _l(mLock); if (mPlayer == 0) return NO_INIT; - return mPlayer->setVideoSurface(surface->getISurface()); + if (surface != NULL) + return mPlayer->setVideoSurface(surface->getISurface()); + else + return mPlayer->setVideoSurface(NULL); } // must call with lock held |