• Main Page
  • Related Pages
  • Data Structures
  • Files
  • File List
  • Globals

demux.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * demux.h
00003  *
00004  * Copyright (C) 2001-2011 VideoLAN
00005  * $Id$
00006  *
00007  * Authors: Johan Bilien <jobi@via.ecp.fr>
00008  *          Jean-Paul Saman <jpsaman@videolan.org>
00009  *
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Lesser General Public
00012  * License as published by the Free Software Foundation; either
00013  * version 2.1 of the License, or (at your option) any later version.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Lesser General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Lesser General Public
00021  * License along with this library; if not, write to the Free Software
00022  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00023  *
00024  *****************************************************************************/
00025 
00034 #ifndef _DVBPSI_DEMUX_H_
00035 #define _DVBPSI_DEMUX_H_
00036 
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040 
00041 /*****************************************************************************
00042  * dvbpsi_demux_new_cb_t
00043  *****************************************************************************/
00051 typedef void (*dvbpsi_demux_new_cb_t) (void *   p_cb_data,
00052                                        dvbpsi_t *p_dvbpsi,
00053                                        uint8_t  i_table_id,
00054                                        uint16_t i_extension);
00055 
00056 /*****************************************************************************
00057  * dvbpsi_demux_subdec_cb_t
00058  *****************************************************************************/
00066 typedef void (*dvbpsi_demux_subdec_cb_t)
00067                      (dvbpsi_t             *p_dvbpsi,
00068                       void                 *p_private_decoder,
00069                       dvbpsi_psi_section_t *p_section);
00070 
00071 /*****************************************************************************
00072  * dvbpsi_demux_subdec_t
00073  *****************************************************************************/
00085 struct dvbpsi_demux_s;
00086 typedef struct dvbpsi_demux_subdec_s
00087 {
00088   uint32_t                        i_id;             
00089   dvbpsi_demux_subdec_cb_t        pf_callback;      
00090   void *                          p_cb_data;        
00091   struct dvbpsi_demux_subdec_s *  p_next;           
00093   void (*pf_detach)(dvbpsi_t *, uint8_t, uint16_t); 
00095 } dvbpsi_demux_subdec_t;
00096 
00097 /*****************************************************************************
00098  * dvbpsi_demux_s
00099  *****************************************************************************/
00111 typedef struct dvbpsi_demux_s dvbpsi_demux_t;
00112 
00113 struct dvbpsi_demux_s
00114 {
00115     DVBPSI_DECODER_COMMON
00116 
00117     dvbpsi_demux_subdec_t *   p_first_subdec;     
00119     /* New subtable callback */
00120     dvbpsi_demux_new_cb_t     pf_new_callback;    
00121     void *                    p_new_cb_data;      
00123 };
00124 
00125 /*****************************************************************************
00126  * dvbpsi_AttachDemux
00127  *****************************************************************************/
00136 bool dvbpsi_AttachDemux(dvbpsi_t *            p_dvbpsi,
00137                         dvbpsi_demux_new_cb_t pf_new_cb,
00138                         void *                p_new_cb_data);
00139 
00140 /*****************************************************************************
00141  * dvbpsi_DetachDemux
00142  *****************************************************************************/
00149 void dvbpsi_DetachDemux(dvbpsi_t *p_dvbpsi);
00150 
00151 /*****************************************************************************
00152  * dvbpsi_demuxGetSubDec
00153  *****************************************************************************/
00163 dvbpsi_demux_subdec_t * dvbpsi_demuxGetSubDec(dvbpsi_demux_t * p_demux,
00164                                               uint8_t          i_table_id,
00165                                               uint16_t         i_extension);
00166 /*****************************************************************************
00167  * dvbpsi_Demux
00168  *****************************************************************************/
00176 void dvbpsi_Demux(dvbpsi_t *p_dvbpsi, dvbpsi_psi_section_t *p_section);
00177 
00178 #ifdef __cplusplus
00179 };
00180 #endif
00181 
00182 #else
00183 #error "Multiple inclusions of demux.h"
00184 #endif
00185 

Generated on Wed May 16 2012 07:56:18 for libdvbpsi by  doxygen 1.7.1