From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 4 20:42:09 2009 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62A2B106566C; Fri, 4 Dec 2009 20:42:09 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FED08FC0C; Fri, 4 Dec 2009 20:42:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nB4Kg9dS064973; Fri, 4 Dec 2009 20:42:09 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nB4Kg9N9064970; Fri, 4 Dec 2009 20:42:09 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <200912042042.nB4Kg9N9064970@svn.freebsd.org> From: Alexander Leidinger Date: Fri, 4 Dec 2009 20:42:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r200107 - in vendor/v4l: . dist X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Dec 2009 20:42:09 -0000 Author: netchild Date: Fri Dec 4 20:42:08 2009 New Revision: 200107 URL: http://svn.freebsd.org/changeset/base/200107 Log: Import the interface description of the video for linux (v4l) subsystem. The header is importet from linux 2.6.17. The header does not come with a license, the author (Alan Cox ) gave his permission to use it (note, X.org has a copy of the header too): ---snip--- > Alan Cox said: > > > On Tue, Apr 12, 2005 at 03:13:15PM -0700, Julian Elischer wrote: > > > How does the licensing of the include files stand? > > Basically you cannot copyright an interface - its a fact rather > than creative expression normally. > > > > Of course there's always the "type it all in again" approach > > > where we define a functionally equivalent but completely > > > differntly spelled API, > > Wouldn't even need to be differently spelled. > > I'm all for this kind of sharing. > > Alan ---snip--- A more complete mail history is provided in the README file. Approved by: core Thanks to: julian (he also has the OK to use the v4l2 header) Added: vendor/v4l/README (contents, props changed) vendor/v4l/dist/ vendor/v4l/dist/videodev.h (contents, props changed) Added: vendor/v4l/README ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/v4l/README Fri Dec 4 20:42:08 2009 (r200107) @@ -0,0 +1,185 @@ +The video for linux (v4l) interface description (videodev.h) is imported +from linux. The header does not have a license. The author allows the use +of the header, and there is believe that a copy of such an interface +description can not lead to a copyright infringement. The X.org distribution +comes with a copy of videodev.h too. + +Corresponding discussion between julian@ and the authors of v4l and +v4l2 below: +---snip--- +Alan Cox said: + + > On Tue, Apr 12, 2005 at 03:13:15PM -0700, Julian Elischer wrote: + > + > >How does the licensing of the include files stand? + > + > Basically you cannot copyright an interface - its a fact rather + > than creative expression normally. + > + > >Of course there's always the "type it all in again" approach + > >where we define a functionally equivalent but completely + > >differntly spelled API, + > + > Wouldn't even need to be differently spelled. + > + > I'm all for this kind of sharing. + > + > Alan +======================================= + + + +also: +=========== +From: Alan Cox +Precedence: junk +Subject: Re: Implementing V4L(2) on BSD +Cc: Alan Cox , video4linux-list@redhat.com +Date: Fri, 15 Apr 2005 03:57:02 -0400 +To: Julian Elischer +References: <425F025E.4010001@vicor.com> +In-Reply-To: <425F025E.4010001@vicor.com> +Reply-To: Linux and Kernel Video +Message-ID: <20050415075702.GA30470@devserv.devel.redhat.com> +Content-Type: text/plain; charset=us-ascii +MIME-Version: 1.0 +Message: 31 + +On Thu, Apr 14, 2005 at 04:53:02PM -0700, Julian Elischer wrote: + > Anyhow both Alan Cox (who had a big hand in the V4L interface) (see +above) + > and + > Bill Dirks (V4L2) have indicated to me now that they approve + +Xorg btw has a BSD licensed (well X licensed so same thing) copy of the +videodev header I believe. We certainly sorted that out for them +permission +wise too + +Alan + +============ + +AND: + + +Content-Type: message/rfc822; + name="Re: V4L2" +Content-Transfer-Encoding: 7bit +Content-Disposition: inline; + filename="Re: V4L2" + +Return-Path: +X-Original-To: julian@vicor.com +Delivered-To: julian@vicor.com +Received: from localhost (localhost [127.0.0.1]) + by postoffice.vicor-nb.com (Postfix) with ESMTP id 662264CE87D + for ; Tue, 12 Apr 2005 21:02:43 -0700 (PDT) +Received: from postoffice.vicor-nb.com ([127.0.0.1]) + by localhost (postoffice.vicor-nb.com [127.0.0.1]) (amavisd-new, +port 10024) + with ESMTP id 91927-08 for ; + Tue, 12 Apr 2005 21:02:43 -0700 (PDT) +Received: from ylpvm01.prodigy.net (ylpvm01-ext.prodigy.net +[207.115.57.32]) + by postoffice.vicor-nb.com (Postfix) with ESMTP id AF5844CE835 + for ; Tue, 12 Apr 2005 21:02:42 -0700 (PDT) +Received: from [192.168.1.100] +(adsl-63-198-58-131.dsl.snfc21.pacbell.net [63.19 +8.58.131]) + by ylpvm01.prodigy.net (8.12.10 outbound/8.12.10) with ESMTP +id j3D42f4H +014884 + for ; Wed, 13 Apr 2005 00:02:41 -0400 +Message-ID: <425C99F4.70507@pacbell.net> +Date: Tue, 12 Apr 2005 21:03:00 -0700 +From: Bill Dirks +User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) +Gecko/200406 +16 +X-Accept-Language: en-us, en +MIME-Version: 1.0 +To: Julian Elischer +Subject: Re: V4L2 +References: <4254403F.7080300@vicor.com> +<42588158.8040406@pacbell.net> <425C170 +2.1060104@vicor.com> +In-Reply-To: <425C1702.1060104@vicor.com> +Content-Type: text/plain; charset=us-ascii; format=flowed +Content-Transfer-Encoding: 7bit +X-Virus-Scanned: by amavisd-new at mail.test.vicor-nb.com +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on + postoffice.vicor-nb.com +X-Spam-Status: No, hits=-3.0 required=5.0 tests=AWL,BAYES_00,PORN_4 + autolearn=no version=2.63 +X-Status: +X-Keywords: +X-UID: 523 + + +Found this with Google + +http://www.fenwick.com/docstore/publications/IP/IP_Articles/Baystate_Holding.pdf + +I don't think you could be charged with copyright infringement. +Especially since the V4L2 spec is publicly available. Go ahead and copy +the file. As the original author, I have no objection. + +Looking at a current version of the file, it has no copyright notice +anyhow. +http://lxr.linux.no/source/include/linux/videodev2.h + +Bill. + + +Julian Elischer wrote: + + > This is a question specifically for you however. + > + > I am considerring implementing the V4L2 interface for BSD. + > Obviously it would be a compatible reimplementation (as the kernel + > is very different). It would however give correct credit to the + > original API design. + > + > The trouble comes in maintaining the compatibility without breaking + > copyright. (BSD obviously uses the BSD copyright and inclusion of a GPL + > component raises all sorts of problems (at least, in the kernel). + > + > Compatibility can best be maintained by using the same include file + > for defininitions. + > The alternative of "typing it all in in a different order" is stupid + > because + > 1/ It's not really "not copying it" + > 2/ it is hard to pick up fixes. + > + > Unfortunatly, to be compatible however, all those values would need to + > be defined.. + > + > What is the situation with the copyright of the include file? + > + > + > Bill Dirks wrote: + > + >> Others have taken over since I haven't had time for this in a while. + >> It's included in 2.6. See http://linux.bytesex.org/ for the latest + >> stuff including 2.4 patches. + >> + >> Bill. + >> + >> + >> Julian Elischer wrote: + >> + >>> not being a Linux type.. (BSD's my game) + >>> is V4L2 in new linux systems by default or did it deadend? + >>> I notice the web page talks mostly abut 2.4 kernels and doesn't have + >>> much new info. + >>> + >>> regards, + >>> + >>> Julian + >>> + >> + > +---snip--- + Added: vendor/v4l/dist/videodev.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/v4l/dist/videodev.h Fri Dec 4 20:42:08 2009 (r200107) @@ -0,0 +1,372 @@ +#ifndef __LINUX_VIDEODEV_H +#define __LINUX_VIDEODEV_H + +#include + +#define HAVE_V4L1 1 + +#include + +#ifdef __KERNEL__ + +#include + +extern struct video_device* video_devdata(struct file*); + +#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); +} + +#if OBSOLETE_OWNER /* to be removed in 2.6.15 */ +/* 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; +} +#endif + +extern int video_exclusive_open(struct inode *inode, struct file *file); +extern int video_exclusive_release(struct inode *inode, struct file *file); +#endif /* __KERNEL__ */ + +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 */ + __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 __user *clips; /* Set only */ + int clipcount; +#define VIDEO_WINDOW_INTERLACE 1 +#define VIDEO_WINDOW_CHROMAKEY 16 /* Overlay by chromakey */ +#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 divider */ + __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; +}; + +struct 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 */ +}; + +struct vbi_format { + __u32 sampling_rate; /* in Hz */ + __u32 samples_per_line; + __u32 sample_format; /* VIDEO_PALETTE_RAW only (1 byte) */ + __s32 start[2]; /* starting line for each frame */ + __u32 count[2]; /* count of lines for each frame */ + __u32 flags; +#define VBI_UNSYNC 1 /* can distingues between top/bottom field */ +#define VBI_INTERLACED 2 /* lines are interlaced */ +}; + +/* video_info is biased towards hardware mpeg encode/decode */ +/* but it could apply generically to any hardware compressor/decompressor */ +struct video_info +{ + __u32 frame_count; /* frames output since decode/encode began */ + __u32 h_size; /* current unscaled horizontal size */ + __u32 v_size; /* current unscaled veritcal size */ + __u32 smpte_timecode; /* current SMPTE timecode (for current GOP) */ + __u32 picture_type; /* current picture type */ + __u32 temporal_reference; /* current temporal reference */ + __u8 user_data[256]; /* user data last found in compressed stream */ + /* user_data[0] contains user data flags, user_data[1] has count */ +}; + +/* generic structure for setting playback modes */ +struct video_play_mode +{ + int mode; + int p1; + int p2; +}; + +/* for loading microcode / fpga programming */ +struct video_code +{ + char loadwhat[16]; /* name or tag of file being passed */ + int datasize; + __u8 *data; +}; + +#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 subcapture */ +#define VIDIOCSCAPTURE _IOW('v',23, struct video_capture) /* Set subcapture */ +#define VIDIOCSPLAYMODE _IOW('v',24, struct video_play_mode) /* Set output video mode/feature */ +#define VIDIOCSWRITEMODE _IOW('v',25, int) /* Set write mode */ +#define VIDIOCGPLAYINFO _IOR('v',26, struct video_info) /* Get current playback info from hardware */ +#define VIDIOCSMICROCODE _IOW('v',27, struct video_code) /* Load microcode into hardware */ +#define VIDIOCGVBIFMT _IOR('v',28, struct vbi_format) /* Get VBI information */ +#define VIDIOCSVBIFMT _IOW('v',29, struct vbi_format) /* Set VBI information */ + + +#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */ + +/* VIDIOCSWRITEMODE */ +#define VID_WRITE_MPEG_AUD 0 +#define VID_WRITE_MPEG_VID 1 +#define VID_WRITE_OSD 2 +#define VID_WRITE_TTX 3 +#define VID_WRITE_CC 4 +#define VID_WRITE_MJPEG 5 + +/* VIDIOCSPLAYMODE */ +#define VID_PLAY_VID_OUT_MODE 0 + /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */ +#define VID_PLAY_GENLOCK 1 + /* p1: 0 = OFF, 1 = ON */ + /* p2: GENLOCK FINE DELAY value */ +#define VID_PLAY_NORMAL 2 +#define VID_PLAY_PAUSE 3 +#define VID_PLAY_SINGLE_FRAME 4 +#define VID_PLAY_FAST_FORWARD 5 +#define VID_PLAY_SLOW_MOTION 6 +#define VID_PLAY_IMMEDIATE_NORMAL 7 +#define VID_PLAY_SWITCH_CHANNELS 8 +#define VID_PLAY_FREEZE_FRAME 9 +#define VID_PLAY_STILL_MODE 10 +#define VID_PLAY_MASTER_MODE 11 + /* p1: see below */ +#define VID_PLAY_MASTER_NONE 1 +#define VID_PLAY_MASTER_VIDEO 2 +#define VID_PLAY_MASTER_AUDIO 3 +#define VID_PLAY_ACTIVE_SCANLINES 12 + /* p1 = first active; p2 = last active */ +#define VID_PLAY_RESET 13 +#define VID_PLAY_END_MARK 14 + + + +#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 /* SGI Indy Vino */ +#define VID_HARDWARE_CADET 21 /* Cadet radio */ +#define VID_HARDWARE_TRUST 22 /* Trust FM Radio */ +#define VID_HARDWARE_TERRATEC 23 /* TerraTec ActiveRadio */ +#define VID_HARDWARE_CPIA 24 +#define VID_HARDWARE_ZR36120 25 /* Zoran ZR36120/ZR36125 */ +#define VID_HARDWARE_ZR36067 26 /* Zoran ZR36067/36060 */ +#define VID_HARDWARE_OV511 27 +#define VID_HARDWARE_ZR356700 28 /* Zoran 36700 series */ +#define VID_HARDWARE_W9966 29 +#define VID_HARDWARE_SE401 30 /* SE401 USB webcams */ +#define VID_HARDWARE_PWC 31 /* Philips webcams */ +#define VID_HARDWARE_MEYE 32 /* Sony Vaio MotionEye cameras */ +#define VID_HARDWARE_CPIA2 33 +#define VID_HARDWARE_VICAM 34 +#define VID_HARDWARE_SF16FMR2 35 +#define VID_HARDWARE_W9968CF 36 +#define VID_HARDWARE_SAA7114H 37 +#define VID_HARDWARE_SN9C102 38 +#define VID_HARDWARE_ARV 39 +#endif /* __LINUX_VIDEODEV_H */ + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */