History log of /frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.cpp
dae1e733f7cd4abaa14791657fa0a1b0e44a27b6 30-Jan-2015 Robert Shih <robertshih@google.com> PlaylistFetcher: clear packet sources when adjusting starting sequence number

Bug: 19215971
Change-Id: I4ad29cf0ac24dea330017a1b0159b06922d768ae
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.cpp
79971c747e62cad50359286f18dee0c4de5829da 15-Oct-2014 Apurupa Pattapu <apurupa@codeaurora.org> httplive: Dont resume if we have almost fetched till stop time

- Use the last enqueued instead of last dequeued time in
ResumeUntil.
- Set duration in access unit meta as timestamp difference
between the last two queued access units.

Bug: 18821145
Change-Id: If53ddee1d87775905a6d4f11a6219fe66f498450
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
9dee2e592e89e90097cbb3b5065cffa768917b56 18-Nov-2014 Leena Winterrowd <lenhardw@codeaurora.org> stagefright: httplive: Propagate target duration to LiveSession

LiveSession's switch-down monitor requires the 'targetDuration'
key to evaluate the switching threshold. Ensure that this key is
set in the access unit metadata.

Bug: 18821145
Change-Id: Ib30f3b4bd8185a77a06abd755822f96644968a21
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
5cf91c5067a9c7ed3c138d4e56fb176b28f5dc3a 04-Nov-2014 Leena Winterrowd <lenhardw@codeaurora.org> libstagefright: httplive: Add NULL check for empty playlist

If the source playlist is empty, the playlist meta will be NULL.
Check for this case to avoid an invalid dereference. Also flag
playlists without the required EXT-X-TARGETDURATION tag as malformed.

Bug: 18821145
Change-Id: Idf74d890a89bbc6483a6d4060eb092dc7461be24
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.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/PlaylistFetcher.cpp
95697aecd644ffcfbe7fe828e9e42bfab71b75a5 11-Nov-2014 Robert Shih <robertshih@google.com> HLS: fix live lock after missing the boat during configuration change

Bug:17488643
Change-Id: I4f5de42f86d6c616a67dc803f35c026b35347983
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
f97dfbc9e20a61e56a03058af7d947b17c48515e 15-Nov-2014 Robert Shih <robertshih@google.com> Merge "PlaylistFetcher: handle sporadic fetch erros" into lmp-mr1-dev
daad5b2f4a6bb46a7911661e398278d6a80d7093 30-Aug-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: handle sporadic fetch erros

Bug: 17490472
Change-Id: I2c04e2352f13db762b845f4d35db0a8b851a148c
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
e0b7ddcda9b4fb493cc365c92293ed7d12c3208a 13-Nov-2014 Robert Shih <robertshih@google.com> Merge "PlaylistFetcher: check ts program streams before disabling a/v" into lmp-mr1-dev
bf20727f0aaf609bc3b495b07b45822b137d21ba 31-Oct-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: check ts program streams before disabling a/v

Bug: 14648838
Change-Id: Ibf2b2cbb235f3d80bc33013e2afc053f13b9035f
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
95768fc3c357f243ded53baa9f375401dc4835cd 11-Nov-2014 Robert Shih <robertshih@google.com> Merge "PlaylistFetcher: clear mStartup for .aac playlists after seek" into lmp-mr1-dev
f5b7c3b3c9a6da29f3bbd02e4031ad19bc7ad0f7 08-Nov-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: clear mStartup for .aac playlists after seek

Bug: 18296856
Change-Id: I26beabee338312eb2125b69284052c61aef611f0
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.cpp
b44ce2f84691559672cfaf6bb8fd3a9ac43904f2 19-Sep-2014 Robert Shih <robertshih@google.com> NuPlayer HLS: better subtitle toggling

Bug: 17310061
Change-Id: Iacee1816285425aaad08c32b28591bb0162d5a85
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.cpp
60a89850fdbb71fd48bdef3712b340cc2fa5a722 16-Sep-2014 Robert Shih <robertshih@google.com> Merge "PlaylistFetcher: find the correct sequence number to start fetching" into lmp-dev
f78f62bd6b0a99747db53828d281a50b9270a646 30-Aug-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: find the correct sequence number to start fetching

- skip over bad segemnts
- if we skipped too far into the future when adapting in live streams,
adjust back

Bug: 17141635
Bug: 17416657
Change-Id: I0877ceaf6e69cab751bf9e92579071f9e61643eb
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
0e2c09d56bb1d7d33b0de2f446fe0cf2d5b59fcb 30-Aug-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: avoid repeated fetch when we run off the edge of live playlists

Bug: 17416658
Change-Id: I1d07ce03a293206c48ff9ee11dc78b815ba367a4
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
0f9a3cf9962b6859cfee9d4bf4676b5aafca79cb 30-Aug-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: do not reset mStartTimeUs if we are resuming

Bug: 17376049
Change-Id: Ie519bdf7128841172df41e6512d624e99d9853d6
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
39f5874c4040bec6fdbf0c0912daffcb10010df8 29-Aug-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: add lower bound check when starting live streams

Avoid false 'missed the boat' alarms that cause us to queue a bogus
discontinuity before even starting.

Bug: 17303166
Change-Id: I5003934fc695f30db2df9a0803b8fe960d77a458
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.cpp
632740c58119a132ce19f6d498e39c5c3773971a 26-Jun-2014 Chong Zhang <chz@google.com> HLS: do not discard packets when queuing explicit discontinuity

