libdvbpsi  1.3.0
dr_45.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002  * dr_45.h
00003  * Copyright (C) 2004-2010 VideoLAN
00004  * $Id$
00005  *
00006  * Authors: Jean-Paul Saman <jpsaman@videolan.org>
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_DR_45_H_
00036 #define _DVBPSI_DR_45_H_
00037 
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041 
00042 /*****************************************************************************
00043  * dvbpsi_vbidata_line_t
00044  *****************************************************************************/
00056 typedef struct dvbpsi_vbidata_line_s
00057 {
00058   uint8_t   i_parity;      
00059   uint8_t   i_line_offset; 
00061 } dvbpsi_vbidata_line_t;
00062 
00069 #define DVBPSI_VBIDATA_LINE_DR_MAX 255
00070 
00071 /*****************************************************************************
00072  * dvbpsi_vbidata_t
00073  *****************************************************************************/
00085 typedef struct dvbpsi_vbidata_s
00086 {
00087   uint8_t               i_data_service_id;  
00088   uint8_t               i_lines;            
00089   dvbpsi_vbidata_line_t p_lines[255];       
00091 } dvbpsi_vbidata_t;
00092 
00098 #define DVBPSI_VBI_DR_MAX 85
00099 
00100 /*****************************************************************************
00101  * dvbpsi_vbi_dr_t
00102  *****************************************************************************/
00114 typedef struct dvbpsi_vbi_dr_s
00115 {
00116   uint8_t          i_services_number;   
00117   dvbpsi_vbidata_t p_services[DVBPSI_VBI_DR_MAX]; 
00119 } dvbpsi_vbi_dr_t;
00120 
00121 
00122 /*****************************************************************************
00123  * dvbpsi_DecodeVBIDataDr
00124  *****************************************************************************/
00133 dvbpsi_vbi_dr_t* dvbpsi_DecodeVBIDataDr(
00134                                         dvbpsi_descriptor_t * p_descriptor);
00135 
00136 
00137 /*****************************************************************************
00138  * dvbpsi_GenVBIDataDr
00139  *****************************************************************************/
00150 dvbpsi_descriptor_t * dvbpsi_GenVBIDataDr(
00151                                         dvbpsi_vbi_dr_t * p_decoded,
00152                                         bool b_duplicate);
00153 
00154 #ifdef __cplusplus
00155 };
00156 #endif
00157 
00158 #else
00159 #error "Multiple inclusions of dr_45.h"
00160 #endif