History log of /frameworks/av/media/libstagefright/httplive/LiveSession.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6fbcf6331abfbbc935bf89332f84303733e578b2 04-Feb-2015 Robert Shih <robertshih@google.com> Merge "httplive: Set start time and segment start time in conjunction." into lmp-mr1-dev
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
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
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
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
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
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