vlc | branch: master | Frédéric Yhuel <[email protected]> | Wed Feb 1 13:04:48 2012 +0100| [6fe18b3e023d1c58571d982cc41b43363c45cfae] | committer: Jean-Paul Saman
HLS: clean Read function If caller wants to skip data, there is no point to allocate a buffer and put data in it. We just have to update the stream position. Signed-off-by: Jean-Paul Saman <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6fe18b3e023d1c58571d982cc41b43363c45cfae --- modules/stream_filter/httplive.c | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-) diff --git a/modules/stream_filter/httplive.c b/modules/stream_filter/httplive.c index ebea61d..c03061b 100644 --- a/modules/stream_filter/httplive.c +++ b/modules/stream_filter/httplive.c @@ -2193,6 +2193,7 @@ static int segment_RestorePos( segment_t *segment ) return VLC_SUCCESS; } +/* p_read might be NULL if caller wants to skip data */ static ssize_t hls_Read(stream_t *s, uint8_t *p_read, unsigned int i_read) { stream_sys_t *p_sys = s->p_sys; @@ -2240,7 +2241,8 @@ static ssize_t hls_Read(stream_t *s, uint8_t *p_read, unsigned int i_read) if (len > 0) { - memcpy(p_read + copied, segment->data->p_buffer, len); + if( p_read ) /* otherwise caller skips data */ + memcpy(p_read + copied, segment->data->p_buffer, len); segment->data->i_buffer -= len; segment->data->p_buffer += len; copied += len; @@ -2263,15 +2265,6 @@ static int Read(stream_t *s, void *buffer, unsigned int i_read) if (p_sys->b_error) return 0; - if (buffer == NULL) - { - /* caller skips data, get big enough buffer */ - msg_Warn(s, "buffer is NULL (allocate %d)", i_read); - buffer = calloc(1, i_read); - if (buffer == NULL) - return 0; /* NO MEMORY left*/ - } - length = hls_Read(s, (uint8_t*) buffer, i_read); if (length < 0) return 0; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
