]> git.sesse.net Git - vlc/blob - src/input/input_netlist.h
Prototypes for netlist functions.
[vlc] / src / input / input_netlist.h
1 /*****************************************************************************
2  * netlist_t: structure to manage a netlist
3  *****************************************************************************/
4 typedef struct netlist_s
5 {
6     vlc_mutex_lock          lock;
7
8     /* Buffers */
9     byte_t *                p_buffers;                 /* Big malloc'ed area */
10     data_packet_t *         p_data;                        /* malloc'ed area */
11     pes_packet_t *          p_pes;                         /* malloc'ed area */
12
13     /* FIFOs of free packets */
14     data_packet_t **        pp_free_data;
15     pes_packet_t **         pp_free_pes;
16     struct iovec *          p_free_iovec;
17
18     /* Index */
19     unsigned int            i_data_start, i_data_end;
20     unsigned int            i_pes_start, i_pes_end;
21     unsigned int            i_iovec_start, i_iovec_end;
22 } netlist_t;
23
24 /*****************************************************************************
25  * Prototypes
26  *****************************************************************************/
27 int                     input_NetlistInit( struct input_thread_s *,
28                                            int i_nb_data, int i_nb_pes,
29                                            size_t i_buffer_size );
30 struct iovec *          input_NetlistGetiovec( void * );
31 struct data_packet_s *  input_NetlistNewPacket( void * );
32 struct pes_packet_s *   input_NetlistNewPES( void * );
33 void            input_NetlistDeletePacket( void *, struct data_packet_s * );
34 void            input_NetlistDeletePES( void *, struct pes_packet_s * );
35 void            input_NetlistEnd( struct input_thread_s * );
36