diff options
author | Robert Shih <robertshih@google.com> | 2015-02-04 11:32:50 -0800 |
---|---|---|
committer | Robert Shih <robertshih@google.com> | 2015-02-04 11:35:58 -0800 |
commit | afcc4fcbb3a094ec2221d6e523772e76894d1f00 (patch) | |
tree | 17fb4099411647b0e1a3172fcba63b4a280e4d89 /media/libstagefright/httplive/PlaylistFetcher.cpp | |
parent | 1bf8a21018cc1d95dc3c28b5044aeda327c7b54e (diff) | |
download | frameworks_av-afcc4fcbb3a094ec2221d6e523772e76894d1f00.zip frameworks_av-afcc4fcbb3a094ec2221d6e523772e76894d1f00.tar.gz frameworks_av-afcc4fcbb3a094ec2221d6e523772e76894d1f00.tar.bz2 |
httplive: Set start time and segment start time in conjunction.
Also add comments describing how start time and segment start time are
used.
Based on AOSP CL https://android-review.googlesource.com/127653
by Joakim Johansson <joakim.c.johansson@sonymobile.com> but uses the
lowest segment start time instead of highest.
Bug: 18821145
Change-Id: I14cf1186d0daf517a24e8423c3a708b4c9ba06c4
Diffstat (limited to 'media/libstagefright/httplive/PlaylistFetcher.cpp')
-rw-r--r-- | media/libstagefright/httplive/PlaylistFetcher.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/media/libstagefright/httplive/PlaylistFetcher.cpp b/media/libstagefright/httplive/PlaylistFetcher.cpp index 4a97803..2678224 100644 --- a/media/libstagefright/httplive/PlaylistFetcher.cpp +++ b/media/libstagefright/httplive/PlaylistFetcher.cpp @@ -758,6 +758,9 @@ void PlaylistFetcher::onDownloadNext() { mSeqNumber = firstSeqNumberInPlaylist; } } else { + // When seeking mSegmentStartTimeUs is unavailable (< 0), we + // use mStartTimeUs (client supplied timestamp) to determine both start segment + // and relative position inside a segment mSeqNumber = getSeqNumberForTime(mStartTimeUs); mStartTimeUs -= getSegmentStartTimeUs(mSeqNumber); } @@ -766,6 +769,10 @@ void PlaylistFetcher::onDownloadNext() { mStartTimeUs, mSeqNumber, firstSeqNumberInPlaylist, lastSeqNumberInPlaylist); } else { + // When adapting or track switching, mSegmentStartTimeUs (relative + // to media time 0) is used to determine the start segment; mStartTimeUs (absolute + // timestamps coming from the media container) is used to determine the position + // inside a segments. mSeqNumber = getSeqNumberForTime(mSegmentStartTimeUs); if (mAdaptive) { // avoid double fetch/decode |