]> git.sesse.net Git - vlc/blob - include/input_netlist.h
Begining of TS Input
[vlc] / include / input_netlist.h
1 /*****************************************************************************
2  * netlist_t: structure to manage a netlist
3  *****************************************************************************/
4 typedef struct netlist_s
5 {
6     vlc_mutex_t             lock;
7
8     size_t                  i_buffer_size;
9
10     /* Buffers */
11     byte_t *                p_buffers;                 /* Big malloc'ed area */
12     data_packet_t *         p_data;                        /* malloc'ed area */
13     pes_packet_t *          p_pes;                         /* malloc'ed area */
14
15     /* FIFOs of free packets */
16     data_packet_t **        pp_free_data;
17     pes_packet_t **         pp_free_pes;
18     struct iovec *          p_free_iovec;
19     
20     /* FIFO size */
21     unsigned int            i_nb_pes;
22     unsigned int            i_nb_data;
23
24     /* Index */
25     unsigned int            i_data_start, i_data_end;
26     unsigned int            i_pes_start, i_pes_end;
27
28     /* Number of blocs read once by readv */
29     unsigned int            i_read_once;
30 } netlist_t;
31
32 /*****************************************************************************
33  * Prototypes
34  *****************************************************************************/
35 int                     input_NetlistInit( struct input_thread_s *,
36                                            int i_nb_data, int i_nb_pes,
37                                            size_t i_buffer_size,
38                                            int i_read_once );
39
40 struct iovec * input_NetlistGetiovec( void * p_method_data );
41 void input_NetlistMviovec( void * , size_t, struct data_packet_s **);
42 struct data_packet_s *  input_NetlistNewPacket( void *, size_t );
43 struct pes_packet_s *   input_NetlistNewPES( void * );
44 void            input_NetlistDeletePacket( void *, struct data_packet_s * );
45 void            input_NetlistDeletePES( void *, struct pes_packet_s * );
46 void            input_NetlistEnd( struct input_thread_s * );
47