00001 /***************************************************************************** 00002 * dvbpsi.h 00003 * (c)2001-2002 VideoLAN 00004 * $Id: dvbpsi.h 88 2004-02-24 14:31:18Z sam $ 00005 * 00006 * Authors: Arnaud de Bossoreille de Ribou <bozo@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 00033 #ifndef _DVBPSI_DVBPSI_H_ 00034 #define _DVBPSI_DVBPSI_H_ 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 00041 /***************************************************************************** 00042 * dvbpsi_handle 00043 *****************************************************************************/ 00048 typedef struct dvbpsi_decoder_s * dvbpsi_handle; 00049 00050 00051 /***************************************************************************** 00052 * dvbpsi_PushPacket 00053 *****************************************************************************/ 00063 void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data); 00064 00065 00066 /***************************************************************************** 00067 * The following definitions are just here to allow external decoders but 00068 * shouldn't be used for any other purpose. 00069 *****************************************************************************/ 00070 00075 typedef struct dvbpsi_psi_section_s dvbpsi_psi_section_t; 00076 00077 00078 /***************************************************************************** 00079 * dvbpsi_callback 00080 *****************************************************************************/ 00086 typedef void (* dvbpsi_callback)(dvbpsi_handle p_decoder, 00087 dvbpsi_psi_section_t* p_section); 00088 00089 00090 /***************************************************************************** 00091 * dvbpsi_decoder_t 00092 *****************************************************************************/ 00104 typedef struct dvbpsi_decoder_s 00105 { 00106 dvbpsi_callback pf_callback; 00109 void * p_private_decoder; 00112 int i_section_max_size; 00116 uint8_t i_continuity_counter; 00118 int b_discontinuity; 00121 dvbpsi_psi_section_t * p_current_section; 00122 int i_need; 00123 int b_complete_header; 00126 } dvbpsi_decoder_t; 00127 00128 00129 #ifdef __cplusplus 00130 }; 00131 #endif 00132 00133 #else 00134 #error "Multiple inclusions of dvbpsi.h" 00135 #endif 00136