Clean up surface on setting renderer

If a surface was previously passed to the player then an output buffer
renderer was set, we would remove surface callbacks but not clear the
surface on renderers that accept MSG_SET_SURFACE.

PiperOrigin-RevId: 274532266
This commit is contained in:
andrewlewis 2019-10-14 10:07:49 +01:00 committed by Oliver Woodman
parent ce01c79e01
commit d52f06e611

View File

@ -608,16 +608,14 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void setOutputBufferRenderer(VideoDecoderOutputBufferRenderer outputBufferRenderer) {
verifyApplicationThread();
removeSurfaceCallbacks();
List<PlayerMessage> messages = new ArrayList<>();
setVideoSurface(null);
for (Renderer renderer : renderers) {
if (renderer.getTrackType() == C.TRACK_TYPE_VIDEO) {
messages.add(
player
.createMessage(renderer)
.setType(C.MSG_SET_OUTPUT_BUFFER_RENDERER)
.setPayload(outputBufferRenderer)
.send());
.send();
}
}
}