diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java index f25d357cd0..76b278ae82 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java @@ -441,6 +441,19 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer { return true; } + if (!renderedFirstFrame) { + if (Util.SDK_INT >= 21) { + renderOutputBufferV21(codec, bufferIndex, System.nanoTime()); + } else { + renderOutputBuffer(codec, bufferIndex); + } + return true; + } + + if (getState() != TrackRenderer.STATE_STARTED) { + return false; + } + // Compute how many microseconds it is until the buffer's presentation time. long elapsedSinceStartOfLoopUs = (SystemClock.elapsedRealtime() * 1000) - elapsedRealtimeUs; long earlyUs = bufferInfo.presentationTimeUs - positionUs - elapsedSinceStartOfLoopUs; @@ -465,19 +478,6 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer { return true; } - if (!renderedFirstFrame) { - if (Util.SDK_INT >= 21) { - renderOutputBufferV21(codec, bufferIndex, System.nanoTime()); - } else { - renderOutputBuffer(codec, bufferIndex); - } - return true; - } - - if (getState() != TrackRenderer.STATE_STARTED) { - return false; - } - if (Util.SDK_INT >= 21) { // Let the underlying framework time the release. if (earlyUs < 50000) {