diff --git a/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java index c254777669..d8ca903433 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java @@ -113,7 +113,9 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { throws ExoPlaybackException { Assertions.checkState(!streamIsFinal); this.stream = stream; - readingPositionUs = offsetUs; + if (readingPositionUs == C.TIME_END_OF_SOURCE) { + readingPositionUs = startPositionUs; + } streamFormats = formats; streamOffsetUs = offsetUs; onStreamChanged(formats, startPositionUs, offsetUs); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java b/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java index e35016a83d..3e1d913829 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java @@ -339,9 +339,8 @@ public interface Renderer extends PlayerMessage.Target { boolean hasReadStreamToEnd(); /** - * Returns the renderer time up to which the renderer has read samples from the current {@link - * SampleStream}, in microseconds, or {@link C#TIME_END_OF_SOURCE} if the renderer has read the - * current {@link SampleStream} to the end. + * Returns the renderer time up to which the renderer has read samples, in microseconds, or {@link + * C#TIME_END_OF_SOURCE} if the renderer has read the current {@link SampleStream} to the end. * *

This method may be called when the renderer is in the following states: {@link * #STATE_ENABLED}, {@link #STATE_STARTED}.