From 61adcf98d263d2af044a7a520559e7f20a1174af Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 14 Mar 2016 08:49:12 -0700 Subject: [PATCH] Fix issue seeking backward when using SingleSampleSource. Issue: #1193 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117136800 --- .../com/google/android/exoplayer/SingleSampleSource.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/android/exoplayer/SingleSampleSource.java b/library/src/main/java/com/google/android/exoplayer/SingleSampleSource.java index bf706cc295..2af424904a 100644 --- a/library/src/main/java/com/google/android/exoplayer/SingleSampleSource.java +++ b/library/src/main/java/com/google/android/exoplayer/SingleSampleSource.java @@ -58,6 +58,7 @@ public final class SingleSampleSource implements SampleSource, TrackStream, Load private byte[] sampleData; private int sampleSize; + private long pendingResetPositionUs; private boolean loadingFinished; private Loader loader; private IOException currentLoadableException; @@ -112,6 +113,7 @@ public final class SingleSampleSource implements SampleSource, TrackStream, Load @Override public TrackStream enable(TrackSelection selection, long positionUs) { state = STATE_SEND_FORMAT; + pendingResetPositionUs = NO_RESET; clearCurrentLoadableException(); maybeStartLoading(); return this; @@ -129,7 +131,9 @@ public final class SingleSampleSource implements SampleSource, TrackStream, Load @Override public long readReset() { - return TrackStream.NO_RESET; + long resetPositionUs = pendingResetPositionUs; + pendingResetPositionUs = NO_RESET; + return resetPositionUs; } @Override @@ -159,6 +163,7 @@ public final class SingleSampleSource implements SampleSource, TrackStream, Load @Override public void seekToUs(long positionUs) { if (state == STATE_END_OF_STREAM) { + pendingResetPositionUs = positionUs; state = STATE_SEND_SAMPLE; } }