diff options
author | Andreas Huber <andih@google.com> | 2010-11-16 10:32:13 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-11-16 10:32:13 -0800 |
commit | 8c7cb61cff38580b9f38da9f8b70305afe83b3ed (patch) | |
tree | dfa56bee57a6663e9f19800c325ca195c6d5b5d3 /media | |
parent | f342ac918234b5db4f7ed54e5b20d2277a3c2df7 (diff) | |
download | frameworks_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.cpp | 14 |
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 |