History log of /frameworks/av/media/libstagefright/httplive/LiveSession.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
48fa06d1e80a872c7495804979256e021e566ae0 21-Dec-2016 Wei Jia <wjia@google.com> BufferingSettings: hook up internal BufferingSettings API.

Test: compiles
Bug: 32524218

Change-Id: I4b3f1689681560f0c1af3bfc62adee1ce630e218
/frameworks/av/media/libstagefright/httplive/LiveSession.h
c5de09127e9e0d5df7aa587be317e1487d793245 18-Nov-2016 Wei Jia <wjia@google.com> mediaplayer: support same seek mode as MediaMetadataRetriever.

Test: manually force 4 seek modes in mediaplayer.
Bug: 32557491
Change-Id: Iea4f6dbfc224fc6da39624300c6d872b79142f07
/frameworks/av/media/libstagefright/httplive/LiveSession.h
5ec347fcaf7fefe8fd9ccbaa365ffb070921a970 02-Nov-2016 Wei Jia <wjia@google.com> NuPlayerSource: add "precise" as additional argument to seekTo.

Test: compiles
Bug: 32557491
Change-Id: I9d251bf345630d6628125302946768297e73613f
/frameworks/av/media/libstagefright/httplive/LiveSession.h
8b7065b60493c06c7d9d676283869fef895a9bec 14-Oct-2016 Robert Shih <robertshih@google.com> HTTPLiveSource: implement getFormatMeta am: a83eebb78c
am: 7c55dd0c5b

Change-Id: Ifc927603a8c35f27cd58a1f0ce92ee92e99f1025
a83eebb78c3a7d57a769dac965b17a8aad7c7b8f 14-Oct-2016 Robert Shih <robertshih@google.com> HTTPLiveSource: implement getFormatMeta

Bug: 32113727
Change-Id: I10eafd4cf428f5fee6ada7213627ca7119cbf0e7
/frameworks/av/media/libstagefright/httplive/LiveSession.h
0d1ed381fde5dac12dd84fcf3da66dac46699378 09-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in stagefright.

* Add explicit keyword to conversion constructors.
* Or add NOLINT to implicit conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
* Use const reference type to avoid unnecessary copy.
Bug: 30413862
Test: build with WITH_TIDY=1

Change-Id: I7a15ac1e37973fe2c661f577a6106b913653de40
Merged-In: I7a15ac1e37973fe2c661f577a6106b913653de40
/frameworks/av/media/libstagefright/httplive/LiveSession.h
5ef659e010e90175eb5282d9642a02f6105189bf 14-Jul-2015 Chong Zhang <chz@google.com> HLS: temporarily blacklist a variant if failed to fetch

- abort high bandwidth immediately when bandwidth is fluctuating
- use short-term bandwidth estimate for downswitch if bandwidth
is not stable
- discard bandwidth samples that's too old in absolute time
- if already underflow, switch to lowest bandwidth to catch up
- if error happened during bandwidth switch (likely due to new
variant link is broken), switch to lowest bandwidth to catch up

bug: 21754330

Change-Id: Ifd16d75e261cefb93b989829bf35a36783142ae0
/frameworks/av/media/libstagefright/httplive/LiveSession.h
5abbd3dcbb0bb32a3d4b90dddbcf90458967eb6f 21-Apr-2015 Chong Zhang <chz@google.com> HLS: make disconnect faster to prevent ANR

disconnect HTTP connection when we absolutely won't resume

bug: 19890444
Change-Id: Idee36b48741f6f8eb1d65bca32156e9e18349c67
/frameworks/av/media/libstagefright/httplive/LiveSession.h
81636761bead03f13b4ed9320a7f25ce1354f1ae 21-Apr-2015 Chong Zhang <chz@google.com> HLS: remove no more than 10% of bandwidth history at a time

- fix a 'possible video time jump' after seek, don't update
renderer anchor time for 0-sized audio buffers

- fix another 'possible video time jump' caused by some states
not reset in mStreams

- bandwidth estimator changes to not remove more than 10%
of total transfer duration at a time to avoid jumping up
too quickly

bug: 20267388
related-to-bug: 19864613
related-to-bug: 20138395

Change-Id: I8812332cd1e26bf562acfaf086fd679a3549debc
/frameworks/av/media/libstagefright/httplive/LiveSession.h
ee4e1b1a63758941460ae79a064249d3a5189443 17-Apr-2015 Lajos Molnar <lajos@google.com> stagefright: warnings be gone, some are now errors, use clang

Change-Id: I81f438ae444f04c12ae27ae4ef6d073033de172c
/frameworks/av/media/libstagefright/httplive/LiveSession.h
0852843d304006e3ab333081fddda13b07193de8 08-Apr-2015 Robert Shih <robertshih@google.com> stagefright: initial timed id3 support in hls

Change-Id: I00a8a786b3f4b74742c34770edd94e937abe20a8
/frameworks/av/media/libstagefright/httplive/LiveSession.h
a0d0ba51ad60a68117a0ee78e37ab78715b8a069 11-Apr-2015 Chong Zhang <chz@google.com> HLS: parse stream resolution and set maxWidth/maxHeight

bug: 20160436

Change-Id: Ic3adb84d3c65cc65f62fc509a99d09602db862a1
/frameworks/av/media/libstagefright/httplive/LiveSession.h
c255757c795e5db87bafa6609c4ae052cf38b45b 10-Apr-2015 Chong Zhang <chz@google.com> Merge "HLS: allow down switch during prepare"
8464d7decb34a3044e92b4085f1bbaafb51410e8 09-Apr-2015 Chong Zhang <chz@google.com> HLS: allow down switch during prepare

to avoid having to immediately down switch (and pause)
after playback starts.

do not count "discard" packet when estimating duration.

bug: 19567254

Change-Id: I0cdd37a06ca800dd81a91cca5eb9b46a1eab7b20
/frameworks/av/media/libstagefright/httplive/LiveSession.h
a1151185c7eb3b4c483f7067deba1775fd0a2510 09-Apr-2015 Lajos Molnar <lajos@google.com> stagefright: LiveSession: delay consuming reply ID for seek

Only consume reply ID when actually handling the seek.

Bug: 20123914
Change-Id: I2112ee1b89f8193b487ea2b0b3b7050ba3413864
/frameworks/av/media/libstagefright/httplive/LiveSession.h
25f82752942b1c78aec8ee303d61afff85cff9d1 08-Apr-2015 Chong Zhang <chz@google.com> HLS: traces in LiveSession and PlaylistFetcher for easier debugging

bug: 19567254
Change-Id: I4305d37cb74279ccd435f99483231cd1dcf42fc9
/frameworks/av/media/libstagefright/httplive/LiveSession.h
d47dfcb5a2e5901c96fc92662cec7aa30f7f8843 27-Mar-2015 Chong Zhang <chz@google.com> HLS: misc bug fixes

- fix no target-duration case

- fix for audio-only <=> audio/video switching

- disable audio-only variants if there is at least
one variant with video

- fix mpeg2ts PTS wraparound when bandwidth adapting

- tweak up/down switch marks

bug: 19567254

Change-Id: Ib46144203c56dfc96eccd6ddaa3867e8a4f2c6a9
/frameworks/av/media/libstagefright/httplive/LiveSession.h
765f27c2376e83766d9e1d8f8136025c5437ce49 30-Mar-2015 Chong Zhang <chz@google.com> fix build break in clang

Change-Id: Iff2ca5d1e800d30943de12191bfe6c43d6a2c7f6
/frameworks/av/media/libstagefright/httplive/LiveSession.h
7c8708046117e03c0d38006bdd9685139df3ac6b 18-Mar-2015 Chong Zhang <chz@google.com> HLS: faster switching and pause/resume on low buffer

- when upswitching, discard excessive buffering on low
bandwidth variant, switch to new variant earlier

- when downswitching, report newly found IDR positions
continuously, and switch as soon as new fetcher passes
playback position. This allows us to skip time-consuming
resumeUntil() of old fetcher most of the time

- implement pause/resume on low buffering, and notify
buffering percentage

- buffering parameter tuning, separate pause/resume/ready
buffer level and up/down switch buffer level, boost up
fetcher buffering significantly

bug: 19567254

Change-Id: I750dfcc6f861d78d16a71f501beb86d8129cb048
/frameworks/av/media/libstagefright/httplive/LiveSession.h
a48d372833ccec13c96ece9efcc226e8beac7f59 18-Mar-2015 Chong Zhang <chz@google.com> HLS: allow pause/resume in the middle of a segment

- when down switching, decide whether to finish current segment
based on bandwidth settings, abort current segment if needed.

