Commit 0649c7b9 by christosts Committed by Oliver Woodman

MediaCodecRenderer: apply rendering limit on feed

PiperOrigin-RevId: 297873726
parent 4c1f0c40
...@@ -806,10 +806,11 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -806,10 +806,11 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
// We have a format. // We have a format.
maybeInitCodec(); maybeInitCodec();
if (codec != null) { if (codec != null) {
long drainStartTimeMs = SystemClock.elapsedRealtime(); long renderStartTimeMs = SystemClock.elapsedRealtime();
TraceUtil.beginSection("drainAndFeed"); TraceUtil.beginSection("drainAndFeed");
while (drainOutputBuffer(positionUs, elapsedRealtimeUs)) {} while (drainOutputBuffer(positionUs, elapsedRealtimeUs)
while (feedInputBuffer() && shouldContinueFeeding(drainStartTimeMs)) {} && shouldContinueRendering(renderStartTimeMs)) {}
while (feedInputBuffer() && shouldContinueRendering(renderStartTimeMs)) {}
TraceUtil.endSection(); TraceUtil.endSection();
} else { } else {
decoderCounters.skippedInputBufferCount += skipSource(positionUs); decoderCounters.skippedInputBufferCount += skipSource(positionUs);
...@@ -1118,9 +1119,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -1118,9 +1119,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
onCodecInitialized(codecName, codecInitializedTimestamp, elapsed); onCodecInitialized(codecName, codecInitializedTimestamp, elapsed);
} }
private boolean shouldContinueFeeding(long drainStartTimeMs) { private boolean shouldContinueRendering(long renderStartTimeMs) {
return renderTimeLimitMs == C.TIME_UNSET return renderTimeLimitMs == C.TIME_UNSET
|| SystemClock.elapsedRealtime() - drainStartTimeMs < renderTimeLimitMs; || SystemClock.elapsedRealtime() - renderStartTimeMs < renderTimeLimitMs;
} }
private void getCodecBuffers(MediaCodec codec) { private void getCodecBuffers(MediaCodec codec) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment