diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultTrackOutput.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultTrackOutput.java index 8aff8858a1..d57b55bfd2 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultTrackOutput.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultTrackOutput.java @@ -227,20 +227,6 @@ public final class DefaultTrackOutput implements TrackOutput { return infoQueue.getLargestQueuedTimestampUs(); } - /** - * Attempts to skip to the keyframe before or at the specified time. Succeeds only if the buffer - * contains a keyframe with a timestamp of {@code timeUs} or earlier, and if {@code timeUs} falls - * within the currently buffered media. - *
- * This method is equivalent to {@code skipToKeyframeBefore(timeUs, false)}.
- *
- * @param timeUs The seek time.
- * @return Whether the skip was successful.
- */
- public boolean skipToKeyframeBefore(long timeUs) {
- return skipToKeyframeBefore(timeUs, false);
- }
-
/**
* Attempts to skip to the keyframe before or at the specified time. Succeeds only if the buffer
* contains a keyframe with a timestamp of {@code timeUs} or earlier. If
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java
index d843943710..d54e881183 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java
@@ -301,7 +301,7 @@ import java.io.IOException;
boolean seekInsideBuffer = !isPendingReset();
for (int i = 0; seekInsideBuffer && i < trackCount; i++) {
if (trackEnabledStates[i]) {
- seekInsideBuffer = sampleQueues.valueAt(i).skipToKeyframeBefore(positionUs);
+ seekInsideBuffer = sampleQueues.valueAt(i).skipToKeyframeBefore(positionUs, false);
}
}
// If we failed to seek within the sample queues, we need to restart.
@@ -340,6 +340,10 @@ import java.io.IOException;
loadingFinished, lastSeekPositionUs);
}
+ /* package */ void skipToKeyframeBefore(int track, long timeUs) {
+ sampleQueues.valueAt(track).skipToKeyframeBefore(timeUs, true);
+ }
+
// Loader.Callback implementation.
@Override
@@ -566,7 +570,7 @@ import java.io.IOException;
@Override
public void skipToKeyframeBefore(long timeUs) {
- sampleQueues.valueAt(track).skipToKeyframeBefore(timeUs);
+ ExtractorMediaPeriod.this.skipToKeyframeBefore(track, timeUs);
}
}
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java
index 93d86a8de1..6a62afe2fb 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java
@@ -193,7 +193,7 @@ public class ChunkSampleStream