4  * Copyright (C) 2000 Ralph Metzler & Marcus Metzler
 
   5  *                    for convergence integrated media GmbH
 
   7  * This program is free software; you can redistribute it and/or
 
   8  * modify it under the terms of the GNU Lesser General Public License
 
   9  * as published by the Free Software Foundation; either version 2.1
 
  10  * of the License, or (at your option) any later version.
 
  12  * This program is distributed in the hope that it will be useful,
 
  13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
  14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
  15  * GNU General Public License for more details.
 
  17  * You should have received a copy of the GNU Lesser General Public License
 
  18  * along with this program; if not, write to the Free Software
 
  19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
  26 #include <linux/types.h>
 
  27 #include <linux/spinlock.h>
 
  28 #include <linux/kernel.h>
 
  29 #include <linux/timer.h>
 
  30 #include <linux/wait.h>
 
  32 #include <linux/string.h>
 
  33 #include <linux/mutex.h>
 
  35 #include <linux/dvb/dmx.h>
 
  39 #include "dvb_ringbuffer.h"
 
  49         DMXDEV_STATE_ALLOCATED,
 
  56 struct dmxdev_filter {
 
  58                 struct dmx_section_filter *sec;
 
  62                 struct dmx_ts_feed *ts;
 
  63                 struct dmx_section_feed *sec;
 
  67                 struct dmx_sct_filter_params sec;
 
  68                 struct dmx_pes_filter_params pes;
 
  71         enum dmxdev_type type;
 
  72         enum dmxdev_state state;
 
  74         struct dvb_ringbuffer buffer;
 
  78         /* only for sections */
 
  79         struct timer_list timer;
 
  86         struct dvb_device *dvbdev;
 
  87         struct dvb_device *dvr_dvbdev;
 
  89         struct dmxdev_filter *filter;
 
  90         struct dmx_demux *demux;
 
  96 #define DMXDEV_CAP_DUPLEX 1
 
  97         struct dmx_frontend *dvr_orig_fe;
 
  99         struct dvb_ringbuffer dvr_buffer;
 
 100 #define DVR_BUFFER_SIZE (10*188*1024)
 
 107 int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *);
 
 108 void dvb_dmxdev_release(struct dmxdev *dmxdev);
 
 110 #endif /* _DMXDEV_H_ */