vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Jul 21 
19:08:39 2013 +0300| [0dce21c6a4ad47d46d141a4741ea3f0190f38426] | committer: 
Rémi Denis-Courmont

decomp: avoid unreliable waitall mode of net_Read()

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0dce21c6a4ad47d46d141a4741ea3f0190f38426
---

 modules/stream_filter/decomp.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/modules/stream_filter/decomp.c b/modules/stream_filter/decomp.c
index 5a12e87..3a421e1 100644
--- a/modules/stream_filter/decomp.c
+++ b/modules/stream_filter/decomp.c
@@ -237,15 +237,14 @@ static int Peek (stream_t *stream, const uint8_t **pbuf, 
unsigned int len)
     if ((p_sys->peeked = peeked) == NULL)
         return 0;
 
-    if (curlen < len)
+    while (curlen < len)
     {
         ssize_t val = net_Read (stream, fd, NULL, peeked->p_buffer + curlen,
-                                len - curlen, true);
-        if (val >= 0)
-        {
-            curlen += val;
-            peeked->i_buffer = curlen;
-        }
+                                len - curlen, false);
+        if (val <= 0)
+            break;
+        curlen += val;
+        peeked->i_buffer = curlen;
     }
     *pbuf = peeked->p_buffer;
     return curlen;

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to