svn commit: r200107 - in vendor/v4l: . dist

Alexander Leidinger netchild at FreeBSD.org
Fri Dec 4 20:42:09 UTC 2009


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 <alan at redhat.com>) gave his permission to use it (note, X.org
  has a copy of the header too):
  ---snip---
  > Alan Cox <alan at redhat.com> 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 <alan at redhat.com> 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 <alan at redhat.com>
+Precedence: junk
+Subject: Re: Implementing V4L(2) on BSD
+Cc: Alan Cox <alan at redhat.com>, video4linux-list at redhat.com
+Date: Fri, 15 Apr 2005 03:57:02 -0400
+To: Julian Elischer <julian at vicor.com>
+References: <425F025E.4010001 at vicor.com>
+In-Reply-To: <425F025E.4010001 at vicor.com>
+Reply-To: Linux and Kernel Video <video4linux-list at redhat.com>
+Message-ID: <20050415075702.GA30470 at 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: <bdirks at pacbell.net>
+X-Original-To: julian at vicor.com
+Delivered-To: julian at vicor.com
+Received: from localhost (localhost [127.0.0.1])
+         by postoffice.vicor-nb.com (Postfix) with ESMTP id 662264CE87D
+         for <julian at vicor.com>; 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 <julian at vicor.com>;
+  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 <julian at vicor.com>; 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 <julian at vicor.com>; Wed, 13 Apr 2005 00:02:41 -0400
+Message-ID: <425C99F4.70507 at pacbell.net>
+Date: Tue, 12 Apr 2005 21:03:00 -0700
+From: Bill Dirks <bdirks at pacbell.net>
+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 <julian at vicor.com>
+Subject: Re: V4L2
+References: <4254403F.7080300 at vicor.com> 
+<42588158.8040406 at pacbell.net> <425C170
+2.1060104 at vicor.com>
+In-Reply-To: <425C1702.1060104 at 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 <linux/types.h>
+
+#define HAVE_V4L1 1
+
+#include <linux/videodev2.h>
+
+#ifdef __KERNEL__
+
+#include <linux/mm.h>
+
+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:
+ */


More information about the svn-src-all mailing list