From a23f364ad9ee2f867b6d22c7f1897d1bea1b9ab0 Mon Sep 17 00:00:00 2001 From: Christophe Massiot Date: Fri, 15 Dec 2000 13:39:54 +0000 Subject: [PATCH] More comments. --- src/input/input_netlist.c | 15 ++++++++++++++- src/input/input_netlist.h | 7 ++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/input/input_netlist.c b/src/input/input_netlist.c index 1bd4cc9482..42618fe446 100644 --- a/src/input/input_netlist.c +++ b/src/input/input_netlist.c @@ -147,6 +147,7 @@ int input_NetlistInit( input_thread_t * p_input, int i_nb_data, int i_nb_pes, p_netlist->i_nb_data = i_nb_data; p_netlist->i_nb_pes = i_nb_pes; + p_netlist->i_buffer_size = i_buffer_size; return (0); /* Everything went all right */ } @@ -179,7 +180,8 @@ void input_NetlistMviovec( void * p_netlist, size_t i_nb_iovec ) /***************************************************************************** * input_NetlistNewPacket: returns a free data_packet_t *****************************************************************************/ -struct data_packet_s * input_NetlistNewPacket( void * p_netlist ) +struct data_packet_s * input_NetlistNewPacket( void * p_netlist, + size_t i_buffer_size ) { unsigned int i_return; netlist_t * pt_netlist; /* for a cast */ @@ -188,6 +190,15 @@ struct data_packet_s * input_NetlistNewPacket( void * p_netlist ) pt_netlist = ( netlist_t * ) p_netlist; /* cast p_netlist -> netlist_t */ +#ifdef DEBUG + if( i_buffer_size > p_netlist->i_buffer_size ) + { + /* This should not happen */ + intf_ErrMsg( "Netlist packet too small !" ); + return NULL; + } +#endif + /* lock */ vlc_mutex_lock ( &pt_netlist->lock ); @@ -205,6 +216,8 @@ struct data_packet_s * input_NetlistNewPacket( void * p_netlist ) /* unlock */ vlc_mutex_unlock (&pt_netlist->lock); + + //if (i_buffer_size < p_pes->i_buffer_size) => diminuer p_payload_end //risque de race condition : que se passe-t-il si après avoir rendu //le lock un autre thread rend un paquet et écrase diff --git a/src/input/input_netlist.h b/src/input/input_netlist.h index 1b2fadd961..f1b5f9aa75 100644 --- a/src/input/input_netlist.h +++ b/src/input/input_netlist.h @@ -3,7 +3,9 @@ *****************************************************************************/ typedef struct netlist_s { - vlc_mutex_t lock; + vlc_mutex_t lock; + + size_t i_buffer_size; /* Buffers */ byte_t * p_buffers; /* Big malloc'ed area */ @@ -20,7 +22,6 @@ typedef struct netlist_s unsigned int i_nb_data; /* Index */ - unsigned int i_data_start, i_data_end; unsigned int i_pes_start, i_pes_end; unsigned int i_iovec_start, i_iovec_end; @@ -34,7 +35,7 @@ int input_NetlistInit( struct input_thread_s *, size_t i_buffer_size ); struct iovec * input_NetlistGetiovec( void * ); void input_NetlistMviovec( void *, size_t ); -struct data_packet_s * input_NetlistNewPacket( void * ); +struct data_packet_s * input_NetlistNewPacket( void *, size_t ); struct pes_packet_s * input_NetlistNewPES( void * ); void input_NetlistDeletePacket( void *, struct data_packet_s * ); void input_NetlistDeletePES( void *, struct pes_packet_s * ); -- 2.39.5