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

📄 videodev.h

📁 guide and some example with visualC++
💻 H
字号:
/*M///////////////////////////////////////////////////////////////////////////////////////////  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.////  By downloading, copying, installing or using the software you agree to this license.//  If you do not agree to this license, do not download, install,//  copy or use the software.//////                        Intel License Agreement//                For Open Source Computer Vision Library//// Copyright (C) 2000, Intel Corporation, all rights reserved.// Third party copyrights are property of their respective owners.//// Redistribution and use in source and binary forms, with or without modification,// are permitted provided that the following conditions are met:////   * Redistribution's of source code must retain the above copyright notice,//     this list of conditions and the following disclaimer.////   * Redistribution's in binary form must reproduce the above copyright notice,//     this list of conditions and the following disclaimer in the documentation//     and/or other materials provided with the distribution.////   * The name of Intel Corporation may not be used to endorse or promote products//     derived from this software without specific prior written permission.//// This software is provided by the copyright holders and contributors "as is" and// any express or implied warranties, including, but not limited to, the implied// warranties of merchantability and fitness for a particular purpose are disclaimed.// In no event shall the Intel Corporation or contributors be liable for any direct,// indirect, incidental, special, exemplary, or consequential damages// (including, but not limited to, procurement of substitute goods or services;// loss of use, data, or profits; or business interruption) however caused// and on any theory of liability, whether in contract, strict liability,// or tort (including negligence or otherwise) arising in any way out of// the use of this software, even if advised of the possibility of such damage.////M*/#ifndef __LINUX_VIDEODEV_H#define __LINUX_VIDEODEV_H#ifdef __cplusplusextern "C" {#endif#include <linux/types.h>#include <linux/version.h>#ifdef __KERNEL__#if LINUX_VERSION_CODE >= 0x020100#include <linux/poll.h>#endifstruct video_device{    char name[32];    int type;    int hardware;    int (*open)(struct video_device *, int mode);    void (*close)(struct video_device *);    long (*read)(struct video_device *, char *, unsigned long, int noblock);    /* Do we need a write method ? */    long (*write)(struct video_device *, const char *, unsigned long, int noblock);#if LINUX_VERSION_CODE >= 0x020100    unsigned int (*poll)(struct video_device *, struct file *, poll_table *);#endif    int (*ioctl)(struct video_device *, unsigned int , void *);    int (*mmap)(struct video_device *, const char *, unsigned long);    int (*initialize)(struct video_device *);       void *priv;     /* Used to be 'private' but that upsets C++ */    int busy;    int minor;};extern int videodev_init(void);#define VIDEO_MAJOR 81extern int video_register_device(struct video_device *, int type);#define VFL_TYPE_GRABBER    0#define VFL_TYPE_VBI        1#define VFL_TYPE_RADIO      2#define VFL_TYPE_VTX        3extern void video_unregister_device(struct video_device *);#endif#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 */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];    __u32 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      char    name[16];#define VIDEO_SOUND_MONO    1#define VIDEO_SOUND_STEREO  2#define VIDEO_SOUND_LANG1   4#define VIDEO_SOUND_LANG2   8    __u16   umode;    __u16   balance;    /* Stereo balance */    __u16   step;       /* Step actual volume uses */};struct video_clip{    __s32   x,y;    __s32   width, height;    struct  video_clip *next;   /* For user use/driver use only */};struct video_window{    __u32   x,y;            /* Position of window */    __u32   width,height;       /* Its size */    __u32   chromakey;    __u32   flags;    struct  video_clip *clips;  /* Set only */    int clipcount;#define VIDEO_WINDOW_INTERLACE  1#define VIDEO_CLIP_BITMAP   -1/* bitmap is 1024x625, a '1' bit represents a clipped pixel */#define VIDEO_CLIPMAP_SIZE  (128 * 625)};struct video_capture{    __u32   x,y;            /* Offsets into image */    __u32   width, height;      /* Area to capture */    __u16   decimation;     /* Decimation divder */    __u16   flags;          /* Flags for capture */#define VIDEO_CAPTURE_ODD       0   /* Temporal */#define VIDEO_CAPTURE_EVEN      1};struct video_buffer{    void    *base;    int height,width;    int depth;    int bytesperline;};struct video_mmap{    unsigned    int frame;      /* Frame (0 - n) for double buffer */    int     height,width;    unsigned    int format;     /* should be VIDEO_PALETTE_* */};struct video_key{    __u8    key[8];    __u32   flags;};#define VIDEO_MAX_FRAME     32struct video_mbuf{    int size;       /* Total memory to map */    int frames;     /* Frames */    int offsets[VIDEO_MAX_FRAME];};    #define     VIDEO_NO_UNIT   (-1)    struct video_unit{    int     video;      /* Video minor */    int vbi;        /* VBI minor */    int radio;      /* Radio minor */    int audio;      /* Audio minor */    int teletext;   /* Teletext minor */};#define VIDIOCGCAP      _IOR('v',1,struct video_capability) /* Get capabilities */#define VIDIOCGCHAN     _IOWR('v',2,struct video_channel)   /* Get channel info (sources) */#define VIDIOCSCHAN     _IOW('v',3,struct video_channel)    /* Set channel  */#define VIDIOCGTUNER        _IOWR('v',4,struct video_tuner)     /* Get tuner abilities */#define VIDIOCSTUNER        _IOW('v',5,struct video_tuner)      /* Tune the tuner for the current channel */#define VIDIOCGPICT     _IOR('v',6,struct video_picture)    /* Get picture properties */#define VIDIOCSPICT     _IOW('v',7,struct video_picture)    /* Set picture properties */#define VIDIOCCAPTURE       _IOW('v',8,int)             /* Start, end capture */#define VIDIOCGWIN      _IOR('v',9, struct video_window)    /* Get the video overlay window */#define VIDIOCSWIN      _IOW('v',10, struct video_window)   /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */#define VIDIOCGFBUF     _IOR('v',11, struct video_buffer)   /* Get frame buffer */#define VIDIOCSFBUF     _IOW('v',12, struct video_buffer)   /* Set frame buffer - root only */#define VIDIOCKEY       _IOR('v',13, struct video_key)      /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */#define VIDIOCGFREQ     _IOR('v',14, unsigned long)     /* Set tuner */#define VIDIOCSFREQ     _IOW('v',15, unsigned long)     /* Set tuner */#define VIDIOCGAUDIO        _IOR('v',16, struct video_audio)    /* Get audio info */#define VIDIOCSAUDIO        _IOW('v',17, struct video_audio)    /* Audio source, mute etc */#define VIDIOCSYNC      _IOW('v',18, int)           /* Sync with mmap grabbing */#define VIDIOCMCAPTURE      _IOW('v',19, struct video_mmap)     /* Grab frames */#define VIDIOCGMBUF     _IOR('v', 20, struct video_mbuf)    /* Memory map buffer info */#define VIDIOCGUNIT     _IOR('v', 21, struct video_unit)    /* Get attached units */#define VIDIOCGCAPTURE      _IOR('v',22, struct video_capture)  /* Get frame buffer */#define VIDIOCSCAPTURE      _IOW('v',23, struct video_capture)  /* Set frame buffer - root only */#define BASE_VIDIOCPRIVATE  192     /* 192-255 are private */#define VID_HARDWARE_BT848  1#define VID_HARDWARE_QCAM_BW    2#define VID_HARDWARE_PMS    3#define VID_HARDWARE_QCAM_C 4#define VID_HARDWARE_PSEUDO 5#define VID_HARDWARE_SAA5249    6#define VID_HARDWARE_AZTECH 7#define VID_HARDWARE_SF16MI 8#define VID_HARDWARE_RTRACK 9#define VID_HARDWARE_ZOLTRIX    10#define VID_HARDWARE_SAA7146    11#define VID_HARDWARE_VIDEUM 12  /* Reserved for Winnov videum */#define VID_HARDWARE_RTRACK2    13#define VID_HARDWARE_PERMEDIA2  14  /* Reserved for Permedia2 */#define VID_HARDWARE_RIVA128    15  /* Reserved for RIVA 128 */#define VID_HARDWARE_PLANB  16  /* PowerMac motherboard video-in */#define VID_HARDWARE_BROADWAY   17  /* Broadway project */#define VID_HARDWARE_GEMTEK 18#define VID_HARDWARE_TYPHOON    19#define VID_HARDWARE_VINO   20  /* Reserved for SGI Indy Vino */#define VID_HARDWARE_CADET  21  /* Cadet radio */#define VID_HARDWARE_TRUST  22  /* Trust FM Radio *//* *  Initialiser list */ struct video_init{    char *name;    int (*init)(struct video_init *);};#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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