⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvb_demux.h

📁 linux-2.6.15.6
💻 H
字号:
/* * dvb_demux.h: DVB kernel demux API * * Copyright (C) 2000-2001 Marcus Metzler & Ralph Metzler *                         for convergence integrated media GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. * */#ifndef _DVB_DEMUX_H_#define _DVB_DEMUX_H_#include <linux/time.h>#include <linux/timer.h>#include <linux/spinlock.h>#include <asm/semaphore.h>#include "demux.h"#define DMX_TYPE_TS  0#define DMX_TYPE_SEC 1#define DMX_TYPE_PES 2#define DMX_STATE_FREE      0#define DMX_STATE_ALLOCATED 1#define DMX_STATE_SET       2#define DMX_STATE_READY     3#define DMX_STATE_GO        4#define DVB_DEMUX_MASK_MAX 18struct dvb_demux_filter {	struct dmx_section_filter filter;	u8 maskandmode[DMX_MAX_FILTER_SIZE];	u8 maskandnotmode[DMX_MAX_FILTER_SIZE];	int doneq;	struct dvb_demux_filter *next;	struct dvb_demux_feed *feed;	int index;	int state;	int type;	u16 hw_handle;	struct timer_list timer;};#define DMX_FEED_ENTRY(pos) list_entry(pos, struct dvb_demux_feed, list_head)struct dvb_demux_feed {	union {		struct dmx_ts_feed ts;		struct dmx_section_feed sec;	} feed;	union {		dmx_ts_cb ts;		dmx_section_cb sec;	} cb;	struct dvb_demux *demux;	void *priv;	int type;	int state;	u16 pid;	u8 *buffer;	int buffer_size;	struct timespec timeout;	struct dvb_demux_filter *filter;	int ts_type;	enum dmx_ts_pes pes_type;	int cc;	int pusi_seen;		/* prevents feeding of garbage from previous section */	u16 peslen;	struct list_head list_head;	unsigned int index;	/* a unique index for each feed (can be used as hardware pid filter index) */};struct dvb_demux {	struct dmx_demux dmx;	void *priv;	int filternum;	int feednum;	int (*start_feed)(struct dvb_demux_feed *feed);	int (*stop_feed)(struct dvb_demux_feed *feed);	int (*write_to_decoder)(struct dvb_demux_feed *feed,				 const u8 *buf, size_t len);	u32 (*check_crc32)(struct dvb_demux_feed *feed,			    const u8 *buf, size_t len);	void (*memcopy)(struct dvb_demux_feed *feed, u8 *dst,			 const u8 *src, size_t len);	int users;#define MAX_DVB_DEMUX_USERS 10	struct dvb_demux_filter *filter;	struct dvb_demux_feed *feed;	struct list_head frontend_list;	struct dvb_demux_feed *pesfilter[DMX_TS_PES_OTHER];	u16 pids[DMX_TS_PES_OTHER];	int playing;	int recording;#define DMX_MAX_PID 0x2000	struct list_head feed_list;	u8 tsbuf[204];	int tsbufp;	struct semaphore mutex;	spinlock_t lock;};int dvb_dmx_init(struct dvb_demux *dvbdemux);void dvb_dmx_release(struct dvb_demux *dvbdemux);void dvb_dmx_swfilter_packets(struct dvb_demux *dvbdmx, const u8 *buf,			      size_t count);void dvb_dmx_swfilter(struct dvb_demux *demux, const u8 *buf, size_t count);void dvb_dmx_swfilter_204(struct dvb_demux *demux, const u8 *buf,			  size_t count);#endif /* _DVB_DEMUX_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -