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

📄 videodev.h

📁 该代码是天敏电视卡天敏大师4的核心芯片在linux下面的驱动
💻 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>#endifstruct 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		3extern 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 voidvideo_device_create_file(struct video_device *vfd,			 struct class_device_attribute *attr){	class_device_create_file(&vfd->class_dev, attr);}static inline voidvideo_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;        __u16	balance;	/* Stereo balance */

⌨️ 快捷键说明

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