libdvbpsi
0.2.2
|
00001 /***************************************************************************** 00002 * psi.h 00003 * Copyright (C) 2001-2010 VideoLAN 00004 * $Id: psi.h,v 1.6 2002/04/02 17:55:30 bozo Exp $ 00005 * 00006 * Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr> 00007 * 00008 * This library is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public 00010 * License as published by the Free Software Foundation; either 00011 * version 2.1 of the License, or (at your option) any later version. 00012 * 00013 * This library 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 GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with this library; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00021 * 00022 *****************************************************************************/ 00023 00032 #ifndef _DVBPSI_PSI_H_ 00033 #define _DVBPSI_PSI_H_ 00034 00035 #ifdef __cplusplus 00036 extern "C" { 00037 #endif 00038 00039 00040 /***************************************************************************** 00041 * dvbpsi_psi_section_t 00042 *****************************************************************************/ 00069 struct dvbpsi_psi_section_s 00070 { 00071 /* non-specific section data */ 00072 uint8_t i_table_id; 00073 int b_syntax_indicator; 00074 int b_private_indicator; 00075 uint16_t i_length; 00077 /* used if b_syntax_indicator is true */ 00078 uint16_t i_extension; 00081 uint8_t i_version; 00082 int b_current_next; 00083 uint8_t i_number; 00084 uint8_t i_last_number; 00086 /* non-specific section data */ 00087 /* the content is table-specific */ 00088 uint8_t * p_data; 00089 uint8_t * p_payload_start; 00090 uint8_t * p_payload_end; 00092 /* used if b_syntax_indicator is true */ 00093 uint32_t i_crc; 00095 /* list handling */ 00096 struct dvbpsi_psi_section_s * p_next; 00099 }; 00100 00101 00102 /***************************************************************************** 00103 * dvbpsi_NewPSISection 00104 *****************************************************************************/ 00111 dvbpsi_psi_section_t * dvbpsi_NewPSISection(int i_max_size); 00112 00113 00114 /***************************************************************************** 00115 * dvbpsi_DeletePSISections 00116 *****************************************************************************/ 00123 void dvbpsi_DeletePSISections(dvbpsi_psi_section_t * p_section); 00124 00125 00126 /***************************************************************************** 00127 * dvbpsi_ValidPSISection 00128 *****************************************************************************/ 00137 __attribute__((deprecated)) 00138 int dvbpsi_ValidPSISection(dvbpsi_psi_section_t* p_section); 00139 00140 00141 /***************************************************************************** 00142 * dvbpsi_BuildPSISection 00143 *****************************************************************************/ 00150 __attribute__((deprecated)) 00151 void dvbpsi_BuildPSISection(dvbpsi_psi_section_t* p_section); 00152 00153 00154 #ifdef __cplusplus 00155 }; 00156 #endif 00157 00158 #else 00159 #error "Multiple inclusions of psi.h" 00160 #endif 00161