From 8c7cb61cff38580b9f38da9f8b70305afe83b3ed Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 16 Nov 2010 10:32:13 -0800 Subject: 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 --- media/libstagefright/httplive/LiveSource.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/media/libstagefright/httplive/LiveSource.cpp b/media/libstagefright/httplive/LiveSource.cpp index 39e3e75cd43d..f9d27ebc0e0d 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 -- cgit v1.2.3-59-g8ed1b