00001 /***************************************************************************** 00002 * dr_4a.h 00003 * Copyright (C) 2012 VideoLAN 00004 * 00005 * Authors: Corno Roberto <corno.roberto@gmail.com> 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 * 00021 *****************************************************************************/ 00022 00034 #ifndef DR_4A_H_ 00035 #define DR_4A_H_ 00036 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 /***************************************************************************** 00042 * dvbpsi_linkage_dr_t 00043 *****************************************************************************/ 00059 typedef struct dvbpsi_linkage_dr_s 00060 { 00061 uint16_t i_transport_stream_id; 00062 uint16_t i_original_network_id; 00063 uint16_t i_service_id; 00064 uint8_t i_linkage_type; 00066 /* used if i_linkage_type ==0x08 */ 00067 uint8_t i_handover_type; 00068 uint8_t i_origin_type; 00069 /* used if i_linkage_type ==0x08 && 00070 * (i_handover_type ==0x01 || i_handover_type ==0x02|| i_handover_type ==0x03) 00071 */ 00072 uint16_t i_network_id; 00073 /* used if i_linkage_type ==0x08 && i_origin_type ==0 */ 00074 uint16_t i_initial_service_id; 00076 /* used if i_linkage_type ==0x0D */ 00077 uint16_t i_target_event_id; 00078 bool b_target_listed; 00079 bool b_event_simulcast; 00081 uint8_t i_private_data_length; 00083 uint8_t i_private_data[248]; 00085 } dvbpsi_linkage_dr_t; 00086 00087 /***************************************************************************** 00088 * dvbpsi_DecodeLinkageDr 00089 *****************************************************************************/ 00098 dvbpsi_linkage_dr_t* dvbpsi_DecodeLinkageDr(dvbpsi_descriptor_t * p_descriptor); 00099 00100 /***************************************************************************** 00101 * dvbpsi_GenLinkageDr 00102 *****************************************************************************/ 00112 dvbpsi_descriptor_t *dvbpsi_GenLinkageDr(dvbpsi_linkage_dr_t * p_decoded, 00113 bool b_duplicate); 00114 00115 #ifdef __cplusplus 00116 }; 00117 #endif 00118 00119 #else 00120 #error "Multiple inclusions of dr_4a.h" 00121 #endif /* DR_4A_H_ */