diff options
author | Jamie Gennis <jgennis@google.com> | 2011-10-17 12:40:49 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-10-17 12:40:49 -0700 |
commit | 29fe8cb941648cbd9d684680f2660a95c565ad51 (patch) | |
tree | 9cbee91e0cabe675f29add15a9fcc5603c503d7a /media | |
parent | 97574407006c2c7e11d027222747bbd308459c26 (diff) | |
parent | c4de6f81d4533acbfc162d051de480d474b72e76 (diff) | |
download | frameworks_base-29fe8cb941648cbd9d684680f2660a95c565ad51.zip frameworks_base-29fe8cb941648cbd9d684680f2660a95c565ad51.tar.gz frameworks_base-29fe8cb941648cbd9d684680f2660a95c565ad51.tar.bz2 |
am c4de6f81: Merge "MediaPlayer: properly handle released surfaces" into ics-mr0
* commit 'c4de6f81d4533acbfc162d051de480d474b72e76':
MediaPlayer: properly handle released surfaces
Diffstat (limited to 'media')
-rw-r--r-- | media/jni/android_media_MediaPlayer.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp index f3174fe..63cbf5e 100644 --- a/media/jni/android_media_MediaPlayer.cpp +++ b/media/jni/android_media_MediaPlayer.cpp @@ -274,8 +274,14 @@ setVideoSurface(JNIEnv *env, jobject thiz, jobject jsurface, jboolean mediaPlaye sp<ISurfaceTexture> new_st; if (jsurface) { sp<Surface> surface(Surface_getSurface(env, jsurface)); - new_st = surface->getSurfaceTexture(); - new_st->incStrong(thiz); + if (surface != NULL) { + new_st = surface->getSurfaceTexture(); + new_st->incStrong(thiz); + } else { + jniThrowException(env, "java/lang/IllegalArgumentException", + "The surface has been released"); + return; + } } env->SetIntField(thiz, fields.surface_texture, (int)new_st.get()); |