libdvbpsi  1.3.0
dr_a1.h
Go to the documentation of this file.
00001 /*
00002 Copyright (C) 2012  Yonathan Yusim
00003 
00004 This library is free software; you can redistribute it and/or
00005 modify it under the terms of the GNU Lesser General Public
00006 License as published by the Free Software Foundation; either
00007 version 2.1 of the License, or (at your option) any later version.
00008 
00009 This library is distributed in the hope that it will be useful,
00010 but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 Lesser General Public License for more details.
00013 
00014 You should have received a copy of the GNU Lesser General Public
00015 License along with this library; if not, write to the Free Software
00016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00017 
00018 dr_a1.h
00019 
00020 Service Location Descriptor.
00021 
00022 */
00023 
00030 #ifndef _DVBPSI_DR_A1_H_
00031 #define _DVBPSI_DR_A1_H_
00032 
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037 
00038 /*****************************************************************************
00039  * dvbpsi_service_location_element_s
00040  *****************************************************************************/
00051 typedef struct dvbpsi_service_location_element_s
00052 {
00053     uint8_t i_stream_type;     
00054     uint16_t i_elementary_pid; 
00055     char i_iso_639_code[3];    
00056 } dvbpsi_service_location_element_t;
00057 
00058 /*****************************************************************************
00059  * dvbpsi_service_location_dr_s
00060  *****************************************************************************/
00072 typedef struct dvbpsi_service_location_dr_s
00073 {
00074     uint16_t i_pcr_pid;         
00075     uint8_t i_number_elements;  
00077     dvbpsi_service_location_element_t elements[0xff]; 
00079 } dvbpsi_service_location_dr_t;
00080 
00081 
00082 /*****************************************************************************
00083  * dvbpsi_DecodeServiceLocationDr
00084  *****************************************************************************/
00093 dvbpsi_service_location_dr_t
00094     *dvbpsi_DecodeServiceLocationDr (dvbpsi_descriptor_t * p_descriptor);
00095 
00096 /*****************************************************************************
00097  * dvbpsi_GenServiceLocationDr
00098  *****************************************************************************/
00109 dvbpsi_descriptor_t* dvbpsi_GenServiceLocationDr(
00110                                         dvbpsi_service_location_dr_t* p_decoded,
00111                                         bool b_duplicate);
00112 
00113 
00114 #ifdef __cplusplus
00115 }
00116 #endif
00117 
00118 #else
00119 #error "Multiple inclusions of dr_a1.h"
00120 #endif