Commit 506e6faa authored by Jean-Paul Saman's avatar Jean-Paul Saman

RTP reordering in module/access/udp.c done by me with help from Marian...

RTP reordering in module/access/udp.c done by me with help from Marian Durkovic (md _AT_ bts _dot_ sk). Allow src/input/stream.c to handle a linked list of blocks from demuxers.
parent 1db8de5a
This diff is collapsed.
...@@ -198,7 +198,7 @@ stream_t *__stream_UrlNew( vlc_object_t *p_parent, const char *psz_url ) ...@@ -198,7 +198,7 @@ stream_t *__stream_UrlNew( vlc_object_t *p_parent, const char *psz_url )
psz_dup = strdup( psz_url ); psz_dup = strdup( psz_url );
MRLSplit( p_parent, psz_dup, &psz_access, &psz_demux, &psz_path ); MRLSplit( p_parent, psz_dup, &psz_access, &psz_demux, &psz_path );
/* Now try a real access */ /* Now try a real access */
p_access = access2_New( p_parent, psz_access, psz_demux, psz_path, 0 ); p_access = access2_New( p_parent, psz_access, psz_demux, psz_path, 0 );
free( psz_dup ); free( psz_dup );
...@@ -612,12 +612,16 @@ static void AStreamPrebufferBlock( stream_t *s ) ...@@ -612,12 +612,16 @@ static void AStreamPrebufferBlock( stream_t *s )
msg_Dbg( s, "received first data for our buffer"); msg_Dbg( s, "received first data for our buffer");
} }
/* Append the block */ while( b )
p_sys->block.i_size += b->i_buffer; {
*p_sys->block.pp_last = b; /* Append the block */
p_sys->block.pp_last = &b->p_next; p_sys->block.i_size += b->i_buffer;
*p_sys->block.pp_last = b;
p_sys->block.pp_last = &b->p_next;
p_sys->stat.i_read_count++; p_sys->stat.i_read_count++;
b = b->p_next;
}
} }
p_sys->block.p_current = p_sys->block.p_first; p_sys->block.p_current = p_sys->block.p_first;
...@@ -926,22 +930,28 @@ static int AStreamRefillBlock( stream_t *s ) ...@@ -926,22 +930,28 @@ static int AStreamRefillBlock( stream_t *s )
msleep( STREAM_DATA_WAIT ); msleep( STREAM_DATA_WAIT );
} }
i_stop = mdate();
/* Append the block */ while( b )
p_sys->block.i_size += b->i_buffer; {
*p_sys->block.pp_last = b; i_stop = mdate();
p_sys->block.pp_last = &b->p_next;
/* Fix p_current */ /* Append the block */
if( p_sys->block.p_current == NULL ) p_sys->block.i_size += b->i_buffer;
p_sys->block.p_current = b; *p_sys->block.pp_last = b;
p_sys->block.pp_last = &b->p_next;
/* Update stat */ /* Fix p_current */
p_sys->stat.i_bytes += b->i_buffer; if( p_sys->block.p_current == NULL )
p_sys->stat.i_read_time += i_stop - i_start; p_sys->block.p_current = b;
p_sys->stat.i_read_count++;
/* Update stat */
p_sys->stat.i_bytes += b->i_buffer;
p_sys->stat.i_read_time += i_stop - i_start;
p_sys->stat.i_read_count++;
b = b->p_next;
i_start = mdate();
}
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
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