[vlc-devel] [PATCH 1/2] DASH: fix Read() function
fyhuel at viotech.net
fyhuel at viotech.net
Thu Mar 15 14:01:27 CET 2012
From: Frédéric Yhuel <fyhuel at viotech.net>
Currently, Read() might returns less than i_len bytes, while not at the
end of the stream. This is wrong and the patch fix that.
---
modules/stream_filter/dash/dash.cpp | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/modules/stream_filter/dash/dash.cpp b/modules/stream_filter/dash/dash.cpp
index d1ca988..98123c0 100644
--- a/modules/stream_filter/dash/dash.cpp
+++ b/modules/stream_filter/dash/dash.cpp
@@ -165,10 +165,20 @@ static int Read (stream_t *p_stream, void *p_buffer, unsigned int i_
stream_sys_t *p_sys = (stream_sys_t *) p_stream->p_sys;
dash::DASHManager *p_dashManager = p_sys->p_dashManager;
int i_ret = 0;
+ int i_read = 0;
- i_ret = p_dashManager->read(p_buffer, i_len );
+ while( i_len > 0 )
+ {
+ i_read = p_dashManager->read( p_buffer, i_len );
+ if( i_read < 0 )
+ break;
+ p_buffer += i_read;
+ i_ret += i_read;
+ i_len -= i_read;
+ }
+ p_buffer -= i_ret;
- if (i_ret < 0)
+ if (i_read < 0)
{
switch (errno)
{
--
1.7.5.4
More information about the vlc-devel
mailing list