summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-11-16 10:32:13 -0800
committerAndreas Huber <andih@google.com>2010-11-16 10:32:13 -0800
commit8c7cb61cff38580b9f38da9f8b70305afe83b3ed (patch)
treedfa56bee57a6663e9f19800c325ca195c6d5b5d3 /media
parentf342ac918234b5db4f7ed54e5b20d2277a3c2df7 (diff)
downloadframeworks_base-8c7cb61cff38580b9f38da9f8b70305afe83b3ed.zip
frameworks_base-8c7cb61cff38580b9f38da9f8b70305afe83b3ed.tar.gz
frameworks_base-8c7cb61cff38580b9f38da9f8b70305afe83b3ed.tar.bz2
Make sure live streamed http live content does not start playing from the very beginning.
The different bandwidth streams may not all start on the same seqnum, so switching bandwidths may fail lateron if we start playing from the very beginning. Change-Id: I03df8d1f44b3f7b4713d381a3d97847997e3ee59 related-to-bug: 2368598
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/httplive/LiveSource.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/media/libstagefright/httplive/LiveSource.cpp b/media/libstagefright/httplive/LiveSource.cpp
index 39e3e75..f9d27eb 100644
--- a/media/libstagefright/httplive/LiveSource.cpp
+++ b/media/libstagefright/httplive/LiveSource.cpp
@@ -278,7 +278,19 @@ bool LiveSource::switchToNext() {
}
if (mLastFetchTimeUs < 0) {
- mPlaylistIndex = 0;
+ if (isSeekable()) {
+ mPlaylistIndex = 0;
+ } else {
+ // This is live streamed content, the first seqnum in the
+ // various bandwidth' streams may be slightly off, so don't
+ // start at the very first entry.
+ // With a segment duration of 6-10secs, this really only
+ // delays playback up to 30secs compared to real time.
+ mPlaylistIndex = 3;
+ if (mPlaylistIndex >= mPlaylist->size()) {
+ mPlaylistIndex = mPlaylist->size() - 1;
+ }
+ }
} else {
if (nextSequenceNumber < mFirstItemSequenceNumber
|| nextSequenceNumber