Commit 489ab5b3 authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* backport [18854]

HTTP and UDP access outputs return byte count
parent 878f0a0d
...@@ -117,6 +117,7 @@ Moritz Bunkus <moritz at bunkus dot org> - Matroska patches ...@@ -117,6 +117,7 @@ Moritz Bunkus <moritz at bunkus dot org> - Matroska patches
Morten Brix Pedersen <morten at wtf.dk> - Danish translation Morten Brix Pedersen <morten at wtf.dk> - Danish translation
Nilmoni Deb <ndeb at ece.cmu.edu> - autoconf and Makefile fixes Nilmoni Deb <ndeb at ece.cmu.edu> - autoconf and Makefile fixes
Olivier Aubert <oaubert at bat710.univ-lyon1.fr> - clone list patch Olivier Aubert <oaubert at bat710.univ-lyon1.fr> - clone list patch
Olivier Houchard <doginou @t dong d0t ci0 d0t org> - UDP & HTTP access output fix
Olivier Pomel <pomel at via.ecp.fr> - original VLC code Olivier Pomel <pomel at via.ecp.fr> - original VLC code
Ondrej Kuda aka Albert <kuda at natur dot cuni dot cz> - HTTP interface tips and fixes Ondrej Kuda aka Albert <kuda at natur dot cuni dot cz> - HTTP interface tips and fixes
Øyvind Kolbu <oyvindk at world-online.no> - FreeBSD patches Øyvind Kolbu <oyvindk at world-online.no> - FreeBSD patches
......
...@@ -386,6 +386,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -386,6 +386,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer )
{ {
sout_access_out_sys_t *p_sys = p_access->p_sys; sout_access_out_sys_t *p_sys = p_access->p_sys;
int i_err = 0; int i_err = 0;
int i_len = 0;
while( p_buffer ) while( p_buffer )
{ {
...@@ -421,6 +422,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -421,6 +422,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer )
p_sys->i_header_size ); p_sys->i_header_size );
} }
i_len += p_buffer->i_buffer;
/* send data */ /* send data */
i_err = httpd_StreamSend( p_sys->p_httpd_stream, p_buffer->p_buffer, i_err = httpd_StreamSend( p_sys->p_httpd_stream, p_buffer->p_buffer,
p_buffer->i_buffer ); p_buffer->i_buffer );
...@@ -440,7 +442,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -440,7 +442,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer )
block_ChainRelease( p_buffer ); block_ChainRelease( p_buffer );
} }
return( i_err < 0 ? VLC_EGENERIC : VLC_SUCCESS ); return( i_err < 0 ? VLC_EGENERIC : i_len );
} }
/***************************************************************************** /*****************************************************************************
......
...@@ -337,6 +337,7 @@ static void Close( vlc_object_t * p_this ) ...@@ -337,6 +337,7 @@ static void Close( vlc_object_t * p_this )
static int Write( sout_access_out_t *p_access, block_t *p_buffer ) static int Write( sout_access_out_t *p_access, block_t *p_buffer )
{ {
sout_access_out_sys_t *p_sys = p_access->p_sys; sout_access_out_sys_t *p_sys = p_access->p_sys;
int i_len = 0;
while( p_buffer ) while( p_buffer )
{ {
...@@ -364,6 +365,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -364,6 +365,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer )
p_sys->p_buffer = NULL; p_sys->p_buffer = NULL;
} }
i_len += p_buffer->i_buffer;
while( p_buffer->i_buffer ) while( p_buffer->i_buffer )
{ {
int i_write = __MIN( p_buffer->i_buffer, p_sys->i_mtu ); int i_write = __MIN( p_buffer->i_buffer, p_sys->i_mtu );
...@@ -409,7 +411,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -409,7 +411,7 @@ static int Write( sout_access_out_t *p_access, block_t *p_buffer )
p_buffer = p_next; p_buffer = p_next;
} }
return( p_sys->p_thread->b_error ? -1 : 0 ); return( p_sys->p_thread->b_error ? -1 : i_len );
} }
/***************************************************************************** /*****************************************************************************
...@@ -419,6 +421,7 @@ static int WriteRaw( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -419,6 +421,7 @@ static int WriteRaw( sout_access_out_t *p_access, block_t *p_buffer )
{ {
sout_access_out_sys_t *p_sys = p_access->p_sys; sout_access_out_sys_t *p_sys = p_access->p_sys;
block_t *p_buf; block_t *p_buf;
int i_len;
while ( p_sys->p_thread->p_empty_blocks->i_depth >= MAX_EMPTY_BLOCKS ) while ( p_sys->p_thread->p_empty_blocks->i_depth >= MAX_EMPTY_BLOCKS )
{ {
...@@ -426,9 +429,10 @@ static int WriteRaw( sout_access_out_t *p_access, block_t *p_buffer ) ...@@ -426,9 +429,10 @@ static int WriteRaw( sout_access_out_t *p_access, block_t *p_buffer )
block_Release( p_buf ); block_Release( p_buf );
} }
i_len = p_buffer->i_buffer;
block_FifoPut( p_sys->p_thread->p_fifo, p_buffer ); block_FifoPut( p_sys->p_thread->p_fifo, p_buffer );
return( p_sys->p_thread->b_error ? -1 : 0 ); return( p_sys->p_thread->b_error ? -1 : i_len );
} }
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment