DeviceOpts.C

Go to the documentation of this file.
00001 /*!@file Devices/DeviceOpts.C */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file:
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Devices/DeviceOpts.C $
00035 // $Id: DeviceOpts.C 14682 2011-04-05 01:11:05Z farhan $
00036 //
00037 
00038 #ifndef DEVICES_DEVICEOPTS_C_DEFINED
00039 #define DEVICES_DEVICEOPTS_C_DEFINED
00040 
00041 #include "Devices/DeviceOpts.H"
00042 
00043 #include "Component/ModelOptionDef.H"
00044 #include "Image/Dims.H"
00045 #include "Transport/TransportOpts.H"
00046 #include "Video/VideoFormat.H"
00047 
00048 const ModelOptionCateg MOC_AUDIO = {
00049   MOC_SORTPRI_2,   "Audio-Related Options" };
00050 
00051 // Format here is:
00052 //
00053 // { MODOPT_TYPE, "name", &MOC_CATEG, OPTEXP_CORE,
00054 //   "description of what option does",
00055 //   "long option name", 'short option name', "valid values", "default value" }
00056 //
00057 
00058 // alternatively, for MODOPT_ALIAS option types, format is:
00059 //
00060 // { MODOPT_ALIAS, "", &MOC_ALIAS, OPTEXP_CORE,
00061 //   "description of what alias does",
00062 //   "long option name", 'short option name', "", "list of options" }
00063 //
00064 
00065 // NOTE: do not change the default value of any existing option unless
00066 // you really know what you are doing!  Many components will determine
00067 // their default behavior from that default value, so you may break
00068 // lots of executables if you change it.
00069 
00070 // #################### Video framegrabbing options
00071 
00072 const ModelOptionCateg MOC_FRAMEGRAB = {
00073   MOC_SORTPRI_2, "Video FrameGrabber-Related Options" };
00074 
00075 // Used by: FrameGrabberConfigurator
00076 const ModelOptionDef OPT_FrameGrabberType =
00077   { MODOPT_ARG_STRING, "FrameGrabberType", &MOC_FRAMEGRAB, OPTEXP_CORE,
00078     "Framegrabber type name",
00079     "fg-type", '\0', "<None|V4L|V4L2|1394|XC|KINECT>", "None" };
00080 
00081 // Used by: FrameGrabberConfigurator
00082 const ModelOptionDef OPT_DeinterlacerType =
00083   { MODOPT_ARG_STRING, "DeinterlacerType", &MOC_FRAMEGRAB, OPTEXP_CORE,
00084     "Deinterlacer type name",
00085     "deinterlacer", '\0', "<None|Bob>", "None" };
00086 
00087 // Used by: V4Lgrabber/IEEE1394grabber
00088 const ModelOptionDef OPT_FrameGrabberDevice =
00089   { MODOPT_ARG_STRING, "FrameGrabberDevice", &MOC_FRAMEGRAB, OPTEXP_CORE,
00090     "Framegrabber device name",
00091     "framegrabber-dev", '\0', "<file>", "/dev/video0" };
00092 
00093 // Used by: V4Lgrabber/IEEE1394grabber
00094 const ModelOptionDef OPT_FrameGrabberChannel =
00095   { MODOPT_ARG(int), "FrameGrabberChannel", &MOC_FRAMEGRAB, OPTEXP_CORE,
00096     "Framegrabber input channel (typically, 0=TV, 1=Composite)",
00097     "framegrabber-chan", '\0', "<int>", "1" };
00098 
00099 // Used by: V4Lgrabber/IEEE1394grabber
00100 const ModelOptionDef OPT_FrameGrabberSubChan =
00101   { MODOPT_ARG(int), "FrameGrabberSubChan", &MOC_FRAMEGRAB, OPTEXP_CORE,
00102     "Framegrabber input sub-channel",
00103     "framegrabber-subchan", '\0', "<int>", "0" };
00104 
00105 // Used by: V4Lgrabber/IEEE1394grabber
00106 const ModelOptionDef OPT_FrameGrabberDims =
00107   { MODOPT_ARG(Dims), "FrameGrabberDims", &MOC_FRAMEGRAB, OPTEXP_CORE,
00108     "Framegrabber grab image dimensions",
00109     "framegrabber-dims", '\0', "<width>x<height>", "320x240" };
00110 
00111 // Used by: XCgrabber
00112 const ModelOptionDef OPT_FrameGrabberOffset =
00113   { MODOPT_ARG(Dims), "FrameGrabberOffset", &MOC_FRAMEGRAB, OPTEXP_CORE,
00114     "Framegrabber grab image offset (top-left corner) within the device's full "
00115     "frame dims. This is used by XCgrabber to capture a subwindow of the "
00116     "camera's native frames, by specifying a non-zero offset and dims smaller "
00117     "than the camera's native dims.",
00118     "framegrabber-offset", '\0', "<xoff>x<yoff>", "0x0" };
00119 
00120 // Used by: V4Lgrabber/IEEE1394grabber
00121 const ModelOptionDef OPT_FrameGrabberMode =
00122   { MODOPT_ARG(VideoFormat), "FrameGrabberMode", &MOC_FRAMEGRAB, OPTEXP_CORE,
00123     "Framegrabber grab mode",
00124     "framegrabber-mode", '\0', "<GREY|RAW|RGB555|RGB565|RGB24|RGB32|YUV24|YUYV|"
00125     "UYVY|YUV444|YUV422|YUV411|YUV420|YUV410|YUV444P|YUV422P|YUV411P|YUV420P|"
00126     "YUV410P|HM12|MJPEG|BAYER_GB|BAYER_GR|"
00127     "BAYER_RG|BAYER_BG|BAYER_GB12|BAYER_GR12|BAYER_RG12|BAYER_BG12>",
00128     "YUV422" };
00129 
00130 // Used by: V4Lgrabber/IEEE1394grabber
00131 const ModelOptionDef OPT_FrameGrabberByteSwap =
00132   { MODOPT_FLAG, "FrameGrabberByteSwap", &MOC_FRAMEGRAB, OPTEXP_CORE,
00133     "Framegrabber use byte-swapping on grabbed data",
00134     "framegrabber-bswap", '\0', "", "false" };
00135 
00136 // Used by: V4Lgrabber/IEEE1394grabber
00137 const ModelOptionDef OPT_FrameGrabberFPS =
00138   { MODOPT_ARG(float), "FrameGrabberFPS", &MOC_FRAMEGRAB, OPTEXP_CORE,
00139     "Framegrabber grabbing frames per seconds",
00140     "framegrabber-fps", '\0', "<float>", "30.0" };
00141 
00142 // Used by: V4Lgrabber/IEEE1394grabber
00143 const ModelOptionDef OPT_FrameGrabberNbuf =
00144   { MODOPT_ARG(int), "FrameGrabberNbuf", &MOC_FRAMEGRAB, OPTEXP_CORE,
00145     "Framegrabber number fo grab buffers",
00146     "framegrabber-nbuf", '\0', "<int>", "2" };
00147 
00148 // Used by: XC HD Camera
00149 const ModelOptionDef OPT_XCFormatFileName =
00150   { MODOPT_ARG_STRING, "XCGrabberFormatFile", &MOC_FRAMEGRAB, OPTEXP_CORE,
00151     "XC camera configure format file",
00152     "xc-format", '\0', "<file>", ""
00153   };
00154 
00155 const ModelOptionDef OPT_FrameGrabberBrightness =
00156   { MODOPT_ARG(int), "FrameGrabberBrightness", &MOC_FRAMEGRAB, OPTEXP_CORE,
00157     "Brightness of the grabbed picture",
00158     "framegrabber-brightness", '\0', "<int>", "32768" };
00159 
00160 const ModelOptionDef OPT_FrameGrabberColour =
00161   { MODOPT_ARG(int), "FrameGrabberColour", &MOC_FRAMEGRAB, OPTEXP_CORE,
00162     "Brightness of the grabbed picture",
00163     "framegrabber-colour", '\0', "<int>", "32768" };
00164 
00165 const ModelOptionDef OPT_FrameGrabberHue =
00166   { MODOPT_ARG(int), "FrameGrabberHue", &MOC_FRAMEGRAB, OPTEXP_CORE,
00167     "Hue of the grabbed picture",
00168     "framegrabber-hue", '\0', "<int>", "32768" };
00169 
00170 const ModelOptionDef OPT_FrameGrabberSaturation =
00171   { MODOPT_ARG(int), "FrameGrabberSaturation", &MOC_FRAMEGRAB, OPTEXP_CORE,
00172     "Saturation of the grabbed picture",
00173     "framegrabber-saturation", '\0', "<int>", "90" };
00174 
00175 const ModelOptionDef OPT_FrameGrabberContrast =
00176   { MODOPT_ARG(int), "FrameGrabberContrast", &MOC_FRAMEGRAB, OPTEXP_CORE,
00177     "Contrast of the grabbed picture",
00178     "framegrabber-contrast", '\0', "<int>", "32768" };
00179 
00180 const ModelOptionDef OPT_FrameGrabberWhiteness =
00181   { MODOPT_ARG(int), "FrameGrabberWhiteness", &MOC_FRAMEGRAB, OPTEXP_CORE,
00182     "Whiteness of the grabbed picture",
00183     "framegrabber-whiteness", '\0', "<int>", "32768" };
00184 
00185 const ModelOptionDef OPT_FrameGrabberExposure =
00186   { MODOPT_ARG(int), "FrameGrabberExposure", &MOC_FRAMEGRAB, OPTEXP_CORE,
00187     "Exposure of the frame grabber",
00188     "framegrabber-exposure", '\0', "<int>", "511" };
00189 
00190 const ModelOptionDef OPT_FrameGrabberSharpness =
00191   { MODOPT_ARG(int), "FrameGrabberSharpness", &MOC_FRAMEGRAB, OPTEXP_CORE,
00192     "Sharpness of the grabbed picture",
00193     "framegrabber-sharpness", '\0', "<int>", "80" };
00194 
00195 const ModelOptionDef OPT_FrameGrabberWhiteBalBU =
00196   { MODOPT_ARG(int), "FrameGrabberWhiteBalBU", &MOC_FRAMEGRAB, OPTEXP_CORE,
00197     "B/U white balance of the grabbed picture",
00198     "framegrabber-whitebalBU", '\0', "<int>", "95" };
00199 
00200 const ModelOptionDef OPT_FrameGrabberWhiteBalRV =
00201   { MODOPT_ARG(int), "FrameGrabberWhiteBalRV", &MOC_FRAMEGRAB, OPTEXP_CORE,
00202     "R/V white balance of the grabbed picture",
00203     "framegrabber-whitebalRV", '\0', "<int>", "87" };
00204 
00205 const ModelOptionDef OPT_FrameGrabberWhiteBalTargetR =
00206   { MODOPT_ARG(int), "FrameGrabberWhiteBalTargetR", &MOC_FRAMEGRAB, OPTEXP_CORE,
00207     "target R value for white balance of the grabbed picture",
00208     "xcgrabber-whiteTargetR", '\0', "<int>", "87" };
00209 
00210 const ModelOptionDef OPT_FrameGrabberWhiteBalTargetG =
00211   { MODOPT_ARG(int), "FrameGrabberWhiteBalTargetG", &MOC_FRAMEGRAB, OPTEXP_CORE,
00212     "target G value for white balance of the grabbed picture",
00213     "xcgrabber-whiteTargetG", '\0', "<int>", "87" };
00214 
00215 const ModelOptionDef OPT_FrameGrabberWhiteBalTargetB =
00216   { MODOPT_ARG(int), "FrameGrabberWhiteBalTargetB", &MOC_FRAMEGRAB, OPTEXP_CORE,
00217     "target B value for white balance of the grabbed picture",
00218     "xcgrabber-whiteTargetB", '\0', "<int>", "87" };
00219 
00220 const ModelOptionDef OPT_FrameGrabberWhiteBalReferenceR =
00221   { MODOPT_ARG(int), "FrameGrabberWhiteBalReferenceR", &MOC_FRAMEGRAB, OPTEXP_CORE,
00222     "target R value for white balance of the grabbed picture",
00223     "xcgrabber-whiteReferenceR", '\0', "<int>", "87" };
00224 
00225 const ModelOptionDef OPT_FrameGrabberWhiteBalReferenceG =
00226   { MODOPT_ARG(int), "FrameGrabberWhiteBalReferenceG", &MOC_FRAMEGRAB, OPTEXP_CORE,
00227     "target G value for white balance of the grabbed picture",
00228     "xcgrabber-whiteReferenceG", '\0', "<int>", "87" };
00229 
00230 const ModelOptionDef OPT_FrameGrabberWhiteBalReferenceB =
00231   { MODOPT_ARG(int), "FrameGrabberWhiteBalReferenceB", &MOC_FRAMEGRAB, OPTEXP_CORE,
00232     "target B value for white balance of the grabbed picture",
00233     "xcgrabber-whiteReferenceB", '\0', "<int>", "87" };
00234 
00235 const ModelOptionDef OPT_FrameGrabberGamma =
00236   { MODOPT_ARG(int), "FrameGrabberGamma", &MOC_FRAMEGRAB, OPTEXP_CORE,
00237     "Gamma correction of the frame grabber",
00238     "framegrabber-gamma", '\0', "<int>", "1" };
00239 
00240 const ModelOptionDef OPT_XCFrameGrabberGamma =
00241   { MODOPT_ARG(float), "XCFrameGrabberGamma", &MOC_FRAMEGRAB, OPTEXP_CORE,
00242     "Gamma correction of the frame grabber",
00243     "xc-gamma", '\0', "<float>", "1.0" };
00244 
00245 const ModelOptionDef OPT_FrameGrabberShutter =
00246   { MODOPT_ARG(int), "FrameGrabberShutter", &MOC_FRAMEGRAB, OPTEXP_CORE,
00247     "Shutter speed of the frame grabber",
00248     "framegrabber-shutter", '\0', "<int>", "6" };
00249 
00250 const ModelOptionDef OPT_FrameGrabberGain =
00251   { MODOPT_ARG(int), "FrameGrabberGain", &MOC_FRAMEGRAB, OPTEXP_CORE,
00252     "Gain of the frame grabber",
00253     "framegrabber-gain", '\0', "<int>", "87" };
00254 
00255 const ModelOptionDef OPT_FrameGrabberStreaming =
00256   { MODOPT_FLAG, "FrameGrabberStreaming", &MOC_FRAMEGRAB, OPTEXP_CORE,
00257     "Turn streaming mode on/off for frame-grabbers used through the "
00258     "generic FrameIstream interface. Compared with single-frame mode, "
00259     "streaming mode gives higher frame rates, but also requires that "
00260     "the application be able to keep up with the frame rate; otherwise "
00261     "the grabber will start to lose frames. In general, if the program "
00262     "can operate at a consistently high frame rate, then streaming is "
00263     "the way to go, but if the program requires lengthy per-frame "
00264     "processing, or if the processing time varies widely from one "
00265     "frame to the next, then single-frame mode is the way to go.",
00266     "framegrabber-streaming", '\0', "", "true" };
00267 
00268 // V4L2 control
00269 const ModelOptionDef OPT_FrameGrabberAudioVolume =
00270   { MODOPT_ARG(int), "FrameGrabberAudioVolume", &MOC_FRAMEGRAB, OPTEXP_CORE,
00271     "Overall audio volume. Note some drivers also provide an OSS or ALSA mixer interface",
00272     "framegrabber-audio-vol", '\0', "<int>", "100" };
00273 
00274 // V4L2 control
00275 const ModelOptionDef OPT_FrameGrabberAudioBalance =
00276   { MODOPT_ARG(int), "FrameGrabberAudioBalance", &MOC_FRAMEGRAB, OPTEXP_CORE,
00277     "Audio stereo balance. Minimum corresponds to all the way left, maximum to right",
00278     "framegrabber-audio-bal", '\0', "<int>", "0" };
00279 
00280 // V4L2 control
00281 const ModelOptionDef OPT_FrameGrabberAudioBass =
00282   { MODOPT_ARG(int), "FrameGrabberAudioBass", &MOC_FRAMEGRAB, OPTEXP_CORE,
00283     "Audio bass adjustment",
00284     "framegrabber-audio-bass", '\0', "<int>", "0" };
00285 
00286 // V4L2 control
00287 const ModelOptionDef OPT_FrameGrabberAudioTreble =
00288   { MODOPT_ARG(int), "FrameGrabberAudioTreble", &MOC_FRAMEGRAB, OPTEXP_CORE,
00289     "Audio treble adjustment",
00290     "framegrabber-audio-treb", '\0', "<int>", "0" };
00291 
00292 // V4L2 control
00293 const ModelOptionDef OPT_FrameGrabberAudioMute =
00294   { MODOPT_FLAG, "FrameGrabberAudioMute", &MOC_FRAMEGRAB, OPTEXP_CORE,
00295     "Mute audio, i. e. set the volume to zero, however without affecting the audio volume. Like ALSA drivers, "
00296     "V4L2 drivers must mute at load time to avoid excessive noise. Actually the entire device should be reset "
00297     "to a low power consumption state",
00298     "framegrabber-audio-mute", '\0', "", "false" };
00299 
00300 // V4L2 control
00301 const ModelOptionDef OPT_FrameGrabberAudioLoudness =
00302   { MODOPT_FLAG, "FrameGrabberAudioLoudness", &MOC_FRAMEGRAB, OPTEXP_CORE,
00303     "Loudness mode (bass boost)",
00304     "framegrabber-audio-loudness", '\0', "", "false" };
00305 
00306 // V4L2 control
00307 const ModelOptionDef OPT_FrameGrabberAutoWhiteBal =
00308   { MODOPT_FLAG, "FrameGrabberAutoWhiteBal", &MOC_FRAMEGRAB, OPTEXP_CORE,
00309     "Automatic white balance",
00310     "framegrabber-auto-whitebal", '\0', "", "true" };
00311 
00312 // V4L2 control
00313 const ModelOptionDef OPT_FrameGrabberDoWhiteBal =
00314   { MODOPT_FLAG, "FrameGrabberDoWhiteBal", &MOC_FRAMEGRAB, OPTEXP_CORE,
00315     "This is an action control. When set (the value is ignored), the device will do a white balance and "
00316     "then hold the current setting. Contrast this with the boolean --framegrabber-auto-whitebal, which, "
00317     "when activated, keeps adjusting the white balance.",
00318     "framegrabber-do-whitebal", '\0', "", "false" };
00319 
00320 // V4L2 control
00321 const ModelOptionDef OPT_FrameGrabberAutoGain =
00322   { MODOPT_FLAG, "FrameGrabberAutoGain", &MOC_FRAMEGRAB, OPTEXP_CORE,
00323     "Automatic gain/exposure control",
00324     "framegrabber-autogain", '\0', "", "true" };
00325 
00326 // V4L2 control
00327 const ModelOptionDef OPT_FrameGrabberHFlip =
00328   { MODOPT_FLAG, "FrameGrabberHFlip", &MOC_FRAMEGRAB, OPTEXP_CORE,
00329     "Mirror the picture horizontally",
00330     "framegrabber-hflip", '\0', "", "false" };
00331 
00332 // V4L2 control
00333 const ModelOptionDef OPT_FrameGrabberVFlip =
00334   { MODOPT_FLAG, "FrameGrabberVFlip", &MOC_FRAMEGRAB, OPTEXP_CORE,
00335     "Mirror the picture vertically",
00336     "framegrabber-vflip", '\0', "", "false" };
00337 
00338 // V4L2 control
00339 const ModelOptionDef OPT_FrameGrabberHueAuto =
00340   { MODOPT_FLAG, "FrameGrabberHueAuto", &MOC_FRAMEGRAB, OPTEXP_CORE,
00341     "Enables automatic hue control by the device. The effect of setting --framegrabber-hue while automatic hue "
00342     "control is enabled is undefined, drivers should ignore such request",
00343     "framegrabber-hue-auto", '\0', "", "true" };
00344 
00345 // V4L2 extended control
00346 const ModelOptionDef OPT_FrameGrabberFocusAuto =
00347   { MODOPT_FLAG, "FrameGrabberFocusAuto", &MOC_FRAMEGRAB, OPTEXP_CORE,
00348     "Whether to use built-in auto-focus",
00349     "framegrabber-autofocus", '\0', "", "true" };
00350 
00351 // V4L2 extended control
00352 const ModelOptionDef OPT_FrameGrabberWhiteBalTempAuto =
00353   { MODOPT_FLAG, "FrameGrabberWhiteBalTempAuto", &MOC_FRAMEGRAB, OPTEXP_CORE,
00354     "Whether to use built-in auto white balance temperature",
00355     "framegrabber-auto-whitebaltemp", '\0', "", "true" };
00356 
00357 // V4L2 extended control
00358 const ModelOptionDef OPT_FrameGrabberWhiteBalTemp =
00359   { MODOPT_ARG(int), "FrameGrabberWhiteBalTemp", &MOC_FRAMEGRAB, OPTEXP_CORE,
00360     "Manual white balance temperature (make sure auto white balance is disabled)",
00361     "framegrabber-whitebaltemp", '\0', "<int>", "4500" };
00362 
00363 // V4L2 extended control
00364 const ModelOptionDef OPT_FrameGrabberPowerLineFreq =
00365   { MODOPT_ARG(int), "FrameGrabberPowerLineFreq", &MOC_FRAMEGRAB, OPTEXP_CORE,
00366     "Power line frequency compensation",
00367     "framegrabber-powerlinefreq", '\0', "<int>", "2" };
00368 
00369 // V4L2 extended control
00370 const ModelOptionDef OPT_FrameGrabberBacklightComp =
00371   { MODOPT_ARG(int), "FrameGrabberBacklightComp", &MOC_FRAMEGRAB, OPTEXP_CORE,
00372     "Backlight compensation",
00373     "framegrabber-backlight", '\0', "<int>", "0" };
00374 
00375 // V4L2 extended control
00376 const ModelOptionDef OPT_FrameGrabberExposureMode =
00377   { MODOPT_ARG(int), "FrameGrabberExposureAuto", &MOC_FRAMEGRAB, OPTEXP_CORE,
00378     "Exposure control mode",
00379     "framegrabber-exposuremode", '\0', "<int>", "0" };
00380 
00381 // V4L2 extended control
00382 const ModelOptionDef OPT_FrameGrabberExposureAutoPri =
00383   { MODOPT_FLAG, "FrameGrabberExposureAutoPri", &MOC_FRAMEGRAB, OPTEXP_CORE,
00384     "Exposure auto priority control flag",
00385     "framegrabber-exposure-autopri", '\0', "", "false" };
00386 
00387 // V4L2 extended control
00388 const ModelOptionDef OPT_FrameGrabberFocus =
00389   { MODOPT_ARG(int), "FrameGrabberFocus", &MOC_FRAMEGRAB, OPTEXP_CORE,
00390     "Manual focus value (make sure you disabled auto-focus)",
00391     "framegrabber-focus", '\0', "<int>", "10" };
00392 
00393 // V4L2 extended control
00394 const ModelOptionDef OPT_FrameGrabberZoom =
00395   { MODOPT_ARG(int), "FrameGrabberZoom", &MOC_FRAMEGRAB, OPTEXP_CORE,
00396     "Manual zoom value",
00397     "framegrabber-zoom", '\0', "<int>", "0" };
00398 
00399 // V4L2 extended control
00400 const ModelOptionDef OPT_FrameGrabberExposureAbs =
00401   { MODOPT_ARG(int), "FrameGrabberExposureAbs", &MOC_FRAMEGRAB, OPTEXP_CORE,
00402     "Exposure (absolute) of the frame grabber (make sure you selected manual exposure mode). Note that on some cameras "
00403     "only a few discrete values in the range are valid; for example, 9, 19, 39, 78, 156, 312 and similar for "
00404     "the Microsoft Lifecam Cinema 720p",
00405     "framegrabber-exposure-abs", '\0', "<int>", "511" };
00406 
00407 // Framegrabber aliases for various cameras:
00408 
00409 // Instantiated by V4L2grabber
00410 const ModelOptionDef OPT_ALIAScamMacbook =
00411   { MODOPT_ALIAS, "ALIAScamMacbook", &MOC_ALIAS, OPTEXP_CORE,
00412     "Use builtin camera of Apple Macbook (Core 2 Duo version). This only "
00413     "works with V4L2 and uses the uvcvideo kernel driver. Only resolutions "
00414     "supported seem to be 320x240 and 640x480 (both at 30.00 fps). The "
00415     "camera seems to support setting the gamma (which under V4L2 currently "
00416     "is the same as whiteness), but apparently this has no effect and the "
00417     "value remains at its default",
00418     "camera-macbook", '\0', "",
00419     "--framegrabber-mode=UYVY --framegrabber-brightness=100 "
00420     "--noframegrabber-bswap --framegrabber-saturation=5 "
00421     "--framegrabber-chan=0 --framegrabber-whiteness=150" };
00422 
00423 // Instantiated by V4Lgrabber and V4L2grabber
00424 const ModelOptionDef OPT_ALIAScamBttv =
00425   { MODOPT_ALIAS, "ALIAScamBttv", &MOC_ALIAS, OPTEXP_CORE,
00426     "Use camera connected to a BTTV framegrabber. This both "
00427     "works with V4L and V4L2. Typically, these boards support many "
00428     "resolutions and modes, as listed by the V4L2 driver",
00429     "camera-bttv", '\0', "",
00430     "--framegrabber-mode=RGB24 --framegrabber-brightness=32768 "
00431     "--framegrabber-bswap --framegrabber-saturation=32768 "
00432     "--framegrabber-contrast=32768 --framegrabber-hue=32768" };
00433 
00434 // Instantiated by IEEE1394grabber
00435 const ModelOptionDef OPT_ALIAScamiSight =
00436   { MODOPT_ALIAS, "ALIAScamiSight", &MOC_ALIAS, OPTEXP_CORE,
00437     "Use Apple iSight camera (external IEEE1394 model, not the USB model "
00438     "integrated into Macbook laptops). Surprsingly, even though the "
00439     "camera seems to stream at 30fps, the video looks like it may only "
00440     "capture at 15fps and then send each frame twice",
00441     "camera-isight", '\0', "",
00442     "--framegrabber-brightness=127 --framegrabber-hue=180" };
00443 
00444 // Instantiated by V4L2grabber
00445 const ModelOptionDef OPT_ALIAScamLifeCam =
00446   { MODOPT_ALIAS, "ALIAScamLifeCam", &MOC_ALIAS, OPTEXP_CORE,
00447     "Use Microsoft LifeCam 1280x720 USB camera.",
00448     "camera-lifecam", '\0', "",
00449     "--framegrabber-dims=1280x720 --framegrabber-mode=YUYV --noframegrabber-bswap "
00450     "--framegrabber-brightness=133 --framegrabber-contrast=5 --framegrabber-saturation=83 "
00451     "--framegrabber-auto-whitebaltemp=true --framegrabber-powerlinefreq=2 --framegrabber-whitebaltemp=4500 "
00452     "--framegrabber-sharpness=25 --framegrabber-backlight=0 --framegrabber-exposuremode=3 "
00453     "--framegrabber-exposure-abs=156 --framegrabber-focus=0 --framegrabber-autofocus=true --framegrabber-zoom=0"
00454     // note: some values will be ignored, like the focus value since we use autofocus. We set them here to the camera's
00455     // default, in case autofocus gets later turned off, the focus value will be a reasonable one.
00456   };
00457 
00458 // Instantiated by V4L2grabber
00459 const ModelOptionDef OPT_ALIAScamLifeCamManual =
00460   { MODOPT_ALIAS, "ALIAScamLifeCamManual", &MOC_ALIAS, OPTEXP_CORE,
00461     "Use Microsoft LifeCam 1280x720 USB camera with most settings set to manual (focus, exposure, "
00462     "white balance temperature, etc). Useful for robotics applications. Note: exposure-abs values are funky on "
00463     "this camera. 9, 19, 39, 78, 156, 312 work, probably some other vals too but in-betweens look over-exposed.",
00464     "camera-lifecam-manual", '\0', "",
00465     "--framegrabber-dims=1280x720 --framegrabber-mode=YUYV --noframegrabber-bswap "
00466     "--framegrabber-brightness=130 --framegrabber-contrast=5 --framegrabber-saturation=83 "
00467     "--framegrabber-auto-whitebaltemp=false --framegrabber-powerlinefreq=0 --framegrabber-whitebaltemp=3000 "
00468     "--framegrabber-sharpness=25 --framegrabber-backlight=0 --framegrabber-exposuremode=1 "
00469     "--framegrabber-exposure-abs=78 --framegrabber-focus=10 --framegrabber-autofocus=false --framegrabber-zoom=0"
00470  };
00471 
00472 // Instantiated by V4L2grabber
00473 const ModelOptionDef OPT_ALIAScamHPpremAF =
00474   { MODOPT_ALIAS, "ALIAScamHPpremAF", &MOC_ALIAS, OPTEXP_CORE,
00475     "Use H.P. Premium Autofocus (KQ245AA) 960x720 USB camera.",
00476     "camera-hpprem", '\0', "",
00477     "--framegrabber-dims=960x720 --framegrabber-mode=YUYV --noframegrabber-bswap "
00478     "--framegrabber-brightness=0 --framegrabber-contrast=32 --framegrabber-saturation=64 --framegrabber-hue=0 "
00479     "--framegrabber-auto-whitebaltemp=true --framegrabber-gamma=110 --framegrabber-gain=0 "
00480     "--framegrabber-powerlinefreq=2 --framegrabber-exposuremode=3 --framegrabber-exposure-abs=300 "
00481     "--framegrabber-exposure-autopri=false --framegrabber-autofocus=true --framegrabber-focus=1"
00482   };
00483 
00484 // Instantiated by V4L2grabber
00485 const ModelOptionDef OPT_ALIAScamHPpremAFmanual =
00486   { MODOPT_ALIAS, "ALIAScamHPpremAFmanual", &MOC_ALIAS, OPTEXP_CORE,
00487     "Use H.P. Premium Autofocus (KQ245AA) 960x720 USB camera with most settings set to manual (focus, exposure, "
00488     "white balance temperature, etc). Useful for robotics applications.",
00489     "camera-hpprem-manual", '\0', "",
00490     "--framegrabber-dims=960x720 --framegrabber-mode=YUYV --noframegrabber-bswap "
00491     "--framegrabber-brightness=0 --framegrabber-contrast=32 --framegrabber-saturation=64 --framegrabber-hue=0 "
00492     "--framegrabber-auto-whitebaltemp=false --framegrabber-gamma=110 --framegrabber-gain=0 "
00493     "--framegrabber-powerlinefreq=0 --framegrabber-exposuremode=1 --framegrabber-exposure-abs=800 "
00494     "--framegrabber-exposure-autopri=true --framegrabber-autofocus=false --framegrabber-focus=15"
00495  };
00496 
00497 // Instantiated by V4L2grabber
00498 const ModelOptionDef OPT_ALIAScamC910 =
00499   { MODOPT_ALIAS, "ALIAScamC910", &MOC_ALIAS, OPTEXP_CORE,
00500     "Use Logitech C910 5MP USB camera.",
00501     "camera-c910", '\0', "",
00502     "--framegrabber-dims=2592x1944 --framegrabber-mode=YUYV --noframegrabber-bswap "
00503     "--framegrabber-brightness=128 --framegrabber-contrast=32 --framegrabber-saturation=32 "
00504     "--framegrabber-auto-whitebaltemp=true --framegrabber-gain=64 --framegrabber-powerlinefreq=2 "
00505     "--framegrabber-whitebaltemp=4000 --framegrabber-sharpness=72 --framegrabber-backlight=1 "
00506     "--framegrabber-exposuremode=3 --framegrabber-exposure-abs=166 --framegrabber-exposure-autopri "
00507     "--framegrabber-focus=68 --framegrabber-autofocus=true --framegrabber-zoom=1"
00508     // note: some values will be ignored, like the focus value since we use autofocus. We set them here to the camera's
00509     // default, in case autofocus gets later turned off, the focus value will be a reasonable one.
00510   };
00511 
00512 // Instantiated by V4L2grabber
00513 const ModelOptionDef OPT_ALIAScamC910manual =
00514   { MODOPT_ALIAS, "ALIAScamC910manual", &MOC_ALIAS, OPTEXP_CORE,
00515     "Use Logitech C910 5MP USB camera with most settings set to manual (focus, exposure, "
00516     "white balance temperature, etc). Useful for robotics applications. Note: focus is in steps of 17.",
00517     "camera-c910-manual", '\0', "",
00518     "--framegrabber-dims=2592x1944 --framegrabber-mode=YUYV --noframegrabber-bswap "
00519     "--framegrabber-brightness=128 --framegrabber-contrast=32 --framegrabber-saturation=32 "
00520     "--framegrabber-auto-whitebaltemp=false --framegrabber-gain=64 --framegrabber-powerlinefreq=0 "
00521     "--framegrabber-whitebaltemp=4000 --framegrabber-sharpness=72 --framegrabber-backlight=0 "
00522     "--framegrabber-exposuremode=1 --framegrabber-exposure-abs=166 --noframegrabber-exposure-autopri "
00523     "--framegrabber-focus=68 --framegrabber-autofocus=false --framegrabber-zoom=1"
00524  };
00525 
00526 // Instantiated by V4L2grabber
00527 const ModelOptionDef OPT_ALIAScamC910turntable =
00528   { MODOPT_ALIAS, "ALIAScamC910turntable", &MOC_ALIAS, OPTEXP_CORE,
00529     "Use Logitech C910 5MP USB camera with most settings set to manual (focus, exposure, "
00530     "white balance temperature, etc) and tuned for the iLab 11-camera turntable rig. Note: focus is "
00531     "in steps of 17.",
00532     "camera-c910-turntable", '\0', "",
00533     // DO NOT MODIFY SETTINGS HERE! We rely on them for consistency of our turntable shots.
00534     // You can modify ALIAScamC910manual above if you find better defaults for it.
00535     "--framegrabber-dims=2592x1944 --framegrabber-mode=YUYV --noframegrabber-bswap "
00536     "--framegrabber-brightness=128 --framegrabber-contrast=32 --framegrabber-saturation=32 "
00537     "--framegrabber-auto-whitebaltemp=false --framegrabber-gain=64 --framegrabber-powerlinefreq=0 "
00538     "--framegrabber-whitebaltemp=4000 --framegrabber-sharpness=72 --framegrabber-backlight=0 "
00539     "--framegrabber-exposuremode=1 --framegrabber-exposure-abs=166 --noframegrabber-exposure-autopri "
00540     "--framegrabber-focus=68 --framegrabber-autofocus=false --framegrabber-zoom=1"
00541  };
00542 
00543 // #################### Special hardware options
00544 
00545 const ModelOptionCateg MOC_VCC4 = {
00546   MOC_SORTPRI_2, "VCC4 Pan/Tilt Camera Options" };
00547 
00548 // Used by: VCC4
00549 const ModelOptionDef OPT_VCC4serialDevice =
00550   { MODOPT_ARG_STRING, "VCC4serialDevice", &MOC_VCC4, OPTEXP_CORE,
00551     "the serial device for the VCC4 camera",
00552     "vcc4-serial-device", '\0', "<dev>", "/dev/usb/tts/0" };
00553 
00554 // Used by: VCC4
00555 const ModelOptionDef OPT_VCC4unitNo =
00556   { MODOPT_ARG(int), "VCC4unitNo", &MOC_VCC4, OPTEXP_CORE,
00557     "VCC4 unit number",
00558     "vcc4-unit-no", '\0', "<0..9>", "0" };
00559 
00560 // Used by: VCC4
00561 const ModelOptionDef OPT_VCC4pulseRatio =
00562   { MODOPT_ARG(float), "VCC4pulseRatio", &MOC_VCC4, OPTEXP_CORE,
00563     "VCC4 pulse ratio, or 0.0 to query it from the VCC4 unit",
00564     "vcc4-pulse-ratio", '\0', "<float>", "0.0" };
00565 
00566 // Used by: VCC4
00567 const ModelOptionDef OPT_VCC4maxAngle =
00568   { MODOPT_ARG(float), "VCC4maxAngle", &MOC_VCC4, OPTEXP_CORE,
00569     "VCC4 max angle, or 0.0 to query it from the VCC4 unit",
00570     "vcc4-max-angle", '\0', "<float>", "0.0" };
00571 
00572 
00573 // #################### Audio recording options
00574 // Used by: AudioMixer
00575 const ModelOptionDef OPT_AudioMixerDevice =
00576   { MODOPT_ARG_STRING, "AudioMixerDevice", &MOC_AUDIO, OPTEXP_CORE,
00577     "Audio mixer device name",
00578     "audio-mix-dev", '\0', "<file>", "/dev/mixer" };
00579 
00580 // Used by: AudioMixer
00581 const ModelOptionDef OPT_AudioMixerLineIn =
00582   { MODOPT_FLAG, "AudioMixerLineIn", &MOC_AUDIO, OPTEXP_CORE,
00583     "Audio mixer Line input",
00584     "audio-mix-linein", '\0', "", "true" };
00585 
00586 // Used by: AudioMixer
00587 const ModelOptionDef OPT_AudioMixerCdIn =
00588   { MODOPT_FLAG, "AudioMixerCdIn", &MOC_AUDIO, OPTEXP_CORE,
00589     "Audio mixer CD input",
00590     "audio-mix-cdin", '\0', "", "false" };
00591 
00592 // Used by: AudioMixer
00593 const ModelOptionDef OPT_AudioMixerMicIn =
00594   { MODOPT_FLAG, "AudioMixerMicIn", &MOC_AUDIO, OPTEXP_CORE,
00595     "Audio mixer Mic input",
00596     "audio-mix-micin", '\0', "", "false" };
00597 
00598 
00599 // Used by: AudioGrabber
00600 const ModelOptionDef OPT_AudioGrabberDevice =
00601   { MODOPT_ARG_STRING, "AudioGrabberDevice", &MOC_AUDIO, OPTEXP_CORE,
00602     "Audio grabber device name",
00603     "audio-grab-dev", '\0', "<file>", "/dev/dsp" };
00604 
00605 // Used by: AudioGrabber
00606 const ModelOptionDef OPT_AudioGrabberBits =
00607   { MODOPT_ARG(unsigned int), "AudioGrabberBits", &MOC_AUDIO, OPTEXP_CORE,
00608     "Audio grabber bits per sample",
00609     "audio-grab-bits", '\0', "<8|16>", "8" };
00610 
00611 // Used by: AudioGrabber
00612 const ModelOptionDef OPT_AudioGrabberFreq =
00613   { MODOPT_ARG(unsigned int), "AudioGrabberFreq", &MOC_AUDIO, OPTEXP_CORE,
00614     "Audio grabber sampling frequency (Hz)",
00615     "audio-grab-freq", '\0', "<int>", "44100" };
00616 
00617 // Used by: AudioGrabber
00618 const ModelOptionDef OPT_AudioGrabberBufSamples =
00619   { MODOPT_ARG(unsigned int), "AudioGrabberBufSamples", &MOC_AUDIO, OPTEXP_CORE,
00620     "Audio grabber buffer length (in samples)",
00621     "audio-grab-bufsamp", '\0', "<int>", "256" };
00622 
00623 // Used by: AudioGrabber
00624 const ModelOptionDef OPT_AudioGrabberChans =
00625   { MODOPT_ARG(unsigned int), "AudioGrabberChans", &MOC_AUDIO, OPTEXP_CORE,
00626     "Audio grabber number of channels to record",
00627     "audio-grab-chans", '\0', "<int>", "1" };
00628 
00629 // Used by: AudioGrabber
00630 const ModelOptionDef OPT_AudioGrabberInterleaved =
00631   { MODOPT_FLAG, "AudioGrabberInterleaved", &MOC_AUDIO, OPTEXP_CORE,
00632     "True if channel data is interleaved (as opposed to chunked)",
00633     "audio-grab-interleaved", '\0', "<true|false>", "false" };
00634 
00635 
00636 // Used by: DiskDataStream
00637 const ModelOptionDef OPT_DiskDataStreamSavePath =
00638   { MODOPT_ARG_STRING, "DiskDataStreamSavePath", &MOC_OUTPUT, OPTEXP_CORE,
00639     "Comma-separated list of filename stems for where to save files; "
00640     "e.g., 'dir0/pfx0,dir1/pfx1' will save even-numbered files with "
00641     "the prefix 'dir0/pfx0' and will save odd-numbered files with "
00642     "the prefix 'dir1/pfx1'",
00643     "datastream-save-path", '\0', "<stem1,stem2,...,stemN>", "./" };
00644 
00645 // Used by: DiskDataStream
00646 const ModelOptionDef OPT_DiskDataStreamUseMmap =
00647   { MODOPT_ARG(bool), "DiskDataStreamUseMmap", &MOC_OUTPUT, OPTEXP_CORE,
00648     "Whether to use mmap() instead of write() to stream data to disk. The"
00649     "default is to use mmap(), which may be significantly faster, but may"
00650     "be somewhat less portable",
00651     "datastream-use-mmap", '\0', "<true|false>", "true" };
00652 
00653 // Used by: DiskDataStream
00654 const ModelOptionDef OPT_DiskDataStreamNumThreads =
00655   { MODOPT_ARG(uint), "DiskDataStreamNumThreads", &MOC_OUTPUT, OPTEXP_CORE,
00656     "How many worker threads to use for streaming files to disk.",
00657     "datastream-num-threads", '\0', "<uint>", "1" };
00658 
00659 // Used by: DiskDataStream
00660 const ModelOptionDef OPT_DiskDataStreamSleepUsecs =
00661   { MODOPT_ARG(uint), "DiskDataStreamSleepUsecs", &MOC_OUTPUT, OPTEXP_CORE,
00662     "How many microseconds each worker thread should sleep "
00663     "after writing each frame to disk.",
00664     "datastream-sleep-usecs", '\0', "<uint>", "0" };
00665 
00666 // Used by: DiskDataStream
00667 const ModelOptionDef OPT_DiskDataStreamSavePeriod =
00668   { MODOPT_ARG(uint), "DiskDataStreamSavePeriod", &MOC_OUTPUT, OPTEXP_CORE,
00669     "How often to save frames (1 = save every frame; N = save every "
00670     "Nth frame).",
00671     "datastream-save-period", '\0', "<uint>", "1" };
00672 
00673 // ######################################################################
00674 /* So things look consistent in everyone's emacs... */
00675 /* Local Variables: */
00676 /* indent-tabs-mode: nil */
00677 /* End: */
00678 
00679 #endif // DEVICES_DEVICEOPTS_C_DEFINED
Generated on Sun May 8 08:40:37 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3