summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/httplive
Commit message (Collapse)AuthorAgeFilesLines
...
* | | am ce25d85a: am a93fd2be: stagefright: httplive: Decouple block size from ↵Leena Winterrowd2015-01-294-2/+15
|\ \ \ | |/ / | | | | | | | | | | | | | | | bandwidth estimate * commit 'ce25d85ad22e6df4b861d17e9e67cb6d0e62c363': stagefright: httplive: Decouple block size from bandwidth estimate
| * | stagefright: httplive: Decouple block size from bandwidth estimateLeena Winterrowd2015-01-284-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A very small block size in PlaylistFetcher can lead to framework overhead and difficulty streaming high bitrate content, but since HTTPBase keeps a constant history of the past 100 HTTP reads, the block size directly affects bandwidth estimation and in turn, switching latency. Add setBandwidthHistorySize() to HTTPBase to allow setting the history size for bandwidth estimation. Call this within LiveSession based on the current block size to ensure that the number of bytes used for estimating bandwidth does not change if the block size is changed in PlaylistFetcher. Since a single TCP/IP packet can contain up to 64k of data, increase the block size in PlaylistFetcher from 2k to lcm(188, 1024) or 47k to avoid inaccuracies in read timings due to up to a comparable 47 reads from the same locally-cached packet instead of from the network. Also make HTTPBase::addBandwidthMeasurement() virtual to allow bandwidth estimation extensions that do not rely on a history list. Bug: 18821145 Change-Id: I5f957be01f5346e74cfb7eeb150ca4b397ad5798
* | | am 0512881b: am 9aff25fb: stagefright: httplive: Reduce memcpy calls for ↵Leena Winterrowd2015-01-291-1/+5
|\ \ \ | |/ / | | | | | | | | | | | | | | | chunked content * commit '0512881b08d03d10d6f164566c9a787d2f56ab6d': stagefright: httplive: Reduce memcpy calls for chunked content
| * | stagefright: httplive: Reduce memcpy calls for chunked contentLeena Winterrowd2015-01-281-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Streams using http chunking will not report the segment's total content-length. In this case, a 64k buffer is allocated and is increased by 32k each time the buffer is filled again. For high bitrate content, this can lead to a large number of copies that affect the HLS framework delay. Increase fetchFile buffer size exponentially by 50% or at least 32k instead of by 32k each time to reduce the number of memcpy calls. Example for a chunked 6 MB 1080p segment (ie ~3s): Adding 32k: 190 copies with 572.97 MB copied Increasing by 50%: 12 copies with 16.09 MB copied Bug: 18821145 Change-Id: Iedf0e4437e96026a58d50bce2660f85ac90d0ada
* | | resolved conflicts for merge of 59d1d010 to lmp-mr1-dev-plus-aospLajos Molnar2015-01-291-3/+3
|\ \ \ | |/ / | | | | | | Change-Id: I52e17685b3aa058d6c6b0c023659231fa00a8f71
| * | httplive: Dont resume if we have almost fetched till stop timeApurupa Pattapu2015-01-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use the last enqueued instead of last dequeued time in ResumeUntil. - Set duration in access unit meta as timestamp difference between the last two queued access units. Bug: 18821145 Change-Id: If53ddee1d87775905a6d4f11a6219fe66f498450
* | | am 3606efd1: am 9dee2e59: stagefright: httplive: Propagate target duration ↵Leena Winterrowd2015-01-291-0/+5
|\ \ \ | |/ / | | | | | | | | | | | | | | | to LiveSession * commit '3606efd19a7dee847d3d4db41e8300ba7b451f81': stagefright: httplive: Propagate target duration to LiveSession
| * | stagefright: httplive: Propagate target duration to LiveSessionLeena Winterrowd2015-01-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | LiveSession's switch-down monitor requires the 'targetDuration' key to evaluate the switching threshold. Ensure that this key is set in the access unit metadata. Bug: 18821145 Change-Id: Ib30f3b4bd8185a77a06abd755822f96644968a21
* | | am 958a5432: am 17460976: stagefright: httplive: Fix deadlock for low ↵Leena Winterrowd2015-01-292-2/+17
|\ \ \ | |/ / | | | | | | | | | | | | | | | duration clips * commit '958a54322ea3ff2ad8ed0ac6e229c90c638f8a7f': stagefright: httplive: Fix deadlock for low duration clips
| * | stagefright: httplive: Fix deadlock for low duration clipsLeena Winterrowd2015-01-282-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PlaylistFetcher buffers up to 3 * target-duration bytes of data, but if a stream is slow (ie due to bad network conditions), a buffer threshold of 10s is used to resume playback. This results in an indefinite freeze as PlaylistFetcher has stopped buffering before this threshold. Reduce the 10s threshold to be more in-sync with PlaylistFetcher's buffering size. Bug: 18821145 Change-Id: Ife846e7c5b4f9645895873d08250c4bee0164972
* | | am 2899991e: am 5cf91c50: libstagefright: httplive: Add NULL check for empty ↵Leena Winterrowd2015-01-291-1/+6
|\ \ \ | |/ / | | | | | | | | | | | | | | | playlist * commit '2899991eb8ca8ebe5da7acd74e0b3bd9743a8724': libstagefright: httplive: Add NULL check for empty playlist
| * | libstagefright: httplive: Add NULL check for empty playlistLeena Winterrowd2015-01-281-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | If the source playlist is empty, the playlist meta will be NULL. Check for this case to avoid an invalid dereference. Also flag playlists without the required EXT-X-TARGETDURATION tag as malformed. Bug: 18821145 Change-Id: Idf74d890a89bbc6483a6d4060eb092dc7461be24
* | | resolved conflicts for merge of 44a2390b to lmp-mr1-dev-plus-aospLajos Molnar2015-01-294-51/+9
|\ \ \ | |/ / | | | | | | Change-Id: I39fdc2e8895e1e943749b9a2628656a8fa5bb72b
| * | Revert "HLS: QCom enhancements"Lajos Molnar2015-01-284-51/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is to restore patch attributions This reverts commit f580806d893c4631f5324ff0af5c2db68a40ef42. Bug: 18821145 Change-Id: Idc49385fffccfde2a3915388fe3fe4e2b740d787
* | | am 64b08d23: am cbb803a5: Merge "Remove superfluous OpenSSL include paths."Kenny Root2015-01-261-2/+1
|\ \ \ | | |/ | |/| | | | | | | * commit '64b08d230c94872e014831bdb7b8a323c4b584ec': Remove superfluous OpenSSL include paths.
| * | Remove superfluous OpenSSL include paths.Adam Langley2015-01-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | The libcrypto and libssl modules (and their respective static and host versions) use LOCAL_EXPORT_C_INCLUDE_DIRS thus just including the module is sufficient. Change-Id: If9df76e6fefb7419cbb2fb33a0264626c748561e
* | | resolved conflicts for merge of 2efb9566 to lmp-mr1-dev-plus-aospNarayan Kamath2014-12-294-9/+51
|\ \ \ | | |/ | |/| | | | Change-Id: I4313941f3561176ce9f6ab055678fb626e570107
| * | HLS: QCom enhancementsRobert Shih2014-12-224-9/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit consists of: http://go/pag/c/188753 Add NULL check for empty playlist http://go/pag/c/188754 Fix deadlock for low duration clips http://go/pag/c/188757 Create a copy of last enqueued metadata http://go/pag/c/188755 Propagate target duration to LiveSession http://go/pag/c/188762 Decouple block size from bandwidth estimate http://go/pag/c/188756 Reduce memcpy calls for chunked content http://go/pag/c/188758 Dont resume if we have almost fetched till stop time Bug: 18821145 Change-Id: I7fd650999c6c50bbadffd65adee9020e669dfe62
* | | am a0b3a0a4: am 6e430fbd: Merge "NuPlayer: send NOT_SEEKABLE media info to ↵Wei Jia2014-12-151-2/+2
|\ \ \ | |/ / | | | | | | | | | | | | | | | client when the source is not seekable." into lmp-mr1-dev * commit 'a0b3a0a46dc42eafe620ffd053604515bbd9ca9a': NuPlayer: send NOT_SEEKABLE media info to client when the source is not seekable.
| * | NuPlayer: send NOT_SEEKABLE media info to client when the source is not ↵Wei Jia2014-12-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | seekable. LiveSession: return -1 for duration when it's not available. Bug: 18599325 Change-Id: Iecd040f48750806f98d1799e2aaab2f90c6f3887
* | | resolved conflicts for merge of e5ba80c5 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-272-6/+4
|\ \ \ | | |/ | |/| | | | Change-Id: Iea12c8a6cabf84584e4a89ad80e298c1f4ea3dd7
| * | Stagefright: Fix unused variables, functions, valuesAndreas Gampe2014-11-252-6/+4
| | | | | | | | | | | | | | | | | | | | | For build-system CFLAGS clean-up, remove unused functions and variables. Change-Id: Ic3dee56b589ea9a693efa1d72ba394036efff168
* | | am 2bbc61fe: am 408dba5f: Merge "HLS: fix live lock after missing the boat ↵Robert Shih2014-11-191-0/+20
|\ \ \ | | |/ | |/| | | | | | | | | | | | | during configuration change" into lmp-mr1-dev * commit '2bbc61fe75a98e39c844c034cdcaf4d01b311834': HLS: fix live lock after missing the boat during configuration change
| * | HLS: fix live lock after missing the boat during configuration changeRobert Shih2014-11-181-0/+20
| | | | | | | | | | | | | | | Bug:17488643 Change-Id: I4f5de42f86d6c616a67dc803f35c026b35347983
* | | am 811a92f6: am 39b109a1: Merge "NuPlayer HTTPLiveSource: impl ↵Robert Shih2014-11-184-0/+47
|\ \ \ | |/ / | | | | | | | | | | | | | | | getSelectedTrack" into lmp-mr1-dev * commit '811a92f68dbcab0f88b4be72099d783d3a44c9f6': NuPlayer HTTPLiveSource: impl getSelectedTrack
| * | Merge "NuPlayer HTTPLiveSource: impl getSelectedTrack" into lmp-mr1-devRobert Shih2014-11-174-0/+47
| |\ \
| | * | NuPlayer HTTPLiveSource: impl getSelectedTrackRobert Shih2014-11-064-0/+47
| | | | | | | | | | | | | | | | | | | | Bug: 17514665 Change-Id: I81c62553f2c5acb4d2436a9d8f04c10fdbe315d0
* | | | am d86450b9: am c80b9b83: Merge "Fix struct vs. class mismatches"Chih-hung Hsieh2014-11-171-1/+1
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| * commit 'd86450b93ab3960ccd68aed14563aaa76b43ce9b': Fix struct vs. class mismatches
| * | Fix struct vs. class mismatchesBernhard Rosenkränzer2014-11-171-1/+1
| |/ | | | | | | | | | | | | | | | | | | Fix something being declared a struct and forward-declared a class and vice versa. gcc doesn't care, clang complains about the mismatch. Change-Id: I7a7a8e9040e3c86fa1d73eb112631ea140861657 Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
* | Merge "PlaylistFetcher: handle sporadic fetch erros" into lmp-mr1-devRobert Shih2014-11-151-27/+37
|\ \
| * | PlaylistFetcher: handle sporadic fetch errosRobert Shih2014-11-131-27/+37
| | | | | | | | | | | | | | | Bug: 17490472 Change-Id: I2c04e2352f13db762b845f4d35db0a8b851a148c
* | | Merge "PlaylistFetcher: check ts program streams before disabling a/v" into ↵Robert Shih2014-11-131-3/+3
|\ \ \ | | | | | | | | | | | | lmp-mr1-dev
| * | | PlaylistFetcher: check ts program streams before disabling a/vRobert Shih2014-11-121-3/+3
| | |/ | |/| | | | | | | | | | Bug: 14648838 Change-Id: Ibf2b2cbb235f3d80bc33013e2afc053f13b9035f
* | | Merge "PlaylistFetcher: clear mStartup for .aac playlists after seek" into ↵Robert Shih2014-11-111-0/+1
|\ \ \ | |_|/ |/| | | | | lmp-mr1-dev
| * | PlaylistFetcher: clear mStartup for .aac playlists after seekRobert Shih2014-11-071-0/+1
| |/ | | | | | | | | Bug: 18296856 Change-Id: I26beabee338312eb2125b69284052c61aef611f0
* | AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted ↵Wei Jia2014-11-062-2/+2
|/ | | | | | | | | from seek. This will remove the unnecessary flush for seek. Bug: 17511837 Change-Id: I4b7acfc71a410372f5c630afb94b6a95d09d8974
* Check if info for uri is availableMarco Nelissen2014-09-301-0/+4
| | | | | | | before retrieving it. Bug: 17683986 Change-Id: I7a44cd06faf11c22be2ed5ace8ab6e2a5513b66c
* Merge "LiveSession: do not drop seek request" into lmp-devRobert Shih2014-09-251-10/+17
|\
| * LiveSession: do not drop seek requestRobert Shih2014-09-181-10/+17
| | | | | | | | | | Bug: 17538727 Change-Id: I28658b2779ac16512ff54adbe536d01790e6449e
* | NuPlayer HLS: better subtitle togglingRobert Shih2014-09-194-3/+43
|/ | | | | Bug: 17310061 Change-Id: Iacee1816285425aaad08c32b28591bb0162d5a85
* PlaylistFetcher:don't signal a/v eos on subttitle eosRobert Shih2014-09-171-0/+17
| | | | | Bug: 17310061 Change-Id: Ifbca3c12f21171a6e429dca51a250a41051fdd34
* HLS: fix freezes when toggling between a/v streamsRobert Shih2014-09-163-5/+63
| | | | | Bug: 17412740 Change-Id: Iacaf2fa1d20584056375803e1782ad6761c56fc5
* Merge "PlaylistFetcher: find the correct sequence number to start fetching" ↵Robert Shih2014-09-152-51/+107
|\ | | | | | | into lmp-dev
| * PlaylistFetcher: find the correct sequence number to start fetchingRobert Shih2014-09-152-51/+107
| | | | | | | | | | | | | | | | | | | | - skip over bad segemnts - if we skipped too far into the future when adapting in live streams, adjust back Bug: 17141635 Bug: 17416657 Change-Id: I0877ceaf6e69cab751bf9e92579071f9e61643eb
* | LiveSession: reliable switchRobert Shih2014-09-122-10/+57
| | | | | | | | | | Bug: 17142706 Change-Id: I9cd6c068178d62c294496e8ab0b0a3763354964f
* | LiveSession: re-buffer on under run to avoid stutterRobert Shih2014-09-122-1/+37
| | | | | | | | | | Bug: 13742725 Change-Id: I7dad8876e18084c3c060d08190fa8a72fc2f5bad
* | Merge "LiveSession: added onSwitchDown" into lmp-devRobert Shih2014-09-122-0/+62
|\ \
| * | LiveSession: added onSwitchDownRobert Shih2014-09-112-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | additionally in this change - AnotherPacketSource: added getEstimatedDurationUs that avoids looping through buffered access units in most cases; this method is called by LiveSession before triggering onSwitchDown. Also fix the original getBufferedDurationUs to accumulate durations across discontinuities. Bug: 13742612 Change-Id: I135932ea0c74671b7019a3c7054844926c18bc14
* | | Merge "LiveSession: raise upwards adaptation constraint" into lmp-devRobert Shih2014-09-122-16/+21
|\ \ \
| * | | LiveSession: raise upwards adaptation constraintRobert Shih2014-09-102-16/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjust bandwidth more conservatively when considering an upwards adaptation. Also fixed an issue with kWhatCheckBandwidth messages being accumulated across switch generations; this causes onCheckBandwidth to be fired at a high frequency and LiveSession to be too sensitive to network glitches. Bug: 13743153 Change-Id: I1dec99cb5d123c6675abe0847fd12aab5178eefd