summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/httplive/LiveSession.h
diff options
context:
space:
mode:
authorRobert Shih <robertshih@google.com>2014-02-06 14:01:30 -0800
committerLajos Molnar <lajos@google.com>2014-03-06 16:26:45 -0800
commit822a489e595336be447f47f5c2a051e8fdd1cdff (patch)
tree6cfaa5019c19b8a4cec2fd77857a06c5529b228f /media/libstagefright/httplive/LiveSession.h
parent7e50e1c0c10cba1e27cafe581273adcadf93877d (diff)
downloadframeworks_av-822a489e595336be447f47f5c2a051e8fdd1cdff.zip
frameworks_av-822a489e595336be447f47f5c2a051e8fdd1cdff.tar.gz
frameworks_av-822a489e595336be447f47f5c2a051e8fdd1cdff.tar.bz2
LiveSession: Add support for block-by-block fetchFile.
Bug: 11854054 Change-Id: I4025ba7fab8fab2e0c720f73894e908fd98a43d8
Diffstat (limited to 'media/libstagefright/httplive/LiveSession.h')
-rw-r--r--media/libstagefright/httplive/LiveSession.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/media/libstagefright/httplive/LiveSession.h b/media/libstagefright/httplive/LiveSession.h
index 99b480a8..f42d7ae 100644
--- a/media/libstagefright/httplive/LiveSession.h
+++ b/media/libstagefright/httplive/LiveSession.h
@@ -145,9 +145,25 @@ private:
status_t onSeek(const sp<AMessage> &msg);
void onFinishDisconnect2();
+ // If given a non-zero block_size (default 0), it is used to cap the number of
+ // bytes read in from the DataSource. If given a non-NULL buffer, new content
+ // is read into the end.
+ //
+ // The DataSource we read from is responsible for signaling error or EOF to help us
+ // break out of the read loop. The DataSource can be returned to the caller, so
+ // that the caller can reuse it for subsequent fetches (within the initially
+ // requested range).
+ //
+ // For reused HTTP sources, the caller must download a file sequentially without
+ // any overlaps or gaps to prevent reconnection.
status_t fetchFile(
const char *url, sp<ABuffer> *out,
- int64_t range_offset = 0, int64_t range_length = -1);
+ /* request/open a file starting at range_offset for range_length bytes */
+ int64_t range_offset = 0, int64_t range_length = -1,
+ /* download block size */
+ uint32_t block_size = 0,
+ /* reuse DataSource if doing partial fetch */
+ sp<DataSource> *source = NULL);
sp<M3UParser> fetchPlaylist(
const char *url, uint8_t *curPlaylistHash, bool *unchanged);