in case of explicit discontinuity (#EXT-X-DISCONTINUITY tag in the
playlist), do not discard packets that's already queued.

(when seeking, the old fetcher will be discarded so this won't affect
seeking case.)

Bug: 15020526
Change-Id: I5d3fc489df35e3bc44acb1ee7851571cb99cb56b
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
1130c49ee00e2faf0e21152da88cda07299232da 26-Jun-2014 Chong Zhang <chz@google.com> HLS: only queue discontinuity for first block

Bug: 15020526
Change-Id: I15f9ab0f38dc510e584c668eea73ece61844d413
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
70c2fd3dc648b512ea088ee9de5e505c626fd39c 09-May-2014 Robert Shih <robertshih@google.com> Merge "PlaylistFetcher: start queueing AUs after the 1st IDR nalu"
7d8e3ccfbf326b5e190b416590e956c2fc3021f7 09-May-2014 Lajos Molnar <lajos@google.com> Allow BOM and space in WebVTT files

Bug: 10900755
Change-Id: I47a7a33f749ea2470ce7d9d36d33c7484637d61c
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
5cda1b30b8c3900f8405f9bf2fab2df6e38ea95f 24-Apr-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: clear mTSParser on bad starting seq # hint

Bug: 14159556
Change-Id: If25187477066282d5980da3c4d8a76dcfcf54d27
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
1da7ee098ac97d2fdd2cff16a2bfa51fd1889ad8 24-Apr-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: start queueing AUs after the 1st IDR nalu

Bug: 14159556
Change-Id: I4fc16dda9357e1251d2909571a79215d13d0104b
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.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.
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/PlaylistFetcher.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/PlaylistFetcher.cpp
07c34a59fee02ab0732e84a2e2ff3b928de50ebc 08-Mar-2014 Robert Shih <robertshih@google.com> Merge "httplive: clear access units before returning from seekTo."
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/PlaylistFetcher.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/PlaylistFetcher.cpp
2cd94583868b775a548233a4f7cd1d988fc6344f 06-Feb-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: Add support for block-by-block decryption.

Bug: 11854054
Change-Id: Ifd3f3369275889e716b360087b5b60d01635b578
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
e62d20268de87f63083896b5eef083d541078322 17-Dec-2013 Lajos Molnar <lajos@google.com> stagefright: Fix issue with tracking media format in packet source

Media format in AnotherPacketSource is now tracked across discontinuities.
This fixes a bug where format was set on queueAccessUnit and cleared on
dequeueAccessUnit, thereby allowing it to remain cleared.

Change-Id: I20975a630443f4a223a2b4344e8244f34b9560b9
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 12060952
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
6708a45ba1b5eacf583d5e80b2075b68940fe0ab 16-Dec-2013 Lajos Molnar <lajos@google.com> stagefright: Fix bugs in playlist fetcher logic

1. Improve start time: start playback as soon as the target duration
or 10s was buffered.
2. Select playlist monitor time based on target duration to avoid
continuously missing the boat.
3. If "we miss the boat" we still must request a safe sequence
number (last - 3)

Change-Id: Ie99c360ac67b152ad9af19e9c6e520016f67e4e3
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 12060952
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
bdc0609f8133517b8e051938ad66bac750be90b4 07-Feb-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: fix infinite loop when parsing ADTS.

First check for embedded ID3 tag, then bail out if invalid.

Bug: 12934795
Change-Id: I74acebed4bfb2c6ca44dfe936166fdba8510233f
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.cpp
9bed7d7e4dde67e2320f453535fc6c31b16c1cbe 15-Feb-2014 Robert Shih <robertshih@google.com> Merge "PlaylistFetcher: Add support for block-by-block decryption."
ebe130923fb1a5b8dda4b3ee215593edcd804f0d 06-Feb-2014 Robert Shih <robertshih@google.com> PlaylistFetcher: Add support for block-by-block decryption.

Change-Id: Ifd3f3369275889e716b360087b5b60d01635b578
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
84333e0475bc911adc16417f4ca327c975cf6c36 08-Feb-2014 Andreas Huber <andih@google.com> warnings be gone.

Change-Id: Ie3bae3f037730e316d7fca12e7a3527973f752ef
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
fd9b01b92a95f94d2d3a8b0ee5973756784fe05f 17-Dec-2013 Lajos Molnar <lajos@google.com> stagefright: Fix issue with tracking media format in packet source

Media format in AnotherPacketSource is now tracked across discontinuities.
This fixes a bug where format was set on queueAccessUnit and cleared on
dequeueAccessUnit, thereby allowing it to remain cleared.

Change-Id: I20975a630443f4a223a2b4344e8244f34b9560b9
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 12060952
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.cpp
e175e5ec1636fc638465187f3d5c6166d92388ed 16-Dec-2013 Lajos Molnar <lajos@google.com> stagefright: Fix bugs in playlist fetcher logic

1. Improve start time: start playback as soon as the target duration
or 10s was buffered.
2. Select playlist monitor time based on target duration to avoid
continuously missing the boat.
3. If "we miss the boat" we still must request a safe sequence
number (last - 3)

Change-Id: Ie99c360ac67b152ad9af19e9c6e520016f67e4e3
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 12060952
/frameworks/av/media/libstagefright/httplive/PlaylistFetcher.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/PlaylistFetcher.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/PlaylistFetcher.cpp