libdvbpsi  0.2.2
sdt.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * sdt.h
3  * Copyright (C) 2001-2011 VideoLAN
4  * $Id$
5  *
6  * Authors: Johan Bilien <jobi@via.ecp.fr>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  *****************************************************************************/
23 
33 #ifndef _DVBPSI_SDT_H_
34 #define _DVBPSI_SDT_H_
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 
41 /*****************************************************************************
42  * dvbpsi_sdt_service_t
43  *****************************************************************************/
55 typedef struct dvbpsi_sdt_service_s
56 {
57  uint16_t i_service_id;
61  uint8_t i_running_status;
62  int b_free_ca;
73 
74 
75 /*****************************************************************************
76  * dvbpsi_sdt_t
77  *****************************************************************************/
89 typedef struct dvbpsi_sdt_s
90 {
91  uint16_t i_ts_id;
92  uint8_t i_version;
94  uint16_t i_network_id;
99 } dvbpsi_sdt_t;
100 
101 
102 /*****************************************************************************
103  * dvbpsi_sdt_callback
104  *****************************************************************************/
110 typedef void (* dvbpsi_sdt_callback)(void* p_cb_data, dvbpsi_sdt_t* p_new_sdt);
111 
112 
113 /*****************************************************************************
114  * dvbpsi_AttachSDT
115  *****************************************************************************/
128 __attribute__((deprecated))
129 int dvbpsi_AttachSDT(dvbpsi_decoder_t * p_psi_decoder, uint8_t i_table_id,
130  uint16_t i_extension, dvbpsi_sdt_callback pf_callback,
131  void* p_cb_data);
132 
133 
134 /*****************************************************************************
135  * dvbpsi_DetachSDT
136  *****************************************************************************/
146 __attribute__((deprecated))
147 void dvbpsi_DetachSDT(dvbpsi_demux_t * p_demux, uint8_t i_table_id,
148  uint16_t i_extension);
149 
150 
151 /*****************************************************************************
152  * dvbpsi_InitSDT/dvbpsi_NewSDT
153  *****************************************************************************/
165 __attribute__((deprecated))
166 void dvbpsi_InitSDT(dvbpsi_sdt_t *p_sdt, uint16_t i_ts_id, uint8_t i_version,
167  int b_current_next, uint16_t i_network_id);
168 
179 #define dvbpsi_NewSDT(p_sdt, i_ts_id, i_version, b_current_next,i_network_id) \
180 do { \
181  p_sdt = (dvbpsi_sdt_t*)malloc(sizeof(dvbpsi_sdt_t)); \
182  if(p_sdt != NULL) \
183  dvbpsi_InitSDT(p_sdt, i_ts_id, i_version, b_current_next, i_network_id); \
184 } while(0);
185 
186 
187 /*****************************************************************************
188  * dvbpsi_EmptySDT/dvbpsi_DeleteSDT
189  *****************************************************************************/
196 __attribute__((deprecated))
197 void dvbpsi_EmptySDT(dvbpsi_sdt_t *p_sdt);
198 
205 #define dvbpsi_DeleteSDT(p_sdt) \
206 do { \
207  dvbpsi_EmptySDT(p_sdt); \
208  free(p_sdt); \
209 } while(0);
210 
211 
212 /*****************************************************************************
213  * dvbpsi_SDTAddService
214  *****************************************************************************/
231 __attribute__((deprecated))
233  uint16_t i_service_id, int b_eit_schedule, int b_eit_present,
234  uint8_t i_running_status,int b_free_ca);
235 
236 
237 /*****************************************************************************
238  * dvbpsi_SDTServiceAddDescriptor
239  *****************************************************************************/
252 __attribute__((deprecated))
254  dvbpsi_sdt_service_t *p_service,
255  uint8_t i_tag, uint8_t i_length,
256  uint8_t *p_data);
257 
258 
259 /*****************************************************************************
260  * dvbpsi_GenSDTSections
261  *****************************************************************************
262  * Generate SDT sections based on the dvbpsi_sdt_t structure.
263  *****************************************************************************/
264 dvbpsi_psi_section_t *dvbpsi_GenSDTSections(dvbpsi_sdt_t * p_sdt);
265 
266 #ifdef __cplusplus
267 };
268 #endif
269 
270 #else
271 #error "Multiple inclusions of sdt.h"
272 #endif
273 
dvbpsi_descriptor_t * p_first_descriptor
Definition: sdt.h:65
uint16_t i_ts_id
Definition: sdt.h:91
int b_eit_present
Definition: sdt.h:59
void dvbpsi_EmptySDT(dvbpsi_sdt_t *p_sdt)
Clean a dvbpsi_sdt_t structure.
int b_current_next
Definition: sdt.h:93
struct dvbpsi_sdt_s dvbpsi_sdt_t
dvbpsi_sdt_t type definition.
uint8_t i_running_status
Definition: sdt.h:61
void dvbpsi_InitSDT(dvbpsi_sdt_t *p_sdt, uint16_t i_ts_id, uint8_t i_version, int b_current_next, uint16_t i_network_id)
Initialize a user-allocated dvbpsi_sdt_t structure.
dvbpsi_sdt_service_t * p_first_service
Definition: sdt.h:96
int b_eit_schedule
Definition: sdt.h:58
PSI decoder structure.
Definition: dvbpsi.h:108
PSI section structure.
Definition: psi.h:69
subtable demultiplexor structure
Definition: demux.h:111
uint16_t i_descriptors_length
Definition: sdt.h:63
uint16_t i_network_id
Definition: sdt.h:94
dvbpsi_sdt_service_t * dvbpsi_SDTAddService(dvbpsi_sdt_t *p_sdt, uint16_t i_service_id, int b_eit_schedule, int b_eit_present, uint8_t i_running_status, int b_free_ca)
Add a service description at the end of the SDT.
struct dvbpsi_sdt_service_s * p_next
Definition: sdt.h:69
SDT service description structure.
Definition: sdt.h:55
dvbpsi_descriptor_t * dvbpsi_SDTServiceAddDescriptor(dvbpsi_sdt_service_t *p_service, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
Add a descriptor in the SDT service.
struct dvbpsi_sdt_service_s dvbpsi_sdt_service_t
dvbpsi_sdt_service_t type definition.
SDT structure.
Definition: sdt.h:89
Descriptor structure.
Definition: descriptor.h:54
void dvbpsi_DetachSDT(dvbpsi_demux_t *p_demux, uint8_t i_table_id, uint16_t i_extension)
Destroy a SDT decoder.
void(* dvbpsi_sdt_callback)(void *p_cb_data, dvbpsi_sdt_t *p_new_sdt)
Callback type definition.
Definition: sdt.h:110
uint16_t i_service_id
Definition: sdt.h:57
uint8_t i_version
Definition: sdt.h:92
int b_free_ca
Definition: sdt.h:62