libdvbpsi  2.0.0-git
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 
35 #ifndef _DVBPSI_DEMUX_H_
36 #define _DVBPSI_DEMUX_H_
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 /*****************************************************************************
43  * dvbpsi_demux_new_cb_t
44  *****************************************************************************/
52 typedef void (*dvbpsi_demux_new_cb_t) (dvbpsi_t *p_dvbpsi,
53  uint8_t i_table_id,
54  uint16_t i_extension,
55  void * p_cb_data);
63 typedef void (*dvbpsi_demux_gather_cb_t) (dvbpsi_t *p_dvbpsi,
64  dvbpsi_decoder_t *p_decoder,
65  dvbpsi_psi_section_t *p_section);
73 typedef void (*dvbpsi_demux_detach_cb_t) (dvbpsi_t *p_dvbpsi,
74  uint8_t i_table_id,
75  uint16_t i_extension);
77 /*****************************************************************************
78  * dvbpsi_demux_subdec_t
79  *****************************************************************************/
91 typedef struct dvbpsi_demux_subdec_s
92 {
93  uint32_t i_id;
102 
103 
104 /*****************************************************************************
105  * dvbpsi_demux_s
106  *****************************************************************************/
119 
121 {
123 
126  /* New subtable callback */
128  void * p_new_cb_data;
130 };
131 
132 /*****************************************************************************
133  * dvbpsi_AttachDemux
134  *****************************************************************************/
143 __attribute__((deprecated))
144 bool dvbpsi_AttachDemux(dvbpsi_t * p_dvbpsi,
145  dvbpsi_demux_new_cb_t pf_new_cb,
146  void * p_new_cb_data);
147 
148 /*****************************************************************************
149  * dvbpsi_DetachDemux
150  *****************************************************************************/
157 __attribute__((deprecated))
158 void dvbpsi_DetachDemux(dvbpsi_t *p_dvbpsi);
159 
160 /*****************************************************************************
161  * dvbpsi_demuxGetSubDec
162  *****************************************************************************/
172 __attribute__((deprecated))
173 dvbpsi_demux_subdec_t * dvbpsi_demuxGetSubDec(dvbpsi_demux_t * p_demux,
174  uint8_t i_table_id,
175  uint16_t i_extension);
176 
177 /*****************************************************************************
178  * dvbpsi_Demux
179  *****************************************************************************/
187 __attribute__((deprecated))
188 void dvbpsi_Demux(dvbpsi_t *p_dvbpsi, dvbpsi_psi_section_t *p_section);
189 
190 /*****************************************************************************
191  * dvbpsi_NewDemuxSubDecoder
192  *****************************************************************************/
207 __attribute__((deprecated))
208 dvbpsi_demux_subdec_t *dvbpsi_NewDemuxSubDecoder(const uint8_t i_table_id,
209  const uint16_t i_extension,
210  dvbpsi_demux_detach_cb_t pf_detach,
211  dvbpsi_demux_gather_cb_t pf_gather,
212  dvbpsi_decoder_t *p_decoder);
213 
214 /*****************************************************************************
215  * dvbpsi_DeleteDemuxSubDecoder
216  *****************************************************************************/
224 __attribute__((deprecated))
225 void dvbpsi_DeleteDemuxSubDecoder(dvbpsi_demux_subdec_t *p_subdec);
226 
227 /*****************************************************************************
228  * dvbpsi_AttachDemuxSubDecoder
229  *****************************************************************************/
237 __attribute__((deprecated))
238 void dvbpsi_AttachDemuxSubDecoder(dvbpsi_demux_t *p_demux, dvbpsi_demux_subdec_t *p_subdec);
239 
240 /*****************************************************************************
241  * dvbpsi_DetachDemuxSubDecoder
242  *****************************************************************************/
250 __attribute__((deprecated))
251 void dvbpsi_DetachDemuxSubDecoder(dvbpsi_demux_t *p_demux, dvbpsi_demux_subdec_t *p_subdec);
252 
253 #ifdef __cplusplus
254 };
255 #endif
256 
257 #else
258 #error "Multiple inclusions of demux.h"
259 #endif
#define DVBPSI_DECODER_COMMON
Common members for all dvbpsi table decoders. These should be the first members of a table decoder st...
Definition: dvbpsi.h:231
DVBPSI_DECODER_COMMON dvbpsi_demux_subdec_t * p_first_subdec
Definition: demux.h:124
void(* dvbpsi_demux_new_cb_t)(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension, void *p_cb_data)
Callback used in case of a new subtable detected.
Definition: demux.h:52
dvbpsi_decoder_t * p_decoder
Definition: demux.h:96
void(* dvbpsi_demux_detach_cb_t)(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
Callback used for detaching subtable decoder from demuxer.
Definition: demux.h:73
void * p_new_cb_data
Definition: demux.h:128
PSI decoder structure.
Definition: dvbpsi.h:260
PSI section structure.
Definition: psi.h:68
subtable demultiplexor structure
Definition: demux.h:120
dvbpsi_demux_detach_cb_t pf_detach
Definition: demux.h:98
uint32_t i_id
Definition: demux.h:93
dvbpsi_demux_new_cb_t pf_new_callback
Definition: demux.h:127
struct dvbpsi_demux_subdec_s dvbpsi_demux_subdec_t
dvbpsi_demux_subdec_t type definition.
Subtable decoder structure.
Definition: demux.h:91
DVBPSI handle structure.
Definition: dvbpsi.h:142
struct dvbpsi_demux_subdec_s * p_next
Definition: demux.h:100
void(* dvbpsi_demux_gather_cb_t)(dvbpsi_t *p_dvbpsi, dvbpsi_decoder_t *p_decoder, dvbpsi_psi_section_t *p_section)
Callback used for gathering psi sections on behalf of subtable decoders.
Definition: demux.h:63
dvbpsi_demux_gather_cb_t pf_gather
Definition: demux.h:95