libdvbpsi 0.2.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;      /* 1 bits */
00059   uint8_t   i_line_offset; /* 5 bits */
00060 
00061 } dvbpsi_vbidata_line_t;
00062 
00063 /*****************************************************************************
00064  * dvbpsi_vbidata_t
00065  *****************************************************************************/
00077 typedef struct dvbpsi_vbidata_s
00078 {
00079   uint8_t               i_data_service_id;  /* 8 bits */
00080   uint8_t               i_lines;
00081   dvbpsi_vbidata_line_t p_lines[255];
00082 
00083 } dvbpsi_vbidata_t;
00084 
00085 /*****************************************************************************
00086  * dvbpsi_vbi_dr_t
00087  *****************************************************************************/
00099 typedef struct dvbpsi_vbi_dr_s
00100 {
00101   uint8_t          i_services_number;
00102   dvbpsi_vbidata_t p_services[85];
00103 
00104 } dvbpsi_vbi_dr_t;
00105 
00106 
00107 /*****************************************************************************
00108  * dvbpsi_DecodeVBIDataDr
00109  *****************************************************************************/
00118 dvbpsi_vbi_dr_t* dvbpsi_DecodeVBIDataDr(
00119                                         dvbpsi_descriptor_t * p_descriptor);
00120 
00121 
00122 /*****************************************************************************
00123  * dvbpsi_GenVBIDataDr
00124  *****************************************************************************/
00135 dvbpsi_descriptor_t * dvbpsi_GenVBIDataDr(
00136                                         dvbpsi_vbi_dr_t * p_decoded,
00137                                         int b_duplicate);
00138 
00139 #ifdef __cplusplus
00140 };
00141 #endif
00142 
00143 #else
00144 #error "Multiple inclusions of dr_45.h"
00145 #endif