From 0649c7b9584bb7e0a1f24c25b846e5aa804e2e2f Mon Sep 17 00:00:00 2001 From: christosts Date: Fri, 28 Feb 2020 18:27:20 +0000 Subject: [PATCH] MediaCodecRenderer: apply rendering limit on feed PiperOrigin-RevId: 297873726 --- .../exoplayer2/mediacodec/MediaCodecRenderer.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java index 81edeb952d..3cbfe679c5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java @@ -806,10 +806,11 @@ public abstract class MediaCodecRenderer extends BaseRenderer { // We have a format. maybeInitCodec(); if (codec != null) { - long drainStartTimeMs = SystemClock.elapsedRealtime(); + long renderStartTimeMs = SystemClock.elapsedRealtime(); TraceUtil.beginSection("drainAndFeed"); - while (drainOutputBuffer(positionUs, elapsedRealtimeUs)) {} - while (feedInputBuffer() && shouldContinueFeeding(drainStartTimeMs)) {} + while (drainOutputBuffer(positionUs, elapsedRealtimeUs) + && shouldContinueRendering(renderStartTimeMs)) {} + while (feedInputBuffer() && shouldContinueRendering(renderStartTimeMs)) {} TraceUtil.endSection(); } else { decoderCounters.skippedInputBufferCount += skipSource(positionUs); @@ -1118,9 +1119,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer { onCodecInitialized(codecName, codecInitializedTimestamp, elapsed); } - private boolean shouldContinueFeeding(long drainStartTimeMs) { + private boolean shouldContinueRendering(long renderStartTimeMs) { return renderTimeLimitMs == C.TIME_UNSET - || SystemClock.elapsedRealtime() - drainStartTimeMs < renderTimeLimitMs; + || SystemClock.elapsedRealtime() - renderStartTimeMs < renderTimeLimitMs; } private void getCodecBuffers(MediaCodec codec) {