diff options
Diffstat (limited to 'java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java')
-rw-r--r-- | java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java b/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java index 21160cadb..8cac40229 100644 --- a/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java +++ b/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java @@ -96,8 +96,7 @@ public class VideoSurfaceTextureImpl implements VideoSurfaceTexture { if (this.textureView != null) { this.textureView.setOnClickListener(null); - // Don't clear the surface texture listener. This is important because our listener prevents - // the surface from being released so that it can be reused later. + this.textureView.setSurfaceTextureListener(null); } this.textureView = textureView; @@ -137,12 +136,12 @@ public class VideoSurfaceTextureImpl implements VideoSurfaceTexture { LogUtil.i( "VideoSurfaceTextureImpl.createSurface", "width: " + width + ", height: " + height + " " + toString()); - if (savedSurfaceTexture != null) { - savedSurfaceTexture.setDefaultBufferSize(width, height); - savedSurface = new Surface(savedSurfaceTexture); - return true; + savedSurfaceTexture.setDefaultBufferSize(width, height); + if (savedSurface != null) { + savedSurface.release(); } - return false; + savedSurface = new Surface(savedSurfaceTexture); + return true; } private void onSurfaceCreated() { |