Remove experimental time limit on renderer loop.

PiperOrigin-RevId: 322172767
This commit is contained in:
tonihei 2020-07-20 18:27:04 +01:00 committed by Oliver Woodman
parent 811921e618
commit 08f62efb88

View File

@ -362,7 +362,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
@Nullable private DrmSession sourceDrmSession; @Nullable private DrmSession sourceDrmSession;
@Nullable private MediaCrypto mediaCrypto; @Nullable private MediaCrypto mediaCrypto;
private boolean mediaCryptoRequiresSecureDecoder; private boolean mediaCryptoRequiresSecureDecoder;
private long renderTimeLimitMs;
private float operatingRate; private float operatingRate;
@Nullable private MediaCodec codec; @Nullable private MediaCodec codec;
@Nullable private MediaCodecAdapter codecAdapter; @Nullable private MediaCodecAdapter codecAdapter;
@ -440,7 +439,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
decodeOnlyPresentationTimestamps = new ArrayList<>(); decodeOnlyPresentationTimestamps = new ArrayList<>();
outputBufferInfo = new MediaCodec.BufferInfo(); outputBufferInfo = new MediaCodec.BufferInfo();
operatingRate = 1f; operatingRate = 1f;
renderTimeLimitMs = C.TIME_UNSET;
mediaCodecOperationMode = OPERATION_MODE_SYNCHRONOUS; mediaCodecOperationMode = OPERATION_MODE_SYNCHRONOUS;
pendingOutputStreamStartPositionsUs = new long[MAX_PENDING_OUTPUT_STREAM_OFFSET_COUNT]; pendingOutputStreamStartPositionsUs = new long[MAX_PENDING_OUTPUT_STREAM_OFFSET_COUNT];
pendingOutputStreamOffsetsUs = 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(); resetCodecStateForRelease();
} }
/**
* Set a limit on the time a single {@link #render(long, long)} call can spend draining and
* filling the decoder.
*
* <p>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}. * Set the mode of operation of the underlying {@link MediaCodec}.
* *
@ -831,11 +815,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
while (bypassRender(positionUs, elapsedRealtimeUs)) {} while (bypassRender(positionUs, elapsedRealtimeUs)) {}
TraceUtil.endSection(); TraceUtil.endSection();
} else if (codec != null) { } else if (codec != null) {
long renderStartTimeMs = SystemClock.elapsedRealtime();
TraceUtil.beginSection("drainAndFeed"); TraceUtil.beginSection("drainAndFeed");
while (drainOutputBuffer(positionUs, elapsedRealtimeUs) while (drainOutputBuffer(positionUs, elapsedRealtimeUs)) {}
&& shouldContinueRendering(renderStartTimeMs)) {} while (feedInputBuffer()) {}
while (feedInputBuffer() && shouldContinueRendering(renderStartTimeMs)) {}
TraceUtil.endSection(); TraceUtil.endSection();
} else { } else {
decoderCounters.skippedInputBufferCount += skipSource(positionUs); decoderCounters.skippedInputBufferCount += skipSource(positionUs);
@ -1164,11 +1146,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
onCodecInitialized(codecName, codecInitializedTimestamp, elapsed); onCodecInitialized(codecName, codecInitializedTimestamp, elapsed);
} }
private boolean shouldContinueRendering(long renderStartTimeMs) {
return renderTimeLimitMs == C.TIME_UNSET
|| SystemClock.elapsedRealtime() - renderStartTimeMs < renderTimeLimitMs;
}
private void getCodecBuffers(MediaCodec codec) { private void getCodecBuffers(MediaCodec codec) {
if (Util.SDK_INT < 21) { if (Util.SDK_INT < 21) {
inputBuffers = codec.getInputBuffers(); inputBuffers = codec.getInputBuffers();