亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? videodev.h

?? 這是一個市場上常見電視卡的驅動程序源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef __LINUX_VIDEODEV_H
#define __LINUX_VIDEODEV_H

#include <linux/types.h>
#include <linux/version.h>

#define HAVE_V4L2 1
#include <linux/videodev2.h>

#ifdef __KERNEL__

#include <linux/poll.h>
#include <linux/mm.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69)
#include <linux/devfs_fs_kernel.h>
#endif
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
#include <linux/device.h>
#endif

struct video_device
{
	/* device info */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
	struct device *dev;
#endif
	char name[32];
	int type;       /* v4l1 */
	int type2;      /* v4l2 */
	int hardware;
	int minor;

	/* device ops + callbacks */
	struct file_operations *fops;
	void (*release)(struct video_device *vfd);

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
	/* old, obsolete interface -- dropped in 2.5.x, don't use it */
	int (*open)(struct video_device *, int mode);
	void (*close)(struct video_device *);
	long (*read)(struct video_device *, char *, unsigned long, int noblock);
	long (*write)(struct video_device *, const char *, unsigned long, int noblock);
	unsigned int (*poll)(struct video_device *, struct file *, poll_table *);
	int (*ioctl)(struct video_device *, unsigned int , void *);
	int (*mmap)(struct video_device *, const char *, unsigned long);
	int (*initialize)(struct video_device *);       
#endif

#if 1 /* to be removed in 2.7.x */
	/* obsolete -- fops->owner is used instead */
	struct module *owner;
	/* dev->driver_data will be used instead some day.
	 * Use the video_{get|set}_drvdata() helper functions,
	 * so the switch over will be transparent for you.
	 * Or use {pci|usb}_{get|set}_drvdata() directly. */
	void *priv;
#endif

	/* for videodev.c intenal usage -- please don't touch */
	int users;                     /* video_exclusive_{open|close} ... */
	struct semaphore lock;         /* ... helper function uses these   */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69)
	devfs_handle_t devfs_handle;   /* devfs */
#else
	char devfs_name[64];           /* devfs */
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
	struct class_device class_dev; /* sysfs */
#endif
};

#define VIDEO_MAJOR	81

#define VFL_TYPE_GRABBER	0
#define VFL_TYPE_VBI		1
#define VFL_TYPE_RADIO		2
#define VFL_TYPE_VTX		3

extern int video_register_device(struct video_device *, int type, int nr);
extern void video_unregister_device(struct video_device *);
extern struct video_device* video_devdata(struct file*);

#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
#define to_video_device(cd) container_of(cd, struct video_device, class_dev)
static inline void
video_device_create_file(struct video_device *vfd,
			 struct class_device_attribute *attr)
{
	class_device_create_file(&vfd->class_dev, attr);
}
static inline void
video_device_remove_file(struct video_device *vfd,
			 struct class_device_attribute *attr)
{
	class_device_remove_file(&vfd->class_dev, attr);
}
#endif

/* helper functions to alloc / release struct video_device, the
   later can be used for video_device->release() */
struct video_device *video_device_alloc(void);
void video_device_release(struct video_device *vfd);

/* helper functions to access driver private data. */
static inline void *video_get_drvdata(struct video_device *dev)
{
	return dev->priv;
}

static inline void video_set_drvdata(struct video_device *dev, void *data)
{
	dev->priv = data;
}

extern int video_exclusive_open(struct inode *inode, struct file *file);
extern int video_exclusive_release(struct inode *inode, struct file *file);
extern int video_usercopy(struct inode *inode, struct file *file,
			  unsigned int cmd, unsigned long arg,
			  int (*func)(struct inode *inode, struct file *file,
				      unsigned int cmd, void *arg));
#endif /* __KERNEL__ */

#define VID_TYPE_CAPTURE	1	/* Can capture */
#define VID_TYPE_TUNER		2	/* Can tune */
#define VID_TYPE_TELETEXT	4	/* Does teletext */
#define VID_TYPE_OVERLAY	8	/* Overlay onto frame buffer */
#define VID_TYPE_CHROMAKEY	16	/* Overlay by chromakey */
#define VID_TYPE_CLIPPING	32	/* Can clip */
#define VID_TYPE_FRAMERAM	64	/* Uses the frame buffer memory */
#define VID_TYPE_SCALES		128	/* Scalable */
#define VID_TYPE_MONOCHROME	256	/* Monochrome only */
#define VID_TYPE_SUBCAPTURE	512	/* Can capture subareas of the image */
#define VID_TYPE_MPEG_DECODER	1024	/* Can decode MPEG streams */
#define VID_TYPE_MPEG_ENCODER	2048	/* Can encode MPEG streams */
#define VID_TYPE_MJPEG_DECODER	4096	/* Can decode MJPEG streams */
#define VID_TYPE_MJPEG_ENCODER	8192	/* Can encode MJPEG streams */

struct video_capability
{
	char name[32];
	int type;
	int channels;	/* Num channels */
	int audios;	/* Num audio devices */
	int maxwidth;	/* Supported width */
	int maxheight;	/* And height */
	int minwidth;	/* Supported width */
	int minheight;	/* And height */
};


struct video_channel
{
	int channel;
	char name[32];
	int tuners;
	__u32  flags;
#define VIDEO_VC_TUNER		1	/* Channel has a tuner */
#define VIDEO_VC_AUDIO		2	/* Channel has audio */
	__u16  type;
#define VIDEO_TYPE_TV		1
#define VIDEO_TYPE_CAMERA	2	
	__u16 norm;			/* Norm set by channel */
};

struct video_tuner
{
	int tuner;
	char name[32];
	unsigned long rangelow, rangehigh;	/* Tuner range */
	__u32 flags;
#define VIDEO_TUNER_PAL		1
#define VIDEO_TUNER_NTSC	2
#define VIDEO_TUNER_SECAM	4
#define VIDEO_TUNER_LOW		8	/* Uses KHz not MHz */
#define VIDEO_TUNER_NORM	16	/* Tuner can set norm */
#define VIDEO_TUNER_STEREO_ON	128	/* Tuner is seeing stereo */
#define VIDEO_TUNER_RDS_ON      256     /* Tuner is seeing an RDS datastream */
#define VIDEO_TUNER_MBS_ON      512     /* Tuner is seeing an MBS datastream */
	__u16 mode;			/* PAL/NTSC/SECAM/OTHER */
#define VIDEO_MODE_PAL		0
#define VIDEO_MODE_NTSC		1
#define VIDEO_MODE_SECAM	2
#define VIDEO_MODE_AUTO		3
	__u16 signal;			/* Signal strength 16bit scale */
};

struct video_picture
{
	__u16	brightness;
	__u16	hue;
	__u16	colour;
	__u16	contrast;
	__u16	whiteness;	/* Black and white only */
	__u16	depth;		/* Capture depth */
	__u16   palette;	/* Palette in use */
#define VIDEO_PALETTE_GREY	1	/* Linear greyscale */
#define VIDEO_PALETTE_HI240	2	/* High 240 cube (BT848) */
#define VIDEO_PALETTE_RGB565	3	/* 565 16 bit RGB */
#define VIDEO_PALETTE_RGB24	4	/* 24bit RGB */
#define VIDEO_PALETTE_RGB32	5	/* 32bit RGB */	
#define VIDEO_PALETTE_RGB555	6	/* 555 15bit RGB */
#define VIDEO_PALETTE_YUV422	7	/* YUV422 capture */
#define VIDEO_PALETTE_YUYV	8
#define VIDEO_PALETTE_UYVY	9	/* The great thing about standards is ... */
#define VIDEO_PALETTE_YUV420	10
#define VIDEO_PALETTE_YUV411	11	/* YUV411 capture */
#define VIDEO_PALETTE_RAW	12	/* RAW capture (BT848) */
#define VIDEO_PALETTE_YUV422P	13	/* YUV 4:2:2 Planar */
#define VIDEO_PALETTE_YUV411P	14	/* YUV 4:1:1 Planar */
#define VIDEO_PALETTE_YUV420P	15	/* YUV 4:2:0 Planar */
#define VIDEO_PALETTE_YUV410P	16	/* YUV 4:1:0 Planar */
#define VIDEO_PALETTE_PLANAR	13	/* start of planar entries */
#define VIDEO_PALETTE_COMPONENT 7	/* start of component entries */
};

