00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
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
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 const ModelOptionCateg MOC_FRAMEGRAB = {
00073 MOC_SORTPRI_2, "Video FrameGrabber-Related Options" };
00074
00075
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
00408
00409
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
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
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
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
00455
00456 };
00457
00458
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
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
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
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
00509
00510 };
00511
00512
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
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
00534
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
00544
00545 const ModelOptionCateg MOC_VCC4 = {
00546 MOC_SORTPRI_2, "VCC4 Pan/Tilt Camera Options" };
00547
00548
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
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
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
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
00574
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
00675
00676
00677
00678
00679 #endif // DEVICES_DEVICEOPTS_C_DEFINED