diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/Makefile.am opencv-0.9.7/otherlibs/highgui/Makefile.am *** opencv-0.9.7+pwc0.3/otherlibs/highgui/Makefile.am 2005-12-01 04:39:24.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/Makefile.am 2005-07-25 21:25:44.000000000 +0900 *************** *** 4,10 **** cvcap_v4l.cpp grfmt_base.cpp grfmt_bmp.cpp grfmt_jpeg.cpp \ grfmt_png.cpp grfmt_pxm.cpp grfmt_sunras.cpp grfmt_tiff.cpp \ image.cpp loadsave.cpp precomp.cpp utils.cpp window_lnx.cpp \ ! window_w32.cpp cvcap_pwc.cpp EXTRA_DIST = highgui.dsp highgui.vcproj highgui.rc resource.h --- 4,10 ---- cvcap_v4l.cpp grfmt_base.cpp grfmt_bmp.cpp grfmt_jpeg.cpp \ grfmt_png.cpp grfmt_pxm.cpp grfmt_sunras.cpp grfmt_tiff.cpp \ image.cpp loadsave.cpp precomp.cpp utils.cpp window_lnx.cpp \ ! window_w32.cpp EXTRA_DIST = highgui.dsp highgui.vcproj highgui.rc resource.h *************** *** 12,18 **** libhighguiinclude_HEADERS = highgui.h ! noinst_HEADERS = _highgui.h bitstrm.h grfmt_base.h grfmt_bmp.h grfmt_jpeg.h grfmt_pxm.h grfmt_png.h grfmt_sunras.h grfmt_tiff.h grfmts.h utils.h cvcap_v4l.h libhighgui_la_LDFLAGS = -no-undefined -version-info @LT_VERSION@ @LDFLAGS@ --- 12,18 ---- libhighguiinclude_HEADERS = highgui.h ! noinst_HEADERS = _highgui.h bitstrm.h grfmt_base.h grfmt_bmp.h grfmt_jpeg.h grfmt_pxm.h grfmt_png.h grfmt_sunras.h grfmt_tiff.h grfmts.h utils.h libhighgui_la_LDFLAGS = -no-undefined -version-info @LT_VERSION@ @LDFLAGS@ diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/Makefile.in opencv-0.9.7/otherlibs/highgui/Makefile.in *** opencv-0.9.7+pwc0.3/otherlibs/highgui/Makefile.in 2005-12-01 04:39:24.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/Makefile.in 2005-07-26 22:57:05.000000000 +0900 *************** *** 68,74 **** cvcap_v4l.lo grfmt_base.lo grfmt_bmp.lo grfmt_jpeg.lo \ grfmt_png.lo grfmt_pxm.lo grfmt_sunras.lo grfmt_tiff.lo \ image.lo loadsave.lo precomp.lo utils.lo window_lnx.lo \ ! window_w32.lo cvcap_pwc.lo libhighgui_la_OBJECTS = $(am_libhighgui_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp --- 68,74 ---- cvcap_v4l.lo grfmt_base.lo grfmt_bmp.lo grfmt_jpeg.lo \ grfmt_png.lo grfmt_pxm.lo grfmt_sunras.lo grfmt_tiff.lo \ image.lo loadsave.lo precomp.lo utils.lo window_lnx.lo \ ! window_w32.lo libhighgui_la_OBJECTS = $(am_libhighgui_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp *************** *** 229,240 **** cvcap_v4l.cpp grfmt_base.cpp grfmt_bmp.cpp grfmt_jpeg.cpp \ grfmt_png.cpp grfmt_pxm.cpp grfmt_sunras.cpp grfmt_tiff.cpp \ image.cpp loadsave.cpp precomp.cpp utils.cpp window_lnx.cpp \ ! window_w32.cpp cvcap_pwc.cpp EXTRA_DIST = highgui.dsp highgui.vcproj highgui.rc resource.h libhighguiincludedir = $(includedir)/opencv libhighguiinclude_HEADERS = highgui.h ! noinst_HEADERS = _highgui.h bitstrm.h grfmt_base.h grfmt_bmp.h grfmt_jpeg.h grfmt_pxm.h grfmt_png.h grfmt_sunras.h grfmt_tiff.h grfmts.h utils.h cvcap_v4l.h libhighgui_la_LDFLAGS = -no-undefined -version-info @LT_VERSION@ @LDFLAGS@ libhighgui_la_LIBADD = $(top_builddir)/cv/src/libcv.la @GTK_LIBS@ @IMAGELIBS@ @FFMPEGLIBS@ @IEEE1394LIBS@ INCLUDES = -I. -I$(top_srcdir)/cxcore/include -I$(top_srcdir)/cv/include @GTK_CFLAGS@ --- 229,240 ---- cvcap_v4l.cpp grfmt_base.cpp grfmt_bmp.cpp grfmt_jpeg.cpp \ grfmt_png.cpp grfmt_pxm.cpp grfmt_sunras.cpp grfmt_tiff.cpp \ image.cpp loadsave.cpp precomp.cpp utils.cpp window_lnx.cpp \ ! window_w32.cpp EXTRA_DIST = highgui.dsp highgui.vcproj highgui.rc resource.h libhighguiincludedir = $(includedir)/opencv libhighguiinclude_HEADERS = highgui.h ! noinst_HEADERS = _highgui.h bitstrm.h grfmt_base.h grfmt_bmp.h grfmt_jpeg.h grfmt_pxm.h grfmt_png.h grfmt_sunras.h grfmt_tiff.h grfmts.h utils.h libhighgui_la_LDFLAGS = -no-undefined -version-info @LT_VERSION@ @LDFLAGS@ libhighgui_la_LIBADD = $(top_builddir)/cv/src/libcv.la @GTK_LIBS@ @IMAGELIBS@ @FFMPEGLIBS@ @IEEE1394LIBS@ INCLUDES = -I. -I$(top_srcdir)/cxcore/include -I$(top_srcdir)/cv/include @GTK_CFLAGS@ *************** *** 311,317 **** @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvcap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvcap_dc1394.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvcap_v4l.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvcap_pwc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grfmt_base.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grfmt_bmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grfmt_jpeg.Plo@am__quote@ --- 311,316 ---- diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/cvcap_pwc.cpp opencv-0.9.7/otherlibs/highgui/cvcap_pwc.cpp *** opencv-0.9.7+pwc0.3/otherlibs/highgui/cvcap_pwc.cpp 2005-12-02 13:38:47.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/cvcap_pwc.cpp 1970-01-01 09:00:00.000000000 +0900 *************** *** 1,152 **** - /* This is the contributed code: - - File :cvcap_pwc.cpp - Original Version : 2005-11-25 Osamu Matsumoto osamu-m@is.naist.jp - Description : - - */ - - /*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*/ - - #include "_highgui.h" - #include - #include - #include - #include - #include - #include - #include - - #include - #include "cvcap_v4l.h" - #include "pwc-ioctl.h" - - #define IN_RANGE(x,max,min) ((max) >= (x) && (x) >= (min)) - - static int icvGetPanTilt(CvCaptureCAM_V4L *capture,CvPanTilt *dst) - { - struct pwc_mpt_angles angles; - - if ( ioctl(capture->deviceHandle, - VIDIOCPWCMPTGANGLE, &angles)){ - perror("HIGHGUI ERROR: PWC: while ioctl(VIDIOCPWCMPTGANGLE)\n"); - return -1; - } - dst->pan = angles.pan; - dst->tilt = angles.tilt; - - return 0; - } - - static int icvSetPanTilt(CvCaptureCAM_V4L *capture,int abs,CvPanTilt d){ - struct pwc_mpt_angles angles; - - angles.absolute = abs; - angles.pan = d.pan; - angles.tilt= d.tilt; - - if ( ioctl(capture->deviceHandle, - VIDIOCPWCMPTSANGLE, &angles)){ - perror("HIGHGUI ERROR: PWC: while ioctl(VIDIOPWCMPTSANGLE)\n"); - return -1; - } - return 0; - } - - CV_IMPL int cvRelativePanTilt(CvCapture *capture,CvPanTilt d, - CvPanTiltRange range){ - CvPanTilt angle; - if(capture && capture->vtable && - (cvGetPanTilt(capture,&angle)==0) && - IN_RANGE(angle.pan + d.pan, range.pan_max,range.pan_min) && - IN_RANGE(angle.tilt + d.tilt, range.tilt_max, range.tilt_min)) - return icvSetPanTilt( (CvCaptureCAM_V4L *)capture ,0 ,d); - - return -1; - } - - CV_IMPL int cvAbsolutePanTilt(CvCapture *capture ,CvPanTilt p,CvPanTiltRange range){ - if(capture && capture->vtable && - IN_RANGE(p.pan, range.pan_max, range.pan_min) && - IN_RANGE(p.tilt, range.tilt_max , range.tilt_min)) - return icvSetPanTilt( (CvCaptureCAM_V4L *)capture, 1 , p); - - return -1; - } - - CV_IMPL int cvGetPanTilt(CvCapture *capture,CvPanTilt *p){ - if(capture && capture->vtable) - return icvGetPanTilt( (CvCaptureCAM_V4L *)capture ,p ); - return -1; - } - - CV_IMPL CvPanTiltRange cvRangePanTilt(CvCapture *capture) - { - struct pwc_mpt_range range; - CvPanTiltRange p; - - if ( ioctl(((CvCaptureCAM_V4L *)capture)->deviceHandle, - VIDIOCPWCMPTGRANGE, &range)){ - fprintf(stderr,"HIGHGUI ERROR: PWC: while ioctl(PWCMPTGRANGE)\n"); - return p; - } - - p.pan_min = range.pan_min; - p.pan_max = range.pan_max; - p.tilt_min = range.tilt_min; - p.tilt_max = range.tilt_max; - - return p; - } - CV_IMPL void cvSetLED(CvCapture *capture,int on_time,int off_time){ - struct pwc_leds LED; - - LED.led_on = on_time; - LED.led_off = off_time; - if ( ioctl(((CvCaptureCAM_V4L *)capture)->deviceHandle, - VIDIOCPWCSLED, &LED)){ - fprintf(stderr,"HIGHGUI ERROR: PWC: while ioctl(VIDIOCPWCSLED)\n"); - } - } - - - --- 0 ---- diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/cvcap_v4l.cpp opencv-0.9.7/otherlibs/highgui/cvcap_v4l.cpp *** opencv-0.9.7+pwc0.3/otherlibs/highgui/cvcap_v4l.cpp 2005-12-02 13:38:47.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/cvcap_v4l.cpp 2005-07-21 17:37:17.000000000 +0900 *************** *** 143,149 **** #include #include ! #include "cvcap_v4l.h" static void icvCloseCAM_V4L( CvCaptureCAM_V4L* capture ); --- 143,174 ---- #include #include ! /* Defaults - If your board can do better, set it here. Set for the most common type inputs. */ ! #define DEFAULT_V4L_WIDTH 640 ! #define DEFAULT_V4L_HEIGHT 480 ! ! #define CHANNEL_NUMBER 1 ! #define MAX_CAMERAS 8 ! ! #define MAX_DEVICE_DRIVER_NAME 80 ! ! /* Device Capture Objects */ ! ! typedef struct CvCaptureCAM_V4L ! { ! CvCaptureVTable* vtable; ! int deviceHandle; ! int bufferIndex; ! int FirstCapture; ! struct video_capability capability; ! struct video_window captureWindow; ! struct video_picture imageProperties; ! struct video_mbuf memoryBuffer; ! struct video_mmap *mmaps; ! char *memoryMap; ! IplImage frame; ! } ! CvCaptureCAM_V4L; static void icvCloseCAM_V4L( CvCaptureCAM_V4L* capture ); diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/cvcap_v4l.h opencv-0.9.7/otherlibs/highgui/cvcap_v4l.h *** opencv-0.9.7+pwc0.3/otherlibs/highgui/cvcap_v4l.h 2005-12-02 13:38:59.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/cvcap_v4l.h 1970-01-01 09:00:00.000000000 +0900 *************** *** 1,84 **** - /* - File : cvcap_v4l.h - Original : opencv-0.9.7/otherlibs/cvcap_v4l.cpp - Modifiers : Osamu Matsumoto - Modifiers Comments: - I'm appending pan-tilt camera control functions to opencv. - I want to use deviceHandle in CvCaptureCAM_V4L for sending ioctl to - device. - - */ - /*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 CVCAP_V4L_H - #define CVCAP_V4L_H - - - /* Defaults - If your board can do better, set it here. Set for the most common type inputs. */ - #define DEFAULT_V4L_WIDTH 640 - #define DEFAULT_V4L_HEIGHT 480 - - #define CHANNEL_NUMBER 0 - #define MAX_CAMERAS 8 - - #define MAX_DEVICE_DRIVER_NAME 80 - - /* Device Capture Objects */ - - typedef struct CvCaptureCAM_V4L - { - CvCaptureVTable* vtable; - int deviceHandle; - int bufferIndex; - int FirstCapture; - struct video_capability capability; - struct video_window captureWindow; - struct video_picture imageProperties; - struct video_mbuf memoryBuffer; - struct video_mmap *mmaps; - char *memoryMap; - IplImage frame; - } - CvCaptureCAM_V4L; - - - #endif --- 0 ---- diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/highgui.h opencv-0.9.7/otherlibs/highgui/highgui.h *** opencv-0.9.7+pwc0.3/otherlibs/highgui/highgui.h 2005-12-02 13:38:59.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/highgui.h 2005-07-06 00:52:50.000000000 +0900 *************** *** 444,479 **** #endif /* __cplusplus */ - - /**************************************************************** - Specifics for PWC Driver - *****************************************************************/ - - struct CvPanTilt{ - int pan,tilt; - }; - - struct CvPanTiltRange{ - int pan_max,pan_min; - int tilt_max,tilt_min; - }; - - typedef struct CvPanTilt CvPanTilt; - typedef struct CvPanTiltRange CvPanTiltRange; - - CV_INLINE CvPanTilt cvPanTilt(int pan,int tilt){ - CvPanTilt s; - s.pan = pan; - s.tilt = tilt; - return s; - } - - CVAPI(int) cvRelativePanTilt(CvCapture *capture,CvPanTilt angle, - CvPanTiltRange range); - CVAPI(int) cvAbsolutePanTilt(CvCapture *capture,CvPanTilt angle, - CvPanTiltRange range); - CVAPI(int) cvGetPanTilt(CvCapture *capture,CvPanTilt *angle); - CVAPI(CvPanTiltRange) cvRangePanTilt(CvCapture *capture); - CVAPI(void) cvSetLED(CvCapture *capture,int on_time,int off_time); - #endif /* _HIGH_GUI_ */ --- 444,447 ---- diff -rcN opencv-0.9.7+pwc0.3/otherlibs/highgui/pwc-ioctl.h opencv-0.9.7/otherlibs/highgui/pwc-ioctl.h *** opencv-0.9.7+pwc0.3/otherlibs/highgui/pwc-ioctl.h 2005-12-02 13:38:59.000000000 +0900 --- opencv-0.9.7/otherlibs/highgui/pwc-ioctl.h 1970-01-01 09:00:00.000000000 +0900 *************** *** 1,307 **** - #ifndef PWC_IOCTL_H - #define PWC_IOCTL_H - - /* (C) 2001-2004 Nemosoft Unv. - (C) 2004 Luc Saillard (luc@saillard.org) - - NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx - driver and thus may have bugs that are not present in the original version. - Please send bug reports and support requests to . - The decompression routines have been implemented by reverse-engineering the - Nemosoft binary pwcx module. Caveat emptor. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - /* This is pwc-ioctl.h belonging to PWC 8.12.1 - It contains structures and defines to communicate from user space - directly to the driver. - */ - - /* - Changes - 2001/08/03 Alvarado Added ioctl constants to access methods for - changing white balance and red/blue gains - 2002/12/15 G. H. Fernandez-Toribio VIDIOCGREALSIZE - 2003/12/13 Nemosft Unv. Some modifications to make interfacing to - PWCX easier - */ - - /* These are private ioctl() commands, specific for the Philips webcams. - They contain functions not found in other webcams, and settings not - specified in the Video4Linux API. - - The #define names are built up like follows: - VIDIOC VIDeo IOCtl prefix - PWC Philps WebCam - G optional: Get - S optional: Set - ... the function - */ - - - /* Enumeration of image sizes */ - #define PSZ_SQCIF 0x00 - #define PSZ_QSIF 0x01 - #define PSZ_QCIF 0x02 - #define PSZ_SIF 0x03 - #define PSZ_CIF 0x04 - #define PSZ_VGA 0x05 - #define PSZ_MAX 6 - - - /* The frame rate is encoded in the video_window.flags parameter using - the upper 16 bits, since some flags are defined nowadays. The following - defines provide a mask and shift to filter out this value. - This value can also be passing using the private flag when using v4l2 and - VIDIOC_S_FMT ioctl. - - In 'Snapshot' mode the camera freezes its automatic exposure and colour - balance controls. - */ - #define PWC_FPS_SHIFT 16 - #define PWC_FPS_MASK 0x00FF0000 - #define PWC_FPS_FRMASK 0x003F0000 - #define PWC_FPS_SNAPSHOT 0x00400000 - #define PWC_QLT_MASK 0x03000000 - #define PWC_QLT_SHIFT 24 - - - /* structure for transfering x & y coordinates */ - struct pwc_coord - { - int x, y; /* guess what */ - int size; /* size, or offset */ - }; - - - /* Used with VIDIOCPWCPROBE */ - struct pwc_probe - { - char name[32]; - int type; - }; - - struct pwc_serial - { - char serial[30]; /* String with serial number. Contains terminating 0 */ - }; - - /* pwc_whitebalance.mode values */ - #define PWC_WB_INDOOR 0 - #define PWC_WB_OUTDOOR 1 - #define PWC_WB_FL 2 - #define PWC_WB_MANUAL 3 - #define PWC_WB_AUTO 4 - - /* Used with VIDIOCPWC[SG]AWB (Auto White Balance). - Set mode to one of the PWC_WB_* values above. - *red and *blue are the respective gains of these colour components inside - the camera; range 0..65535 - When 'mode' == PWC_WB_MANUAL, 'manual_red' and 'manual_blue' are set or read; - otherwise undefined. - 'read_red' and 'read_blue' are read-only. - */ - struct pwc_whitebalance - { - int mode; - int manual_red, manual_blue; /* R/W */ - int read_red, read_blue; /* R/O */ - }; - - /* - 'control_speed' and 'control_delay' are used in automatic whitebalance mode, - and tell the camera how fast it should react to changes in lighting, and - with how much delay. Valid values are 0..65535. - */ - struct pwc_wb_speed - { - int control_speed; - int control_delay; - - }; - - /* Used with VIDIOCPWC[SG]LED */ - struct pwc_leds - { - int led_on; /* Led on-time; range = 0..25000 */ - int led_off; /* Led off-time; range = 0..25000 */ - }; - - /* Image size (used with GREALSIZE) */ - struct pwc_imagesize - { - int width; - int height; - }; - - /* Defines and structures for Motorized Pan & Tilt */ - #define PWC_MPT_PAN 0x01 - #define PWC_MPT_TILT 0x02 - #define PWC_MPT_TIMEOUT 0x04 /* for status */ - - /* Set angles; when absolute != 0, the angle is absolute and the - driver calculates the relative offset for you. This can only - be used with VIDIOCPWCSANGLE; VIDIOCPWCGANGLE always returns - absolute angles. - */ - struct pwc_mpt_angles - { - int absolute; /* write-only */ - int pan; /* degrees * 100 */ - int tilt; /* degress * 100 */ - }; - - /* Range of angles of the camera, both horizontally and vertically. - */ - struct pwc_mpt_range - { - int pan_min, pan_max; /* degrees * 100 */ - int tilt_min, tilt_max; - }; - - struct pwc_mpt_status - { - int status; - int time_pan; - int time_tilt; - }; - - - /* This is used for out-of-kernel decompression. With it, you can get - all the necessary information to initialize and use the decompressor - routines in standalone applications. - */ - struct pwc_video_command - { - int type; /* camera type (645, 675, 730, etc.) */ - int release; /* release number */ - - int size; /* one of PSZ_* */ - int alternate; - int command_len; /* length of USB video command */ - unsigned char command_buf[13]; /* Actual USB video command */ - int bandlength; /* >0 = compressed */ - int frame_size; /* Size of one (un)compressed frame */ - }; - - /* Flags for PWCX subroutines. Not all modules honour all flags. */ - #define PWCX_FLAG_PLANAR 0x0001 - #define PWCX_FLAG_BAYER 0x0008 - - - /* IOCTL definitions */ - - /* Restore user settings */ - #define VIDIOCPWCRUSER _IO('v', 192) - /* Save user settings */ - #define VIDIOCPWCSUSER _IO('v', 193) - /* Restore factory settings */ - #define VIDIOCPWCFACTORY _IO('v', 194) - - /* You can manipulate the compression factor. A compression preference of 0 - means use uncompressed modes when available; 1 is low compression, 2 is - medium and 3 is high compression preferred. Of course, the higher the - compression, the lower the bandwidth used but more chance of artefacts - in the image. The driver automatically chooses a higher compression when - the preferred mode is not available. - */ - /* Set preferred compression quality (0 = uncompressed, 3 = highest compression) */ - #define VIDIOCPWCSCQUAL _IOW('v', 195, int) - /* Get preferred compression quality */ - #define VIDIOCPWCGCQUAL _IOR('v', 195, int) - - - /* Retrieve serial number of camera */ - #define VIDIOCPWCGSERIAL _IOR('v', 198, struct pwc_serial) - - /* This is a probe function; since so many devices are supported, it - becomes difficult to include all the names in programs that want to - check for the enhanced Philips stuff. So in stead, try this PROBE; - it returns a structure with the original name, and the corresponding - Philips type. - To use, fill the structure with zeroes, call PROBE and if that succeeds, - compare the name with that returned from VIDIOCGCAP; they should be the - same. If so, you can be assured it is a Philips (OEM) cam and the type - is valid. - */ - #define VIDIOCPWCPROBE _IOR('v', 199, struct pwc_probe) - - /* Set AGC (Automatic Gain Control); int < 0 = auto, 0..65535 = fixed */ - #define VIDIOCPWCSAGC _IOW('v', 200, int) - /* Get AGC; int < 0 = auto; >= 0 = fixed, range 0..65535 */ - #define VIDIOCPWCGAGC _IOR('v', 200, int) - /* Set shutter speed; int < 0 = auto; >= 0 = fixed, range 0..65535 */ - #define VIDIOCPWCSSHUTTER _IOW('v', 201, int) - - /* Color compensation (Auto White Balance) */ - #define VIDIOCPWCSAWB _IOW('v', 202, struct pwc_whitebalance) - #define VIDIOCPWCGAWB _IOR('v', 202, struct pwc_whitebalance) - - /* Auto WB speed */ - #define VIDIOCPWCSAWBSPEED _IOW('v', 203, struct pwc_wb_speed) - #define VIDIOCPWCGAWBSPEED _IOR('v', 203, struct pwc_wb_speed) - - /* LEDs on/off/blink; int range 0..65535 */ - #define VIDIOCPWCSLED _IOW('v', 205, struct pwc_leds) - #define VIDIOCPWCGLED _IOR('v', 205, struct pwc_leds) - - /* Contour (sharpness); int < 0 = auto, 0..65536 = fixed */ - #define VIDIOCPWCSCONTOUR _IOW('v', 206, int) - #define VIDIOCPWCGCONTOUR _IOR('v', 206, int) - - /* Backlight compensation; 0 = off, otherwise on */ - #define VIDIOCPWCSBACKLIGHT _IOW('v', 207, int) - #define VIDIOCPWCGBACKLIGHT _IOR('v', 207, int) - - /* Flickerless mode; = 0 off, otherwise on */ - #define VIDIOCPWCSFLICKER _IOW('v', 208, int) - #define VIDIOCPWCGFLICKER _IOR('v', 208, int) - - /* Dynamic noise reduction; 0 off, 3 = high noise reduction */ - #define VIDIOCPWCSDYNNOISE _IOW('v', 209, int) - #define VIDIOCPWCGDYNNOISE _IOR('v', 209, int) - - /* Real image size as used by the camera; tells you whether or not there's a gray border around the image */ - #define VIDIOCPWCGREALSIZE _IOR('v', 210, struct pwc_imagesize) - - /* Motorized pan & tilt functions */ - #define VIDIOCPWCMPTRESET _IOW('v', 211, int) - #define VIDIOCPWCMPTGRANGE _IOR('v', 211, struct pwc_mpt_range) - #define VIDIOCPWCMPTSANGLE _IOW('v', 212, struct pwc_mpt_angles) - #define VIDIOCPWCMPTGANGLE _IOR('v', 212, struct pwc_mpt_angles) - #define VIDIOCPWCMPTSTATUS _IOR('v', 213, struct pwc_mpt_status) - - /* Get the USB set-video command; needed for initializing libpwcx */ - #define VIDIOCPWCGVIDCMD _IOR('v', 215, struct pwc_video_command) - struct pwc_table_init_buffer { - int len; - char *buffer; - - }; - #define VIDIOCPWCGVIDTABLE _IOR('v', 216, struct pwc_table_init_buffer) - - /* - * This is private command used when communicating with v4l2. - * In the future all private ioctl will be remove/replace to - * use interface offer by v4l2. - */ - - #define V4L2_CID_PRIVATE_SAVE_USER (V4L2_CID_PRIVATE_BASE + 0) - #define V4L2_CID_PRIVATE_RESTORE_USER (V4L2_CID_PRIVATE_BASE + 1) - #define V4L2_CID_PRIVATE_RESTORE_FACTORY (V4L2_CID_PRIVATE_BASE + 2) - - - #endif --- 0 ----