From 59ee4341c59c78c48bed0548af7694554fbaa68b Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 16 Sep 2016 10:47:19 -0700 Subject: [PATCH] Fix buffering issue for live streams Issue: #1825 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=133401980 --- .../com/google/android/exoplayer2/ExoPlayerImpl.java | 12 ++---------- .../android/exoplayer2/ExoPlayerImplInternal.java | 2 +- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java b/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java index f4b21aac04..6ced2315f9 100644 --- a/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java +++ b/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java @@ -243,16 +243,8 @@ import java.util.concurrent.CopyOnWriteArraySet; if (timeline == null || pendingSeekAcks > 0) { return maskingWindowPositionMs; } else { - int periodIndex = playbackInfo.periodIndex; - timeline.getPeriod(periodIndex, period); - int windowIndex = period.windowIndex; - timeline.getWindow(windowIndex, window); - if (window.firstPeriodIndex == periodIndex && window.lastPeriodIndex == periodIndex - && window.getPositionInFirstPeriodUs() == 0 - && window.getDurationUs() == period.getDurationUs()) { - return C.usToMs(playbackInfo.bufferedPositionUs); - } - return getCurrentPosition(); + timeline.getPeriod(playbackInfo.periodIndex, period); + return period.getPositionInWindowMs() + C.usToMs(playbackInfo.bufferedPositionUs); } } diff --git a/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java b/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java index 8cb15a0271..00520b2400 100644 --- a/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java +++ b/library/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java @@ -1071,7 +1071,7 @@ import java.io.IOException; long nextLoadPositionUs = loadingPeriodHolder.mediaPeriod.getNextLoadPositionUs(); if (nextLoadPositionUs != C.TIME_END_OF_SOURCE) { long loadingPeriodPositionUs = rendererPositionUs - - loadingPeriodHolder.rendererPositionOffsetUs + loadingPeriodHolder.startPositionUs; + - loadingPeriodHolder.rendererPositionOffsetUs; long bufferedDurationUs = nextLoadPositionUs - loadingPeriodPositionUs; boolean continueLoading = loadControl.shouldContinueLoading(bufferedDurationUs); setIsLoading(continueLoading);