summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorJamie Gennis <jgennis@google.com>2011-10-17 12:40:49 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-10-17 12:40:49 -0700
commit29fe8cb941648cbd9d684680f2660a95c565ad51 (patch)
tree9cbee91e0cabe675f29add15a9fcc5603c503d7a /media
parent97574407006c2c7e11d027222747bbd308459c26 (diff)
parentc4de6f81d4533acbfc162d051de480d474b72e76 (diff)
downloadframeworks_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.cpp10
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());