struct video_audio
{
	int	audio;		/* Audio channel */
	__u16	volume;		/* If settable */
	__u16	bass, treble;
	__u32	flags;
#define VIDEO_AUDIO_MUTE	1
#define VIDEO_AUDIO_MUTABLE	2
#define VIDEO_AUDIO_VOLUME	4
#define VIDEO_AUDIO_BASS	8
#define VIDEO_AUDIO_TREBLE	16	
#define VIDEO_AUDIO_BALANCE	32
	char    name[16];
#define VIDEO_SOUND_MONO	1
#define VIDEO_SOUND_STEREO	2
#define VIDEO_SOUND_LANG1	4
#define VIDEO_SOUND_LANG2	8
        __u16   mode;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一区二区三区va| 精品国产免费一区二区三区四区 | 在线电影一区二区三区| 精品久久人人做人人爰| 一片黄亚洲嫩模| 国产一区中文字幕| 欧美久久久一区| 亚洲综合无码一区二区| 国产成人高清在线| 26uuu久久综合| 日韩av在线发布| 在线视频一区二区三区| 国产精品久久久一本精品 | 粉嫩aⅴ一区二区三区四区五区| 69久久夜色精品国产69蝌蚪网| 亚洲另类在线视频| 成人福利视频在线| 久久久精品中文字幕麻豆发布| 麻豆91精品91久久久的内涵| 欧美日本乱大交xxxxx| 亚洲精品成人悠悠色影视| 波多野结衣在线一区| 国产欧美日韩在线| 成人一级黄色片| 国产亚洲欧美一区在线观看| 国产在线一区二区| 久久日韩粉嫩一区二区三区| 狠狠色丁香婷综合久久| 精品噜噜噜噜久久久久久久久试看| 三级不卡在线观看| 欧美一区二区精品在线| 日韩av电影一区| 欧美一区二区福利在线| 美女任你摸久久| 欧美电影精品一区二区| 国产老妇另类xxxxx| 久久嫩草精品久久久精品| 激情五月婷婷综合| 国产蜜臀97一区二区三区| 成人高清视频在线| 亚洲制服丝袜av| 欧美电影在线免费观看| 日本成人在线网站| 久久久久国产成人精品亚洲午夜| 国产精品资源在线观看| 国产精品婷婷午夜在线观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美老肥妇做.爰bbww视频| 首页国产欧美日韩丝袜| 精品久久久影院| 国产福利不卡视频| 亚洲美女电影在线| 67194成人在线观看| 国产尤物一区二区在线 | 精品精品国产高清a毛片牛牛| 久久精品免费看| 国产情人综合久久777777| 色视频欧美一区二区三区| 五月开心婷婷久久| 久久久不卡网国产精品二区| 97se亚洲国产综合在线| 五月综合激情婷婷六月色窝| 国产香蕉久久精品综合网| 在线观看亚洲精品| 狠狠色丁香婷综合久久| 亚洲一区二区视频在线观看| 日韩精品一区二区三区在线| 91原创在线视频| 热久久久久久久| 国产精品麻豆欧美日韩ww| 欧美日韩成人在线一区| 成人av网址在线| 日一区二区三区| 中文子幕无线码一区tr| 91麻豆精品国产91久久久久| 成人伦理片在线| 久久国产视频网| 亚洲国产你懂的| 国产精品久久久久久久久免费桃花 | 成人午夜电影网站| 婷婷一区二区三区| 中文字幕一区二区三区精华液| 91精品国产一区二区| 91蜜桃网址入口| 国产精品一区二区男女羞羞无遮挡| 亚洲一区二区三区四区在线免费观看| 亚洲精品一线二线三线无人区| 91国内精品野花午夜精品| 久久不见久久见免费视频1| 一区二区不卡在线播放| 国产精品蜜臀av| 精品少妇一区二区三区在线播放| 欧美性色综合网| 色婷婷香蕉在线一区二区| 国产老女人精品毛片久久| 免费成人小视频| 视频一区中文字幕| 亚洲在线免费播放| 亚洲精品免费视频| 自拍偷拍国产精品| 欧美高清在线视频| 久久色在线视频| 精品国产免费久久| 日韩免费观看高清完整版| 91麻豆精品久久久久蜜臀| 欧美三级日韩三级国产三级| 日本精品一区二区三区四区的功能| 成人性生交大片免费看中文| 国产精品18久久久久久久久久久久| 美腿丝袜在线亚洲一区| 日本三级亚洲精品| 日韩精品欧美精品| 亚洲成人免费看| 婷婷国产v国产偷v亚洲高清| 亚洲一区二区三区在线看| 亚洲一级在线观看| 亚洲成av人片在线| 五月天国产精品| 精品一二三四在线| 国产呦萝稀缺另类资源| 成人性生交大片免费看视频在线| 粉嫩高潮美女一区二区三区| 成a人片国产精品| 色综合天天综合狠狠| 色悠久久久久综合欧美99| 在线观看www91| 6080国产精品一区二区| 日韩精品专区在线影院重磅| 久久久久久久免费视频了| 中文子幕无线码一区tr| 亚洲品质自拍视频| 亚洲va韩国va欧美va精品| 看片的网站亚洲| 成人成人成人在线视频| 91国产免费观看| 欧美电影免费观看高清完整版在线| 国产欧美日产一区| 一区二区三区欧美在线观看| 日产精品久久久久久久性色| 国内精品免费**视频| 99久久久精品免费观看国产蜜| 日本高清不卡一区| 日韩美女视频在线| 中文字幕一区三区| 亚洲成人777| 国产成人精品免费网站| 欧美视频在线不卡| 国产色产综合色产在线视频| 亚洲一区二区欧美激情| 精品中文字幕一区二区| 91美女精品福利| 欧美久久久久久蜜桃| 欧美经典一区二区| 天堂va蜜桃一区二区三区漫画版| 国产精品 日产精品 欧美精品| 欧美性欧美巨大黑白大战| 久久久久久久综合色一本| 亚洲一区二区三区三| 国产精品一二二区| 欧美精品一级二级| 日韩一区在线看| 国产一区久久久| 欧美乱妇23p| 亚洲色图在线看| 国产一区二区电影| 欧美喷水一区二区| 国产精品嫩草影院com| 日韩精品成人一区二区三区 | 日本中文字幕一区二区视频| 精品一区二区三区在线观看国产| 一本色道综合亚洲| 久久女同性恋中文字幕| 午夜精品久久久久久久99樱桃| 成人精品在线视频观看| 日韩色在线观看| 亚洲成人av中文| 色婷婷国产精品| 亚洲色图制服诱惑 | 久久久精品国产免大香伊| 天堂影院一区二区| 色偷偷久久一区二区三区| 国产欧美日韩综合| 狠狠色狠狠色综合系列| 欧美一区二区三区四区在线观看| 一区二区三区av电影| 97se亚洲国产综合自在线| 国产女同互慰高潮91漫画| 极品美女销魂一区二区三区免费| 91精品国产乱| 亚洲国产三级在线| 欧美亚洲动漫另类| 亚洲成国产人片在线观看| 欧美午夜精品久久久久久孕妇 | 国产三级久久久| 国产精品一二三| 欧美韩日一区二区三区| 国产aⅴ综合色| 国产精品久久久久久久午夜片| 成人一级片在线观看| 国产精品对白交换视频|