00001 /***************************************************************************** 00002 * descriptor.h 00003 * Copyright (C) 2001-2010 VideoLAN 00004 * $Id: descriptor.h,v 1.5 2002/05/08 13:00:40 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 00035 #ifndef _DVBPSI_DESCRIPTOR_H_ 00036 #define _DVBPSI_DESCRIPTOR_H_ 00037 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00042 /***************************************************************************** 00043 * common definitions 00044 *****************************************************************************/ 00049 typedef uint8_t iso_639_language_code_t[3]; 00050 00051 /***************************************************************************** 00052 * dvbpsi_descriptor_t 00053 *****************************************************************************/ 00078 typedef struct dvbpsi_descriptor_s 00079 { 00080 uint8_t i_tag; 00081 uint8_t i_length; 00083 uint8_t * p_data; 00085 struct dvbpsi_descriptor_s * p_next; 00088 void * p_decoded; 00090 } dvbpsi_descriptor_t; 00091 00092 /***************************************************************************** 00093 * dvbpsi_NewDescriptor 00094 *****************************************************************************/ 00105 dvbpsi_descriptor_t* dvbpsi_NewDescriptor(uint8_t i_tag, uint8_t i_length, 00106 uint8_t* p_data); 00107 00108 00109 /***************************************************************************** 00110 * dvbpsi_DeleteDescriptors 00111 *****************************************************************************/ 00119 void dvbpsi_DeleteDescriptors(dvbpsi_descriptor_t* p_descriptor); 00120 00121 /***************************************************************************** 00122 * dvbpsi_AddDescriptor 00123 *****************************************************************************/ 00132 dvbpsi_descriptor_t *dvbpsi_AddDescriptor(dvbpsi_descriptor_t *p_list, 00133 dvbpsi_descriptor_t *p_descriptor); 00134 00135 /***************************************************************************** 00136 * dvbpsi_CanDecodeAsDescriptor 00137 *****************************************************************************/ 00145 bool dvbpsi_CanDecodeAsDescriptor(dvbpsi_descriptor_t *p_descriptor, const uint8_t i_tag); 00146 00147 /***************************************************************************** 00148 * dvbpsi_IsDescriptorDecoded 00149 *****************************************************************************/ 00156 bool dvbpsi_IsDescriptorDecoded(dvbpsi_descriptor_t *p_descriptor); 00157 00158 /***************************************************************************** 00159 * dvbpsi_DuplicateDecodedDescriptor 00160 *****************************************************************************/ 00168 void *dvbpsi_DuplicateDecodedDescriptor(void *p_decoded, ssize_t i_size); 00169 00170 #ifdef __cplusplus 00171 }; 00172 #endif 00173 00174 #else 00175 #error "Multiple inclusions of descriptor.h" 00176 #endif 00177