mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
MediaCodecRenderer: apply rendering limit on feed
PiperOrigin-RevId: 297873726
This commit is contained in:
parent
4c1f0c40ce
commit
0649c7b958
1 changed files with 6 additions and 5 deletions
|
|
@ -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 {
|
||||||
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) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue