History log of /frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
44a580a5262ba19c275aac3537b9306679819f94 19-Nov-2016 Wei Jia <wjia@google.com> Merge "mediaplayer: support same seek mode as MediaMetadataRetriever."
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.cpp
6507185f5c59d39deeda6598ce50ee4900723501 17-Nov-2016 Robert Shih <robertshih@google.com> Merge "httplive: fix overflow in BandwidthEstimator" am: 6cc43e10f4 am: 3c0f1962af am: 51ae9199be
am: 01abec8737

Change-Id: I43de1de085d2a3b8f02a7b6242dedfc6683a0a4f
3c0f1962af4d61ce9f3bc250bc3bf8fe0fe7980b 17-Nov-2016 Robert Shih <robertshih@google.com> Merge "httplive: fix overflow in BandwidthEstimator"
am: 6cc43e10f4

Change-Id: I62c07442b4bcb05fa067e879c445bf19d4832b13
a6ff3a8a9bd17e8a5a421b409b58b8497842ebef 14-Nov-2016 Robert Shih <robertshih@google.com> httplive: fix overflow in BandwidthEstimator

Bug: 32424616
Change-Id: If857fec44c6466aaadbde8cccbbf95a98d231fa2
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
f834ca5ed5dd748f4dd02654cc7e8d76c1a2c0ec 29-Mar-2016 Michal Piechowski <michal.piechowski@sonymobile.com> Merge "Don\'t print both current and new URIs by default" am: bf1e74e
am: e03fe51

* commit 'e03fe519db8496448edf9a2d28dcaefa20a927d6':
Don't print both current and new URIs by default

Change-Id: I737307813a1cc8119d84127f7d741382c3ece44c
94e2db71cf1ce90f8a74632895e2766b24a80d7f 19-Nov-2015 Michal Piechowski <michal.piechowski@sonymobile.com> Don't print both current and new URIs by default

User may don't want to leak URIs used by him and ALOGI is visible from
default so changing it to ALOGV.

Change-Id: I14f2de3441f76207f6d404efb509e87cdca2b0e3
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
7350b057ca864f5dc9e53d48e34710a8e81133f8 02-Oct-2015 Robert Shih <robertshih@google.com> Don't re-scan sources if no new ones will appear

The only scenario we might need to re-scan is when switching between
bitrate variants in HTTPLiveSources.

Bug: 23313819
Change-Id: I892033c8698f985de74801c39ac5b5417ed19e89
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
7f3bb5ad9dfb30388b69166e58391ff3aa6f00a3 28-Jul-2015 Robert Shih <robertshih@google.com> HLS: preserve old format in onChangeConfiguration2

`onChangeConfiguration2` is only called during seek.

Bug: 22698650
Change-Id: I715fa51d04d503f49d678eaea08f2b63dce4e01e
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
6f9c5e26c710dbee50e57316f1c460dda4850fa5 15-May-2015 Robert Shih <robertshih@google.com> Change mime for HLS timed ID3 stream to application/x-id3v4

Bug: 21151892
Change-Id: I6a243b0edbbb445df0caf65f395f81926fd515f0
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
8a048338d9291b2db1b3a325fff58cb1aa69f04d 07-May-2015 Chong Zhang <chz@google.com> nuplayer: fixes for subtitle pause/resume

- pause after the current block when select track
- ignore metadata timestamps as they're too sparse
- use smaller range when searching for next segment to prevent
resumeUntil from downloading too much data

bug: 20500732
Change-Id: Ibda57a39ec86efd96a8dd0db95adeb92d076697a
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
0dd229bb306df68b88e7419b3cc11fc6175be1da 07-Mar-2015 Robert Shih <robertshih@google.com> AnotherPacketSource: make getBufferedDurationUs more discontinuity-aware

The new getBufferedDurationUs implementation obsoletes the purpose of
getEstimatedDurationUs; remove getEstimatedDurationUs and its
associated member variables. Finally replace calls to
getEstimatedDurationUs with getBufferedDurationUs.

Change-Id: I38f20df8e177ffbfe299b203d99076fc98dcd274
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
978449984366946a2e5c9f7cf350746f4306caf8 12-Apr-2015 Chong Zhang <chz@google.com> HLS: reduce number of guessed wrong seq numbers

- account for playlist age in live streaming when calculating
segment time

- be more conservative on downswitching if bandwidth is unstable

- adjust forward or backward if guessed wrong seq number

- code refactor

bug: 19567254

Change-Id: I0b61cea888fdffd1b3ee2446747ed10152e9e7d7
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
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.cpp
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.cpp
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.cpp
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.cpp
765f27c2376e83766d9e1d8f8136025c5437ce49 30-Mar-2015 Chong Zhang <chz@google.com> fix build break in clang

Change-Id: Iff2ca5d1e800d30943de12191bfe6c43d6a2c7f6
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
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.cpp
4604458dfe57b0e91a464aefafea50ae7b9876c1 17-Mar-2015 Chong Zhang <chz@google.com> Fix 64-bit build break caused by print type

Change-Id: I2239d875420f6926918c1a0dcab31b71c8329d1f
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
c4547ba77f78632172db3647a09659d9863d3b5c 06-Mar-2015 Chong Zhang <chz@google.com> HLS: some fixes for seek with discontinuity.

- keep old fetcher when seeking, unless the URI is changing.

- when restarting after a seek, check discontinuity seq, and
queue format change if it's changed.

- add a simple kill switch to abort when stop (or pause for seek).

- when seeking, if searching for start time goes into 2nd segment,
do not signal time discontinuity or reset first PTS.

- use setFormat() to set format in AnotherPacketSource, otherwise
video/audio flags are not updated and format are not cleared on
discontinuities.

- do not start queueing video access unit until first IDR after start

bug: 19656539

Change-Id: I79108d26964f59ea00d2eeac8f5f9318747f8541
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
1d15ab58bf8239069ef343de6cb21aabf3ef7d78 05-Mar-2015 Lajos Molnar <lajos@google.com> media: switch to new AMessage handling

Bug: 19607784
Change-Id: I94cddcb81f671422ad4982a23dc4acfe57a9f1aa
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
7dbbc7ec95c3040668388162a0ffbc45b68af6f1 04-Feb-2015 Robert Shih <robertshih@google.com> am a291dabc: am 6fbcf633: Merge "httplive: Set start time and segment start time in conjunction." into lmp-mr1-dev

* commit 'a291dabcab10cafc1749d1d9493d269049502256':
httplive: Set start time and segment start time in conjunction.
6fbcf6331abfbbc935bf89332f84303733e578b2 04-Feb-2015 Robert Shih <robertshih@google.com> Merge "httplive: Set start time and segment start time in conjunction." into lmp-mr1-dev
e91c3dd028c6cf551e905c5d2cfb5d1fc0c8bcb7 04-Feb-2015 Elliott Hughes <enh@google.com> am 6a025acb: am ec0472ba: Merge "Move AString\'s StringPrintf out of the way."

* commit '6a025acb630a3ac4a84715d188aeb48f1946bc3f':
Move AString's StringPrintf out of the way.
a1e8944a21e5833b7aadc451776f11797f5f9273 04-Feb-2015 Elliott Hughes <enh@google.com> Move AString's StringPrintf out of the way.

We should come back and replace AString with std::string and switch to the
"real" StringPrintf family, but this fixes the ODR violation that was
preventing us from booting.

Bug: 19265750
Change-Id: I798eb9ca5dd634e44625af5e583439ef9f0cdc35
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
afcc4fcbb3a094ec2221d6e523772e76894d1f00 04-Feb-2015 Robert Shih <robertshih@google.com> 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
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
ff430c633e52f15acdd305953e6071b75f1e700c 02-Feb-2015 Apurupa Pattapu <apurupa@codeaurora.org> am e3ada5d5: am 678bcdc8: httplive: Defer switch down if a switch is in progress

* commit 'e3ada5d580a32b0133ac3db881e1574af57cb4fc':
httplive: Defer switch down if a switch is in progress
678bcdc852dd8f801f5c46fdc85db587b721d83d 05-Dec-2014 Apurupa Pattapu <apurupa@codeaurora.org> httplive: Defer switch down if a switch is in progress

Bandwidth switch down is triggered if the buffered duration in
any of the current packet sources is below a threshold. When a
switch is in progress, all the packet sources are drained until
they are empty or until stop time is dequeued. Hence buffered
duration keeps going down during switch. Defering check switch
down will avoid unnecessary switches.

Do not switch down if estimated bandwidth index is more than
the current one.

Bug: 18821145
Change-Id: I655a308462503cf9df10672ecd904a51b2cba691
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
1eda9bfba04043c380666ba1ee86fd285b8ffbca 29-Jan-2015 Leena Winterrowd <lenhardw@codeaurora.org> am ce25d85a: am a93fd2be: stagefright: httplive: Decouple block size from bandwidth estimate

* commit 'ce25d85ad22e6df4b861d17e9e67cb6d0e62c363':
stagefright: httplive: Decouple block size from bandwidth estimate
00dfe8432618c1d512557b2ed5910c44fc293948 29-Jan-2015 Leena Winterrowd <lenhardw@codeaurora.org> am 0512881b: am 9aff25fb: stagefright: httplive: Reduce memcpy calls for chunked content

* commit '0512881b08d03d10d6f164566c9a787d2f56ab6d':
stagefright: httplive: Reduce memcpy calls for chunked content
a7a1df0589048a675759ebf44f9794b0c613f3fe 29-Jan-2015 Leena Winterrowd <lenhardw@codeaurora.org> am 958a5432: am 17460976: stagefright: httplive: Fix deadlock for low duration clips

* commit '958a54322ea3ff2ad8ed0ac6e229c90c638f8a7f':
stagefright: httplive: Fix deadlock for low duration clips
ea5c0286e8a18e71608e6c6e5758b167fe0d6c26 29-Jan-2015 Lajos Molnar <lajos@google.com> resolved conflicts for merge of 44a2390b to lmp-mr1-dev-plus-aosp

Change-Id: I39fdc2e8895e1e943749b9a2628656a8fa5bb72b
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.cpp
9aff25fb41f516ac26f9d1983a25402909f1e77a 05-Nov-2014 Leena Winterrowd <lenhardw@codeaurora.org> 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
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
174609765fb9c8cbd6aeb61f489746c3570bfee2 18-Nov-2014 Leena Winterrowd <lenhardw@codeaurora.org> 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
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
8564e13b37d372da78bce08f34a3610795ae173c 29-Dec-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 2efb9566 to lmp-mr1-dev-plus-aosp

Change-Id: I4313941f3561176ce9f6ab055678fb626e570107
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.cpp
dc039672b8fad7746200ecc36304d0e85db4f367 15-Dec-2014 Wei Jia <wjia@google.com> am a0b3a0a4: am 6e430fbd: Merge "NuPlayer: send NOT_SEEKABLE media info to 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.
895651b07fec30b0f9b0d2499599a179d95c9be4 11-Dec-2014 Wei Jia <wjia@google.com> NuPlayer: send NOT_SEEKABLE media info to client when the source is not seekable.

LiveSession: return -1 for duration when it's not available.

Bug: 18599325
Change-Id: Iecd040f48750806f98d1799e2aaab2f90c6f3887
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
5a88501c8f677e34afb2043d7e81d8e09d6fa5f4 27-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of e5ba80c5 to lmp-mr1-dev-plus-aosp

Change-Id: Iea12c8a6cabf84584e4a89ad80e298c1f4ea3dd7
b3f9759c8c9437c45b9a34519ce2ea38a8314d4e 24-Nov-2014 Andreas Gampe <agampe@google.com> Stagefright: Fix unused variables, functions, values

For build-system CFLAGS clean-up, remove unused functions and
variables.

Change-Id: Ic3dee56b589ea9a693efa1d72ba394036efff168
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
39b109a1df23e7610b031b466e9ecf510b3c077f 18-Nov-2014 Robert Shih <robertshih@google.com> Merge "NuPlayer HTTPLiveSource: impl getSelectedTrack" into lmp-mr1-dev
89bf2525c5b57f17260de5b00c5f3f78ac4b881e 30-Jul-2014 Robert Shih <robertshih@google.com> NuPlayer HTTPLiveSource: impl getSelectedTrack

Bug: 17514665
Change-Id: I81c62553f2c5acb4d2436a9d8f04c10fdbe315d0
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
fef808d42a9c94b0b5ef3c3d5fb0a090edbc42da 01-Nov-2014 Wei Jia <wjia@google.com> AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.

This will remove the unnecessary flush for seek.

Bug: 17511837
Change-Id: I4b7acfc71a410372f5c630afb94b6a95d09d8974
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
6300cbe99899da0103c910ba6a35c785261ce433 30-Sep-2014 Marco Nelissen <marcone@google.com> Check if info for uri is available

before retrieving it.

Bug: 17683986
Change-Id: I7a44cd06faf11c22be2ed5ace8ab6e2a5513b66c
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
ec5206c99694d263ac099bf2c37f8119f43f74f1 25-Sep-2014 Robert Shih <robertshih@google.com> Merge "LiveSession: do not drop seek request" into lmp-dev
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.cpp
800599cdd50737de1cde483a34b39923750b0658 30-Aug-2014 Robert Shih <robertshih@google.com> LiveSession: do not drop seek request

Bug: 17538727
Change-Id: I28658b2779ac16512ff54adbe536d01790e6449e
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
15f8ecfa23b650b3efa8fe841d2be6bd0c9523fb 15-Sep-2014 Robert Shih <robertshih@google.com> PlaylistFetcher:don't signal a/v eos on subttitle eos

Bug: 17310061
Change-Id: Ifbca3c12f21171a6e429dca51a250a41051fdd34
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
73d2847af14cdd5fdf8bd1ac80fb7ddf9ae7d9a7 30-Aug-2014 Robert Shih <robertshih@google.com> HLS: fix freezes when toggling between a/v streams

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

Bug: 17142706
Change-Id: I9cd6c068178d62c294496e8ab0b0a3763354964f
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
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.cpp
9d7fc5c5fab0c7c967a625d22fffda046f9d5c29 19-Aug-2014 Robert Shih <robertshih@google.com> HTTPLiveSource: check for NULL before getTrackCount/Info

The effect is MediaPlayer returns a 0-length array when getTrackInfo is
called before PREPARED state.

Bug: 12029173
Change-Id: Ib3a48525eac07b04a2ff88ce199d66dcc61c1641
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
a1df816c0677185534babba6ffc29970b048e52e 04-Apr-2014 Lajos Molnar <lajos@google.com> stagefright: log uri protocols, and opt-in to log full uri

Added property media.stagefright.log-uri. Set it to true or 1 to
log uris by AwesomePlayer.

Added utility function to get uri debug string based on incognito
and log opt-in status.

Change-Id: I5ccc23079ddfb120dd9703a3ed651a162ed5acec
Related-Bug: 6994761
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
b4a7a2df4c28c3f32b5d877b54831d2cc5d78f81 20-Mar-2014 Colin Cross <ccross@android.com> libstagefright: fix 64-bit warnings

%lld -> %" PRId64 " for int64_t
%d -> %zu for size_t
Also fixes some casts from void* to integer types, and some comparisons
between signed and unsigned.

Change-Id: I9c52f76240e39399da252c66459042a6fc626a90
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.
49b2e310f62c590a1af9f921cd8a134cdf589263 19-Mar-2014 Robert Shih <robertshih@google.com> am a1f0c62c: am 43ca783e: httplive: block-by-block fetch, decrypt, and parse ts files.

* commit 'a1f0c62c189f2d162cca4af736c3d440f1eff53c':
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.cpp
fa243e07f062058e7df01c052eb79086c21fbdbc 14-Mar-2014 Lajos Molnar <lajos@google.com> am 466786b2: am 70cc5bdc: Merge changes Ic46e3069,Idc92716b into klp-dev

* commit '466786b25b262f4f6e5737b3a88e8d7f6916e45c':
LiveSession: fix incorrect stream key (subtitle"s")
M3UParser: trim spaces when parsing comma separated codecs.
a0b94395dc82c90ca437bb6fed7aa01fcbbffffe 14-Mar-2014 Lajos Molnar <lajos@google.com> am 5b297ba7: am 67a10c52: Merge "httplive: clear access units before returning from seekTo." into klp-dev

* commit '5b297ba76271e8554758cbd569e73720bc914af6':
httplive: clear access units before returning from seekTo.
fca092d953e04c7169242200f0ddb914a9f54ea4 12-Mar-2014 Marco Nelissen <marcone@google.com> am f4431278: am 19afb386: Merge "Remove streaming URI from default logs"

* commit 'f4431278a9613f55ecd944ab2e3eb615b372f269':
Remove streaming URI from default logs
f4431278a9613f55ecd944ab2e3eb615b372f269 12-Mar-2014 Marco Nelissen <marcone@google.com> am 19afb386: Merge "Remove streaming URI from default logs"

* commit '19afb3869eb6a3e3733dc1f7420e1d4c3c03d376':
Remove streaming URI from default logs
7d3044d64294cca6fadd184648a57185e92cf5c6 11-Mar-2014 Robert Shih <robertshih@google.com> LiveSession: fix incorrect stream key (subtitle"s")

Bug: 13402087
Change-Id: Ic46e3069c6e41f90ead47cae84cbe0123d11002a
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
e4f25c280a8f1655c31a745978e0fcbc61f91dee 11-Mar-2014 Robert Shih <robertshih@google.com> LiveSession: fix incorrect stream key (subtitle"s")

Bug: 13402087
Change-Id: Ic46e3069c6e41f90ead47cae84cbe0123d11002a
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
a8b8488f703bb6bda039d7d98f87e4f9d845664d 06-Sep-2012 David Williams <david.williams@sonymobile.com> Remove streaming URI from default logs

Streaming URI should not be visible in default logcat logs

Change-Id: I104cc56b5335f8c5621013e4c5be8028f0379833
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
31a98ad0da98227f3c76469e7a8a267c9539b6e8 07-Mar-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 8d1caa02 to klp-modular-dev-plus-aosp

Change-Id: Ibcb60d0d3bbc8beb54440951ffe8a14b946ccc85
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.cpp
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.cpp
6c8495c8f1ccc35db972ee7ac0dbb8baf5843548 14-Feb-2014 Robert Shih <robertshih@google.com> LiveSession refactor

Bug: 11854054
Change-Id: Ia91dce109835e042f72934376d4838b4cc72cb10
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
dc793ce8c0ead27ab43e40ce09f27fe338323502 24-Feb-2014 Robert Shih <robertshih@google.com> LiveSession refactor: reverted loop indice change.

Change-Id: I465746b206e2253ad44aae0c59317473bc93f73e
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
4ee5d2b9d0cdaf936bd5fecd670e5f38da63e4ae 20-Feb-2014 Marco Nelissen <marcone@google.com> Merge "LiveSession: Use the actual, possibly redirected url as base in the M3U"
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.cpp
94dcc94b16cc6c2a7aa02df2d0d6b8743d738d78 07-Feb-2014 Colin Cross <ccross@android.com> frameworks/av: fix errors inside ALOGV

Fix errors exposed by adding compile-time checking to disabled ALOGVs.

Change-Id: I9602a4a485dffa3caad732c2a19ec0e41a0ac65b
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
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.cpp
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.cpp
16117ab436e1de4ca494cad58662cdc2ecf6797a 19-Nov-2013 Andreas Huber <andih@google.com> The member mRefreshState was removed in commit and the printout causes

build failure when verbose logging is enabled.

patch contributed by "Bertil Akesson" <bertil.akesson@sonymobile.com>

Change-Id: I1520e24be67d35cd42571ec6211c909a6be76604
related-to-bug: 11056200
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
673158582c9589cee1d5e4d7c79622609938b8f8 04-Jun-2013 Andreas Huber <andih@google.com> Fix uninitialized variable error in HLS bandwidth determination.

Change-Id: I647e79443f2a06e5b1b4f9068c02b424b0e57989
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
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.cpp
997594088164cfb33c1cb8c376884346fbf1e7ae 01-Apr-2013 Andreas Huber <andih@google.com> Fix seek in response to OnPrepared() for HLS content

Change-Id: I0e52352845398a4db074e939487f6f6de94bd523
related-to-bug: 8225122
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
0df36ec3303c2c6bf9b42c07945ac8bd234153f3 06-Feb-2013 Andreas Huber <andih@google.com> HLS now properly publishes its "seekable" flags after connection

has successfully completed and a sufficient amount of data fetched,
and only then signals that preparation is completed.

Change-Id: I7684a14238b826909f518f2af506966e522dfcfc
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
b7c8e91880463ff4981e3e53e98e45d68e2fe374 28-Nov-2012 Andreas Huber <andih@google.com> Add support for HLS playlists of type 'event'.

related-to-bug: 6870049

Squashed commit of the following:

commit eee2f3ba6bb7335f4e285632726db85645669929
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 15:02:01 2012 -0800

Make everything a lot less verbose by default.

Change-Id: I884d7a7901aa1e7d4ff590f065ca57a79d2af8b3

commit 6bbdb837ed5bd88008e45efb8faf595e4051ba26
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 14:34:46 2012 -0800

HLS now properly signals media time changes at discontinuities including

the start of playback (which may not necessarily be at time 0 if the playlist
is of type 'event' and hasn't completed yet).

Change-Id: I5ab747d024f9b8d0df72a4e06a12ebb29f62802e

commit 1555589832b1878a144a976a643e1af4d61f877c
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 14:32:28 2012 -0800

As part of a time discontinuity, clients of IStreamListener can now

signal the corresponding media time after the discontinuity, i.e. the first PTS
timestamp following the discontinuity will be considered equivalent to the
specified media time and media buffers timestamped accordingly.

Change-Id: Id7db7679b7faa6efd6270620ff52e34e884f3e92

commit 5c24c605c073a11c426d025b1e7478fc1ad8365a
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 13:00:56 2012 -0800

NuPlayer sources now expose flags() and can announce

that duration may change (increase) dynamically, in which case duration
will be polled at 1 second intervals and communicated to the upper layers.

Change-Id: I45102909b7a19eed0dda576747e3814d742a0eea

commit ecb71de8e281e61971a2cd73e7161a97540bc357
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 12:57:47 2012 -0800

Stop caching duration in MediaPlayer, duration could increase dynamically.

Change-Id: I7bb2f16c0abe49debdf45c776d2266aa069d7791

commit 544aec5823e6d7a3e97e15b6b23546616bcd343e
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 08:46:28 2012 -0800

An attempt to add support for "event" style HLS playlists.

Change-Id: I3dfb2e801ecaff8f5d8bdb3a4fca1b18aeeb2c60

Change-Id: I48cf7f65a654d33f2f49ded74f8be22aed9e3b98
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
53ae1640ffbfc690962f7f94694b02680c6f66cb 17-Aug-2012 James Dong <jdong@google.com> Don't log streaming url.

o related-to-bug: 6994761

Change-Id: I79d5549a70b3bde67ddf496cfc6283ac92b1f569
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
df64d15042bbd5e0e4933ac49bf3c177dd94752c 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
2aa4cc04154d82f6658fb86f394f13bb488b0468 08-Aug-2011 Andreas Huber <andih@google.com> Support new HLS byte-range extensions

Change-Id: Ic767ddea93ffcb87d83b8fbc20837486648da3d7
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
3856b090cd04ba5dd4a59a12430ed724d5995909 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
6801b4dbd00b485ecdcd31b517ed885a8fa21c63 04-Aug-2011 Andreas Huber <andih@google.com> Restart HLS streaming from the bottom of the playlist if we miss the boat on the

next segment. This can happen if for whatever reason we playback video slower than
it is served.

Also removed some unnecessary verbosity from ChromiumHTTPDataSource.

Change-Id: I6e870879310c9efe4d50d7dc0883c08405442d79
related-to-bug: 5120425
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
20f725ebcef13ded1b4b85c61c8a4b37cd030656 22-Jul-2011 Andreas Huber <andih@google.com> Start playing live streaming HLS content from the first segment.

Also properly signal a "hard" discontinuity, i.e. a possible format change
when a discontinuity is signalled explicitly as part of the playlist.

Change-Id: Ic347d3d11d39b0411c3726a7c723bcf13092b8bc
related-to-bug: 5103155, 5103013
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
d6a46a6bda23667e06ee5ccca3781e407c7d1204 20-Jul-2011 Andreas Huber <andih@google.com> More HLS fixes

properly expand URLs where the "new" URL is an absolute path.
properly include any extra headers even when fetching the key files.

Change-Id: I7cd8879015ea8e3d3e2334f4e7e16b8c1a5d48e9
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
8dae4ca229d21f68f3ee76c76b49b6f0a47aad53 16-Jul-2011 Andreas Huber <andih@google.com> Always consider playlists corresponding to different bandwidths different.

Change-Id: I07bb3023af5046db93b4f8785eb90c6a4fb15b95
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
7e43a5a2dcfa9bc64ef477472a33c87a84695c09 15-Jul-2011 Andreas Huber <andih@google.com> Refetch playlists according to the HLS specs, varying delay if playlists unchanged

since the previous fetch.

Change-Id: I75e167a650c65a23e284381db5203beba7be7420
related-to-bug: 4983546
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
9b80c2bdb205bc143104f54d0743b6eedd67b14e 01-Jul-2011 Andreas Huber <andih@google.com> Charge network traffic to the uid of the process using the MediaPlayer.

Change-Id: I2bcb54b8232afd3fc7ee16289f37c7a7b3f23067
related-to-bug: 4517282
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
0f30bd90272c818aa37c0bb22d22eaa7d3689879 01-Jul-2011 Andreas Huber <andih@google.com> Seeking/duration in HLS content is based on the individual segments' duration

not target-duration.

Change-Id: I294097daa84c25e4084a6fc4ea80e39a543f3d10
related-to-bug: 4983285
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
9067e30b3ccb3a07e41b61af22c036378053a9a3 21-Jun-2011 Andreas Huber <andih@google.com> Parse the individual segment's duration as a floating point number which is now

allowed in later HLS specs.

Change-Id: I7c8296acb4e9b0f80022f3057769de0eea9ee0c6
related-to-bug: 4779022
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
ad0d9c9c39a24b7fbd94e935a5855c9025341929 19-Apr-2011 Andreas Huber <andih@google.com> Add extra headers specified in the media player's setDataSource call

to all http requests made by the http live implementation.

Change-Id: I9dd78bb261bc678ea98c82009ca2634b74f3cd58
related-to-bug: 4315346
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
1156dc913a5ba7b2bc86489468d4914430f03d14 09-Mar-2011 Andreas Huber <andih@google.com> An HTTP datasource for stagefright using the chromium code.

Use of this new datasource is now the default unless overwritten by

adb shell setprop media.stagefright.use-chromium false

Change-Id: I156a8eb9a1fff1cb537b4aec6cf3e8e6052be81e
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
7314fa17093d514199fedcb55ac41136a1b31cb3 24-Feb-2011 Andreas Huber <andih@google.com> Suppress the logging of URLs when in incognito mode.

Change-Id: Ib951b495eae15669e160ef54686eab0eeb9b366a
related-to-bug: 3336575
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
8cb0c4168bf4b678e4a6edfcf409247016be20d5 17-Feb-2011 Andreas Huber <andih@google.com> Experimental support for https transfers in stagefright.

Change-Id: If1bd0f265dda136c7c34b53317f64383023b53a3
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
ed8d14f6a934072cd012992c4ef16990a54baa9a 16-Feb-2011 Andreas Huber <andih@google.com> Remove legacy, AwesomePlayer-based http live implementation.

Change-Id: I455d0faa5612dcd4d2bb6f2b3c7b64a1caaabf69
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
ab8a0badb8fb1e294dacf2eb6a891439f348aff9 01-Feb-2011 Andreas Huber <andih@google.com> Disconnect HTTP live sessions as soon as the request comes in.

Instead of waiting until pending events have been processed.

Change-Id: Id758f5508a514561e18aade82175d69e9156965e
related-to-bug: 3409681
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
bc7f5b2e56107cfeaeeab13cf8979379e3c2f139 21-Jan-2011 Andreas Huber <andih@google.com> Some tweaks to HTTP live / nuplayer behaviour

- play audio-only streams again
- workaround for malformed streams that switch PIDs across bandwidths
- attempt to pick a different bandwidth stream if the previously chosen one appears
to be malformed/unsupported.

Change-Id: I426d0a40dc725aa242f619d4c9d048b69aca55c9
related-to-bug: 2368598
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
88b7ad413c4b6d08697069b18488641d6ce31fd3 19-Jan-2011 Andreas Huber <andih@google.com> Always revert to the previous bandwidth if the required sequence number cannot be found

Change-Id: I098dba37f4a70fc703c9ce65346907c3e10f27f6
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
88b348910a607ae399bcd693dd42a231d98da2c9 19-Jan-2011 Andreas Huber <andih@google.com> Return a runtime error if decryption fails instead of asserting.

Change-Id: Ibab7f2cae3ff7a2e19bc3f31005d5059775a664a
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
20ad3a341a96e7746015ccb7369fa567897e11f6 07-Jan-2011 Andreas Huber <andih@google.com> Fix typo.

Change-Id: I2d7796425ea746432964ce48959b6c227d31df11
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
aea5aff45a1af14e249ac311f0a128a621a7d13e 07-Jan-2011 Andreas Huber <andih@google.com> If the stream for the new bandwidth doesn't have the segment we're looking for...

go back to the previous bandwidth' stream.

Change-Id: I3477cb6932102883509a7cbe9fb2b3bb02dac8c6
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
4b197e1ffe46eb73ebdb80efc984bfde336b8e92 06-Jan-2011 Andreas Huber <andih@google.com> Use NuPlayer for HTTP live streaming playback by default.

Reversed the property logic, set media.httplive.disable-nuplayer to true to revert

Change-Id: I1057940667aaab56bb75c9ea15c2cdcab736f3c6
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
22fc52f6f72f39e33c3970d0291de3569118aa5c 06-Jan-2011 Andreas Huber <andih@google.com> Some more fixes regarding HTTP live in NuPlayer.

Change-Id: I9e29615fa8ee6c7bd4189373a75c20caef3fd2b1
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
43c3e6ce02215ca99d506458f596cb1211639f29 05-Jan-2011 Andreas Huber <andih@google.com> Seek/Duration support for completed http live streams in NuPlayer.

Change-Id: I55bbe75d87140c07b1927d14ad24130fce803463
related-to-bug: 3321475
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
5bc087c573c70c84c6a39946457590b42d392a33 23-Dec-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit eaeaa2672d4e0a82891493b2bde8bdd0c0e79a1b
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 23 10:26:48 2010 -0800

Remove lowest bandwidth stream if using the legacy player.

Change-Id: I2f885e26344996de9152f8fda9fd6bdef89bf953

commit 7d652972615b2750fd8f1c21b9fab0e136df2b82
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 23 10:14:36 2010 -0800

Don't clear the packet source's format for legacy discontinuities.

Change-Id: I9bd5a21b9bd28043ad38bd0658ccc8eda3c1079a

commit 2b18a45aac17cbfe1aa089d0f6510957d438dd64
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 23 10:13:55 2010 -0800

Use NuPlayer for HTTP live streaming based on runtime property.

adb shell setprop media.httplive.enable-nuplayer true

Change-Id: I22738df3403985dc8e6992b1ab5da5747309f773

commit 50d899fb7b9ea52c3994b0a58e993998d926aeed
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 16:25:22 2010 -0800

Make ACodec a lot less verbose.

Change-Id: I94c7e499b61032321ffaf999f5ad2c913cde6a48

commit b19e1740cb4d02990a56844654b5d019987c6405
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 16:22:22 2010 -0800

Wait until we have fresh codec-specific-data before instantiating the decoders

after a discontinuity involving a format change.

Change-Id: I7bcf9b5ae3319f08bf8978a117e8ee5220902e37

commit 06428c006906c9099e430aface3b439ff1d36ecc
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 15:20:38 2010 -0800

Disable random seeks in the streaming tool for now.

Change-Id: Ie86fde422dcfc4b2c7a01be51a193fda9c88cd71

commit e19db68f3bea8a61c191f60f6940f30e3a0d5f1b
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 15:20:27 2010 -0800

Tweak HTTP live parameters.

Change-Id: If4b71e12485facc523a8a43d8213d0feb190daab

commit 1e9942791538c2256b579d96c6c04264b0d8b087
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 14:48:23 2010 -0800

Enable http live streaming through NuPlayer for http URLs containing the string m3u8

Change-Id: I1691fe12ae8f1507fe3673313959cd50bc324624

commit 4c33f96a6e499ee0efe0e70b687094430cb7c1c0
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 14:40:27 2010 -0800

Support for HTTP live streaming in NuPlayer.

Change-Id: Iacba1c3ebaeb8d3b972185deaf4cff18c8009c54

commit ddf705ce553708bc5b13d89a878484cf839bd674
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 13:42:47 2010 -0800

StreamingSource now a subclass of abstract NuPlayer::Source

Change-Id: Ia6c7c639628910b9d1f37decc55da48b07a70de3

commit 9e04a8406b1882a8e3fdeb7b4d52db5ae70b970a
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 13:33:52 2010 -0800

Refactor media data sourcing to NuPlayer::Source.

Change-Id: I1db9fb08c4e527bf7b19c29978cf342c2b0a0bc9

Change-Id: I9610a097481dda58f22142eacda3ac2dba0b63f9
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
df42f949c8bd05b81d94633767514fff88f52062 21-Dec-2010 Andreas Huber <andih@google.com> Better handling of forming absolute https URLs, runtime error on https:// access.

Change-Id: I7f6275520b0bd070e645024dd151a8541b8787b2
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
3831a066bcf1019864a94d2bc7b4c9241efc5c22 21-Dec-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 63be8ceb8b2354fb997a277c0092abae015ecf10
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:45:34 2010 -0800

Enable handling of discontinuities that involve potential format changes.

Change-Id: I21848a113db8764abb54bdcf302b0923253eaf4d

commit d18a7f80ec09af382026809263dcbbfa9e7a9ec8
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:45:01 2010 -0800

Signal whether or not a format change occured as part of the discontinuity.

Change-Id: I06e64f542f4369549c9cebbb892dc612346ae43d

commit c400adbd5fdbd65cfef7aed9ec65bcaace4bb69b
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:44:46 2010 -0800

A little more instrumentation of ACodec

Change-Id: I07f4aeccbbd15cdd9f80f48c3f92ee984ef6d92b

commit 1d802ee01f47b3cdc5b89502cec7fbb595e197a3
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:43:58 2010 -0800

Only sync audio/video queues if both types of media are actually present.

Change-Id: Ic88edf9bb1ebd4034c08747cce9877a4e28e0d35

commit e402da39d9a4d8b75653a78f728e20a3ef0fb497
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:42:24 2010 -0800

Disable the random seek for now.

Change-Id: Iddd597b546e2f229e88214f9bdd6452bb188105e

Change-Id: I27c4d9ba916080be94ce6117dbb095e9022ed62b
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
6e6b1cae2bac1b78205cefab8e4e9e9538982965 16-Dec-2010 Andreas Huber <andih@google.com> Instead of asserting, gracefully abort and signal and error.

Change-Id: I170a602ed80e6c85a94e46deadfc02aaf92bfebb
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp
a44153c1a57202fb538659eb50706e60454d6273 04-Dec-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 9254c845d7c82976fd4b8be406ce4b17eeb0e119
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 3 15:26:12 2010 -0800

Remove obsolete code from the cached data source.

Change-Id: I794b986ac8977cbc834dff189221a636ba564e36

commit 2ee33711064c58c53ba65ed9e63dd4b01ec2380e
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 3 15:23:13 2010 -0800

LiveSource is dead, long live LiveSession.

Change-Id: Ibcd0731ecf9c94f0b3e5db3d53d012d9da2a1c66

commit 9eabb2c3cd8571ab859bdeae0aa7f655c414d8fa
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 3 12:49:31 2010 -0800

Respect explicitly signalled discontinuities.

Change-Id: I3c0c16a2de7a99742d25db7d1b2ff0258de52271

commit 7f7f7b6b906b6ece6e4d43af7fd5f494e805c5e5
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 3 11:45:57 2010 -0800

Better protection against syncword emulation in AAC ADTS content.

Change-Id: I867e80a4556dd46d24ab3e781177c248a5221719

commit fe765766582efcc350aed01135ea603576adccf6
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 3 09:15:59 2010 -0800

New implementation of http live driving code.

Change-Id: I31ddf3d6a0d5929b121be704a2b9c3d6775f7737

Change-Id: Id8d1829c8fcb173756965013f848c1d426ef1048
/frameworks/av/media/libstagefright/httplive/LiveSession.cpp