libdvbpsi  1.2.0
demux.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * demux.h
3  *
4  * Copyright (C) 2001-2011 VideoLAN
5  * $Id$
6  *
7  * Authors: Johan Bilien <jobi@via.ecp.fr>
8  * Jean-Paul Saman <jpsaman@videolan.org>
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Lesser General Public
12  * License as published by the Free Software Foundation; either
13  * version 2.1 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  * Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public
21  * License along with this library; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23  *
24  *****************************************************************************/
25 
34 #ifndef _DVBPSI_DEMUX_H_
35 #define _DVBPSI_DEMUX_H_
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 /*****************************************************************************
42  * dvbpsi_demux_new_cb_t
43  *****************************************************************************/
51 typedef void (*dvbpsi_demux_new_cb_t) (dvbpsi_t *p_dvbpsi,
52  uint8_t i_table_id,
53  uint16_t i_extension,
54  void * p_cb_data);
62 typedef void (*dvbpsi_demux_gather_cb_t) (dvbpsi_t *p_dvbpsi,
63  dvbpsi_decoder_t *p_decoder,
64  dvbpsi_psi_section_t *p_section);
72 typedef void (*dvbpsi_demux_detach_cb_t) (dvbpsi_t *p_dvbpsi,
73  uint8_t i_table_id,
74  uint16_t i_extension);
76 /*****************************************************************************
77  * dvbpsi_demux_subdec_t
78  *****************************************************************************/
90 typedef struct dvbpsi_demux_subdec_s
91 {
92  uint32_t i_id;
101 
102 
103 /*****************************************************************************
104  * dvbpsi_demux_s
105  *****************************************************************************/
118 
120 {
122 
125  /* New subtable callback */
127  void * p_new_cb_data;
129 };
130 
131 /*****************************************************************************
132  * dvbpsi_AttachDemux
133  *****************************************************************************/
142 bool dvbpsi_AttachDemux(dvbpsi_t * p_dvbpsi,
143  dvbpsi_demux_new_cb_t pf_new_cb,
144  void * p_new_cb_data);
145 
146 /*****************************************************************************
147  * dvbpsi_DetachDemux
148  *****************************************************************************/
155 void dvbpsi_DetachDemux(dvbpsi_t *p_dvbpsi);
156 
157 /*****************************************************************************
158  * dvbpsi_demuxGetSubDec
159  *****************************************************************************/
170  uint8_t i_table_id,
171  uint16_t i_extension);
172 
173 /*****************************************************************************
174  * dvbpsi_Demux
175  *****************************************************************************/
183 void dvbpsi_Demux(dvbpsi_t *p_dvbpsi, dvbpsi_psi_section_t *p_section);
184 
185 /*****************************************************************************
186  * dvbpsi_NewDemuxSubDecoder
187  *****************************************************************************/
202 dvbpsi_demux_subdec_t *dvbpsi_NewDemuxSubDecoder(const uint8_t i_table_id,
203  const uint16_t i_extension,
204  dvbpsi_demux_detach_cb_t pf_detach,
205  dvbpsi_demux_gather_cb_t pf_gather,
206  dvbpsi_decoder_t *p_decoder);
207 
208 /*****************************************************************************
209  * dvbpsi_DeleteDemuxSubDecoder
210  *****************************************************************************/
219 
220 /*****************************************************************************
221  * dvbpsi_AttachDemuxSubDecoder
222  *****************************************************************************/
231 
232 /*****************************************************************************
233  * dvbpsi_DetachDemuxSubDecoder
234  *****************************************************************************/
243 
244 #ifdef __cplusplus
245 };
246 #endif
247 
248 #else
249 #error "Multiple inclusions of demux.h"
250 #endif