From 5cd3a9baa03ca37bbc8060791596d36162d22739 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 12 Jun 2017 01:11:17 -0700 Subject: [PATCH] Fix passing of invalid surface to video renderers ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=158684924 --- .../java/com/google/android/exoplayer2/SimpleExoPlayer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 8dcd390033..a8c1d1d9f0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -221,8 +221,9 @@ public class SimpleExoPlayer implements ExoPlayer { if (surfaceHolder == null) { setVideoSurfaceInternal(null, false); } else { - setVideoSurfaceInternal(surfaceHolder.getSurface(), false); surfaceHolder.addCallback(componentListener); + Surface surface = surfaceHolder.getSurface(); + setVideoSurfaceInternal(surface != null && surface.isValid() ? surface : null, false); } } @@ -273,9 +274,9 @@ public class SimpleExoPlayer implements ExoPlayer { if (textureView.getSurfaceTextureListener() != null) { Log.w(TAG, "Replacing existing SurfaceTextureListener."); } + textureView.setSurfaceTextureListener(componentListener); SurfaceTexture surfaceTexture = textureView.getSurfaceTexture(); setVideoSurfaceInternal(surfaceTexture == null ? null : new Surface(surfaceTexture), true); - textureView.setSurfaceTextureListener(componentListener); } }