[vlc-commits] HLS: clean Read function
Frédéric Yhuel
git at videolan.org
Mon Feb 6 16:53:14 CET 2012
vlc | branch: master | Frédéric Yhuel <fyhuel at viotech.net> | 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 <jpsaman at videolan.org>
> 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;
More information about the vlc-commits
mailing list