Commit bc9a0860 by tonihei Committed by Oliver Woodman

Clear renderedFirstFrame at stream changes even if no reconfiguration is needed

This ensures a more consistent playback behavior no matter if an item is the
first playlist item or a later one. For example, each playlist item gets its
own onRenderedFirstFrame callback and other logic within the renderer that
force renders the first frame more quickly is also triggered.

PiperOrigin-RevId: 272434814
parent f7b8d07c
...@@ -802,9 +802,10 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { ...@@ -802,9 +802,10 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
long elapsedRealtimeNowUs = SystemClock.elapsedRealtime() * 1000; long elapsedRealtimeNowUs = SystemClock.elapsedRealtime() * 1000;
long elapsedSinceLastRenderUs = elapsedRealtimeNowUs - lastRenderTimeUs; long elapsedSinceLastRenderUs = elapsedRealtimeNowUs - lastRenderTimeUs;
boolean isStarted = getState() == STATE_STARTED; boolean isStarted = getState() == STATE_STARTED;
// Don't force output until we joined and always render first frame if not joining. // Don't force output until we joined and the position reached the current stream.
boolean forceRenderOutputBuffer = boolean forceRenderOutputBuffer =
joiningDeadlineMs == C.TIME_UNSET joiningDeadlineMs == C.TIME_UNSET
&& positionUs >= outputStreamOffsetUs
&& (!renderedFirstFrame && (!renderedFirstFrame
|| (isStarted && shouldForceRenderOutputBuffer(earlyUs, elapsedSinceLastRenderUs))); || (isStarted && shouldForceRenderOutputBuffer(earlyUs, elapsedSinceLastRenderUs)));
if (forceRenderOutputBuffer) { if (forceRenderOutputBuffer) {
...@@ -956,6 +957,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { ...@@ -956,6 +957,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
pendingOutputStreamSwitchTimesUs, pendingOutputStreamSwitchTimesUs,
/* destPos= */ 0, /* destPos= */ 0,
pendingOutputStreamOffsetCount); pendingOutputStreamOffsetCount);
clearRenderedFirstFrame();
} }
} }
......
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