Main Page | Data Structures | File List | Data Fields | Globals | Related Pages

demux.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * demux.h
00003  * (c)2001-2002 VideoLAN
00004  * $Id: demux.h,v 1.1 2002/12/11 13:04:56 jobi Exp $
00005  *
00006  * Authors: Johan Bilien <jobi@via.ecp.fr>
00007  *
00008  * This program is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU General Public License
00010  * as published by the Free Software Foundation; either version 2
00011  * of the License, or (at your option) any later version.
00012  *
00013  * This program 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
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00021  *
00022  *****************************************************************************/
00023 
00032 #ifndef _DVBPSI_DEMUX_H_
00033 #define _DVBPSI_DEMUX_H_
00034 
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 
00039 
00040 /*****************************************************************************
00041  * dvbpsi_demux_new_cb_t
00042  *****************************************************************************/
00050 typedef void (*dvbpsi_demux_new_cb_t) (void *   p_cb_data,
00051                                        dvbpsi_handle h_dvbpsi,
00052                                        uint8_t  i_table_id,
00053                                        uint16_t i_extension);
00054 
00055 /*****************************************************************************
00056  * dvbpsi_demux_subdec_cb_t
00057  *****************************************************************************/
00065 typedef void (*dvbpsi_demux_subdec_cb_t)
00066                      (dvbpsi_decoder_t*     p_psi_decoder,
00067                       void*                 p_private_decoder,
00068                       dvbpsi_psi_section_t* p_section);
00069 
00070 /*****************************************************************************
00071  * dvbpsi_demux_subdec_t
00072  *****************************************************************************/
00084 typedef struct dvbpsi_demux_subdec_s
00085 {
00086   uint32_t                        i_id;
00087   dvbpsi_demux_subdec_cb_t        pf_callback;
00088   void *                          p_cb_data;
00089   struct dvbpsi_demux_subdec_s *    p_next;
00090 
00091 } dvbpsi_demux_subdec_t;
00092 
00093 /*****************************************************************************
00094  * dvbpsi_demux_t
00095  *****************************************************************************/
00107 typedef struct dvbpsi_demux_s
00108 {
00109   dvbpsi_handle             p_decoder;          
00110   dvbpsi_demux_subdec_t *   p_first_subdec;     
00111   /* New subtable callback */
00112   dvbpsi_demux_new_cb_t     pf_new_callback;    
00113   void *                    p_new_cb_data;      
00116 } dvbpsi_demux_t;
00117 
00118 
00119 /*****************************************************************************
00120  * dvbpsi_AttachDemux
00121  *****************************************************************************/
00129 dvbpsi_handle dvbpsi_AttachDemux(dvbpsi_demux_new_cb_t pf_new_cb,
00130                                  void *                p_new_cb_data);
00131 
00132 /*****************************************************************************
00133  * dvbpsi_DetachDemux
00134  *****************************************************************************/
00141 void dvbpsi_DetachDemux(dvbpsi_handle h_dvbpsi);
00142 
00143 /*****************************************************************************
00144  * dvbpsi_demuxGetSubDec
00145  *****************************************************************************/
00155 dvbpsi_demux_subdec_t * dvbpsi_demuxGetSubDec(dvbpsi_demux_t * p_demux,
00156                                               uint8_t          i_table_id,
00157                                               uint16_t         i_extension);
00158 /*****************************************************************************
00159  * dvbpsi_Demux
00160  *****************************************************************************/
00168 void dvbpsi_Demux(dvbpsi_handle h_dvbpsi,
00169                   dvbpsi_psi_section_t * p_section);
00170 
00171 #ifdef __cplusplus
00172 };
00173 #endif
00174 
00175 #else
00176 #error "Multiple inclusions of demux.h"
00177 #endif
00178 

Generated on Thu Nov 27 19:22:49 2003 for libdvbpsi by doxygen 1.3.3