From 424b29f996fd5211625ff407689ddb337b6e05a1 Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Tue, 27 Jan 2015 10:44:02 +0100 Subject: [PATCH] remove REINIT_STATE_DO_REINIT_NOW state, reinit directly when needed. --- .../exoplayer/MediaCodecTrackRenderer.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java index 5f28fab835..6b0d92f525 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java @@ -148,11 +148,6 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { * The end of stream has been sent, wait for the codec to acknowledge it. */ private static final int REINIT_STATE_WAIT_END_OF_STREAM = 2; - /** - * The last sample has been processed, we can safely reinit now. - */ - private static final int REINIT_STATE_DO_REINIT_NOW = 3; - public final CodecCounters codecCounters; @@ -521,12 +516,6 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { return false; } - if (codecReinitState == REINIT_STATE_DO_REINIT_NOW) { - releaseCodec(); - maybeInitCodec(); - return false; - } - if (inputIndex < 0) { inputIndex = codec.dequeueInputBuffer(0); if (inputIndex < 0) { @@ -691,7 +680,8 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { } else { if (!hasQueuedOneInputBuffer) { // no need to signal end of stream if nothing has been queued, we can just reinit asap - codecReinitState = REINIT_STATE_DO_REINIT_NOW; + releaseCodec(); + maybeInitCodec(); } else { codecReinitState = REINIT_STATE_SIGNAL_END_OF_STREAM; } @@ -783,7 +773,9 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { if ((outputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) { if (codecReinitState == REINIT_STATE_WAIT_END_OF_STREAM) { - codecReinitState = REINIT_STATE_DO_REINIT_NOW; + // The last sample has been processed, we can safely reinit now + releaseCodec(); + maybeInitCodec(); } else { outputStreamEnded = true; }