| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
bandwidth estimate
* commit 'ce25d85ad22e6df4b861d17e9e67cb6d0e62c363':
stagefright: httplive: Decouple block size from bandwidth estimate
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
chunked content
* commit '0512881b08d03d10d6f164566c9a787d2f56ab6d':
stagefright: httplive: Reduce memcpy calls for chunked content
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I52e17685b3aa058d6c6b0c023659231fa00a8f71
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
to LiveSession
* commit '3606efd19a7dee847d3d4db41e8300ba7b451f81':
stagefright: httplive: Propagate target duration to LiveSession
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
duration clips
* commit '958a54322ea3ff2ad8ed0ac6e229c90c638f8a7f':
stagefright: httplive: Fix deadlock for low duration clips
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
playlist
* commit '2899991eb8ca8ebe5da7acd74e0b3bd9743a8724':
libstagefright: httplive: Add NULL check for empty playlist
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I39fdc2e8895e1e943749b9a2628656a8fa5bb72b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is to restore patch attributions
This reverts commit f580806d893c4631f5324ff0af5c2db68a40ef42.
Bug: 18821145
Change-Id: Idc49385fffccfde2a3915388fe3fe4e2b740d787
|
|\ \ \
| | |/
| |/|
| | |
| | | |
* commit '64b08d230c94872e014831bdb7b8a323c4b584ec':
Remove superfluous OpenSSL include paths.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| | |/
| |/|
| | | |
Change-Id: I4313941f3561176ce9f6ab055678fb626e570107
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
seekable.
LiveSession: return -1 for duration when it's not available.
Bug: 18599325
Change-Id: Iecd040f48750806f98d1799e2aaab2f90c6f3887
|
|\ \ \
| | |/
| |/|
| | | |
Change-Id: Iea12c8a6cabf84584e4a89ad80e298c1f4ea3dd7
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For build-system CFLAGS clean-up, remove unused functions and
variables.
Change-Id: Ic3dee56b589ea9a693efa1d72ba394036efff168
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
during configuration change" into lmp-mr1-dev
* commit '2bbc61fe75a98e39c844c034cdcaf4d01b311834':
HLS: fix live lock after missing the boat during configuration change
|
| | |
| | |
| | |
| | |
| | | |
Bug:17488643
Change-Id: I4f5de42f86d6c616a67dc803f35c026b35347983
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
getSelectedTrack" into lmp-mr1-dev
* commit '811a92f68dbcab0f88b4be72099d783d3a44c9f6':
NuPlayer HTTPLiveSource: impl getSelectedTrack
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 17514665
Change-Id: I81c62553f2c5acb4d2436a9d8f04c10fdbe315d0
|
|\ \ \ \
| |/ / /
|/| | /
| | |/
| |/| |
* commit 'd86450b93ab3960ccd68aed14563aaa76b43ce9b':
Fix struct vs. class mismatches
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 17490472
Change-Id: I2c04e2352f13db762b845f4d35db0a8b851a148c
|
|\ \ \
| | | |
| | | |
| | | | |
lmp-mr1-dev
|
| | |/
| |/|
| | |
| | |
| | | |
Bug: 14648838
Change-Id: Ibf2b2cbb235f3d80bc33013e2afc053f13b9035f
|
|\ \ \
| |_|/
|/| |
| | | |
lmp-mr1-dev
|
| |/
| |
| |
| |
| | |
Bug: 18296856
Change-Id: I26beabee338312eb2125b69284052c61aef611f0
|
|/
|
|
|
|
|
|
|
| |
from seek.
This will remove the unnecessary flush for seek.
Bug: 17511837
Change-Id: I4b7acfc71a410372f5c630afb94b6a95d09d8974
|
|
|
|
|
|
|
| |
before retrieving it.
Bug: 17683986
Change-Id: I7a44cd06faf11c22be2ed5ace8ab6e2a5513b66c
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 17538727
Change-Id: I28658b2779ac16512ff54adbe536d01790e6449e
|
|/
|
|
|
| |
Bug: 17310061
Change-Id: Iacee1816285425aaad08c32b28591bb0162d5a85
|
|
|
|
|
| |
Bug: 17310061
Change-Id: Ifbca3c12f21171a6e429dca51a250a41051fdd34
|
|
|
|
|
| |
Bug: 17412740
Change-Id: Iacaf2fa1d20584056375803e1782ad6761c56fc5
|
|\
| |
| |
| | |
into lmp-dev
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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
|
| |
| |
| |
| |
| | |
Bug: 17142706
Change-Id: I9cd6c068178d62c294496e8ab0b0a3763354964f
|
| |
| |
| |
| |
| | |
Bug: 13742725
Change-Id: I7dad8876e18084c3c060d08190fa8a72fc2f5bad
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|