libdvbpsi 0.2.0
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  *
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public
00011  * License as published by the Free Software Foundation; either
00012  * version 2.1 of the License, or (at your option) any later version.
00013  *
00014  * This library is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  * Lesser General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public
00020  * License along with this library; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00022  *
00023  *****************************************************************************/
00024 
00033 #ifndef _DVBPSI_DEMUX_H_
00034 #define _DVBPSI_DEMUX_H_
00035 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039 
00040 
00041 /*****************************************************************************
00042  * dvbpsi_demux_new_cb_t
00043  *****************************************************************************/
00051 typedef void (*dvbpsi_demux_new_cb_t) (void *   p_cb_data,
00052                                        dvbpsi_handle h_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_decoder_t*     p_psi_decoder,
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;
00092 
00093   void (*pf_detach)(struct dvbpsi_demux_s *, uint8_t, uint16_t);
00094 
00095 } dvbpsi_demux_subdec_t;
00096 
00097 /*****************************************************************************
00098  * dvbpsi_demux_t
00099  *****************************************************************************/
00111 typedef struct dvbpsi_demux_s
00112 {
00113   dvbpsi_handle             p_decoder;          
00114   dvbpsi_demux_subdec_t *   p_first_subdec;     
00115   /* New subtable callback */
00116   dvbpsi_demux_new_cb_t     pf_new_callback;    
00117   void *                    p_new_cb_data;      
00120 } dvbpsi_demux_t;
00121 
00122 
00123 /*****************************************************************************
00124  * dvbpsi_AttachDemux
00125  *****************************************************************************/
00133 __attribute__((deprecated))
00134 dvbpsi_handle dvbpsi_AttachDemux(dvbpsi_demux_new_cb_t pf_new_cb,
00135                                  void *                p_new_cb_data);
00136 
00137 /*****************************************************************************
00138  * dvbpsi_DetachDemux
00139  *****************************************************************************/
00145 __attribute__((deprecated))
00146 void dvbpsi_DetachDemux(dvbpsi_handle h_dvbpsi);
00147 
00148 /*****************************************************************************
00149  * dvbpsi_demuxGetSubDec
00150  *****************************************************************************/
00160 __attribute__((deprecated))
00161 dvbpsi_demux_subdec_t * dvbpsi_demuxGetSubDec(dvbpsi_demux_t * p_demux,
00162                                               uint8_t          i_table_id,
00163                                               uint16_t         i_extension);
00164 /*****************************************************************************
00165  * dvbpsi_Demux
00166  *****************************************************************************/
00174 __attribute__((deprecated))
00175 void dvbpsi_Demux(dvbpsi_handle h_dvbpsi,
00176                   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