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 8ca4261afc..fe2a3db44c 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 @@ -362,7 +362,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Nullable private DrmSession sourceDrmSession; @Nullable private MediaCrypto mediaCrypto; private boolean mediaCryptoRequiresSecureDecoder; - private long renderTimeLimitMs; private float operatingRate; @Nullable private MediaCodec codec; @Nullable private MediaCodecAdapter codecAdapter; @@ -440,7 +439,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer { decodeOnlyPresentationTimestamps = new ArrayList<>(); outputBufferInfo = new MediaCodec.BufferInfo(); operatingRate = 1f; - renderTimeLimitMs = C.TIME_UNSET; mediaCodecOperationMode = OPERATION_MODE_SYNCHRONOUS; pendingOutputStreamStartPositionsUs = new long[MAX_PENDING_OUTPUT_STREAM_OFFSET_COUNT]; pendingOutputStreamOffsetsUs = new long[MAX_PENDING_OUTPUT_STREAM_OFFSET_COUNT]; @@ -451,20 +449,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer { resetCodecStateForRelease(); } - /** - * Set a limit on the time a single {@link #render(long, long)} call can spend draining and - * filling the decoder. - * - *
This method is experimental, and will be renamed or removed in a future release. It should - * only be called before the renderer is used. - * - * @param renderTimeLimitMs The render time limit in milliseconds, or {@link C#TIME_UNSET} for no - * limit. - */ - public void experimental_setRenderTimeLimitMs(long renderTimeLimitMs) { - this.renderTimeLimitMs = renderTimeLimitMs; - } - /** * Set the mode of operation of the underlying {@link MediaCodec}. * @@ -831,11 +815,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer { while (bypassRender(positionUs, elapsedRealtimeUs)) {} TraceUtil.endSection(); } else if (codec != null) { - long renderStartTimeMs = SystemClock.elapsedRealtime(); TraceUtil.beginSection("drainAndFeed"); - while (drainOutputBuffer(positionUs, elapsedRealtimeUs) - && shouldContinueRendering(renderStartTimeMs)) {} - while (feedInputBuffer() && shouldContinueRendering(renderStartTimeMs)) {} + while (drainOutputBuffer(positionUs, elapsedRealtimeUs)) {} + while (feedInputBuffer()) {} TraceUtil.endSection(); } else { decoderCounters.skippedInputBufferCount += skipSource(positionUs); @@ -1164,11 +1146,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer { onCodecInitialized(codecName, codecInitializedTimestamp, elapsed); } - private boolean shouldContinueRendering(long renderStartTimeMs) { - return renderTimeLimitMs == C.TIME_UNSET - || SystemClock.elapsedRealtime() - renderStartTimeMs < renderTimeLimitMs; - } - private void getCodecBuffers(MediaCodec codec) { if (Util.SDK_INT < 21) { inputBuffers = codec.getInputBuffers();