[vlc-devel] [PATCH] stream: vlc_stream_ReadRaw never returns -1
Thomas Guillem
thomas at gllm.fr
Fri Jul 22 14:58:03 CEST 2016
---
src/input/stream.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
diff --git a/src/input/stream.c b/src/input/stream.c
index 8a1027f..92df505 100644
--- a/src/input/stream.c
+++ b/src/input/stream.c
@@ -325,14 +325,15 @@ error:
return NULL;
}
-static ssize_t vlc_stream_ReadRaw(stream_t *s, void *buf, size_t len)
+static size_t vlc_stream_ReadRaw(stream_t *s, void *buf, size_t len)
{
stream_priv_t *priv = (stream_priv_t *)s;
size_t copy = 0;
- ssize_t ret = 0;
while (len > 0)
{
+ ssize_t ret = 0;
+
if (vlc_killed())
ret = 0;
else if (s->pf_read != NULL)
@@ -422,9 +423,7 @@ ssize_t vlc_stream_Read(stream_t *s, void *buf, size_t len)
return copy;
}
- ssize_t ret = vlc_stream_ReadRaw(s, buf, len);
- if (ret < 0)
- return ((copy > 0) ? (ssize_t)copy : ret);
+ size_t ret = vlc_stream_ReadRaw(s, buf, len);
copy += ret;
priv->offset += ret;
priv->eof = !ret;
@@ -496,13 +495,7 @@ ssize_t vlc_stream_Peek(stream_t *s, const uint8_t **restrict bufp, size_t len)
return 0;
}
- ssize_t ret = vlc_stream_ReadRaw(s, peek->p_buffer, len);
- if (ret < 0)
- {
- block_Release(peek);
- return ret;
- }
-
+ size_t ret = vlc_stream_ReadRaw(s, peek->p_buffer, len);
peek->i_buffer = ret;
priv->peek = peek;
return ret;
@@ -522,8 +515,7 @@ ssize_t vlc_stream_Peek(stream_t *s, const uint8_t **restrict bufp, size_t len)
ret = vlc_stream_ReadRaw(s, peek->p_buffer + avail, len - avail);
*bufp = peek->p_buffer;
- if (ret >= 0)
- peek->i_buffer += ret;
+ peek->i_buffer += ret;
return peek->i_buffer;
}
--
2.8.1
More information about the vlc-devel
mailing list