- when switching, pause new fetcher after the first 47K chunk,
and go back to resume old fethcer to stop point immediately.

- when old fetcher reaches stop point, swap packet sources and
resume new fetcher.

- mark switching as done as soon as old fecther reaches stop
point. This allows us to resume bandwidth monitoring earlier,
and do subsequent switches sooner.

bug: 19567254
Change-Id: Iba4b5fb9b06541bb1e49592536648f5d4cbc69ab
/frameworks/av/media/libstagefright/httplive/LiveSession.h
538b6d22a3578c0201d48f8548289aa254d81484 17-Mar-2015 Chong Zhang <chz@google.com> HLS: bandwidth estimator changes

- separate bandwidth estimator from HTTPBase, so that we have
better control on which samples to use, it also allows bandiwdth
history across multiple HTTPBase objects (which we'll use later).

- use min buffer duration among the streams to decide whether to
download next segment.

- maintain constant buffer level, time next download to happen
when buffer just goes below kMinBufferedDurationUs.

bug: 19567254

Change-Id: I5c481ad1f7ff3f084d57ec68856e12ae6b40ce41
/frameworks/av/media/libstagefright/httplive/LiveSession.h
98d53011c390ab0c3cb8d5d9e47251876174d5d4 11-Mar-2015 Chong Zhang <chz@google.com> Merge "HLS: misc changes in LiveSession buffering logic"
964adb17885185808398507d2de88665fe193ee2 02-Mar-2015 Chong Zhang <chz@google.com> HLS: misc changes in LiveSession buffering logic

remove unnecessary time discontinuity

move fetcher to separate looper so that download won't
block LiveSession

poll buffering at 1 sec interval in LiveSession, and
switch bandwidth if necessary

use fixed 100ms threshold for resumeUntil

bug: 19567254
Change-Id: I911e5041364f0858b43f2312756e173db5870a1e
/frameworks/av/media/libstagefright/httplive/LiveSession.h
3f27436a9346f043f52265da1e6a74cde2bffd4d 05-Mar-2015 Lajos Molnar <lajos@google.com> stagefright: don't use ALooperRoster mutex for reply handling

Change replyID-s from uint32_t to an object
Move reply handling into the loopers (to reuse a common mutex)

Bug: 19607784
Change-Id: Iaa035b846c424c5687ed17ce1079b325e86c54be
/frameworks/av/media/libstagefright/httplive/LiveSession.h
340cebdaa2875ba2ab9725b81218ebc59d84164b 20-Feb-2015 Dan Albert <danalbert@google.com> Fix mismatched type tag clang warning.

Parcel is a struct, not a class. However, Parcel isn't used in this
file, so just kill it.

Change-Id: I575cae8b3c5dd13dd9b03fccfe7423e1f17f62f5
/frameworks/av/media/libstagefright/httplive/LiveSession.h
a93fd2be99d21629bed504b9b7df035fc2f54562 04-Dec-2014 Leena Winterrowd <lenhardw@codeaurora.org> 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
/frameworks/av/media/libstagefright/httplive/LiveSession.h
f0d689934e70d3e5b3784265e890377db04c7c1d 29-Jan-2015 Lajos Molnar <lajos@google.com> Revert "HLS: QCom enhancements"

This is to restore patch attributions

This reverts commit f580806d893c4631f5324ff0af5c2db68a40ef42.

Bug: 18821145
Change-Id: Idc49385fffccfde2a3915388fe3fe4e2b740d787
/frameworks/av/media/libstagefright/httplive/LiveSession.h
f580806d893c4631f5324ff0af5c2db68a40ef42 22-Dec-2014 Robert Shih <robertshih@google.com> HLS: QCom enhancements

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
/frameworks/av/media/libstagefright/httplive/LiveSession.h
89bf2525c5b57f17260de5b00c5f3f78ac4b881e 30-Jul-2014 Robert Shih <robertshih@google.com> NuPlayer HTTPLiveSource: impl getSelectedTrack

Bug: 17514665
Change-Id: I81c62553f2c5acb4d2436a9d8f04c10fdbe315d0
/frameworks/av/media/libstagefright/httplive/LiveSession.h
b44ce2f84691559672cfaf6bb8fd3a9ac43904f2 19-Sep-2014 Robert Shih <robertshih@google.com> NuPlayer HLS: better subtitle toggling

Bug: 17310061
Change-Id: Iacee1816285425aaad08c32b28591bb0162d5a85
/frameworks/av/media/libstagefright/httplive/LiveSession.h
f4a48dfa8570d6a4708a868b8b15d1236f7ca54b 30-Aug-2014 Robert Shih <robertshih@google.com> LiveSession: reliable switch

Bug: 17142706
Change-Id: I9cd6c068178d62c294496e8ab0b0a3763354964f
/frameworks/av/media/libstagefright/httplive/LiveSession.h
f69c996864844e8f669308af8412cede043062a2 30-Aug-2014 Robert Shih <robertshih@google.com> LiveSession: re-buffer on under run to avoid stutter

Bug: 13742725
Change-Id: I7dad8876e18084c3c060d08190fa8a72fc2f5bad
/frameworks/av/media/libstagefright/httplive/LiveSession.h
84de1dc2512aa886638c103ee3e9f5c19f4a4a04 12-Sep-2014 Robert Shih <robertshih@google.com> Merge "LiveSession: added onSwitchDown" into lmp-dev
0ad776d2e4c6b4968d9dcd9bf34b962366b312a9 30-Aug-2014 Robert Shih <robertshih@google.com> LiveSession: added onSwitchDown

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
/frameworks/av/media/libstagefright/httplive/LiveSession.h
00598ec0b15426197494aaf9e5ec0bc88507c762 30-Aug-2014 Robert Shih <robertshih@google.com> LiveSession: raise upwards adaptation constraint

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
/frameworks/av/media/libstagefright/httplive/LiveSession.h
309aa8bf5e4cd66fe988adf2654cac3fadc2a1c3 30-Jul-2014 Robert Shih <robertshih@google.com> httplive: timestamp reporting, track selection

Bug: 15153976
Bug: 15763638
Bug: 16351654
Change-Id: I4462276d4b7342647286a0ca4be11692ce52ff6d
/frameworks/av/media/libstagefright/httplive/LiveSession.h
404fced9bfa8fa423ee210a271ca051ffd1bec13 11-Jun-2014 Chong Zhang <chz@google.com> refactor getTrackInfo()

(this is in preparation for supporting other cc source)

- split into two methods: getTrackCount() and getTrackInfo()

- move track info parcelling to NuPlayer

- parcel in the mime type of the subtitle format

Bug: 15470448
Change-Id: If00724d8c3a2b2319cb9c5f29d3fe76347bfe947
/frameworks/av/media/libstagefright/httplive/LiveSession.h
7a39abac839092298cd184c5996dc82010d60a20 19-Mar-2014 Robert Shih <robertshih@google.com> am 49b2e310: am a1f0c62c: am 43ca783e: httplive: block-by-block fetch, decrypt, and parse ts files.

* commit '49b2e310f62c590a1af9f921cd8a134cdf589263':
httplive: block-by-block fetch, decrypt, and parse ts files.
43ca783effd99bba0e6e2dd6fe177a8888578ef8 27-Feb-2014 Robert Shih <robertshih@google.com> httplive: block-by-block fetch, decrypt, and parse ts files.

Bug: 12060952
Change-Id: I695345081fe23961b9d0ef6db264885f914703ec
/frameworks/av/media/libstagefright/httplive/LiveSession.h
ceeabe15f4e7bc73efdfcafed917202de9d515cb 04-Mar-2014 Robert Shih <robertshih@google.com> httplive: clear access units before returning from seekTo.

Bug: 12060952
Change-Id: I6a69a718c082501003ee9b78a948a2f8bbfbb14e
/frameworks/av/media/libstagefright/httplive/LiveSession.h
5ce50c1931e1e3d8f113394bbe2c9f99354f4c5f 04-Mar-2014 Robert Shih <robertshih@google.com> httplive: clear access units before returning from seekTo.

Change-Id: I6a69a718c082501003ee9b78a948a2f8bbfbb14e
/frameworks/av/media/libstagefright/httplive/LiveSession.h
a1076eb135b74a32e9bdc1aed17aee4374eb41af 22-Nov-2013 Martin Storsjo <martin@martin.st> LiveSession: Use the actual, possibly redirected url as base in the M3U

This fixes playback of HLS streams where the M3U playlists use
relative paths and the main playlist is opened via a redirect.

Bug: 13174301
Change-Id: I787e1c050daddc566be4c8e3f84803d3f91eec46
/frameworks/av/media/libstagefright/httplive/LiveSession.h
777ee5ed736c8f6c3f7d196ea022f7432bfd23e1 20-Feb-2014 Robert Shih <robertshih@google.com> Initial HLS seamless switch implementation.

Bug: 11854054
Change-Id: I75fc2a258111295039ac13cc37e407df25891dd2
/frameworks/av/media/libstagefright/httplive/LiveSession.h
6c8495c8f1ccc35db972ee7ac0dbb8baf5843548 14-Feb-2014 Robert Shih <robertshih@google.com> LiveSession refactor

Bug: 11854054
Change-Id: Ia91dce109835e042f72934376d4838b4cc72cb10
/frameworks/av/media/libstagefright/httplive/LiveSession.h
822a489e595336be447f47f5c2a051e8fdd1cdff 06-Feb-2014 Robert Shih <robertshih@google.com> LiveSession: Add support for block-by-block fetchFile.

Bug: 11854054
Change-Id: I4025ba7fab8fab2e0c720f73894e908fd98a43d8
/frameworks/av/media/libstagefright/httplive/LiveSession.h
1543d3c735a5ba4ddfcf8ab644575df13c7e30a9 20-Feb-2014 Robert Shih <robertshih@google.com> Initial HLS seamless switch implementation.

Bug: 11854054
Change-Id: I75fc2a258111295039ac13cc37e407df25891dd2
/frameworks/av/media/libstagefright/httplive/LiveSession.h
3a005b3b19b750afe24577ae322aff4602ca2740 21-Feb-2014 Robert Shih <robertshih@google.com> Merge "LiveSession refactor"
97194cdf8d67f362ef8c6dfdf607298c7e102b3b 20-Feb-2014 Marco Nelissen <marcone@google.com> resolved conflicts for merge of aa0390b7 to master

Change-Id: Ide9dfb5df75cac7c363a3c7fdbd8fabdc326a495
8ca002eedc747dd854b61cbe364b52c06869273f 14-Feb-2014 Robert Shih <robertshih@google.com> LiveSession refactor

Change-Id: Ia91dce109835e042f72934376d4838b4cc72cb10
/frameworks/av/media/libstagefright/httplive/LiveSession.h
8dd1c202aea703ed8beacaaa0dad5ae9c76a0863 06-Feb-2014 Robert Shih <robertshih@google.com> LiveSession: Add support for block-by-block fetchFile.

Change-Id: I4025ba7fab8fab2e0c720f73894e908fd98a43d8
/frameworks/av/media/libstagefright/httplive/LiveSession.h
81e68448f3361eaf8618930471fdc3c21bdf5cbc 05-Feb-2014 Andreas Huber <andih@google.com> Remove no longer needed http proxy handling code, it's obsolete now

since we started to use java's HTTPConnection instead of the native
implementation. Also remove other remnants of the previous http implementation,
such as accounting for the http user's uid.

Change-Id: I60bfd31381ea40d2220db587ec5c433093b60034
/frameworks/av/media/libstagefright/httplive/LiveSession.h
1b86fe063badb5f28c467ade39be0f4008688947 29-Jan-2014 Andreas Huber <andih@google.com> FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code

Change-Id: I9f74a86e70422187c9cf0ca1318a29019700192d
/frameworks/av/media/libstagefright/httplive/LiveSession.h
784faaf1d76902be6b36d3af01fb5325f0d45a04 22-Nov-2013 Martin Storsjo <martin@martin.st> LiveSession: Use the actual, possibly redirected url as base in the M3U

This fixes playback of HLS streams where the M3U playlists use
relative paths and the main playlist is opened via a redirect.

Change-Id: I787e1c050daddc566be4c8e3f84803d3f91eec46
/frameworks/av/media/libstagefright/httplive/LiveSession.h
dcb89b3b505522efde173c105a851c412f947178 06-Aug-2013 Chong Zhang <chz@google.com> MediaPlayer: add listener for raw track data

Bug: 10326117

Change-Id: I2c0bdf8adc67b11f8dc633423bee66897548f181
/frameworks/av/media/libstagefright/httplive/LiveSession.h
14f7672b5d450ed26a06fd3bb3ce045ea78b11b2 15-Jan-2013 Andreas Huber <andih@google.com> New HLS implementation supporting independent stream sources, audio-only streams

and more.

Change-Id: Icfc45a0100243b2f7a14a9e65696be45b67d6495
/frameworks/av/media/libstagefright/httplive/LiveSession.h