00001 /***************************************************************************** 00002 * demux.h 00003 * (c)2001-2002 VideoLAN 00004 * $Id: demux.h,v 1.1 2002/12/11 13:04:56 jobi Exp $ 00005 * 00006 * Authors: Johan Bilien <jobi@via.ecp.fr> 00007 * 00008 * This program is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU General Public License 00010 * as published by the Free Software Foundation; either version 2 00011 * of the License, or (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program; if not, write to the Free Software 00020 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00021 * 00022 *****************************************************************************/ 00023 00032 #ifndef _DVBPSI_DEMUX_H_ 00033 #define _DVBPSI_DEMUX_H_ 00034 00035 #ifdef __cplusplus 00036 extern "C" { 00037 #endif 00038 00039 00040 /***************************************************************************** 00041 * dvbpsi_demux_new_cb_t 00042 *****************************************************************************/ 00050 typedef void (*dvbpsi_demux_new_cb_t) (void * p_cb_data, 00051 dvbpsi_handle h_dvbpsi, 00052 uint8_t i_table_id, 00053 uint16_t i_extension); 00054 00055 /***************************************************************************** 00056 * dvbpsi_demux_subdec_cb_t 00057 *****************************************************************************/ 00065 typedef void (*dvbpsi_demux_subdec_cb_t) 00066 (dvbpsi_decoder_t* p_psi_decoder, 00067 void* p_private_decoder, 00068 dvbpsi_psi_section_t* p_section); 00069 00070 /***************************************************************************** 00071 * dvbpsi_demux_subdec_t 00072 *****************************************************************************/ 00084 typedef struct dvbpsi_demux_subdec_s 00085 { 00086 uint32_t i_id; 00087 dvbpsi_demux_subdec_cb_t pf_callback; 00088 void * p_cb_data; 00089 struct dvbpsi_demux_subdec_s * p_next; 00090 00091 } dvbpsi_demux_subdec_t; 00092 00093 /***************************************************************************** 00094 * dvbpsi_demux_t 00095 *****************************************************************************/ 00107 typedef struct dvbpsi_demux_s 00108 { 00109 dvbpsi_handle p_decoder; 00110 dvbpsi_demux_subdec_t * p_first_subdec; 00111 /* New subtable callback */ 00112 dvbpsi_demux_new_cb_t pf_new_callback; 00113 void * p_new_cb_data; 00116 } dvbpsi_demux_t; 00117 00118 00119 /***************************************************************************** 00120 * dvbpsi_AttachDemux 00121 *****************************************************************************/ 00129 dvbpsi_handle dvbpsi_AttachDemux(dvbpsi_demux_new_cb_t pf_new_cb, 00130 void * p_new_cb_data); 00131 00132 /***************************************************************************** 00133 * dvbpsi_DetachDemux 00134 *****************************************************************************/ 00141 void dvbpsi_DetachDemux(dvbpsi_handle h_dvbpsi); 00142 00143 /***************************************************************************** 00144 * dvbpsi_demuxGetSubDec 00145 *****************************************************************************/ 00155 dvbpsi_demux_subdec_t * dvbpsi_demuxGetSubDec(dvbpsi_demux_t * p_demux, 00156 uint8_t i_table_id, 00157 uint16_t i_extension); 00158 /***************************************************************************** 00159 * dvbpsi_Demux 00160 *****************************************************************************/ 00168 void dvbpsi_Demux(dvbpsi_handle h_dvbpsi, 00169 dvbpsi_psi_section_t * p_section); 00170 00171 #ifdef __cplusplus 00172 }; 00173 #endif 00174 00175 #else 00176 #error "Multiple inclusions of demux.h" 00177 #endif 00178
1.3.3