libdvbpsi
0.2.2
|
00001 /***************************************************************************** 00002 * demux.h 00003 * 00004 * Copyright (C) 2001-2011 VideoLAN 00005 * $Id$ 00006 * 00007 * Authors: Johan Bilien <jobi@via.ecp.fr> 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2.1 of the License, or (at your option) any later version. 00013 * 00014 * This library is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * Lesser General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public 00020 * License along with this library; if not, write to the Free Software 00021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00022 * 00023 *****************************************************************************/ 00024 00033 #ifndef _DVBPSI_DEMUX_H_ 00034 #define _DVBPSI_DEMUX_H_ 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 00041 /***************************************************************************** 00042 * dvbpsi_demux_new_cb_t 00043 *****************************************************************************/ 00051 typedef void (*dvbpsi_demux_new_cb_t) (void * p_cb_data, 00052 dvbpsi_handle h_dvbpsi, 00053 uint8_t i_table_id, 00054 uint16_t i_extension); 00055 00056 /***************************************************************************** 00057 * dvbpsi_demux_subdec_cb_t 00058 *****************************************************************************/ 00066 typedef void (*dvbpsi_demux_subdec_cb_t) 00067 (dvbpsi_decoder_t* p_psi_decoder, 00068 void* p_private_decoder, 00069 dvbpsi_psi_section_t* p_section); 00070 00071 /***************************************************************************** 00072 * dvbpsi_demux_subdec_t 00073 *****************************************************************************/ 00085 struct dvbpsi_demux_s; 00086 typedef struct dvbpsi_demux_subdec_s 00087 { 00088 uint32_t i_id; 00089 dvbpsi_demux_subdec_cb_t pf_callback; 00090 void * p_cb_data; 00091 struct dvbpsi_demux_subdec_s * p_next; 00092 00093 void (*pf_detach)(struct dvbpsi_demux_s *, uint8_t, uint16_t); 00094 00095 } dvbpsi_demux_subdec_t; 00096 00097 /***************************************************************************** 00098 * dvbpsi_demux_t 00099 *****************************************************************************/ 00111 typedef struct dvbpsi_demux_s 00112 { 00113 dvbpsi_handle p_decoder; 00114 dvbpsi_demux_subdec_t * p_first_subdec; 00115 /* New subtable callback */ 00116 dvbpsi_demux_new_cb_t pf_new_callback; 00117 void * p_new_cb_data; 00120 } dvbpsi_demux_t; 00121 00122 00123 /***************************************************************************** 00124 * dvbpsi_AttachDemux 00125 *****************************************************************************/ 00133 __attribute__((deprecated)) 00134 dvbpsi_handle dvbpsi_AttachDemux(dvbpsi_demux_new_cb_t pf_new_cb, 00135 void * p_new_cb_data); 00136 00137 /***************************************************************************** 00138 * dvbpsi_DetachDemux 00139 *****************************************************************************/ 00145 __attribute__((deprecated)) 00146 void dvbpsi_DetachDemux(dvbpsi_handle h_dvbpsi); 00147 00148 /***************************************************************************** 00149 * dvbpsi_demuxGetSubDec 00150 *****************************************************************************/ 00160 __attribute__((deprecated)) 00161 dvbpsi_demux_subdec_t * dvbpsi_demuxGetSubDec(dvbpsi_demux_t * p_demux, 00162 uint8_t i_table_id, 00163 uint16_t i_extension); 00164 /***************************************************************************** 00165 * dvbpsi_Demux 00166 *****************************************************************************/ 00174 __attribute__((deprecated)) 00175 void dvbpsi_Demux(dvbpsi_handle h_dvbpsi, 00176 dvbpsi_psi_section_t * p_section); 00177 00178 #ifdef __cplusplus 00179 }; 00180 #endif 00181 00182 #else 00183 #error "Multiple inclusions of demux.h" 00184 #endif 00185