mirror of
https://github.com/samsonjs/media.git
synced 2026-04-02 10:45:51 +00:00
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
This commit is contained in:
parent
f7b8d07cd2
commit
bc9a0860e0
1 changed files with 3 additions and 1 deletions
|
|
@ -802,9 +802,10 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
|
|||
long elapsedRealtimeNowUs = SystemClock.elapsedRealtime() * 1000;
|
||||
long elapsedSinceLastRenderUs = elapsedRealtimeNowUs - lastRenderTimeUs;
|
||||
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 =
|
||||
joiningDeadlineMs == C.TIME_UNSET
|
||||
&& positionUs >= outputStreamOffsetUs
|
||||
&& (!renderedFirstFrame
|
||||
|| (isStarted && shouldForceRenderOutputBuffer(earlyUs, elapsedSinceLastRenderUs)));
|
||||
if (forceRenderOutputBuffer) {
|
||||
|
|
@ -956,6 +957,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
|
|||
pendingOutputStreamSwitchTimesUs,
|
||||
/* destPos= */ 0,
|
||||
pendingOutputStreamOffsetCount);
|
||||
clearRenderedFirstFrame();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue