00001 /***************************************************************************** 00002 * dvbpsi.h 00003 * (c)2001-2002 VideoLAN 00004 * $Id: dvbpsi.h 138 2007-01-22 18:03:13Z massiot $ 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 #define DVBPSI_VERSION 0.1.6 00037 #define DVBPSI_VERSION_INT ((0<<16)+(1<<8)+6) 00038 00039 #ifdef __cplusplus 00040 extern "C" { 00041 #endif 00042 00043 00044 /***************************************************************************** 00045 * dvbpsi_handle 00046 *****************************************************************************/ 00051 typedef struct dvbpsi_decoder_s * dvbpsi_handle; 00052 00053 00054 /***************************************************************************** 00055 * dvbpsi_PushPacket 00056 *****************************************************************************/ 00066 void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data); 00067 00068 00069 /***************************************************************************** 00070 * The following definitions are just here to allow external decoders but 00071 * shouldn't be used for any other purpose. 00072 *****************************************************************************/ 00073 00078 typedef struct dvbpsi_psi_section_s dvbpsi_psi_section_t; 00079 00080 00081 /***************************************************************************** 00082 * dvbpsi_callback 00083 *****************************************************************************/ 00089 typedef void (* dvbpsi_callback)(dvbpsi_handle p_decoder, 00090 dvbpsi_psi_section_t* p_section); 00091 00092 00093 /***************************************************************************** 00094 * dvbpsi_decoder_t 00095 *****************************************************************************/ 00107 typedef struct dvbpsi_decoder_s 00108 { 00109 dvbpsi_callback pf_callback; 00112 void * p_private_decoder; 00115 int i_section_max_size; 00119 uint8_t i_continuity_counter; 00121 int b_discontinuity; 00124 dvbpsi_psi_section_t * p_current_section; 00125 int i_need; 00126 int b_complete_header; 00129 } dvbpsi_decoder_t; 00130 00131 00132 #ifdef __cplusplus 00133 }; 00134 #endif 00135 00136 #else 00137 #error "Multiple inclusions of dvbpsi.h" 00138 #endif 00139