1 /* 2 * Copyright (c) 2010, Texas Instruments Incorporated 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of Texas Instruments Incorporated nor the names of 17 * its contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 /* -------------------------------------------------------------------------- * 34 * 35 * @file:OMX_TI_IVCommon.h 36 * This header defines the structures specific to the config indices of msp_VPPM. 37 * 38 * @path ..\OMAPSW_SysDev\multimedia\omx\khronos1_1\omx_core\inc 39 * 40 * -------------------------------------------------------------------------- */ 41 42 /* ======================================================================== *! 43 *! Revision History 44 *! ==================================================================== */ 45 46 #ifndef OMX_TI_IVCommon_H 47 #define OMX_TI_IVCommon_H 48 49 #ifdef __cplusplus 50 extern "C" { 51 #endif /* __cplusplus */ 52 53 #include <OMX_IVCommon.h> 54 #include <OMX_Image.h> 55 56 #define DCC_PATH "/data/misc/camera/" 57 58 #define MAX_URI_LENGTH (OMX_MAX_STRINGNAME_SIZE) 59 #define MAX_ALGOAREAS (35) 60 61 /*======================================================================= */ 62 /* Enumerated values for operation mode for compressed image 63 * 64 * ENUMS: 65 * Chunk : Chunk based operation 66 * NonChunk : Non-chunk based operation 67 */ 68 /* ======================================================================= */ 69 typedef enum OMX_JPEG_COMPRESSEDMODETYPE { 70 OMX_JPEG_ModeChunk = 0, 71 OMX_JPEG_ModeNonChunk, 72 OMX_JPEG_CompressedmodeMax = 0x7fffffff 73 }OMX_JPEG_COMPRESSEDMODETYPE ; 74 75 76 /*======================================================================= */ 77 /* Enumerated values for operation mode for uncompressed image 78 * 79 * ENUMS: 80 * Frame : Frame based operation 81 * Slice : Slice based operation 82 * Stitch : For stitching between image frames 83 * Burst : For stitching between image frames 84 */ 85 /* ======================================================================= */ 86 typedef enum OMX_JPEG_UNCOMPRESSEDMODETYPE { 87 OMX_JPEG_UncompressedModeFrame = 0, 88 OMX_JPEG_UncompressedModeSlice, 89 OMX_JPEG_UncompressedModeStitch, 90 OMX_JPEG_UncompressedModeBurst, 91 OMX_JPEG_UncompressedModeMax = 0x7fffffff 92 }OMX_JPEG_UNCOMPRESSEDMODETYPE; 93 94 95 96 /*======================================================================= */ 97 /* Configuration structure for compressed image 98 * 99 * STRUCT MEMBERS: 100 * nSize : Size of the structure in bytes 101 * nVersion : OMX specification version information 102 * nPortIndex : Port that this structure applies to 103 * eCompressedImageMode : Operating mode enumeration for compressed image 104 */ 105 /*======================================================================= */ 106 typedef struct OMX_JPEG_PARAM_COMPRESSEDMODETYPE{ 107 OMX_U32 nSize; 108 OMX_VERSIONTYPE nVersion; 109 OMX_U32 nPortIndex; 110 OMX_JPEG_COMPRESSEDMODETYPE eCompressedImageMode; 111 }OMX_JPEG_PARAM_COMPRESSEDMODETYPE; 112 113 114 115 /*======================================================================= */ 116 /* Uncompressed image Operating mode configuration structure 117 * 118 * STRUCT MEMBERS: 119 * nSize : Size of the structure in bytes 120 * nVersion : OMX specification version information 121 * nPortIndex : Port that this structure applies to 122 * nBurstLength : No of frames to be dumped in burst mode 123 * eUncompressedImageMode : uncompressed image mode information 124 * eSourceType : Image encode souce info 125 * tRotationInfo : Rotation related information 126 */ 127 /*======================================================================= */ 128 typedef struct OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE{ 129 OMX_U32 nSize; 130 OMX_VERSIONTYPE nVersion; 131 OMX_U32 nPortIndex; 132 OMX_U32 nBurstLength; 133 OMX_JPEG_UNCOMPRESSEDMODETYPE eUncompressedImageMode; 134 }OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE; 135 136 137 /*======================================================================= */ 138 /* Subregion Decode Parameter configuration structure 139 * 140 * STRUCT MEMBERS: 141 * nSize : Size of the structure in bytes 142 * nVersion : OMX specification version information 143 * nXOrg : Sectional decoding X origin 144 * nYOrg : Sectional decoding Y origin 145 * nXLength : Sectional decoding X length 146 * nYLength : Sectional decoding Y length 147 */ 148 /*======================================================================= */ 149 typedef struct OMX_IMAGE_PARAM_DECODE_SUBREGION{ 150 OMX_U32 nSize; 151 OMX_VERSIONTYPE nVersion; 152 OMX_U32 nXOrg; 153 OMX_U32 nYOrg; 154 OMX_U32 nXLength; 155 OMX_U32 nYLength; 156 }OMX_IMAGE_PARAM_DECODE_SUBREGION; 157 158 159 /** 160 * sensor select types 161 */ 162 typedef enum OMX_SENSORSELECT{ 163 OMX_PrimarySensor = 0, 164 OMX_SecondarySensor, 165 OMX_TI_StereoSensor, 166 OMX_SensorTypeMax = 0x7fffffff 167 }OMX_SENSORSELECT; 168 169 /** 170 * 171 * Sensor Select 172 */ 173 typedef struct OMX_CONFIG_SENSORSELECTTYPE { 174 OMX_U32 nSize; /**< Size of the structure in bytes */ 175 OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ 176 OMX_U32 nPortIndex; /**< Port that this struct applies to */ 177 OMX_SENSORSELECT eSensor; /**< sensor select */ 178 } OMX_CONFIG_SENSORSELECTTYPE; 179 180 /** 181 * Flicker cancellation types 182 */ 183 typedef enum OMX_COMMONFLICKERCANCELTYPE{ 184 OMX_FlickerCancelOff = 0, 185 OMX_FlickerCancelAuto, 186 OMX_FlickerCancel50, 187 OMX_FlickerCancel60, 188 OMX_FlickerCancel100, 189 OMX_FlickerCancel120, 190 OMX_FlickerCancelMax = 0x7fffffff 191 }OMX_COMMONFLICKERCANCELTYPE; 192 193 typedef struct OMX_CONFIG_FLICKERCANCELTYPE { 194 OMX_U32 nSize; 195 OMX_VERSIONTYPE nVersion; 196 OMX_U32 nPortIndex; 197 OMX_COMMONFLICKERCANCELTYPE eFlickerCancel; 198 } OMX_CONFIG_FLICKERCANCELTYPE; 199 200 201 /** 202 * Sensor caleberation types 203 */ 204 typedef enum OMX_SENSORCALTYPE{ 205 OMX_SensorCalFull = 0, 206 OMX_SensorCalQuick, 207 OMX_SensorCalMax = 0x7fffffff 208 }OMX_SENSORCALTYPE; 209 210 typedef struct OMX_CONFIG_SENSORCALTYPE { 211 OMX_U32 nSize; 212 OMX_VERSIONTYPE nVersion; 213 OMX_U32 nPortIndex; 214 OMX_SENSORCALTYPE eSensorCal; 215 } OMX_CONFIG_SENSORCALTYPE; 216 217 /** 218 * Scene mode types 219 */ 220 typedef enum OMX_SCENEMODETYPE{ 221 222 OMX_Manual = 0, 223 OMX_Closeup, 224 OMX_Portrait, 225 OMX_Landscape, 226 OMX_Underwater, 227 OMX_Sport, 228 OMX_SnowBeach, 229 OMX_Mood, 230 OMX_NightPortrait, 231 OMX_NightIndoor, 232 OMX_Fireworks, 233 OMX_Document, /**< for still image */ 234 OMX_Barcode, /**< for still image */ 235 OMX_SuperNight, /**< for video */ 236 OMX_Cine, /**< for video */ 237 OMX_OldFilm, /**< for video */ 238 OMX_TI_Action, 239 OMX_TI_Beach, 240 OMX_TI_Candlelight, 241 OMX_TI_Night, 242 OMX_TI_Party, 243 OMX_TI_Portrait, 244 OMX_TI_Snow, 245 OMX_TI_Steadyphoto, 246 OMX_TI_Sunset, 247 OMX_TI_Theatre, 248 OMX_SceneModeMax = 0x7fffffff 249 }OMX_SCENEMODETYPE; 250 251 typedef struct OMX_CONFIG_SCENEMODETYPE { 252 OMX_U32 nSize; 253 OMX_VERSIONTYPE nVersion; 254 OMX_U32 nPortIndex; 255 OMX_SCENEMODETYPE eSceneMode; 256 } OMX_CONFIG_SCENEMODETYPE; 257 258 /** 259 * Port specific capture trigger 260 * useful for the usecases with multiple capture ports. 261 * 262 * STRUCT MEMBERS: 263 * nSize : Size of the structure in bytes 264 * nVersion : OMX specification version information 265 * nPortIndex : Port that this structure applies to 266 * bExtCapturing : Start Captre at the specified port. Can be queried to know the status of a specific port. 267 */ 268 typedef struct OMX_CONFIG_EXTCAPTURING { 269 OMX_U32 nSize; 270 OMX_VERSIONTYPE nVersion; 271 OMX_U32 nPortIndex; 272 OMX_BOOL bExtCapturing; 273 } OMX_CONFIG_EXTCAPTURING; 274 275 276 /** 277 * Digital Zoom Speed 278 * 279 * STRUCT MEMBERS: 280 * nSize : Size of the structure in bytes 281 * nVersion : OMX specification version information 282 * nPortIndex : Port that this structure applies to 283 * nDigitalZoomSpeed : Optical zoom speed level. Special values: 284 * 0 - stop current movement 285 * values from 1 to 254 are mapped proportionally to supported zoom speeds inside optical zoom driver. 286 * So 1 is slowest available optical zoom speed and 254 is fastest available optical zoom speed 287 * 255 - default optical zoom speed value 288 */ 289 typedef struct OMX_CONFIG_DIGITALZOOMSPEEDTYPE { 290 OMX_U32 nSize; 291 OMX_VERSIONTYPE nVersion; 292 OMX_U32 nPortIndex; 293 OMX_U8 nDigitalZoomSpeed; 294 } OMX_CONFIG_DIGITALZOOMSPEEDTYPE; 295 296 297 /** 298 * Digital Zoom Target 299 * 300 * STRUCT MEMBERS: 301 * nSize : Size of the structure in bytes 302 * nVersion : OMX specification version information 303 * nPortIndex : Port that this structure applies to 304 * nDigitalZoomTarget : Default and minimum is 0. Maximum is determined by the current supported range 305 */ 306 307 typedef struct OMX_CONFIG_DIGITALZOOMTARGETTYPE { 308 OMX_U32 nSize; 309 OMX_VERSIONTYPE nVersion; 310 OMX_U32 nPortIndex; 311 OMX_U32 nDigitalZoomTarget; 312 } OMX_CONFIG_DIGITALZOOMTARGETTYPE; 313 314 315 /** 316 * Scale quality enums 317 */ 318 typedef enum OMX_SCALEQUALITY{ 319 OMX_DefaultScaling = 0, /** <default scaling if nothing is specified > */ 320 OMX_BetterScaling, /** <better scaling> */ 321 OMX_BestScaling, /** <best scaling> */ 322 OMX_AutoScalingQuality, /** <auto scaling quality> */ 323 OMX_FastScaling, /** <fast scaling, prioritizes speed> */ 324 OMX_ScaleQualityMax = 0x7fffffff 325 }OMX_SCALEQUALITY; 326 327 /** 328 * Scaling Quality Mode 329 */ 330 typedef enum OMX_SCALEQUALITYMODE{ 331 OMX_SingleFrameScalingMode = 0, /** <default > */ 332 OMX_MultiFrameScalingMode, /** <better scaling> */ 333 OMX_AutoScalingMode, /** <best scaling> */ 334 OMX_ScaleModeMax = 0x7fffffff 335 }OMX_SCALEQUALITYMODE; 336 337 /** 338 * Rescale quality control type 339 * 340 * STRUCT MEMBERS: 341 * nSize : Size of the structure in bytes 342 * nVersion : OMX specification version information 343 * eScaleQuality : controls the quality level. 344 * eScaleQualityMode : controls the scaling algo types 345 */ 346 typedef struct OMX_CONFIG_SCALEQUALITYTYPE { 347 OMX_U32 nSize; 348 OMX_VERSIONTYPE nVersion; 349 OMX_U32 nPortIndex; 350 OMX_SCALEQUALITY eScaleQuality; 351 OMX_SCALEQUALITYMODE eScaleQualityMode; 352 } OMX_CONFIG_SCALEQUALITYTYPE; 353 354 /** 355 * Smooth Zoom mode enum 356 * Starts or stops the Smooth Zoom. Selecting INCREASE will cause an increasing digital zoom factor (increased cropping), 357 * with a shrinking viewable area and crop height percentage. Selecting DECREASE will cause a decreasing digital zoom (decreased cropping), 358 * with a growing viewable area and crop height percentage. The CaptureCropHeight will continue to update based on the SmoothZoomRate until 359 * the SmoothZoomMin or SmoothZoomMax zoom step is reached, the framework minimum zoom step is reached, the SmoothZoomRate becomes 0, 360 * or the SmoothZoomMode is set to OFF. 361 * NOTE: The message payload includes all parts of the message that is NOT part of the message header as listed for the CAM_SEND_DATA message. 362 */ 363 typedef enum OMX_SMOOTHZOOMMODE{ 364 OMX_Off=0, /**< default OFF */ 365 OMX_Increase, 366 OMX_Decrease, 367 OMX_SmoothZoomModeMax = 0x7fffffff 368 }OMX_SMOOTHZOOMMODE; 369 370 371 /** 372 * Rescale quality control type 373 * 374 * STRUCT MEMBERS: 375 * nSize : Size of the structure in bytes 376 * nVersion : OMX specification version information 377 * eSmoothZoomMode : controls the smooth zoom feature. 378 * nSmoothZoomRate : Values from 0 to 65535 which represents percentage to increase per second, where 65535 = 100%, and 0 = 0%. 379 * nSmoothZoomQuantize: 380 * nSmoothZoomThresh 381 * nSmoothZoomMin 382 * nSmoothZoomMax 383 */ 384 typedef struct OMX_CONFIG_SMOOTHZOOMTYPE { 385 OMX_U32 nSize; 386 OMX_VERSIONTYPE nVersion; 387 OMX_U32 nPortIndex; 388 OMX_SMOOTHZOOMMODE eSmoothZoomMode; 389 OMX_U32 nSmoothZoomRate; 390 OMX_U32 nSmoothZoomQuantize; 391 OMX_U32 nSmoothZoomThresh; 392 OMX_U32 nSmoothZoomMin; 393 OMX_U32 nSmoothZoomMax; 394 } OMX_CONFIG_SMOOTHZOOMTYPE; 395 396 /** 397 * Enumeration of possible Extended image filter types for OMX_CONFIG_IMAGEFILTERTYPE 398 */ 399 typedef enum OMX_EXTIMAGEFILTERTYPE { 400 OMX_ImageFilterSepia = 0x7F000001, 401 OMX_ImageFilterGrayScale, 402 OMX_ImageFilterNatural, 403 OMX_ImageFilterVivid, 404 OMX_ImageFilterColourSwap, 405 OMX_ImageFilterOutOfFocus, 406 OMX_ImageFilterWaterColour, 407 OMX_ImageFilterPastel, 408 OMX_ImageFilterFilm, 409 OMX_TI_ImageFilterBlackWhite, 410 OMX_TI_ImageFilterWhiteBoard, 411 OMX_TI_ImageFilterBlackBoard, 412 OMX_TI_ImageFilterAqua, 413 OMX_TI_ImageFilterPosterize, 414 OMX_ImageFilterTypeMax = 0x7fffffff 415 } OMX_EXTIMAGEFILTERTYPE; 416 417 418 /** 419 * Image filter configuration extended 420 * 421 * STRUCT MEMBERS: 422 * nSize : Size of the structure in bytes 423 * nVersion : OMX specification version information 424 * nPortIndex : Port that this structure applies to 425 * bBlemish : Enable/Disable Blemish correction 426 */ 427 typedef struct OMX_CONFIG_BLEMISHTYPE { 428 OMX_U32 nSize; 429 OMX_VERSIONTYPE nVersion; 430 OMX_U32 nPortIndex; 431 OMX_BOOL bBlemish; 432 } OMX_CONFIG_BLEMISHTYPE; 433 434 /** 435 * Enumeration of Bracket types 436 * OMX_BracketExposureRelativeInEV: 437 * Exposure value is changed relative to the value set by automatic exposure. 438 * nBracketStartValue and nBracketStep are in Q16. Increment is additive. 439 * OMX_BracketExposureAbsoluteMs: 440 * Exposure value is changed in absolute value in ms. 441 * nBracketStartValue and nBracketStep are in Q16. Increment is multiplicative. 442 * OMX_BracketFocusRelative: 443 * Focus is adjusted relative to the focus set by auto focus. 444 * The value is S32 integer, and is the same as adjusting nFocusSteps of OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively. 445 * Increment is additive. 446 * OMX_BracketFocusAbsolute: 447 * Focus position is adjusted absolutely. It is the same as setting nFocusSteps of 448 * OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively for each captures. 449 * The value should be interpreted as U32 value. Increment is additive. 450 * OMX_BracketFlashPower: 451 * Power of flash is adjusted relative to the automatic level. Increment is multiplicative. 452 * OMX_BracketAperture: 453 * Aperture number relative to the automatic setting. Data in Q16 format. Increment is multiplicative. 454 * OMX_BracketTemporal: 455 * To suppport temporal bracketing. 456 */ 457 typedef enum OMX_BRACKETMODETYPE { 458 OMX_BracketExposureRelativeInEV = 0, 459 OMX_BracketExposureAbsoluteMs, 460 OMX_BracketFocusRelative, 461 OMX_BracketFocusAbsolute, 462 OMX_BracketFlashPower, 463 OMX_BracketAperture, 464 OMX_BracketTemporal, 465 OMX_BracketExposureGainAbsolute, 466 OMX_BracketVectorShot, 467 OMX_BrackerTypeKhronosExtensions = 0x6f000000, 468 OMX_BrackerTypeVendorStartUnused = 0x7f000000, 469 OMX_BracketTypeMax = 0x7FFFFFFF 470 } OMX_BRACKETMODETYPE; 471 472 typedef struct OMX_CONFIG_BRACKETINGTYPE { 473 OMX_U32 nSize; 474 OMX_VERSIONTYPE nVersion; 475 OMX_U32 nPortIndex; 476 OMX_BRACKETMODETYPE eBracketMode; 477 OMX_U32 nNbrBracketingValues; 478 OMX_S32 nBracketValues[10]; /**< 10 can be assumed */ 479 OMX_S32 nBracketValues2[10]; /**< 10 can be assumed */ 480 } OMX_CONFIG_BRACKETINGTYPE; 481 482 483 /** 484 * Capture mode types 485 * Note: this list could get extended modified based on the type of interenal use-case pipelines implemented within the camera component. 486 * 487 * OMX_CaptureImageHighSpeedBurst = 0, 488 * OMX_CaptureImageHighSpeedTemporalBracketing, 489 * OMX_CaptureImageProfileBase(Base): 490 * Base one almost same as Highspeed one. 491 * OMX_CaptureImageProfileLowLight1(LL1): 492 * Includes NSF2 in addition to Base processing 493 * OMX_CaptureImageProfileLowLight2(LL2): 494 * Includes NSF2 and LBCE in addition to Base processing. 495 * OMX_CaptureImageProfileOpticalCorr1(OC1): 496 * Includes LDC in addition to Base processing. 497 * OMX_CaptureImageProfileOpticalCorr2(OC2): 498 * Includes LDC and CAC in addition to Base processing. 499 * OMX_CaptureImageProfileExtended1(Ext1): 500 * Includes NSF2, LBCE, LDC, and CAC in addition to Base 501 * OMX_CaptureStereoImageCapture: 502 * Stereo image capture use-case. 503 * OMX_CaptureImageMemoryInput: 504 * need to take sensor input from INPUT port. 505 * OMX_CaptureVideo: 506 * OMX_CaptureHighSpeedVideo: 507 * OMX_CaptureVideoMemoryInput: 508 * 509 */ 510 typedef enum OMX_CAMOPERATINGMODETYPE { 511 OMX_CaptureImageHighSpeedBurst = 0, 512 OMX_CaptureImageHighSpeedTemporalBracketing, 513 OMX_CaptureImageProfileBase, 514 OMX_CaptureImageProfileLowLight1, 515 OMX_CaptureImageProfileLowLight2, 516 OMX_CaptureImageProfileOpticalCorr1, 517 OMX_CaptureImageProfileOpticalCorr2, 518 OMX_CaptureImageProfileExtended1, 519 OMX_CaptureStereoImageCapture, 520 OMX_CaptureImageMemoryInput, 521 OMX_CaptureVideo, 522 OMX_CaptureHighSpeedVideo, 523 OMX_CaptureVideoMemoryInput, 524 OMX_TI_CaptureDummy, 525 OMX_TI_CaptureGestureRecognition, 526 OMX_TI_CaptureImageProfileZeroShutterLag, 527 OMX_TI_SinglePreview, 528 OMX_TI_StereoGestureRecognition, 529 OMX_TI_CPCam, 530 OMX_TI_StereoVideo, 531 OMX_CaptureHighQualityVideo, 532 // Put new entries here so OMX_CamOperatingModeMax always points to 533 // the last one 534 OMX_TI_CamOperatingModeCount, 535 OMX_CamOperatingModeMax = OMX_TI_CamOperatingModeCount - 1, 536 OMX_CamOperatingMode = 0x7fffffff 537 } OMX_CAMOPERATINGMODETYPE; 538 539 /** 540 * Capture mode setting: applicable to multi shot capture also including bracketing. 541 * 542 * STRUCT MEMBERS: 543 * nSize : Size of the structure in bytes 544 * nVersion : OMX specification version information 545 * nPortIndex : Port that this structure applies to 546 * eCamOperatingMode : specifies the camera operating mode. 547 */ 548 typedef struct OMX_CONFIG_CAMOPERATINGMODETYPE { 549 OMX_U32 nSize; 550 OMX_VERSIONTYPE nVersion; 551 OMX_CAMOPERATINGMODETYPE eCamOperatingMode; 552 } OMX_CONFIG_CAMOPERATINGMODETYPE; 553 554 555 /** 556 * Capture mode setting: applicable to multi shot capture also including bracketing. 557 * 558 * STRUCT MEMBERS: 559 * nSize : Size of the structure in bytes 560 * nVersion : OMX specification version information 561 * nPortIndex : Port that this structure applies to 562 * nFrameRate : when bContinuous is FALSE, need to define the frame rate of the muti-shot scenario. Since this would be applicable to IMAGE domain port, there is no port specific frame rate. 563 * nFrameBefore : 564 * is specifying how many frames before the capture trigger shall be used. 565 * It is implementation dependent how many is supported. This shall only be supported for images and not for video frames. 566 * bPrepareCapture : 567 * should be set to true when nFrameBefore is greater than zero and before capturing of before-frames should start. 568 * The component is not allowed to deliver buffers until capturing starts. This shall only be supported for images and not for video frames. 569 * bEnableBracketing : 570 * should be enabled when bracketing is used. In bracketing mode, one parameter can be changed per each capture. 571 * tBracketConfigType : 572 * specifies bracket mode to use. Valid only when bEnableBracketing is set. 573 */ 574 typedef struct OMX_CONFIG_EXTCAPTUREMODETYPE { 575 OMX_U32 nSize; 576 OMX_VERSIONTYPE nVersion; 577 OMX_U32 nPortIndex; 578 OMX_U32 nFrameRate; 579 OMX_U32 nFrameBefore; 580 OMX_BOOL bPrepareCapture; 581 OMX_BOOL bEnableBracketing; 582 OMX_CONFIG_BRACKETINGTYPE tBracketConfigType; 583 } OMX_CONFIG_EXTCAPTUREMODETYPE; 584 585 /** 586 * For Extended Focus region Type - 587 */ 588 typedef struct OMX_CONFIG_EXTFOCUSREGIONTYPE { 589 OMX_U32 nSize; 590 OMX_VERSIONTYPE nVersion; 591 OMX_U32 nPortIndex; 592 OMX_U32 nRefPortIndex; 593 OMX_S32 nLeft; 594 OMX_S32 nTop; 595 OMX_U32 nWidth; 596 OMX_U32 nHeight; 597 } OMX_CONFIG_EXTFOCUSREGIONTYPE; 598 599 /** 600 * Digital Flash Control 601 * STRUCT MEMBERS: 602 * nSize : Size of the structure in bytes 603 * nVersion : OMX specification version information 604 * nPortIndex : Port that this structure applies to 605 * bDigitalFlash : Digital flash type Enable/Disable - 606 * Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings. 607 */ 608 typedef struct OMX_CONFIG_DIGITALFLASHTYPE { 609 OMX_U32 nSize; 610 OMX_VERSIONTYPE nVersion; 611 OMX_U32 nPortIndex; 612 OMX_BOOL bDigitalFlash; 613 } OMX_CONFIG_DIGITALFLASHTYPE; 614 615 616 617 /** 618 * Privacy Indicator Enable/Disable 619 * STRUCT MEMBERS: 620 * nSize : Size of the structure in bytes 621 * nVersion : OMX specification version information 622 * nPortIndex : Port that this structure applies to 623 * bPrivacyIndicator : 624 * Specifies whether the flash should be used to indicate image or video capture. When flash is not used for exposure, 625 * flash will be activated after exposure to indicate image capture. 626 * If video light is not used, the flash can be blinking or constant at low intensity to indicate capture but not affect exposure. 627 * Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings. 628 */ 629 typedef struct OMX_CONFIG_PRIVACYINDICATOR { 630 OMX_U32 nSize; 631 OMX_VERSIONTYPE nVersion; 632 OMX_U32 nPortIndex; 633 OMX_BOOL bPrivacyIndicator; 634 } OMX_CONFIG_PRIVACYINDICATOR; 635 636 637 /** 638 * Privacy Indicator Enable/Disable 639 * STRUCT MEMBERS: 640 * nSize : Size of the structure in bytes 641 * nVersion : OMX specification version information 642 * nPortIndex : Port that this structure applies to 643 * bTorchMode : 644 * Enable/Disable 645 * nIntensityLevel : relative intensity from 0 - 100 646 * nDuration : duration in msec 647 */ 648 typedef struct OMX_CONFIG_TORCHMODETYPE { 649 OMX_U32 nSize; 650 OMX_VERSIONTYPE nVersion; 651 OMX_U32 nPortIndex; 652 OMX_BOOL bTorchMode; 653 OMX_U32 nIntensityLevel; 654 OMX_U32 nDuration; 655 } OMX_CONFIG_TORCHMODETYPE; 656 657 658 659 /** 660 * Privacy Indicator Enable/Disable 661 * DISABLE - Fire the xenon flash in the usual manner 662 * ENABLE - Reduce the light intensity of the main flash (ex 1EV) 663 * 664 * STRUCT MEMBERS: 665 * nSize : Size of the structure in bytes 666 * nVersion : OMX specification version information 667 * nPortIndex : Port that this structure applies to 668 * bSlowSync : 669 * Enable - OMX_TRUE/Disable - OMX_FALSE 670 */ 671 typedef struct OMX_CONFIG_SLOWSYNCTYPE { 672 OMX_U32 nSize; 673 OMX_VERSIONTYPE nVersion; 674 OMX_U32 nPortIndex; 675 OMX_BOOL bSlowSync; 676 } OMX_CONFIG_SLOWSYNCTYPE; 677 678 679 /** 680 * Focus control extended enums. use this along with OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE 681 */ 682 typedef enum OMX_IMAGE_EXTFOCUSCONTROLTYPE { 683 OMX_IMAGE_FocusControlAutoMacro = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */ 684 OMX_IMAGE_FocusControlAutoInfinity, 685 OMX_IMAGE_FocusControlHyperfocal, 686 OMX_IMAGE_FocusControlPortrait, /**< from Xena */ 687 OMX_IMAGE_FocusControlExtended, /**< from Xena */ 688 OMX_IMAGE_FocusControlContinousNormal, /**< from Xena */ 689 OMX_IMAGE_FocusControlContinousExtended, /**< from Xena */ 690 OMX_IMAGE_FocusControlContinousFacePriority, 691 OMX_IMAGE_FocusControlContinousRegionPriority, 692 OMX_IMAGE_FocusControlContinousPicture, 693 OMX_IMAGE_FocusControlTypeMax = 0x7fffffff 694 } OMX_IMAGE_EXTFOCUSCONTROLTYPE; 695 696 697 698 /** 699 * Specifies whether the LED can be used to assist in autofocus, due to low lighting conditions. 700 * ENABLE means use as determined by the auto exposure algorithm. 701 * 702 * STRUCT MEMBERS: 703 * nSize : Size of the structure in bytes 704 * nVersion : OMX specification version information 705 * nPortIndex : Port that this structure applies to 706 * bFocusAssist : 707 * Enable - OMX_TRUE/Disable - OMX_FALSE 708 */ 709 typedef struct OMX_CONFIG_FOCUSASSISTTYPE { 710 OMX_U32 nSize; 711 OMX_VERSIONTYPE nVersion; 712 OMX_U32 nPortIndex; 713 OMX_BOOL bFocusAssist; 714 } OMX_CONFIG_FOCUSASSISTTYPE; 715 716 717 718 /** 719 *for locking the focus 720 * 721 * STRUCT MEMBERS: 722 * nSize : Size of the structure in bytes 723 * nVersion : OMX specification version information 724 * nPortIndex : Port that this structure applies to 725 * bFocusLock : 726 * Enable - OMX_TRUE/Disable - OMX_FALSE 727 */ 728 typedef struct OMX_CONFIG_FOCUSLOCKTYPE { 729 OMX_U32 nSize; 730 OMX_VERSIONTYPE nVersion; 731 OMX_U32 nPortIndex; 732 OMX_BOOL bFocusLock; 733 } OMX_CONFIG_FOCUSLOCKTYPE; 734 735 736 /** 737 *for locking the White balance 738 * 739 * STRUCT MEMBERS: 740 * nSize : Size of the structure in bytes 741 * nVersion : OMX specification version information 742 * nPortIndex : Port that this structure applies to 743 * bWhiteBalanceLock : 744 * Enable - OMX_TRUE/Disable - OMX_FALSE 745 */ 746 typedef struct OMX_CONFIG_WHITEBALANCELOCKTYPE { 747 OMX_U32 nSize; 748 OMX_VERSIONTYPE nVersion; 749 OMX_U32 nPortIndex; 750 OMX_BOOL bWhiteBalanceLock; 751 } OMX_CONFIG_WHITEBALANCELOCKTYPE; 752 753 /** 754 *for locking the Exposure 755 * 756 * STRUCT MEMBERS: 757 * nSize : Size of the structure in bytes 758 * nVersion : OMX specification version information 759 * nPortIndex : Port that this structure applies to 760 * bExposureLock : 761 * Enable - OMX_TRUE/Disable - OMX_FALSE 762 */ 763 typedef struct OMX_CONFIG_EXPOSURELOCKTYPE { 764 OMX_U32 nSize; 765 OMX_VERSIONTYPE nVersion; 766 OMX_U32 nPortIndex; 767 OMX_BOOL bExposureLock; 768 } OMX_CONFIG_EXPOSURELOCKTYPE; 769 770 /** 771 *for locking the Exposure 772 * Simultaneously lock focus, white balance and exposure (and relevant other settings). 773 * 774 * STRUCT MEMBERS: 775 * nSize : Size of the structure in bytes 776 * nVersion : OMX specification version information 777 * nPortIndex : Port that this structure applies to 778 * bAllLock : 779 * Enable - OMX_TRUE/Disable - OMX_FALSE 780 */ 781 typedef struct OMX_CONFIG_ALLLOCKTYPE { 782 OMX_U32 nSize; 783 OMX_VERSIONTYPE nVersion; 784 OMX_U32 nPortIndex; 785 OMX_BOOL bAllLock; 786 } OMX_CONFIG_ALLLOCKTYPE; 787 788 /** 789 *for locking 790 * Simultaneously lock focus, white balance and exposure (and relevant other settings). 791 * 792 * STRUCT MEMBERS: 793 * nSize : Size of the structure in bytes 794 * nVersion : OMX specification version information 795 * nPortIndex : Port that this structure applies to 796 * bLock : 797 * Enable - OMX_TRUE/Disable - OMX_FALSE 798 * bAtCapture: 799 * 800 */ 801 typedef struct OMX_IMAGE_CONFIG_LOCKTYPE { 802 OMX_U32 nSize; 803 OMX_VERSIONTYPE nVersion; 804 OMX_U32 nPortIndex; 805 OMX_BOOL bLock; 806 OMX_BOOL bAtCapture; 807 } OMX_IMAGE_CONFIG_LOCKTYPE; 808 809 /** 810 * processig level types enum 811 */ 812 typedef enum OMX_PROCESSINGLEVEL{ 813 OMX_Min = 0, 814 OMX_Low, 815 OMX_Medium, 816 OMX_High, 817 OMX_Max, 818 OMX_ProcessingLevelMax = 0x7fffffff 819 }OMX_PROCESSINGLEVEL; 820 821 /** 822 *processing level type 823 * Simultaneously lock focus, white balance and exposure (and relevant other settings). 824 * 825 * STRUCT MEMBERS: 826 * nSize : Size of the structure in bytes 827 * nVersion : OMX specification version information 828 * nPortIndex : Port that this structure applies to 829 * nLevel : 830 * nLevel hinting processing amount. Range of values is -100 to 100. 831 * 0 causes no change to the image. Increased values cause increased processing to occur, with 100 applying maximum processing. 832 * Negative values have the opposite effect of positive values. 833 * bAuto: 834 * sets if the processing should be applied according to input data. 835 It is allowed to combine the hint level with the auto setting, 836 * i.e. to give a bias to the automatic setting. When set to false, the processing should not take input data into account. 837 */ 838 839 typedef struct OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE { 840 OMX_U32 nSize; 841 OMX_VERSIONTYPE nVersion; 842 OMX_U32 nPortIndex; 843 OMX_S32 nLevel; 844 OMX_BOOL bAuto; 845 } OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE; 846 847 848 /** 849 * White Balance control type extended enums - to be used along with the structure @OMX_CONFIG_WHITEBALCONTROLTYPE 850 * 851 * 852 * 853 */ 854 typedef enum OMX_EXTWHITEBALCONTROLTYPE { 855 OMX_WhiteBalControlFacePriorityMode = OMX_WhiteBalControlVendorStartUnused + 1, /**< */ 856 OMX_TI_WhiteBalControlSunset, 857 OMX_TI_WhiteBalControlShade, 858 OMX_TI_WhiteBalControlTwilight, 859 OMX_TI_WhiteBalControlWarmFluorescent, 860 OMX_TI_WhiteBalControlMax = 0x7fffffff 861 } OMX_EXTWHITEBALCONTROLTYPE; 862 863 /** 864 *white balance gain type 865 * xWhiteBalanceGain and xWhiteBalanceOffset represents gain and offset for R, Gr, Gb, B channels respectively in Q16 format. \ 866 * For example, new red pixel value = xWhiteBalanceGain[1]* the current pixel value + xWhiteBalanceOffset[1]. 867 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 868 * nWhiteThreshhold represents thresholds for "white" area measurments in Q16 format. 869 * 870 * STRUCT MEMBERS: 871 * nSize : Size of the structure in bytes 872 * nVersion : OMX specification version information 873 * nPortIndex : Port that this structure applies to 874 * 875 */ 876 typedef struct OMX_CONFIG_WHITEBALGAINTYPE { 877 OMX_U32 nSize; 878 OMX_VERSIONTYPE nVersion; 879 OMX_U32 nPortIndex; 880 OMX_S32 xWhiteBalanceGain[4]; 881 OMX_S32 xWhiteBalanceOffset[4]; 882 OMX_S32 nWhiteThreshhold[4]; 883 } OMX_CONFIG_WHITEBALGAINTYPE; 884 885 /** 886 * This structure represents linear color conversion from one space to another. For example, to conversion from one RGB color into another RGB color space can be represented as 887 * R' = xColorMatrix[1][1]*R + xColorMatrix[1][2]*G + xColorMatrix[1][3]*B + xColorOffset[1] 888 * G' = xColorMatrix[2][1]*R + xColorMatrix[2][2]*G + xColorMatrix[2][3]*B + xColorOffset[2] 889 * B' = xColorMatrix[3][1]*R + xColorMatrix[3][2]*G + xColorMatrix[3][3]*B + xColorOffset[3] 890 * Both xColorMatrix and xColorOffset are represented as Q16 value. 891 * bFullColorRange represents represents whether valid range of color is 0 to 255 (when set to TRUE) or 16 to 235 (for FALSE). 892 * Again all values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 893 * 894 * 895 * STRUCT MEMBERS: 896 * nSize : Size of the structure in bytes 897 * nVersion : OMX specification version information 898 * nPortIndex : Port that this structure applies to 899 * 900 */ 901 typedef struct OMX_CONFIG_EXT_COLORCONVERSIONTYPE { 902 OMX_U32 nSize; 903 OMX_VERSIONTYPE nVersion; 904 OMX_U32 nPortIndex; 905 OMX_S32 xColorMatrix[3][3]; 906 OMX_S32 xColorOffset[3]; 907 OMX_BOOL bFullColorRange; 908 }OMX_CONFIG_EXT_COLORCONVERSIONTYPE; 909 910 911 /** 912 * xGamma represents lool-up table for gamma correction in Q16 format. 913 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 914 * 915 * 916 * 917 * STRUCT MEMBERS: 918 * nSize : Size of the structure in bytes 919 * nVersion : OMX specification version information 920 * nPortIndex : Port that this structure applies to 921 * 922 */ 923 typedef struct OMX_CONFIG_GAMMATABLETYPE { 924 OMX_U32 nSize; 925 OMX_VERSIONTYPE nVersion; 926 OMX_U32 nPortIndex; 927 OMX_U32 xGamma[3][256]; 928 }OMX_CONFIG_GAMMATABLETYPE; 929 930 931 932 /** 933 * processig types 934 */ 935 typedef enum OMX_PROCESSINGTYPE{ 936 OMX_BloomingReduction = 0, 937 OMX_Denoise, 938 OMX_Sharpening, 939 OMX_Deblurring, 940 OMX_Demosaicing, 941 OMX_ContrastEnhancement, 942 OMX_ProcessingTypeMax = 0x7fffffff 943 }OMX_PROCESSINGTYPE; 944 945 946 typedef struct OMX_CONFIGPROCESSINGORDERTYPE { 947 OMX_U32 nSize; /**< Size of the structure in bytes */ 948 OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ 949 OMX_U32 nPortIndex; /**< Port that this struct applies to */ 950 OMX_U32 nIndex; 951 OMX_PROCESSINGTYPE eProc; 952 } OMX_CONFIGPROCESSINGORDERTYPE; 953 954 /** 955 * HIST TYPE 956 */ 957 typedef enum OMX_HISTTYPE{ 958 OMX_HistControlLuminance = 0, /**< Luminance histogram is calculated (Y)*/ 959 OMX_HistControlColorComponents, /**< A histogram per color component (R, G, B) is calculated*/ 960 OMX_HistControlChrominanceComponents, /**< A histogram per chrominance component (Cb, Cr) is calculated.*/ 961 OMX_HistControl_32BIT_PATCH = 0x7FFFFFFF 962 }OMX_HISTTYPE; 963 964 /** 965 * Histogram Setting 966 * nPortIndex is an output port. The port index decides on which port the extra data structur is sent on. 967 * bFrameLimited is a Boolean used to indicate if measurement shall be terminated after the specified number of 968 * frames if true frame limited measurement is enabled; otherwise the port does not terminate measurement until 969 * instructed to do so by the client. 970 * nFrameLimit is the limit on number of frames measured, this parameter is only valid if bFrameLimited is enabled. 971 * bMeasure is a Boolean that should be set to true when measurement shall begin, otherwise set to false. Query will give status information on if measurement is ongoing or not. 972 * nBins specifies the number of histogram bins. When queried with set to zero, the respons gives the maximum number of bins allowed. 973 * nLeft is the leftmost coordinate of the measurement area rectangle. 974 * nTop is the topmost coordinate of the measurement area rectangle. 975 * nWidth is the width of the measurement area rectangle in pixels. 976 * nHeight is the height of the measurement area rectangle in pixels. 977 * eHistType is an enumeration specifying the histogram type 978 * 979 * 980 */ 981 982 typedef struct OMX_CONFIG_HISTOGRAMTYPE { 983 OMX_U32 nSize; 984 OMX_VERSIONTYPE nVersion; 985 OMX_U32 nPortIndex; 986 OMX_BOOL bFrameLimited; 987 OMX_U32 nFrameLimit; 988 OMX_BOOL bMeasure; 989 OMX_U32 nBins; 990 OMX_S32 nLeft; 991 OMX_S32 nTop; 992 OMX_U32 nWidth; 993 OMX_U32 nHeight; 994 OMX_HISTTYPE eHistType; 995 } OMX_CONFIG_HISTOGRAMTYPE; 996 997 /** 998 * OMX_HISTCOMPONENTTYPE Enumerated Value 999 */ 1000 typedef enum OMX_HISTCOMPONENTTYPE{ 1001 OMX_HISTCOMP_Y = 0, /**< Luminance histogram (Y) */ 1002 OMX_HISTCOMP_YLOG, /**< Logarithmic luminance histogram (Y)*/ 1003 OMX_HISTCOMP_R, /**< Red histogram component (R)*/ 1004 OMX_HISTCOMP_G, /**< Green histogram component (G)*/ 1005 OMX_HISTCOMP_B, /**< Blue histogram component (B)*/ 1006 OMX_HISTCOMP_Cb, /**< Chroma blue histogram component (Cb)*/ 1007 OMX_HISTCOMP_Cr, /**< Chroma red histogram component (Cr) */ 1008 OMX_HISTCOMP_32BIT_PATCH = 0x7FFFFFFF 1009 }OMX_HISTCOMPONENTTYPE; 1010 1011 /** 1012 * The OMX_TI_CAMERAVIEWTYPE enumeration is used to identify the 1013 * particular camera view and frame type that the rest of 1014 * the data in the structure is associated with. 1015 */ 1016 typedef enum OMX_TI_CAMERAVIEWTYPE { 1017 OMX_2D_Prv, /**< Camera view in 2D for preview */ 1018 OMX_2D_Snap, /**< Camera view in 2D for snapshot */ 1019 OMX_2D_Cap, /**< Camera view in 2D for capture */ 1020 OMX_3D_Left_Prv, /**< Left camera view in 3D for preview */ 1021 OMX_3D_Left_Snap, /**< Left camera view in 3D for snapshot */ 1022 OMX_3D_Left_Cap, /**< Left camera view in 3D for capture */ 1023 OMX_3D_Right_Prv, /**< Right camera view in 3D for preview */ 1024 OMX_3D_Right_Snap, /**< Right camera view in 3D for snapshot */ 1025 OMX_3D_Right_Cap, /**< Right camera view in 3D for capture */ 1026 OMX_TI_CAMERAVIEWTYPE_32BIT_PATCH = 0x7FFFFFFF 1027 } OMX_TI_CAMERAVIEWTYPE; 1028 1029 #define OMX_OTHER_EXTRADATATYPE_SIZE ((OMX_U32)(((OMX_OTHER_EXTRADATATYPE *)0x0)->data)) /**< Size of OMX_OTHER_EXTRADATATYPE 1030 without Data[1] and without padding */ 1031 1032 /** 1033 * The extra data having DCC data is described with the following structure. 1034 * This data contains single flags and values 1035 * (not arrays) that have general usage for camera applications. 1036 */ 1037 typedef struct OMX_TI_DCCDATATYPE { 1038 OMX_U32 nSize; 1039 OMX_VERSIONTYPE nVersion; 1040 OMX_U32 nPortIndex; 1041 OMX_TI_CAMERAVIEWTYPE eCameraView; 1042 OMX_U32 nCameraModuleId; 1043 OMX_U32 nDccDescriptorId; 1044 OMX_U32 nAlgorithmVendorId; 1045 OMX_U32 nUseCaseId; 1046 OMX_U32 nOffset; 1047 OMX_PTR pData; 1048 } OMX_TI_DCCDATATYPE; 1049 /** 1050 * The extra data type to feed the camera re-processing function 1051 */ 1052 typedef struct OMX_TI_CAMREPROCMETATYPE { 1053 OMX_U32 nExpTime; 1054 OMX_U32 nGain; 1055 } OMX_TI_CAMREPROCMETATYPE; 1056 1057 /** 1058 * The extra data vector shot feedback info 1059 * nConfigId : Same id that cames with 1060 * OMX_TI_CONFIG_ENQUEUESHOTCONFIGS::nShotConfig[x].nConfigId 1061 * for particular shot config. 1062 * nFrameNum : Frame number in vect shot repeat sequence. 1063 * Starts from 1 for every shot config. 1064 * 1065 * nExpMin : The exposure time lower limit,[us] 1066 * nExpMax : The exposure time upper limit,[us] 1067 * nGainMin : The analog gain lower limit,[0,01EV] 1068 * nGainMax : The analog gain upper limit,[0,01EV] 1069 * 1070 * nReqEC : Requested total exposure compensation 1071 * nReqExpTime : Requested exposure time 1072 * nReqGain : Requested gain 1073 * 1074 * nExpTime : Exposure time of this frame. 1075 * nAGain : Analog gain of this frame. 1076 * 1077 * nSenExpTimeErr : Exposure time error in us. 1078 * If the requested exposure time is ExpReq 1079 * and the one produced by the sensor is nExpTime then: 1080 * nExpTimeErr = nExpTime - ExpReq. 1081 * nSenAGainErr: Analog gain error as multiplier (in Q8 format). 1082 * 1083 * nDevEV : The total exposure deviation,[us] 1084 * nDevExpTime : The exposure time deviation after flicker reduction,[us] 1085 * nDevAGain : The analog gain deviation after flicker reduction,[0,01EV] 1086 */ 1087 typedef struct OMX_TI_VECTSHOTINFOTYPE { 1088 OMX_U32 nConfigId; 1089 OMX_U32 nFrameNum; 1090 OMX_U32 nExpMin; 1091 OMX_U32 nExpMax; 1092 OMX_U32 nGainMin; 1093 OMX_U32 nGainMax; 1094 OMX_S32 nReqEC; 1095 OMX_S32 nReqExpTime; 1096 OMX_S32 nReqGain; 1097 OMX_U32 nExpTime; 1098 OMX_U32 nAGain; 1099 OMX_S32 nSenExpTimeErr; 1100 OMX_U32 nSenAGainErr; 1101 OMX_S32 nDevEV; 1102 OMX_S32 nDevExpTime; 1103 OMX_S32 nDevAGain; 1104 } OMX_TI_VECTSHOTINFOTYPE; 1105 1106 /* 1107 * LSC gain table size 1108 */ 1109 #define OMX_TI_LSC_GAIN_TABLE_SIZE (80 * 1024) 1110 1111 /** 1112 * Possible LSC table gain formats 1113 */ 1114 typedef enum OMX_TI_LSC_GAIN_FORMAT_TYPE { 1115 OMX_TI_LSC_GAIN_FORMAT_0Q8, 1116 OMX_TI_LSC_GAIN_FORMAT_0Q8_PLUS_1, 1117 OMX_TI_LSC_GAIN_FORMAT_1Q7, 1118 OMX_TI_LSC_GAIN_FORMAT_1Q7_PLUS_1, 1119 OMX_TI_LSC_GAIN_FORMAT_2Q6, 1120 OMX_TI_LSC_GAIN_FORMAT_2Q6_PLUS_1, 1121 OMX_TI_LSC_GAIN_FORMAT_3Q5, 1122 OMX_TI_LSC_GAIN_FORMAT_3Q5_PLUS_1, 1123 OMX_TI_LSC_GAIN_FORMAT = 0x7FFFFFFF 1124 } OMX_TI_LSC_GAIN_FORMAT_TYPE; 1125 1126 /** 1127 * The extra data for LSC table 1128 * bApplied : If true the table is applied to the frame. 1129 * eGainFormat : Paxel format 1130 * nWidth : LSC table width in paxels 1131 * nHeight : LSC table height in paxels 1132 * pGainTable : LSC gain table 1133 */ 1134 typedef struct OMX_TI_LSCTABLETYPE { 1135 OMX_BOOL bApplied; 1136 OMX_TI_LSC_GAIN_FORMAT_TYPE eGainFormat; 1137 OMX_U32 nWidth; 1138 OMX_U32 nHeight; 1139 OMX_U8 pGainTable[OMX_TI_LSC_GAIN_TABLE_SIZE]; 1140 } OMX_TI_LSCTABLETYPE; 1141 1142 /** 1143 * The extra data having ancillary data is described with the following structure. 1144 * This data contains single flags and values 1145 * (not arrays) that have general usage for camera applications. 1146 */ 1147 typedef struct OMX_TI_ANCILLARYDATATYPE { 1148 OMX_U32 nSize; 1149 OMX_VERSIONTYPE nVersion; 1150 OMX_U32 nPortIndex; 1151 OMX_TI_CAMERAVIEWTYPE eCameraView; 1152 OMX_U32 nAncillaryDataVersion; 1153 OMX_U32 nFrameNumber; 1154 OMX_U32 nShotNumber; 1155 OMX_U16 nInputImageHeight; 1156 OMX_U16 nInputImageWidth; 1157 OMX_U16 nOutputImageHeight; 1158 OMX_U16 nOutputImageWidth; 1159 OMX_U16 nDigitalZoomFactor; 1160 OMX_S16 nCropCenterColumn; 1161 OMX_S16 nCropCenterRow; 1162 OMX_U16 nOpticalZoomValue; 1163 OMX_U8 nFlashConfiguration; 1164 OMX_U8 nFlashUsage; 1165 OMX_U32 nFlashStatus; 1166 OMX_U8 nAFStatus; 1167 OMX_U8 nAWBStatus; 1168 OMX_U8 nAEStatus; 1169 OMX_U32 nExposureTime; 1170 OMX_U16 nEVCompensation; 1171 OMX_U8 nDigitalGainValue; 1172 OMX_U8 nAnalogGainValue; 1173 OMX_U16 nCurrentISO; 1174 OMX_U16 nReferenceISO; 1175 OMX_U8 nApertureValue; 1176 OMX_U8 nPixelRange; 1177 OMX_U16 nPixelAspectRatio; 1178 OMX_U8 nCameraShake; 1179 OMX_U16 nFocalDistance; 1180 OMX_U64 nParameterChangeFlags; 1181 OMX_U8 nNumFacesDetected; 1182 OMX_U8 nConvergenceMode; 1183 OMX_U8 nConvergenceStatus; 1184 OMX_U8 nDCCStatus; 1185 } OMX_TI_ANCILLARYDATATYPE; 1186 1187 /** 1188 * White Balance Results data 1189 * The extra data having white balance results data is 1190 * described with the following structure.. 1191 */ 1192 typedef struct OMX_TI_WHITEBALANCERESULTTYPE { 1193 OMX_U32 nSize; /**< Size */ 1194 OMX_VERSIONTYPE nVersion; /**< Version */ 1195 OMX_U32 nPortIndex; /**< Port Index */ 1196 OMX_TI_CAMERAVIEWTYPE eCameraView; 1197 OMX_U16 nColorTemperature; /**< White Balance Color Temperature in Kelvins */ 1198 OMX_U16 nGainR; /**< Bayer applied R color channel gain in (U13Q9) */ 1199 OMX_U16 nGainGR; /**< Bayer applied Gr color channel gain in (U13Q9) */ 1200 OMX_U16 nGainGB; /**< Bayer applied Gb color channel gain in (U13Q9) */ 1201 OMX_U16 nGainB; /**< Bayer applied B color channel gain in (U13Q9) */ 1202 OMX_S16 nOffsetR; /**< Bayer applied R color channel offset */ 1203 OMX_S16 nOffsetGR; /**< Bayer applied Gr color channel offset */ 1204 OMX_S16 nOffsetGB; /**< Bayer applied Gb color channel offset */ 1205 OMX_S16 nOffsetB; /**< Bayer applied B color channel offset */ 1206 } OMX_TI_WHITEBALANCERESULTTYPE; 1207 1208 /** 1209 * Unsaturated Regions data 1210 * The extra data having unsaturated regions data is 1211 * described with the following structure.. 1212 */ 1213 typedef struct OMX_TI_UNSATURATEDREGIONSTYPE { 1214 OMX_U32 nSize; /**< Size */ 1215 OMX_VERSIONTYPE nVersion; /**< Version */ 1216 OMX_U32 nPortIndex; /**< Port Index */ 1217 OMX_U16 nPaxelsX; /**< The number of paxels in the horizontal direction */ 1218 OMX_U16 nPaxelsY; /**< The number of paxels in the vertical direction */ 1219 OMX_U16 data[1]; /**< the first value of an array of values that represent 1220 the percentage of unsaturated pixels within the associated paxel */ 1221 } OMX_TI_UNSATURATEDREGIONSTYPE; 1222 1223 /** 1224 * OMX_BARCODETYPE 1225 */ 1226 typedef enum OMX_BARCODETYPE { 1227 OMX_BARCODE1D = 0, /**< 1D barcode */ 1228 OMX_BARCODE2D, /**< 2D barcode */ 1229 OMX_BarcodeMax = 0x7fffffff 1230 }OMX_BARCODETYPE; 1231 /** 1232 * Brcode detection data 1233 * nLeft is the leftmost coordinate of the detected area rectangle. 1234 * nTop is the topmost coordinate of the detected area rectangle. 1235 * nWidth is the width of the detected area rectangle in pixels. 1236 * nHeight is the height of the detected area rectangle in pixels. 1237 * nOrientation is the orientation of the axis of the detected object. This refers to the angle between the vertical axis of barcode and the horizontal axis. 1238 * eBarcodetype is an enumeration specifying the barcode type, as listed in the given table. 1239 */ 1240 typedef struct OMX_BARCODEDETECTIONTYPE { 1241 OMX_U32 nSize; 1242 OMX_VERSIONTYPE nVersion; 1243 OMX_U32 nPortIndex; 1244 OMX_TI_CAMERAVIEWTYPE eCameraView; 1245 OMX_S32 nLeft; /**< The leftmost coordinate of the detected area rectangle */ 1246 OMX_S32 nTop; /**< Topmost coordinate of the detected area rectangle */ 1247 OMX_U32 nWidth; /**< The width of the detected area rectangle in pixels */ 1248 OMX_U32 nHeight; /**< The height of the detected area rectangle in pixels */ 1249 OMX_S32 nOrientation; /**< The orientation of the axis of the detected object. 1250 This refers to the angle between the vertical axis of barcode and the horizontal axis */ 1251 OMX_BARCODETYPE eBarcodetype; /**< An enumeration specifying the barcode type, as listed in the given table */ 1252 } OMX_BARCODEDETECTIONTYPE; 1253 1254 /** 1255 * Front object detection data 1256 * nLeft is the leftmost coordinate of the detected area rectangle. 1257 * nTop is the topmost coordinate of the detected area rectangle. 1258 * nWidth is the width of the detected area rectangle in pixels. 1259 * nHeight is the height of the detected area rectangle in pixels. 1260 */ 1261 typedef struct OMX_FRONTOBJDETECTIONTYPE { 1262 OMX_U32 nSize; 1263 OMX_VERSIONTYPE nVersion; 1264 OMX_U32 nPortIndex; 1265 OMX_TI_CAMERAVIEWTYPE eCameraView; 1266 OMX_S32 nLeft; /**< The leftmost coordinate of the detected area rectangle */ 1267 OMX_S32 nTop; /**< The topmost coordinate of the detected area rectangle */ 1268 OMX_U32 nWidth; /**< The width of the detected area rectangle in pixels */ 1269 OMX_U32 nHeight; /**< The height of the detected area rectangle in pixels */ 1270 } OMX_FRONTOBJDETECTIONTYPE; 1271 1272 /** 1273 * Distance estimation data 1274 * nDistance is the estimated distance to the object in millimeters. 1275 * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown. 1276 */ 1277 typedef struct OMX_DISTANCEESTIMATIONTYPE { 1278 OMX_U32 nSize; 1279 OMX_VERSIONTYPE nVersion; 1280 OMX_U32 nPortIndex; 1281 OMX_TI_CAMERAVIEWTYPE eCameraView; 1282 OMX_U32 nDistance; /**< Estimated distance to the object in millimeters */ 1283 OMX_U32 nLargestDiscrepancy; /**< the estimated largest discrepancy of the distance to the object in millimeters. 1284 When equal to MAX_INT the discrepancy is unknown */ 1285 } OMX_DISTANCEESTIMATIONTYPE; 1286 1287 /** 1288 * Distance estimation data 1289 * nDistance is the estimated distance to the object in millimeters. 1290 * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown. 1291 */ 1292 1293 typedef struct OMX_MOTIONESTIMATIONTYPE { 1294 OMX_U32 nSize; 1295 OMX_VERSIONTYPE nVersion; 1296 OMX_U32 nPortIndex; 1297 OMX_TI_CAMERAVIEWTYPE eCameraView; 1298 OMX_S32 nPanX; /**< The detected translation in horizontal direction. 1299 The value is represented as pixels in Q16-format */ 1300 OMX_S32 nPanY; /**< The detected translation in vertical direction. 1301 The value is represented as pixels in Q16-format */ 1302 } OMX_MOTIONESTIMATIONTYPE; 1303 1304 1305 /** 1306 * Focus region data 1307 * nRefPortIndex is the port the image frame size is defined on. This image frame size is used as reference for the focus region rectangle. 1308 * nLeft is the leftmost coordinate of the focus region rectangle. 1309 * nTop is the topmost coordinate of the focus region rectangle. 1310 * nWidth is the width of the focus region rectangle in pixels. 1311 * nHeight is the height of the focus region rectangle in pixels. 1312 * 1313 */ 1314 typedef struct OMX_FOCUSREGIONTYPE { 1315 OMX_U32 nSize; 1316 OMX_VERSIONTYPE nVersion; 1317 OMX_U32 nPortIndex; 1318 OMX_TI_CAMERAVIEWTYPE eCameraView; 1319 OMX_U32 nRefPortIndex; /**< The port the image frame size is defined on. 1320 This image frame size is used as reference for the focus region rectangle */ 1321 OMX_S32 nLeft; /**< The leftmost coordinate of the focus region rectangle */ 1322 OMX_S32 nTop; /**< The topmost coordinate of the focus region rectangle */ 1323 OMX_U32 nWidth; /**< The width of the focus region rectangle in pixels */ 1324 OMX_U32 nHeight; /**< The height of the focus region rectangle in pixels */ 1325 } OMX_FOCUSREGIONTYPE; 1326 1327 /** 1328 * OMX_ISOSETTINGTYPE: specifies its auto or manual setting 1329 * 1330 */ 1331 typedef enum OMX_ISOSETTINGTYPE{ 1332 OMX_Auto = 0, /**< */ 1333 OMX_IsoManual, /**< */ 1334 OMX_IsoSettingMax = 0x7fffffff 1335 }OMX_ISOSETTINGTYPE; 1336 1337 /** 1338 * nSize is the size of the structure including the length of data field containing 1339 * the histogram data. 1340 * eISOMode: 1341 * specifies the ISO seetting mode - auto/manual 1342 * nISOSetting: 1343 * for manual mode client can specify the ISO setting. 1344 */ 1345 1346 typedef struct OMX_CONFIG_ISOSETTINGTYPE{ 1347 OMX_U32 nSize; 1348 OMX_VERSIONTYPE nVersion; 1349 OMX_U32 nPortIndex; 1350 OMX_ISOSETTINGTYPE eISOMode; 1351 OMX_U32 nISOSetting; 1352 }OMX_CONFIG_ISOSETTINGTYPE; 1353 1354 /** 1355 * custom RAW format 1356 */ 1357 typedef struct OMX_CONFIG_RAWFORMATTYPE { 1358 OMX_U32 nSize; 1359 OMX_VERSIONTYPE nVersion; 1360 OMX_U32 nPortIndex; 1361 OMX_VERSIONTYPE nFormatVersion; 1362 OMX_STRING cVendorName; 1363 } OMX_CONFIG_RAWFORMATTYPE; 1364 1365 /** 1366 * Sensor type 1367 */ 1368 typedef struct OMX_CONFIG_SENSORTYPE { 1369 OMX_U32 nSize; 1370 OMX_VERSIONTYPE nVersion; 1371 OMX_U32 nPortIndex; 1372 OMX_VERSIONTYPE nSensorVersion; 1373 OMX_STRING cModelName; 1374 } OMX_CONFIG_SENSORTYPE; 1375 1376 /** 1377 * Sensor Detect 1378 */ 1379 typedef struct OMX_TI_PARAM_SENSORDETECT { 1380 OMX_U32 nSize; 1381 OMX_VERSIONTYPE nVersion; 1382 OMX_U32 nPortIndex; 1383 OMX_BOOL bSensorDetect; 1384 } OMX_TI_PARAM_SENSORDETECT; 1385 1386 /** 1387 * OMX_BAYERCOMPRESSION 1388 * 1389 */ 1390 typedef enum OMX_BAYERCOMPRESSION { 1391 OMX_BAYER_UNPACKED, 1392 OMX_BAYER_PACKED10, 1393 OMX_BAYER_ALAW, 1394 OMX_BAYER_DPCM, 1395 OMX_BAYER_MAX = 0x7FFFFFFF 1396 } OMX_BAYERCOMPRESSION; 1397 1398 /** 1399 * Sensor Detect 1400 */ 1401 typedef struct OMX_TI_PARAM_BAYERCOMPRESSION { 1402 OMX_U32 nSize; 1403 OMX_VERSIONTYPE nVersion; 1404 OMX_U32 nPortIndex; 1405 OMX_BAYERCOMPRESSION eBayerCompression; 1406 } OMX_TI_PARAM_BAYERCOMPRESSION; 1407 1408 /** 1409 * Sensor custom data type 1410 */ 1411 typedef struct OMX_CONFIG_SENSORCUSTOMDATATYPE { 1412 OMX_U32 nSize; 1413 OMX_VERSIONTYPE nVersion; 1414 OMX_U32 nPortIndex; 1415 OMX_U32 nDataLength; 1416 OMX_U8 xSensorData[1]; 1417 } OMX_CONFIG_SENSORCUSTOMDATATYPE; 1418 1419 /** 1420 * OMX_OBJDETECTQUALITY 1421 * 1422 */ 1423 typedef enum OMX_OBJDETECTQUALITY{ 1424 OMX_FastDetection = 0, /**< A detection that prioritizes speed*/ 1425 OMX_Default, /**< The default detection, should be used when no control of the detection quality is given.*/ 1426 OMX_BetterDetection, /**< A detection that levels correct detection with speed*/ 1427 OMX_BestDtection, /**< A detection that prioritizes correct detection*/ 1428 OMX_AUTODETECTION, /**< Automatically decide which object detection quality is best.*/ 1429 OMX_ObjDetectQualityMax = 0x7fffffff 1430 }OMX_OBJDETECTQUALITY; 1431 1432 /** 1433 * OBJECT DETECTION Type 1434 * nPortIndex: is an output port. The port index decides on which port the extra data structur of detected object is sent on. 1435 * bEnable : this controls ON/OFF for this object detection algirithm. 1436 * bFrameLimited: is a Boolean used to indicate if detection shall be terminated after the specified number of frames if 1437 * true frame limited detection is enabled; otherwise the port does not terminate detection until instructed to do so by the client. 1438 * nFrameLimit: is the limit on number of frames detection is executed for, this parameter is only valid if bFrameLimited is enabled. 1439 * nMaxNbrObjects: specifies the maximum number of objects that should be found in each frame. It is implementation dependent which objects are found. 1440 * nLeft: is the leftmost coordinate of the detection area rectangle. 1441 * nTop: is the topmost coordinate of the detection area rectangle. 1442 * nWidth: is the width of the detection area rectangle in pixels. 1443 * nHeight: is the height of the detection area rectangle in pixels. 1444 * eObjDetectQuality: is an enumeration specifying the quality desired by the detection. 1445 * nPriority: represents priority of each object when there are multiple objects detected. 1446 */ 1447 1448 typedef struct OMX_CONFIG_OBJDETECTIONTYPE { 1449 OMX_U32 nSize; 1450 OMX_VERSIONTYPE nVersion; 1451 OMX_U32 nPortIndex; 1452 OMX_BOOL bEnable; 1453 OMX_BOOL bFrameLimited; 1454 OMX_U32 nFrameLimit; 1455 OMX_U32 nMaxNbrObjects; 1456 OMX_S32 nLeft; 1457 OMX_S32 nTop; 1458 OMX_U32 nWidth; 1459 OMX_U32 nHeight; 1460 OMX_OBJDETECTQUALITY eObjDetectQuality; 1461 OMX_U32 nPriority; 1462 OMX_U32 nDeviceOrientation; 1463 } OMX_CONFIG_OBJDETECTIONTYPE; 1464 1465 1466 /** 1467 * OMX_OBJDETECTQUALITY 1468 * 1469 */ 1470 typedef enum OMX_DISTTYPE{ 1471 OMX_DistanceControlFocus = 0, /**< focus objects distance type*/ 1472 OMX_DISTANCECONTROL_RECT, /**< Evaluated distance to the object found in the rectangelar area indicated as input region. */ 1473 OMX_DistTypeMax = 0x7fffffff 1474 }OMX_DISTTYPE; 1475 1476 1477 /** 1478 * Distance mesurement 1479 * bStarted is a Boolean. The IL client sets it to true to start the measurement . 1480 * the IL client sets to false to stop the measurement. The IL client can query it to check if the measurement is ongoing. 1481 * nLeft : is the leftmost coordinate of the rectangle. 1482 * nTop : is the topmost coordinate of the rectangle. 1483 * nWidth: is the width of the rectangle in pixels. 1484 * nHeight: is the height of the rectangle in pixels. 1485 * eDistType: is an enumeration specifying the distance measurement type, as shown in 1486 */ 1487 typedef struct OMX_CONFIG_DISTANCETYPE { 1488 OMX_U32 nSize; 1489 OMX_VERSIONTYPE nVersion; 1490 OMX_U32 nPortIndex; 1491 OMX_BOOL bStarted; 1492 OMX_S32 nLeft; 1493 OMX_S32 nTop; 1494 OMX_U32 nWidth; 1495 OMX_U32 nHeight; 1496 OMX_DISTTYPE eDistType; 1497 } OMX_CONFIG_DISTANCETYPE; 1498 1499 1500 /** 1501 * face detect data - face attribute 1502 * nARGBEyeColor: is the indicates a 32-bit eye color of the person, where bits 0-7 are blue, 1503 * bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. 1504 * nARGBSkinColor: is the indicates a 32-bit skin color of the person, where bits 0-7 are blue, 1505 * bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. 1506 * nARGBHairColor: is the indicates a 32-bit hair color of the person, where bits 0-7 are blue, 1507 * bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. 1508 * nSmileScore: a smile detection score between 0 and 100, where 0 means not detecting, 1509 * 1 means least certain and 100 means most certain a smile is detected. 1510 * nBlinkScore: a eye-blink detection score between 0 and 100, where 0 means not detecting, 1511 * 1 means least certain and 100 means most certain an eye-blink is detected. 1512 * xIdentity: represents the identity of the face. With identity equal to zero this is not supported. 1513 * This can be used by a face recognition application. The component shall not reuse an identity value unless the same face. 1514 * Can be used to track detected faces when it moves between frames. Specific usage of this field is implementation dependent. 1515 * It can be some kind of ID. 1516 * 1517 */ 1518 typedef struct OMX_FACEATTRIBUTE { 1519 OMX_U32 nARGBEyeColor; /**< The indicates a 32-bit eye color of the person, 1520 where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, 1521 and bits 31-24 are for alpha. */ 1522 OMX_U32 nARGBSkinColor; /**< The indicates a 32-bit skin color of the person, 1523 where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, 1524 and bits 31-24 are for alpha */ 1525 OMX_U32 nARGBHairColor; /**< the indicates a 32-bit hair color of the person, 1526 where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, 1527 and bits 31-24 are for alpha */ 1528 OMX_U32 nSmileScore; /**< Smile detection score between 0 and 100, where 0 means not detecting, 1529 1 means least certain and 100 means most certain a smile is detected */ 1530 OMX_U32 nBlinkScore; /**< Eye-blink detection score between 0 and 100, where 0 means not detecting, 1531 1 means least certain and 100 means most certain an eye-blink is detected */ 1532 OMX_U32 xIdentity[4]; /**< represents the identity of the face. With identity equal to zero this is not supported. 1533 This can be used by a face recognition application. 1534 The component shall not reuse an identity value unless the same face. 1535 Can be used to track detected faces when it moves between frames. 1536 Specific usage of this field is implementation dependent. 1537 It can be some kind of ID */ 1538 } OMX_FACEATTRIBUTE; 1539 1540 /** 1541 * xGamma represents lool-up table for gamma correction in Q16 format. 1542 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 1543 * 1544 * 1545 * 1546 * STRUCT MEMBERS: 1547 * nScore: is a detection score between 0 and 100, where 0 means unknown score, 1 means least certain and 100 means most certain the detection is correct. 1548 * nLeft: is the leftmost coordinate of the detected area rectangle. 1549 * nTop: is the topmost coordinate of the detected area rectangle. 1550 * nWidth: is the width of the detected area rectangle in pixels. 1551 * nHeight: is the height of the detected area rectangle in pixels. 1552 * nOrientationRoll/Yaw/Pitch is the orientation of the axis of the detected object. Here roll angle is defined as the angle between the vertical axis of face and the horizontal axis. All angles can have the value of -180 to 180 degree in Q16 format. Some face detection algorithm may not be able to fill in the angles, this is denoted by the use of MAX_INT value. 1553 * nPriority represents priority of each object when there are multiple objects detected. 1554 * nFaceAttr describe the attributes of the detected face object with the following structure: 1555 * 1556 * 1557 */ 1558 typedef struct OMX_TI_FACERESULT { 1559 OMX_U32 nSize; 1560 OMX_VERSIONTYPE nVersion; 1561 OMX_U32 nPortIndex; 1562 OMX_TI_CAMERAVIEWTYPE eCameraView; 1563 OMX_U32 nScore; /**< Detection score between 0 and 100, where 0 means unknown score, 1564 1 means least certain and 100 means most certain the detection is correct */ 1565 OMX_S32 nLeft; /**< The leftmost coordinate of the detected area rectangle */ 1566 OMX_S32 nTop; /**< The topmost coordinate of the detected area rectangle */ 1567 OMX_U32 nWidth; /**< The width of the detected area rectangle in pixels */ 1568 OMX_U32 nHeight; /**< The height of the detected area rectangle in pixels */ 1569 // The orientation of the axis of the detected object. 1570 // Here roll angle is defined as the angle between the vertical axis of face and the horizontal axis. 1571 // All angles can have the value of -180 to 180 degree in Q16 format. 1572 // Some face detection algorithm may not be able to fill in the angles, this is denoted by the use of MAX_INT value. 1573 OMX_S32 nOrientationRoll; 1574 OMX_S32 nOrientationYaw; 1575 OMX_S32 nOrientationPitch; 1576 // 1577 OMX_U32 nPriority; /**< Represents priority of each object when there are multiple objects detected */ 1578 OMX_FACEATTRIBUTE nFaceAttr; /**< Describe the attributes of the detected face object with the following structure */ 1579 } OMX_TI_FACERESULT; 1580 1581 1582 /** 1583 * Face detection data 1584 * The extra data having face detection data is described with the following structure. 1585 * The parser should only assume that the first tFacePosition[ulFaceCount] of the 35 elements 1586 * of the array should contain valid data. 1587 */ 1588 typedef struct OMX_FACEDETECTIONTYPE { 1589 OMX_U32 nSize; 1590 OMX_VERSIONTYPE nVersion; 1591 OMX_U32 nPortIndex; 1592 OMX_TI_CAMERAVIEWTYPE eCameraView; 1593 OMX_U16 ulFaceCount; // faces detected 1594 OMX_TI_FACERESULT tFacePosition[35];// 35 is max faces supported by FDIF 1595 } OMX_FACEDETECTIONTYPE; 1596 1597 /** 1598 * MTIS Vendor Specific Motion estimation 1599 * The extra data having MTIS motion estimation data is 1600 * described with the following structure. 1601 */ 1602 typedef struct OMX_TI_MTISTYPE { 1603 OMX_U32 nSize; 1604 OMX_VERSIONTYPE nVersion; 1605 OMX_U32 nPortIndex; 1606 OMX_TI_CAMERAVIEWTYPE eCameraView; 1607 OMX_S32 nMaxMVh; /**< The maximum MV for horizontal direction */ 1608 OMX_S32 nMaxMVv; /**< The maximum MV for vertical direction */ 1609 OMX_U16 nMVRelY[9]; /**< The mask for MV reliability */ 1610 OMX_U16 nMVRelX[9]; /**< The mask for MV reliability */ 1611 OMX_S32 nMVh[9]; /**< The MVs for horizontal direction */ 1612 OMX_S32 nMVv[9]; /**< The MVs for vertical direction */ 1613 } OMX_TI_MTISTYPE; 1614 1615 /** 1616 * The OMX_EXTRADATATYPE enumeration is used to define the 1617 * possible extra data payload types. 1618 */ 1619 typedef enum OMX_EXT_EXTRADATATYPE { 1620 OMX_ExifAttributes = 0x7F000001, /**< 0x7F000001 Reserved region for introducing Vendor Extensions */ 1621 OMX_AncillaryData, /**< 0x7F000002 ancillary data */ 1622 OMX_WhiteBalance, /**< 0x7F000003 white balance resultant data */ 1623 OMX_UnsaturatedRegions, /**< 0x7F000004 unsaturated regions data */ 1624 OMX_FaceDetection, /**< 0x7F000005 face detect data */ 1625 OMX_BarcodeDetection, /**< 0x7F000006 bar-code detct data */ 1626 OMX_FrontObjectDetection, /**< 0x7F000007 Front object detection data */ 1627 OMX_MotionEstimation, /**< 0x7F000008 motion Estimation data */ 1628 OMX_MTISType, /**< 0x7F000009 MTIS motion Estimation data */ 1629 OMX_DistanceEstimation, /**< 0x7F00000A disctancedistance estimation */ 1630 OMX_Histogram, /**< 0x7F00000B histogram */ 1631 OMX_FocusRegion, /**< 0x7F00000C focus region data */ 1632 OMX_ExtraDataPanAndScan, /**< 0x7F00000D pan and scan data */ 1633 OMX_RawFormat, /**< 0x7F00000E custom RAW data format */ 1634 OMX_SensorType, /**< 0x7F00000F vendor & model of the sensor being used */ 1635 OMX_SensorCustomDataLength, /**< 0x7F000010 vendor specific custom data length */ 1636 OMX_SensorCustomData, /**< 0x7F000011 vendor specific data */ 1637 OMX_TI_FrameLayout, /**< 0x7F000012 vendor specific data */ 1638 OMX_TI_SEIinfo2004Frame1, /**< 0x7F000013 Used for 2004 SEI message to be provided by video decoders */ 1639 OMX_TI_SEIinfo2004Frame2, /**< 0x7F000014 Used for 2004 SEI message to be provided by video decoders */ 1640 OMX_TI_SEIinfo2010Frame1, /**< 0x7F000015 Used for 2010 SEI message to be provided by video decoders */ 1641 OMX_TI_SEIinfo2010Frame2, /**< 0x7F000016 Used for 2010 SEI message to be provided by video decoders */ 1642 OMX_TI_RangeMappingInfo, /**< 0x7F000017 Used for Range mapping info provided by Video Decoders */ 1643 OMX_TI_RescalingInfo, /**< 0x7F000018 Used for width/height rescaling info provided by Video Decoders */ 1644 OMX_TI_WhiteBalanceOverWrite, /**< 0x7F000019 Used for manual AWB settings */ 1645 OMX_TI_CPCamData, /**< 0x7F00001A Used for cp cam data */ 1646 OMX_TI_H264ESliceDataInfo, /**< 0x7F00001B */ 1647 OMX_TI_DccData, /**< 0x7F00001C Used for dcc data overwrite in the file system */ 1648 OMX_TI_ProfilerData, /**< 0x7F00001D Used for profiling data */ 1649 OMX_TI_VectShotInfo, /**< 0x7F00001E Used for vector shot feedback notification */ 1650 OMX_TI_CamReProcMeta, /**< 0x7F00001F Used for meta data input to camera re-proc function */ 1651 OMX_TI_LSCTable, /**< 0x7F000020 Lens shading table for corresponding frame */ 1652 OMX_TI_CodecExtenderErrorFrame1, /**< 0x7F000021 Used for Codec Extended Error to be provided byvideo decoders */ 1653 OMX_TI_CodecExtenderErrorFrame2, /**< 0x7F000022 Used for Codec Extended Error to be provided byvideo decoders */ 1654 OMX_TI_MBInfoFrame1, /**< 0x7F000023 Used for MBError message to be provided by videodecoders */ 1655 OMX_TI_MBInfoFrame2, /**< 0x7F000024 Used for MBError message to be provided by videodecoders */ 1656 OMX_TI_SEIInfoFrame1, /**< 0x7F000025 Used for SEI message to be provided by video decoders*/ 1657 OMX_TI_SEIInfoFrame2, /**< 0x7F000026 Used for SEI message to be provided by video decoders*/ 1658 OMX_TI_VUIInfoFrame1, /**< 0x7F000027 Used for VUI message to be provided by video decoders */ 1659 OMX_TI_VUIInfoFrame2, /**< 0x7F000028 Used for VUI message to be provided by video decoders */ 1660 OMX_TI_ExtraData_Count, 1661 OMX_TI_ExtraData_Max = OMX_TI_ExtraData_Count - 1, 1662 OMX_TI_ExtraData_32Bit_Patch = 0x7fffffff 1663 } OMX_EXT_EXTRADATATYPE; 1664 1665 1666 /** 1667 * Enable Extra-data on a specific port. 1668 * 1669 * 1670 * 1671 * STRUCT MEMBERS: 1672 * nSize : Size of the structure in bytes 1673 * nVersion : OMX specification version information 1674 * nPortIndex : Port on which this extra data to be assosiated 1675 * eExtraDataType : Extra data type 1676 * bEnable : Eneble/Disable this extra-data through port. 1677 * 1678 */ 1679 typedef struct OMX_CONFIG_EXTRADATATYPE { 1680 OMX_U32 nSize; /**< The size of the structure including data bytes 1681 and any padding necessary to ensure 32bit alignment 1682 of the next OMX_OTHER_EXTRADATATYPE structure */ 1683 OMX_VERSIONTYPE nVersion; 1684 OMX_U32 nPortIndex; /**< The read-only value containing the index of the port */ 1685 OMX_EXT_EXTRADATATYPE eExtraDataType; /**< Identifies the extra data payload type */ 1686 OMX_BOOL bEnable; 1687 } OMX_CONFIG_EXTRADATATYPE; 1688 1689 /** 1690 * JPEG header type 1691 * */ 1692 1693 typedef enum OMX_JPEGHEADERTYPE{ 1694 OMX_NoHeader = 0, 1695 OMX_JFIF, 1696 OMX_EXIF, 1697 OMX_JpegHeaderTypeMax = 0x7fffffff 1698 }OMX_JPEGHEADERTYPE; 1699 /** 1700 * Re-start marker configuration 1701 * 1702 * 1703 * 1704 * STRUCT MEMBERS: 1705 * nSize : Size of the structure in bytes 1706 * nVersion : OMX specification version information 1707 * nPortIndex : Port on which this extra data to be assosiated 1708 * eJpegHeaderType : JPEG header type EXIF, JFIF, or No heeader. 1709 */ 1710 1711 typedef struct OMX_CONFIG_JPEGHEEADERTYPE{ 1712 OMX_U32 nSize; 1713 OMX_VERSIONTYPE nVersion; 1714 OMX_U32 nPortIndex; 1715 OMX_JPEGHEADERTYPE eJpegHeaderType; 1716 }OMX_CONFIG_JPEGHEEADERTYPE; 1717 1718 /** 1719 * Re-start marker configuration 1720 * 1721 * 1722 * 1723 * STRUCT MEMBERS: 1724 * nSize : Size of the structure in bytes 1725 * nVersion : OMX specification version information 1726 * nPortIndex : Port on which this extra data to be assosiated 1727 * nRstInterval : interval at which RST markers are to be inserted. 1728 * bEnable : Eneble/Disable this RST marker insertion feature. 1729 * 1730 */ 1731 1732 typedef struct OMX_CONFIG_RSTMARKER{ 1733 OMX_U32 nSize; 1734 OMX_VERSIONTYPE nVersion; 1735 OMX_U32 nPortIndex; 1736 OMX_U32 nRstInterval; 1737 OMX_BOOL nEnable; 1738 }OMX_CONFIG_RSTMARKER; 1739 1740 /** 1741 * Enable Extra-data on a specific port. 1742 * 1743 * 1744 * 1745 * STRUCT MEMBERS: 1746 * nSize : Size of the structure in bytes 1747 * nVersion : OMX specification version information 1748 * nPortIndex : Port that this structure applies to 1749 * nMaxSize : max size 1750 * 1751 * 1752 */ 1753 typedef struct OMX_IMAGE_JPEGMAXSIZE { 1754 OMX_U32 nSize; 1755 OMX_VERSIONTYPE nVersion; 1756 OMX_U32 nPortIndex; 1757 OMX_U32 nMaxSize; 1758 } OMX_IMAGE_JPEGMAXSIZE; 1759 1760 1761 typedef enum OMX_IMAGESTAMPOPERATION{ 1762 OMX_NewImageStamp = 0, 1763 OMX_Continuation, 1764 OMX_ImageStapOperationMax = 0x7fffffff 1765 }OMX_IMAGESTAMPOPERATION; 1766 1767 1768 /** 1769 * Enable Extra-data on a specific port. 1770 * 1771 * 1772 * 1773 * STRUCT MEMBERS: 1774 * nSize : Size of the structure in bytes 1775 * nVersion : OMX specification version information 1776 * nPortIndex : Port that this structure applies to 1777 * nMaxSize : max size 1778 * 1779 * 1780 */ 1781 typedef struct OMX_PARAM_IMAGESTAMPOVERLAYTYPE { 1782 OMX_U32 nSize; 1783 OMX_VERSIONTYPE nVersion; 1784 OMX_U32 nPortIndex; 1785 OMX_IMAGESTAMPOPERATION nOp; 1786 OMX_U32 nLeft; 1787 OMX_U32 nTop; 1788 OMX_U32 nHeight; 1789 OMX_U32 nWidth; 1790 OMX_COLOR_FORMATTYPE eFormat; 1791 OMX_U8 * pBitMap; 1792 } OMX_PARAM_IMAGESTAMPOVERLAYTYPE; 1793 1794 1795 /** 1796 * Enable Extra-data on a specific port. 1797 * 1798 * 1799 * 1800 * STRUCT MEMBERS: 1801 * nSize : Size of the structure in bytes 1802 * nVersion : OMX specification version information 1803 * nPortIndex : Port that this structure applies to 1804 * nMaxSize : max size 1805 * 1806 * 1807 */ 1808 typedef struct OMX_PARAM_THUMBNAILTYPE { 1809 OMX_U32 nSize; 1810 OMX_VERSIONTYPE nVersion; 1811 OMX_U32 nPortIndex; 1812 OMX_U32 nHeight; 1813 OMX_U32 nWidth; 1814 OMX_IMAGE_CODINGTYPE eCompressionFormat; 1815 OMX_COLOR_FORMATTYPE eColorFormat; 1816 OMX_U32 nQuality; 1817 OMX_U32 nMaxSize; 1818 } OMX_PARAM_THUMBNAILTYPE; 1819 1820 /** 1821 * Red-Eye Removal Enum 1822 */ 1823 typedef enum OMX_REDEYEREMOVALTYPE{ 1824 OMX_RedEyeRemovalOff = 0, /** No red eye removal*/ 1825 OMX_RedEyeRemovalOn, /** Red eye removal on*/ 1826 OMX_RedEyeRemovalAuto, /** Red eye removal will be done automatically when detected*/ 1827 OMX_RedEyeRemovalKhronosExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions*/ 1828 OMX_RedEyeRemovalVendorStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions*/ 1829 OMX_RedEyeRemovalMax = 0x7FFFFFFF 1830 }OMX_REDEYEREMOVALTYPE; 1831 1832 /** 1833 * Enable Extra-data on a specific port. 1834 * 1835 * 1836 * 1837 * STRUCT MEMBERS: 1838 * nSize : Size of the structure in bytes 1839 * nVersion : OMX specification version information 1840 * nPortIndex : Port that this structure applies to 1841 * nLeft: is the leftmost coordinate of the detection area rectangle (such as face region). 1842 * nTop: is the topmost coordinate of the detection area rectangle (such as face region). 1843 * nWidth: is the width of the detection area rectangle in pixels. 1844 * nHeight: is the height of the detection area rectangle in pixels. 1845 * nARGBEyeColor indicates a 32-bit eye color to replace the red-eye, where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. When all zero indicates automatic choice. 1846 1847 * 1848 */ 1849 typedef struct OMX_CONFIG_REDEYEREMOVALTYPE { 1850 OMX_U32 nSize; 1851 OMX_VERSIONTYPE nVersion; 1852 OMX_U32 nPortIndex; 1853 OMX_S32 nLeft; 1854 OMX_S32 nTop; 1855 OMX_U32 nWidth; 1856 OMX_U32 nHeight; 1857 OMX_U32 nARGBEyeColor; 1858 OMX_REDEYEREMOVALTYPE eMode; 1859 } OMX_CONFIG_REDEYEREMOVALTYPE; 1860 1861 1862 1863 1864 1865 1866 /** 1867 * Video capture YUV Range Enum 1868 */ 1869 typedef enum OMX_VIDEOYUVRANGETYPE{ 1870 OMX_ITURBT601 = 0, 1871 OMX_Full8Bit, 1872 OMX_VideoYUVRangeKhronosExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions*/ 1873 OMX_VideoYUVRangeVendorStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions*/ 1874 OMX_VideoYUVRangeMax = 0x7FFFFFFF 1875 }OMX_VIDEOYUVRANGETYPE; 1876 1877 /** 1878 * Enable Extra-data on a specific port. 1879 * 1880 * 1881 * 1882 * STRUCT MEMBERS: 1883 * nSize : Size of the structure in bytes 1884 * nVersion : OMX specification version information 1885 * nPortIndex : Port that this structure applies to 1886 * 1887 */ 1888 typedef struct OMX_PARAM_VIDEOYUVRANGETYPE { 1889 OMX_U32 nSize; 1890 OMX_VERSIONTYPE nVersion; 1891 OMX_U32 nPortIndex; 1892 OMX_VIDEOYUVRANGETYPE eYUVRange; 1893 } OMX_PARAM_VIDEOYUVRANGETYPE; 1894 1895 /** 1896 * Video noise filter mode range enum 1897 */ 1898 typedef enum OMX_VIDEONOISEFILTERMODETYPE{ 1899 OMX_VideoNoiseFilterModeOff = 0, 1900 OMX_VideoNoiseFilterModeOn, 1901 OMX_VideoNoiseFilterModeAuto, 1902 OMX_VideoNoiseFilterModeExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1903 OMX_VideoNoiseFilterModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1904 OMX_VideoNoiseFilterModeMax = 0x7FFFFFFF 1905 } OMX_VIDEONOISEFILTERMODETYPE; 1906 1907 /** 1908 * Enable video noise filter. 1909 * 1910 * STRUCT MEMBERS: 1911 * nSize : Size of the structure in bytes 1912 * nVersion : OMX specification version information 1913 * nPortIndex : Port that this structure applies to 1914 * eMode : Video noise filter mode (on/off/auto) 1915 */ 1916 typedef struct OMX_PARAM_VIDEONOISEFILTERTYPE { 1917 OMX_U32 nSize; 1918 OMX_VERSIONTYPE nVersion; 1919 OMX_U32 nPortIndex; 1920 OMX_VIDEONOISEFILTERMODETYPE eMode; 1921 } OMX_PARAM_VIDEONOISEFILTERTYPE; 1922 1923 1924 /** 1925 * High ISO Noise filter mode range enum 1926 */ 1927 typedef enum OMX_ISONOISEFILTERMODETYPE{ 1928 OMX_ISONoiseFilterModeOff = 0, 1929 OMX_ISONoiseFilterModeOn, 1930 OMX_ISONoiseFilterModeAuto, 1931 OMX_ISONoiseFilterModeExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1932 OMX_ISONoiseFilterModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1933 OMX_ISONoiseFilterModeMax = 0x7FFFFFFF 1934 } OMX_ISONOISEFILTERMODETYPE; 1935 1936 /** 1937 * Enable ISO noise filter. 1938 * 1939 * STRUCT MEMBERS: 1940 * nSize : Size of the structure in bytes 1941 * nVersion : OMX specification version information 1942 * nPortIndex : Port that this structure applies to 1943 * eMode : ISO noise filter (NSF2 is used) mode (on/off/auto) 1944 */ 1945 typedef struct OMX_PARAM_ISONOISEFILTERTYPE { 1946 OMX_U32 nSize; 1947 OMX_VERSIONTYPE nVersion; 1948 OMX_U32 nPortIndex; 1949 OMX_ISONOISEFILTERMODETYPE eMode; 1950 } OMX_PARAM_ISONOISEFILTERTYPE; 1951 1952 /** 1953 * Structure used to to call OMX_GetParams() for each 1954 * increment of "Index" starting with "0" 1955 * 1956 * STRUCT MEMBERS: 1957 * nSize : Size of the structure in bytes 1958 * nVersion : OMX specification version information 1959 * nIndex : Index of the sDCCURI 0..MAX_URI_LENGTH 1960 * sDCCURI : Look-up table containing strings. Ends with '\0' 1961 */ 1962 typedef struct OMX_TI_PARAM_DCCURIINFO { 1963 OMX_U32 nSize; 1964 OMX_VERSIONTYPE nVersion; 1965 OMX_U32 nIndex; 1966 OMX_S8 sDCCURI[MAX_URI_LENGTH]; 1967 } OMX_TI_PARAM_DCCURIINFO; 1968 1969 /** 1970 * Manual White Balance color temperature 1971 * STRUCT MEMBERS: 1972 * nSize : Size of the structure in bytes 1973 * nVersion : OMX specification version information 1974 * nPortIndex : Port that this structure applies to 1975 * nColorTemperature : Color Temperature in K 1976 */ 1977 typedef struct OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE { 1978 OMX_U32 nSize; 1979 OMX_VERSIONTYPE nVersion; 1980 OMX_U32 nPortIndex; 1981 OMX_U32 nColorTemperature; 1982 } OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE; 1983 1984 /** 1985 * Focus spot weighting range enum 1986 */ 1987 typedef enum OMX_TI_CONFIG_FOCUSSPOTMODETYPE { 1988 OMX_FocusSpotDefault = 0, /** Makes CommonFocusRegion to be used. */ 1989 OMX_FocusSpotSinglecenter, /** Only central part of the image is used for focus. */ 1990 OMX_FocusSpotMultiNormal, /** Middle part of the image is used with 100% weight, upper and lower parts are with 50%. */ 1991 OMX_FocusSpotMultiAverage, /** All the image is used with 100% weight. */ 1992 OMX_FocusSpotMultiCenter, /** Central part of the image is used with 100% weight, the rest is used with 50%. */ 1993 OMX_FocusSpotExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1994 OMX_FocusSpotModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1995 OMX_FocusSpotModeMax = 0x7FFFFFFF 1996 } OMX_TI_CONFIG_FOCUSSPOTMODETYPE; 1997 1998 /** 1999 * Focus Spot Weighting configuration. 2000 * 2001 * STRUCT MEMBERS: 2002 * nSize : Size of the structure in bytes 2003 * nVersion : OMX specification version information 2004 * nPortIndex : Port that this structure applies to 2005 * eMode : Spot Weighting mode 2006 */ 2007 typedef struct OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE { 2008 OMX_U32 nSize; 2009 OMX_VERSIONTYPE nVersion; 2010 OMX_U32 nPortIndex; 2011 OMX_TI_CONFIG_FOCUSSPOTMODETYPE eMode; 2012 } OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE; 2013 2014 /** 2015 * Enumeration of possible Exposure control types for OMX_EXPOSURECONTROLTYPE 2016 */ 2017 typedef enum OMX_TI_EXTEXPOSURECONTROLTYPE { 2018 OMX_TI_ExposureControlVeryLong = OMX_ExposureControlVendorStartUnused + 1, 2019 OMX_TI_ExposureControlFacePriority, 2020 OMX_TI_ExposureControlMax = 0x7fffffff 2021 } OMX_TI_EXTEXPOSURECONTROLTYPE; 2022 2023 /** 2024 * Variable frame rate configuration. 2025 * 2026 * STRUCT MEMBERS: 2027 * nSize : Size of the structure in bytes 2028 * nVersion : OMX specification version information 2029 * nPortIndex : Port that this structure applies to 2030 * xMinFramerate : Minimum variable frame rate value 2031 */ 2032 typedef struct OMX_TI_PARAM_VARFRAMERATETYPE { 2033 OMX_U32 nSize; 2034 OMX_VERSIONTYPE nVersion; 2035 OMX_U32 nPortIndex; 2036 OMX_U32 xMinFramerate; 2037 } OMX_TI_PARAM_VARFRAMERATETYPE; 2038 2039 /** 2040 * Exposure config for right frame 2041 */ 2042 typedef struct OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE { 2043 OMX_U32 nSize; 2044 OMX_VERSIONTYPE nVersion; 2045 OMX_U32 nPortIndex; 2046 OMX_U32 nApertureFNumber; /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */ 2047 OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */ 2048 OMX_U32 nSensitivity; /**< e.g. nSensitivity = 100 implies "ISO 100" */ 2049 } OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE; 2050 2051 /** 2052 * Auto Convergence mode enum 2053 */ 2054 typedef enum OMX_TI_AUTOCONVERGENCEMODETYPE { 2055 OMX_TI_AutoConvergenceModeDisable, 2056 OMX_TI_AutoConvergenceModeFrame, 2057 OMX_TI_AutoConvergenceModeCenter, 2058 OMX_TI_AutoConvergenceModeFocusFaceTouch, 2059 OMX_TI_AutoConvergenceModeManual, 2060 OMX_TI_AutoConvergenceExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 2061 OMX_TI_AutoConvergenceStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 2062 OMX_TI_AutoConvergenceModeMax = 0x7FFFFFFF 2063 } OMX_TI_AUTOCONVERGENCEMODETYPE; 2064 2065 /** 2066 * Variable farame rate configuration. 2067 * 2068 * STRUCT MEMBERS: 2069 * nSize : Size of the structure in bytes 2070 * nVersion : OMX specification version information 2071 * nPortIndex : Port that this structure applies to 2072 * eACMode : Auto convergence mode 2073 * nManualConverence : Manual Converence value 2074 * nACProcWinStartX : Start X AC Window 2075 * nACProcWinStartY : Start Y AC Window 2076 * nACProcWinWidth : Width of AC Window 2077 * nACProcWinHeight : Height of AC Window 2078 * bACStatus : output status from AL alg 2079 */ 2080 typedef struct OMX_TI_CONFIG_CONVERGENCETYPE { 2081 OMX_U32 nSize; 2082 OMX_VERSIONTYPE nVersion; 2083 OMX_U32 nPortIndex; 2084 OMX_TI_AUTOCONVERGENCEMODETYPE eACMode; 2085 OMX_S32 nManualConverence; 2086 OMX_U32 nACProcWinStartX; 2087 OMX_U32 nACProcWinStartY; 2088 OMX_U32 nACProcWinWidth; 2089 OMX_U32 nACProcWinHeight; 2090 OMX_BOOL bACStatus; 2091 } OMX_TI_CONFIG_CONVERGENCETYPE; 2092 2093 /** 2094 * Camera specific version. 2095 * 2096 * STRUCT MEMBERS: 2097 * nBranch : Branch 2098 * nCommitID : Commit ID 2099 * nBuildDateTime : Build date and time 2100 * nExtraInfo : rederved for future use 2101 */ 2102 typedef struct OMX_TI_CAMERASPECVERSIONTYPE { 2103 OMX_U8 nBranch[64]; 2104 OMX_U8 nCommitID[64]; 2105 OMX_U8 nBuildDateTime[64]; 2106 OMX_U8 nExtraInfo[64]; 2107 } OMX_TI_CAMERASPECVERSIONTYPE; 2108 2109 /** 2110 * Stereo frame layout enum 2111 */ 2112 typedef enum OMX_TI_STEREOFRAMELAYOUTTYPE { 2113 OMX_TI_StereoFrameLayout2D, 2114 OMX_TI_StereoFrameLayoutTopBottom, 2115 OMX_TI_StereoFrameLayoutLeftRight, 2116 OMX_TI_StereoFrameLayoutTopBottomSubsample, 2117 OMX_TI_StereoFrameLayoutLeftRightSubsample, 2118 OMX_TI_StereoFrameLayoutMax = 0x7FFFFFFF 2119 } OMX_TI_STEREOFRAMELAYOUTTYPE; 2120 2121 /** 2122 * Camera frame layout type. 2123 * 2124 * STRUCT MEMBERS: 2125 * eFrameLayout : frame layout 2126 * nSubsampleRatio : subsample ratio 2127 */ 2128 typedef struct OMX_TI_FRAMELAYOUTTYPE { 2129 OMX_U32 nSize; 2130 OMX_VERSIONTYPE nVersion; 2131 OMX_U32 nPortIndex; 2132 OMX_TI_STEREOFRAMELAYOUTTYPE eFrameLayout; 2133 OMX_U32 nSubsampleRatio; /** Subsampling ratio, Q15.7 */ 2134 } OMX_TI_FRAMELAYOUTTYPE; 2135 2136 /** 2137 * The OMX_TI_COLOR_FORMATTYPE enumeration is used to define the 2138 * extended color format types. 2139 */ 2140 typedef enum OMX_TI_COLOR_FORMATTYPE { 2141 OMX_TI_COLOR_FormatRawBayer10bitStereo = 2142 OMX_COLOR_FormatVendorStartUnused + 2, /**< 10 bit raw for stereo */ 2143 OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 2144 (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x100, /* 0x100 is used since it is the corresponding HAL pixel fromat */ 2145 OMX_TI_ColorFormatTypeMax = 0x7fffffff 2146 } OMX_TI_COLOR_FORMATTYPE; 2147 2148 /** 2149 * The OMX_TI_EXIFTAGSTATUS enumeration is used to define the 2150 * tag status types. 2151 */ 2152 typedef enum OMX_TI_EXIFTAGSTATUS { 2153 OMX_TI_TagReadOnly, /**< implies this tag is generated within omx-camera >*/ 2154 OMX_TI_TagReadWrite, /**< implies this tag can be overwritten by client >*/ 2155 OMX_TI_TagUpdated, /**< client has to use this to indicate the specific tag is overwritten >*/ 2156 OMX_TI_ExifStatus_Max = 0x7fffffff 2157 } OMX_TI_EXIFTAGSTATUS; 2158 2159 typedef struct OMX_TI_CONFIG_EXIF_TAGS { 2160 OMX_U32 nSize; 2161 OMX_VERSIONTYPE nVersion; 2162 OMX_U32 nPortIndex; 2163 OMX_TI_EXIFTAGSTATUS eStatusImageWidth; 2164 OMX_U32 ulImageWidth; 2165 OMX_TI_EXIFTAGSTATUS eStatusImageHeight; 2166 OMX_U32 ulImageHeight; 2167 OMX_TI_EXIFTAGSTATUS eStatusBitsPerSample; 2168 OMX_U16 usBitsPerSample[3]; 2169 OMX_TI_EXIFTAGSTATUS eStatusCompression; 2170 OMX_U16 usCompression; 2171 OMX_TI_EXIFTAGSTATUS eStatusPhotometricInterpretation; 2172 OMX_U16 usPhotometricInterpretation; 2173 OMX_TI_EXIFTAGSTATUS eStatusOrientation; 2174 OMX_U16 usOrientation; 2175 OMX_TI_EXIFTAGSTATUS eStatusSamplesPerPixel; 2176 OMX_U16 usSamplesPerPixel; 2177 OMX_TI_EXIFTAGSTATUS eStatusPlanarConfiguration; 2178 OMX_U16 usPlanarConfiguration; 2179 OMX_TI_EXIFTAGSTATUS eStatusYCbCrSubSampling; 2180 OMX_U16 usYCbCrSubSampling[2]; 2181 OMX_TI_EXIFTAGSTATUS eStatusYCbCrPositioning; 2182 OMX_U16 usYCbCrPositioning; 2183 OMX_TI_EXIFTAGSTATUS eStatusXResolution; 2184 OMX_U32 ulXResolution[2]; 2185 OMX_TI_EXIFTAGSTATUS eStatusYResolution; 2186 OMX_U32 ulYResolution[2]; 2187 OMX_TI_EXIFTAGSTATUS eStatusResolutionUnit; 2188 OMX_U16 usResolutionUnit; 2189 2190 OMX_TI_EXIFTAGSTATUS eStatusRowsPerStrip; 2191 OMX_U32 ulRowsPerStrip; 2192 OMX_TI_EXIFTAGSTATUS eStatusDataSize; 2193 OMX_U32 ulDataSize; 2194 2195 OMX_TI_EXIFTAGSTATUS eStatusTransferFunction; 2196 OMX_U16 usTransferFunction[3*256]; 2197 OMX_TI_EXIFTAGSTATUS eStatusWhitePoint; 2198 OMX_U32 ulWhitePoint[4]; //2x2 2199 OMX_TI_EXIFTAGSTATUS eStatusPrimaryChromaticities; 2200 OMX_U32 ulPrimaryChromaticities[12]; //2x6 2201 OMX_TI_EXIFTAGSTATUS eStatusYCbCrCoefficients; 2202 OMX_U32 ulYCbCrCoefficients[6]; //2x3 2203 OMX_TI_EXIFTAGSTATUS eStatusReferenceBlackWhite; 2204 OMX_U32 ulReferenceBlackWhite[12]; //2x6 2205 OMX_TI_EXIFTAGSTATUS eStatusDateTime; 2206 OMX_S8* pDateTimeBuff; 2207 OMX_U32 ulDateTimeBuffSizeBytes; 2208 OMX_TI_EXIFTAGSTATUS eStatusImageDescription; 2209 OMX_S8* pImageDescriptionBuff; 2210 OMX_U32 ulImageDescriptionBuffSizeBytes; 2211 OMX_TI_EXIFTAGSTATUS eStatusMake; 2212 OMX_S8* pMakeBuff; 2213 OMX_U32 ulMakeBuffSizeBytes; 2214 OMX_TI_EXIFTAGSTATUS eStatusModel; 2215 OMX_S8* pModelBuff; 2216 OMX_U32 ulModelBuffSizeBytes; 2217 OMX_TI_EXIFTAGSTATUS eStatusSoftware; 2218 OMX_S8* pSoftwareBuff; 2219 OMX_U32 ulSoftwareBuffSizeBytes; 2220 OMX_TI_EXIFTAGSTATUS eStatusArtist; 2221 OMX_S8* pArtistBuff; 2222 OMX_U32 ulArtistBuffSizeBytes; 2223 OMX_TI_EXIFTAGSTATUS eStatusCopyright; 2224 OMX_S8* pCopyrightBuff; 2225 OMX_U32 ulCopyrightBuffSizeBytes; 2226 2227 OMX_TI_EXIFTAGSTATUS eStatusExifVersion; 2228 OMX_S8 cExifVersion[4]; 2229 OMX_TI_EXIFTAGSTATUS eStatusFlashpixVersion; 2230 OMX_S8 cFlashpixVersion[4]; 2231 OMX_TI_EXIFTAGSTATUS eStatusColorSpace; 2232 OMX_U16 usColorSpace; 2233 OMX_TI_EXIFTAGSTATUS eStatusComponentsConfiguration; 2234 OMX_S8 cComponentsConfiguration[4]; 2235 OMX_TI_EXIFTAGSTATUS eStatusCompressedBitsPerPixel; 2236 OMX_U32 ulCompressedBitsPerPixel[2]; 2237 OMX_TI_EXIFTAGSTATUS eStatusPixelXDimension; 2238 OMX_U32 ulPixelXDimension; 2239 OMX_TI_EXIFTAGSTATUS eStatusPixelYDimension; 2240 OMX_U32 ulPixelYDimension; 2241 OMX_TI_EXIFTAGSTATUS eStatusMakerNote; 2242 OMX_S8* pMakerNoteBuff; 2243 OMX_U32 ulMakerNoteBuffSizeBytes; 2244 OMX_TI_EXIFTAGSTATUS eStatusUserComment; 2245 OMX_S8* pUserCommentBuff; 2246 OMX_U32 ulUserCommentBuffSizeBytes; 2247 OMX_TI_EXIFTAGSTATUS eStatusRelatedSoundFile; 2248 OMX_S8 cRelatedSoundFile[13]; 2249 OMX_TI_EXIFTAGSTATUS eStatusDateTimeOriginal; 2250 OMX_S8* pDateTimeOriginalBuff; 2251 OMX_U32 ulDateTimeOriginalBuffSizeBytes; 2252 OMX_TI_EXIFTAGSTATUS eStatusDateTimeDigitized; 2253 OMX_S8* pDateTimeDigitizedBuff; 2254 OMX_U32 ulDateTimeDigitizedBuffSizeBytes; 2255 OMX_TI_EXIFTAGSTATUS eStatusSubSecTime; 2256 OMX_S8* pSubSecTimeBuff; 2257 OMX_U32 ulSubSecTimeBuffSizeBytes; 2258 OMX_TI_EXIFTAGSTATUS eStatusSubSecTimeOriginal; 2259 OMX_S8* pSubSecTimeOriginalBuff; 2260 OMX_U32 ulSubSecTimeOriginalBuffSizeBytes; 2261 OMX_TI_EXIFTAGSTATUS eStatusSubSecTimeDigitized; 2262 OMX_S8* pSubSecTimeDigitizedBuff; 2263 OMX_U32 ulSubSecTimeDigitizedBuffSizeBytes; 2264 2265 OMX_TI_EXIFTAGSTATUS eStatusExposureTime; 2266 OMX_U32 ulExposureTime[2]; 2267 OMX_TI_EXIFTAGSTATUS eStatusFNumber; 2268 OMX_U32 ulFNumber[2]; 2269 OMX_TI_EXIFTAGSTATUS eStatusExposureProgram; 2270 OMX_U16 usExposureProgram; 2271 OMX_TI_EXIFTAGSTATUS eStatusSpectralSensitivity; 2272 OMX_S8* pSpectralSensitivityBuff; 2273 OMX_U32 ulSpectralSensitivityBuffSizeBytes; 2274 OMX_TI_EXIFTAGSTATUS eStatusISOCount; 2275 OMX_U16 usISOCount; 2276 OMX_TI_EXIFTAGSTATUS eStatusISOSpeedRatings; 2277 OMX_U16* pISOSpeedRatings; 2278 OMX_TI_EXIFTAGSTATUS eStatusOECF; 2279 OMX_S8* pOECFBuff; 2280 OMX_U32 ulOECFBuffSizeBytes; 2281 OMX_TI_EXIFTAGSTATUS eStatusShutterSpeedValue; 2282 OMX_S32 slShutterSpeedValue[2]; 2283 OMX_TI_EXIFTAGSTATUS eStatusApertureValue; 2284 OMX_U32 ulApertureValue[2]; 2285 OMX_TI_EXIFTAGSTATUS eStatusBrightnessValue; 2286 OMX_S32 slBrightnessValue[2]; 2287 OMX_TI_EXIFTAGSTATUS eStatusExposureBiasValue; 2288 OMX_S32 slExposureBiasValue[2]; 2289 OMX_TI_EXIFTAGSTATUS eStatusMaxApertureValue; 2290 OMX_U32 ulMaxApertureValue[2]; 2291 OMX_TI_EXIFTAGSTATUS eStatusSubjectDistance; 2292 OMX_U32 ulSubjectDistance[2]; 2293 OMX_TI_EXIFTAGSTATUS eStatusMeteringMode; 2294 OMX_U16 usMeteringMode; 2295 OMX_TI_EXIFTAGSTATUS eStatusLightSource; 2296 OMX_U16 usLightSource; 2297 OMX_TI_EXIFTAGSTATUS eStatusFlash; 2298 OMX_U16 usFlash; 2299 OMX_TI_EXIFTAGSTATUS eStatusFocalLength; 2300 OMX_U32 ulFocalLength[2]; 2301 OMX_TI_EXIFTAGSTATUS eStatusSubjectArea; 2302 OMX_U16 usSubjectArea[4]; 2303 OMX_TI_EXIFTAGSTATUS eStatusFlashEnergy; 2304 OMX_U32 ulFlashEnergy[2]; 2305 OMX_TI_EXIFTAGSTATUS eStatusSpatialFrequencyResponse; 2306 OMX_S8* pSpatialFrequencyResponseBuff; 2307 OMX_U32 ulSpatialFrequencyResponseBuffSizeBytes; 2308 OMX_TI_EXIFTAGSTATUS eStatusFocalPlaneXResolution; 2309 OMX_U32 ulFocalPlaneXResolution[2]; 2310 OMX_TI_EXIFTAGSTATUS eStatusFocalPlaneYResolution; 2311 OMX_U32 ulFocalPlaneYResolution[2]; 2312 OMX_TI_EXIFTAGSTATUS eStatusFocalPlaneResolutionUnit; 2313 OMX_U16 usFocalPlaneResolutionUnit; 2314 OMX_TI_EXIFTAGSTATUS eStatusSubjectLocation; 2315 OMX_U16 usSubjectLocation[2]; 2316 OMX_TI_EXIFTAGSTATUS eStatusExposureIndex; 2317 OMX_U32 ulExposureIndex[2]; 2318 OMX_TI_EXIFTAGSTATUS eStatusSensingMethod; 2319 OMX_U16 usSensingMethod; 2320 OMX_TI_EXIFTAGSTATUS eStatusFileSource; 2321 OMX_S8 cFileSource; 2322 OMX_TI_EXIFTAGSTATUS eStatusSceneType; 2323 OMX_S8 cSceneType; 2324 OMX_TI_EXIFTAGSTATUS eStatusCFAPattern; 2325 OMX_S8* pCFAPatternBuff; 2326 OMX_U32 ulCFAPatternBuffSizeBytes; 2327 OMX_TI_EXIFTAGSTATUS eStatusCustomRendered; 2328 OMX_U16 usCustomRendered; 2329 OMX_TI_EXIFTAGSTATUS eStatusExposureMode; 2330 OMX_U16 usExposureMode; 2331 OMX_TI_EXIFTAGSTATUS eStatusWhiteBalance; 2332 OMX_U16 usWhiteBalance; 2333 OMX_TI_EXIFTAGSTATUS eStatusDigitalZoomRatio; 2334 OMX_U32 ulDigitalZoomRatio[2]; 2335 OMX_TI_EXIFTAGSTATUS eStatusFocalLengthIn35mmFilm; 2336 OMX_U16 usFocalLengthIn35mmFilm; 2337 OMX_TI_EXIFTAGSTATUS eStatusSceneCaptureType; 2338 OMX_U16 usSceneCaptureType; 2339 OMX_TI_EXIFTAGSTATUS eStatusGainControl; 2340 OMX_U16 usGainControl; 2341 OMX_TI_EXIFTAGSTATUS eStatusContrast; 2342 OMX_U16 usContrast; 2343 OMX_TI_EXIFTAGSTATUS eStatusSaturation; 2344 OMX_U16 usSaturation; 2345 OMX_TI_EXIFTAGSTATUS eStatusSharpness; 2346 OMX_U16 usSharpness; 2347 OMX_TI_EXIFTAGSTATUS eStatusDeviceSettingDescription; 2348 OMX_S8* pDeviceSettingDescriptionBuff; 2349 OMX_U32 ulDeviceSettingDescriptionBuffSizeBytes; 2350 OMX_TI_EXIFTAGSTATUS eStatusSubjectDistanceRange; 2351 OMX_U16 usSubjectDistanceRange; 2352 2353 OMX_TI_EXIFTAGSTATUS eStatusImageUniqueID; 2354 OMX_S8 cImageUniqueID[33]; 2355 OMX_U8* pPrivateNextIFDPointer; //Should not be used by the application 2356 OMX_U8* pPrivateThumbnailSize; //Should not be used by the application 2357 OMX_U8* pPrivateTiffHeaderPointer; //Should not be used by the application 2358 2359 OMX_TI_EXIFTAGSTATUS eStatusGpsVersionId; 2360 OMX_U8 ucGpsVersionId[4]; 2361 OMX_TI_EXIFTAGSTATUS eStatusGpslatitudeRef; 2362 OMX_S8 cGpslatitudeRef[2]; 2363 OMX_TI_EXIFTAGSTATUS eStatusGpsLatitude; 2364 OMX_U32 ulGpsLatitude[6]; 2365 OMX_TI_EXIFTAGSTATUS eStatusGpsLongitudeRef; 2366 OMX_S8 cGpsLongitudeRef[2]; 2367 OMX_TI_EXIFTAGSTATUS eStatusGpsLongitude; 2368 OMX_U32 ulGpsLongitude[6]; 2369 OMX_TI_EXIFTAGSTATUS eStatusGpsAltitudeRef; 2370 OMX_U8 ucGpsAltitudeRef; 2371 OMX_TI_EXIFTAGSTATUS eStatusGpsAltitude; 2372 OMX_U32 ulGpsAltitude[2]; 2373 OMX_TI_EXIFTAGSTATUS eStatusGpsTimeStamp; 2374 OMX_U32 ulGpsTimeStamp[6]; 2375 OMX_TI_EXIFTAGSTATUS eStatusGpsSatellites; 2376 OMX_S8* pGpsSatellitesBuff; 2377 OMX_U32 ulGpsSatellitesBuffSizeBytes; 2378 OMX_TI_EXIFTAGSTATUS eStatusGpsStatus; 2379 OMX_S8 cGpsStatus[2]; 2380 OMX_TI_EXIFTAGSTATUS eStatusGpsMeasureMode; 2381 OMX_S8 cGpsMeasureMode[2]; 2382 OMX_TI_EXIFTAGSTATUS eStatusGpsDop; 2383 OMX_U32 ulGpsDop[2]; 2384 OMX_TI_EXIFTAGSTATUS eStatusGpsSpeedRef; 2385 OMX_S8 cGpsSpeedRef[2]; 2386 OMX_TI_EXIFTAGSTATUS eStatusGpsSpeed; 2387 OMX_U32 ulGpsSpeed[2]; 2388 OMX_TI_EXIFTAGSTATUS eStatusGpsTrackRef; 2389 OMX_S8 cGpsTrackRef[2]; 2390 OMX_TI_EXIFTAGSTATUS eStatusGpsTrack; 2391 OMX_U32 ulGpsTrack[2]; 2392 OMX_TI_EXIFTAGSTATUS eStatusGpsImgDirectionRef; 2393 OMX_S8 cGpsImgDirectionRef[2]; 2394 OMX_TI_EXIFTAGSTATUS eStatusGpsImgDirection; 2395 OMX_U32 ulGpsImgDirection[2]; 2396 OMX_TI_EXIFTAGSTATUS eStatusGpsMapDatum; 2397 OMX_S8* pGpsMapDatumBuff; 2398 OMX_U32 ulGpsMapDatumBuffSizeBytes; 2399 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLatitudeRef; 2400 OMX_S8 cGpsDestLatitudeRef[2]; 2401 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLatitude; 2402 OMX_U32 ulGpsDestLatitude[6]; 2403 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLongitudeRef; 2404 OMX_S8 cGpsDestLongitudeRef[2]; 2405 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLongitude; 2406 OMX_U32 ulGpsDestLongitude[6]; 2407 OMX_TI_EXIFTAGSTATUS eStatusGpsDestBearingRef; 2408 OMX_S8 cGpsDestBearingRef[2]; 2409 OMX_TI_EXIFTAGSTATUS eStatusGpsDestBearing; 2410 OMX_U32 ulGpsDestBearing[2]; 2411 OMX_TI_EXIFTAGSTATUS eStatusGpsDestDistanceRef; 2412 OMX_S8 cGpsDestDistanceRef[2]; 2413 OMX_TI_EXIFTAGSTATUS eStatusGpsDestDistance; 2414 OMX_U32 ulGpsDestDistance[2]; 2415 OMX_TI_EXIFTAGSTATUS eStatusGpsProcessingMethod; 2416 OMX_S8* pGpsProcessingMethodBuff; 2417 OMX_U32 ulGpsProcessingMethodBuffSizeBytes; 2418 OMX_TI_EXIFTAGSTATUS eStatusGpsAreaInformation; 2419 OMX_S8* pGpsAreaInformationBuff; 2420 OMX_U32 ulGpsAreaInformationBuffSizeBytes; 2421 OMX_TI_EXIFTAGSTATUS eStatusGpsDateStamp; 2422 OMX_S8 cGpsDateStamp[11]; 2423 OMX_TI_EXIFTAGSTATUS eStatusGpsDifferential; 2424 OMX_U16 usGpsDifferential; 2425 } OMX_TI_CONFIG_EXIF_TAGS; 2426 2427 /** 2428 * The OMX_TI_SENFACING_TYPE enumeration is used to define the 2429 * sensor facing. 2430 */ 2431 typedef enum OMX_TI_SENFACING_TYPE { 2432 OMX_TI_SENFACING_FRONT, 2433 OMX_TI_SENFACING_BACK, 2434 OMX_TI_SENFACING_MAX = 0x7FFFFFFF 2435 }OMX_TI_SENFACING_TYPE; 2436 2437 /** 2438 * Structure used to configure current OMX_TI_SENMOUNT_TYPE 2439 * 2440 * @param nSenId 2441 * @param nRotation 2442 * @param bMirror 2443 * @param bFlip 2444 * @param eFacing 2445 */ 2446 typedef struct OMX_TI_SENMOUNT_TYPE { 2447 OMX_U32 nSenId; 2448 OMX_U32 nRotation; 2449 OMX_BOOL bMirror; 2450 OMX_BOOL bFlip; 2451 OMX_TI_SENFACING_TYPE eFacing; 2452 }OMX_TI_SENMOUNT_TYPE; 2453 2454 /** 2455 * Structure used to configure current OMX_TI_VARFPSTYPE 2456 * 2457 * @param nVarFPSMin Number of the smallest FPS supported. 2458 * @param nVarFPSMax Number of the biggest FPS supported. 2459 */ 2460 typedef struct OMX_TI_VARFPSTYPE { 2461 OMX_U32 nVarFPSMin; 2462 OMX_U32 nVarFPSMax; 2463 } OMX_TI_VARFPSTYPE; 2464 2465 /** 2466 * Structure used to configure current OMX_TI_CONFIG_SHAREDBUFFER 2467 * 2468 * STRUCT MEMBERS: 2469 * nSize : Size of the structure in bytes 2470 * nVersion : OMX specification version information 2471 * nPortIndex : Port that this structure applies to 2472 * nSharedBuffSize : Size of the pSharedBuff in bytes 2473 * pSharedBuff : Pointer to a buffer 2474 */ 2475 typedef struct OMX_TI_CONFIG_SHAREDBUFFER { 2476 OMX_U32 nSize; 2477 OMX_VERSIONTYPE nVersion; 2478 OMX_U32 nPortIndex; 2479 OMX_U32 nSharedBuffSize; 2480 OMX_U8* pSharedBuff; 2481 } OMX_TI_CONFIG_SHAREDBUFFER; 2482 2483 /** 2484 * Structure used to configure current OMX_TI_CAPRESTYPE 2485 * 2486 * STRUCT MEMBERS: 2487 * nSize : Size of the structure in bytes 2488 * nVersion : OMX specification version information 2489 * nPortIndex : Port that this structure applies to 2490 * nWidthMin : Number of the smallest width supported 2491 * nHeightMin : Number of the smallest height supported 2492 * nWidthMax : Number of the biggest width supported 2493 * nHeightMax : Number of the biggest height supported 2494 * nMaxResInPixels : Max resolution in pixels. Used for description of 3d resolutions. 2495 */ 2496 typedef struct OMX_TI_CAPRESTYPE { 2497 OMX_U32 nSize; //- OMX struct header not required as this struct wont be queried on its own? 2498 OMX_VERSIONTYPE nVersion; 2499 OMX_U32 nPortIndex; 2500 OMX_U32 nWidthMin; // smallest width supported 2501 OMX_U32 nHeightMin; // smallest height supported 2502 OMX_U32 nWidthMax; // biggest width supported 2503 OMX_U32 nHeightMax; // biggest height supported 2504 OMX_U32 nMaxResInPixels;// max resolution in pixels 2505 } OMX_TI_CAPRESTYPE; 2506 2507 /** 2508 * Structure used to configure current OMX_TI_CAPTYPE 2509 * 2510 * STRUCT MEMBERS: 2511 * nSize : Size of the structure in bytes 2512 * nVersion : OMX specification version information 2513 * nPortIndex : Port that this structure applies to 2514 * ulPreviewFormatCount : Number of the supported preview pixelformat count 2515 * ePreviewFormats : Array containing the supported preview pixelformat count 2516 * ulImageFormatCount : Number of the supported image pixelformat count 2517 * eImageFormats : Array containing the supported image pixelformat count 2518 * tPreviewResRange : Supported preview resolution range 2519 * tRotatedPreviewResRange : Supported rotated preview resolution range 2520 * tImageResRange : Supported image resolution range 2521 * tThumbResRange : Supported thumbnail resolution range 2522 * ulWhiteBalanceCount : Supported whitebalance mode count 2523 * eWhiteBalanceModes : Array containing the whitebalance modes 2524 * ulColorEffectCount : Supported effects count 2525 * eColorEffects : Array containing the supported effects 2526 * xMaxWidthZoom : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Width 2527 * xMaxHeightZoom : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Height 2528 * ulFlickerCount : Number of the supported anti-flicker modes 2529 * eFlicker : Array containing the supported anti-flicker modes 2530 * ulExposureModeCount : Number of the supported exposure modes 2531 * eExposureModes : Array containing the supported exposure modes 2532 * bLensDistortionCorrectionSupported : Flag for Lens Distortion Correction Algorithm support 2533 * bISONoiseFilterSupported : Flag for Noise Filter Algorithm support 2534 * xEVCompensationMin : Fixed point value stored as Q16 representing the EVCompensation minumum allowed value 2535 * xEVCompensationMax : Fixed point value stored as Q16 representing the EVCompensation maximum allowed value 2536 * nSensitivityMax : nSensitivityMax = 100 implies maximum supported equal to "ISO 100" 2537 * ulFocusModeCount : Number of the supported focus modes 2538 * eFocusModes : Array containing the supported focus modes 2539 * ulSceneCount : Number of the supported scenes 2540 * eSceneModes : Array containing the supported scenes 2541 * ulFlashCount : Number of the supported flash modes 2542 * eFlashModes : Array containing the supported flash modes 2543 * xFramerateMin : Fixed point value stored as Q16 representing the minimum framerate allowed 2544 * xFramerateMax : Fixed point value stored as Q16 representing the maximum framerate allowed 2545 * bContrastSupported : Flag showing if the contrast is supported 2546 * bSaturationSupported : Flag showing if the saturation is supported 2547 * bBrightnessSupported : Flag showing if the brightness is supported 2548 * bProcessingLevelSupported : Flag showing if the processing level is supported 2549 * bQFactorSupported : Flag showing if the QFactor is supported 2550 * ulPrvVarFPSModesCount : Number of preview FPS modes 2551 * tPrvVarFPSModes : Preview FPS modes 2552 * ulCapVarFPSModesCount : Number of capture FPS modes 2553 * tCapVarFPSModes : Capture FPS modes 2554 * tSenMounting : Sensor mount information 2555 * ulAutoConvModesCount : Supported auto convergence modes count 2556 * eAutoConvModes : Array containing the auto convergence modes 2557 * ulBracketingModesCount : Supported bracketing modes count 2558 * eBracketingModes : Array containing the bracketing modes 2559 * bGbceSupported : Flag showing if the Gbce is supported 2560 * bRawJpegSupported : Flag showing if the Raw + Jpeg is supported 2561 * ulImageCodingFormatCount : Supported image coding formats count 2562 * eImageCodingFormat : Array containing the image coding formats 2563 * uSenNativeResWidth : Sensor native resolution width 2564 * uSenNativeResHeight : Sensor native resolution height 2565 * ulAlgoAreasFocusCount : Supported number of AlgoAreas for focus areas 2566 * ulAlgoAreasExposureCount : Supported number of AlgoAreas for exposure areas 2567 * bAELockSupported : Flag showing if the AE Lock is supported 2568 * bAWBLockSupported : Flag showing if the AWB Lock is supported 2569 * bAFLockSupported : Flag showing if the Af Lock is supported 2570 * nFocalLength : Focal length defined in terms of 0.01mm 2571 * ulPrvFrameLayoutCount : supported frame layout count for preview 2572 * ePrvFrameLayout : Array containing the frame layouts for preview 2573 * ulCapFrameLayoutCount : supported frame layout count for capture 2574 * eCapFrameLayout : Array containing the frame layouts for capture 2575 * bVideoNoiseFilterSupported : Flag showing if the video noise filter is supported 2576 * bVideoStabilizationSupported : Flag showing if the video stabilization is supported 2577 * bStillCapDuringVideoSupported : Flag showing if the still capture is supported during video 2578 * bMechanicalMisalignmentSupported : Flag showing if the mechanical misalignment is supported 2579 * bFacePrioritySupported : Flag showing if the face priority is supported 2580 * bRegionPrioritySupported : Flag showing if the region priority is supported 2581 * bGlbceSupported : Flag showing if the GLBCE is supported 2582 * nManualConvMin : Manual convergence min value 2583 * nManualConvMax : Manual convergence max value 2584 * nManualExpMin : Manual exposure time min value 2585 * nManualExpMax : Manual exposure time max value 2586 * nBrightnessMin : Brightness min value 2587 * nBrightnessMax : Brightness max value 2588 * nContrastMin : Contrast min value 2589 * nContrastMax : Contrast max value 2590 * nSharpnessMin : Sharpness min value 2591 * nSharpnessMax : Sharpness max value 2592 * nSaturationMin : Saturation min value 2593 * nSaturationMax : Saturation max value 2594 */ 2595 typedef struct OMX_TI_CAPTYPE { 2596 OMX_U32 nSize; 2597 OMX_VERSIONTYPE nVersion; 2598 OMX_U32 nPortIndex; 2599 OMX_U16 ulPreviewFormatCount; // supported preview pixelformat count 2600 OMX_COLOR_FORMATTYPE ePreviewFormats[32]; 2601 OMX_U16 ulImageFormatCount; // supported image pixelformat count 2602 OMX_COLOR_FORMATTYPE eImageFormats[32]; 2603 OMX_TI_CAPRESTYPE tPreviewResRange; // supported preview resolution range 2604 OMX_TI_CAPRESTYPE tRotatedPreviewResRange; // supported rotated preview resolution range 2605 OMX_TI_CAPRESTYPE tImageResRange; // supported image resolution range 2606 OMX_TI_CAPRESTYPE tThumbResRange; // supported thumbnail resolution range 2607 OMX_U16 ulWhiteBalanceCount; // supported whitebalance mode count 2608 OMX_WHITEBALCONTROLTYPE eWhiteBalanceModes[32]; 2609 OMX_U16 ulColorEffectCount; // supported effects count 2610 OMX_IMAGEFILTERTYPE eColorEffects[32]; 2611 OMX_S32 xMaxWidthZoom; // Fixed point value stored as Q16 2612 OMX_S32 xMaxHeightZoom; // Fixed point value stored as Q16 2613 OMX_U16 ulFlickerCount; // supported anti-flicker mode count 2614 OMX_COMMONFLICKERCANCELTYPE eFlicker[32]; 2615 OMX_U16 ulExposureModeCount; // supported exposure mode count 2616 OMX_EXPOSURECONTROLTYPE eExposureModes[32]; 2617 OMX_BOOL bLensDistortionCorrectionSupported; 2618 OMX_BOOL bISONoiseFilterSupported; 2619 OMX_S32 xEVCompensationMin; // Fixed point value stored as Q16 2620 OMX_S32 xEVCompensationMax; // Fixed point value stored as Q16 2621 OMX_U32 nSensitivityMax; // nSensitivityMax = 100 implies maximum supported equal to "ISO 100" 2622 OMX_U16 ulFocusModeCount; // supported focus mode count 2623 OMX_IMAGE_FOCUSCONTROLTYPE eFocusModes[32]; 2624 OMX_U16 ulSceneCount; // supported scene count 2625 OMX_SCENEMODETYPE eSceneModes[64]; 2626 OMX_U16 ulFlashCount; // supported flash modes count 2627 OMX_IMAGE_FLASHCONTROLTYPE eFlashModes[32]; 2628 OMX_U32 xFramerateMin; // Fixed point value stored as Q16 2629 OMX_U32 xFramerateMax; // Fixed point value stored as Q16 2630 OMX_BOOL bContrastSupported; 2631 OMX_BOOL bSaturationSupported; 2632 OMX_BOOL bBrightnessSupported; 2633 OMX_BOOL bProcessingLevelSupported; 2634 OMX_BOOL bQFactorSupported; 2635 OMX_U16 ulPrvVarFPSModesCount; // supported variable FPS preview modes count 2636 OMX_TI_VARFPSTYPE tPrvVarFPSModes[10]; 2637 OMX_U16 ulCapVarFPSModesCount; // supported variable FPS capture modes count 2638 OMX_TI_VARFPSTYPE tCapVarFPSModes[10]; 2639 OMX_TI_SENMOUNT_TYPE tSenMounting; 2640 OMX_U16 ulAutoConvModesCount; // supported auto convergence modes count 2641 OMX_TI_AUTOCONVERGENCEMODETYPE eAutoConvModes[32]; 2642 OMX_U16 ulBracketingModesCount; // supported bracketing modes count 2643 OMX_BRACKETMODETYPE eBracketingModes[32]; 2644 OMX_BOOL bGbceSupported; // Flag showing if the Gbce is supported 2645 OMX_BOOL bRawJpegSupported; // Flag showing if the Raw + Jpeg issupported 2646 OMX_U16 ulImageCodingFormatCount; 2647 OMX_IMAGE_CODINGTYPE eImageCodingFormat[32]; 2648 OMX_U16 uSenNativeResWidth; 2649 OMX_U16 uSenNativeResHeight; 2650 OMX_U16 ulAlgoAreasFocusCount; 2651 OMX_U16 ulAlgoAreasExposureCount; 2652 OMX_BOOL bAELockSupported; 2653 OMX_BOOL bAWBLockSupported; 2654 OMX_BOOL bAFLockSupported; 2655 OMX_U16 nFocalLength; 2656 OMX_U16 ulPrvFrameLayoutCount; // supported frame layout count 2657 OMX_TI_STEREOFRAMELAYOUTTYPE ePrvFrameLayout[16]; 2658 OMX_U16 ulCapFrameLayoutCount; // supported frame layout count 2659 OMX_TI_STEREOFRAMELAYOUTTYPE eCapFrameLayout[16]; 2660 OMX_BOOL bVideoNoiseFilterSupported; 2661 OMX_BOOL bVideoStabilizationSupported; 2662 OMX_BOOL bStillCapDuringVideoSupported; 2663 OMX_BOOL bMechanicalMisalignmentSupported; 2664 OMX_BOOL bFacePrioritySupported; 2665 OMX_BOOL bRegionPrioritySupported; 2666 OMX_BOOL bGlbceSupported; 2667 OMX_S16 nManualConvMin; 2668 OMX_S16 nManualConvMax; 2669 OMX_U16 nManualExpMin; 2670 OMX_U16 nManualExpMax; 2671 OMX_S16 nBrightnessMin; 2672 OMX_S16 nBrightnessMax; 2673 OMX_S16 nContrastMin; 2674 OMX_S16 nContrastMax; 2675 OMX_S16 nSharpnessMin; 2676 OMX_S16 nSharpnessMax; 2677 OMX_S16 nSaturationMin; 2678 OMX_S16 nSaturationMax; 2679 } OMX_TI_CAPTYPE; 2680 2681 2682 2683 /** 2684 * Defines 3A Face priority mode. 2685 * 2686 * STRUCT MEMBERS: 2687 * nSize : Size of the structure in bytes 2688 * nVersion : OMX specification version information 2689 * nPortIndex : Port that this structure applies to 2690 * bAwbFaceEnable : Enable Face priority for Auto White Balance 2691 * bAeFaceEnable : Enable Face priority for Auto Exposure 2692 * bAfFaceEnable : Enable Face priority for Auto Focus 2693 */ 2694 typedef struct OMX_TI_CONFIG_3A_FACE_PRIORITY { 2695 OMX_U32 nSize; 2696 OMX_VERSIONTYPE nVersion; 2697 OMX_U32 nPortIndex; 2698 OMX_BOOL bAwbFaceEnable; 2699 OMX_BOOL bAeFaceEnable; 2700 OMX_BOOL bAfFaceEnable; 2701 } OMX_TI_CONFIG_3A_FACE_PRIORITY; 2702 2703 /** 2704 * Defines 3A Region priority mode. 2705 * 2706 * STRUCT MEMBERS: 2707 * nSize : Size of the structure in bytes 2708 * nVersion : OMX specification version information 2709 * nPortIndex : Port that this structure applies to 2710 * bAwbFaceEnable : Enable Region priority for Auto White Balance 2711 * bAeFaceEnable : Enable Region priority for Auto Exposure 2712 * bAfFaceEnable : Enable Region priority for Auto Focus 2713 */ 2714 typedef struct OMX_TI_CONFIG_3A_REGION_PRIORITY { 2715 OMX_U32 nSize; 2716 OMX_VERSIONTYPE nVersion; 2717 OMX_U32 nPortIndex; 2718 OMX_BOOL bAwbRegionEnable; 2719 OMX_BOOL bAeRegionEnable; 2720 OMX_BOOL bAfRegionEnable; 2721 } OMX_TI_CONFIG_3A_REGION_PRIORITY; 2722 2723 /* 2724 * STRUCT MEMBERS: 2725 * nSize : Size of the structure in bytes 2726 * nVersion : OMX specification version information 2727 * nPortIndex : Port that this structure applies to 2728 * bAutoConvergence : Enable/Disable Auto Convergence 2729 */ 2730 typedef struct OMX_TI_PARAM_AUTOCONVERGENCETYPE { 2731 OMX_U32 nSize; 2732 OMX_VERSIONTYPE nVersion; 2733 OMX_U32 nPortIndex; 2734 OMX_BOOL bAutoConvergence; 2735 } OMX_TI_PARAM_AUTOCONVERGENCETYPE; 2736 2737 /** 2738 * Focus distance configuration 2739 * 2740 * STRUCT MEMBERS: 2741 * nSize: Size of the structure in bytes 2742 * nVersion: OMX specification version information 2743 * nPortIndex: Port that this structure applies to 2744 * nFocusDistanceNear : Specifies the near focus distance in mm ( 0 equals infinity ) 2745 * nFocusDistanceOptimal : Specifies the optimal focus distance in mm ( 0 equals infinity ) 2746 * nFocusDistanceFar : Specifies the far focus distance in mm ( 0 equals infinity ) 2747 * nLensPosition : Specifies the current lens position in driver units 2748 */ 2749 typedef struct OMX_TI_CONFIG_FOCUSDISTANCETYPE { 2750 OMX_U32 nSize; 2751 OMX_VERSIONTYPE nVersion; 2752 OMX_U32 nPortIndex; 2753 OMX_U32 nFocusDistanceNear; 2754 OMX_U32 nFocusDistanceOptimal; 2755 OMX_U32 nFocusDistanceFar; 2756 OMX_S32 nLensPosition; 2757 } OMX_TI_CONFIG_FOCUSDISTANCETYPE; 2758 2759 /** 2760 * The OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE enumeration is used to define the 2761 * brightness and contrast mode types. 2762 */ 2763 typedef enum OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE { 2764 OMX_TI_BceModeOff = 0, 2765 OMX_TI_BceModeOn, 2766 OMX_TI_BceModeAuto, 2767 OMX_TI_BceModeMax = 0x7FFFFFFF 2768 } OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE; 2769 2770 /** 2771 * Local and global brightness contrast type. 2772 * 2773 * STRUCT MEMBERS: 2774 * nSize : Size of the structure in bytes 2775 * nVersion : OMX specification version information 2776 * nPortIndex : Port that this structure applies to 2777 * eControl : Control field for GLBCE 2778 */ 2779 typedef struct OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE { 2780 OMX_U32 nSize; 2781 OMX_VERSIONTYPE nVersion; 2782 OMX_U32 nPortIndex; 2783 OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE eControl; 2784 } OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE; 2785 2786 /** 2787 * Uncompressed image operating mode configuration structure. 2788 * 2789 * @param nSize Size of the structure in bytes. 2790 * @param nVersion OMX specification version information. 2791 * @param xMin The minimum frame rate allowed. 2792 * Units are Q16 frames per second. 2793 * @param xMax The maximum frame rate allowed. 2794 * Units are Q16 frames per second. 2795 */ 2796 2797 typedef struct OMX_TI_CONFIG_VARFRMRANGETYPE { 2798 OMX_U32 nSize; 2799 OMX_VERSIONTYPE nVersion; 2800 OMX_U32 xMin; 2801 OMX_U32 xMax; 2802 } OMX_TI_CONFIG_VARFRMRANGETYPE; 2803 2804 /** 2805 * Single preview capture modes 2806 */ 2807 typedef enum OMX_TI_SINGLEPREVIEWMODETYPE { 2808 OMX_TI_SinglePreviewMode_PreviewOnly, 2809 OMX_TI_SinglePreviewMode_Video, 2810 OMX_TI_SinglePreviewMode_ImageCapture, 2811 OMX_TI_SinglePreviewMode_ImageCaptureHighSpeed, 2812 OMX_TI_SinglePreviewMode_Reprocess, 2813 OMX_TI_SinglePreviewMode = 0x7FFFFFFF 2814 } OMX_TI_SINGLEPREVIEWMODETYPE; 2815 2816 /** 2817 * Define configuration structure for 2818 * single preview capture mode 2819 * 2820 * STRUCT MEMBERS: 2821 * nSize : Size of the structure in bytes 2822 * nVersion : OMX specification version information 2823 * eMode : Select the subusecase mode (Video/HQ/HS) 2824 */ 2825 typedef struct OMX_TI_CONFIG_SINGLEPREVIEWMODETYPE { 2826 OMX_U32 nSize; 2827 OMX_VERSIONTYPE nVersion; 2828 OMX_TI_SINGLEPREVIEWMODETYPE eMode; 2829 } OMX_TI_CONFIG_SINGLEPREVIEWMODETYPE; 2830 2831 2832 /** 2833 * Configuratin structure for freeze AWB parameter modifications. 2834 * 2835 * @param nSize Size of the structure in bytes. 2836 * @param nVersion OMX specification version information. 2837 * @param nPortIndex Port index to which to apply. 2838 * @param nTimeDelay Time for which the AWB parameters to be frozen. 2839 * measured in milliseconds 2840 */ 2841 typedef struct OMX_TI_CONFIG_FREEZE_AWB { 2842 OMX_U32 nSize; 2843 OMX_VERSIONTYPE nVersion; 2844 OMX_U32 nPortIndex; 2845 OMX_U32 nTimeDelay; 2846 } OMX_TI_CONFIG_FREEZE_AWB; 2847 2848 /** 2849 * Configuration structure used to set 2850 * minimum time between two sequential WB coefficients modifications. 2851 * 2852 * @param nSize Size of the structure in bytes. 2853 * @param nVersion OMX specification version information. 2854 * @param nPortIndex Port index to which to apply. 2855 * @param nDelayTime The time in milliseconds. 2856 */ 2857 typedef struct OMX_TI_CONFIG_AWB_DELAY { 2858 OMX_U32 nSize; 2859 OMX_VERSIONTYPE nVersion; 2860 OMX_U32 nPortIndex; 2861 OMX_U32 nDelayTime; 2862 } OMX_TI_CONFIG_AWB_DELAY; 2863 2864 /** 2865 * Configuration structure used to set 2866 * minimum time delay between 2867 * two sequential AE parameters modifications 2868 * 2869 * @param nSize Size of the structure in bytes. 2870 * @param nVersion OMX specification version information. 2871 * @param nPortIndex Port index to which to apply. 2872 * @param nDelayTime The time in milliseconds. 2873 */ 2874 typedef struct OMX_TI_CONFIG_AE_DELAY { 2875 OMX_U32 nSize; 2876 OMX_VERSIONTYPE nVersion; 2877 OMX_U32 nPortIndex; 2878 OMX_U32 nDelayTime; 2879 } OMX_TI_CONFIG_AE_DELAY; 2880 2881 2882 /** 2883 * Configuration structure used to freeze AE modifications 2884 * for a nTimeDelay milliseconds 2885 * 2886 * @param nSize Size of the structure in bytes. 2887 * @param nVersion OMX specification version information. 2888 * @param nPortIndex Port index to which to apply. 2889 * @param nTimeDelay The time in milliseconds. 2890 */ 2891 typedef struct OMX_TI_CONFIG_FREEZE_AE { 2892 OMX_U32 nSize; 2893 OMX_VERSIONTYPE nVersion; 2894 OMX_U32 nPortIndex; 2895 OMX_U32 nTimeDelay; 2896 } OMX_TI_CONFIG_FREEZE_AE; 2897 2898 /** 2899 * Configuration structure used to set 2900 * the AE gain threshold 2901 * 2902 * @param nSize Size of the structure in bytes. 2903 * @param nVersion OMX specification version information. 2904 * @param uMinTH Minimum value for AE gain. 2905 * @param uMaxTH Maximum value for AE gain. 2906 */ 2907 typedef struct OMX_TI_CONFIG_AE_THRESHOLD { 2908 OMX_U32 nSize; 2909 OMX_VERSIONTYPE nVersion; 2910 OMX_U32 nPortIndex; 2911 OMX_U32 uMinTH; 2912 OMX_U32 uMaxTH; 2913 } OMX_TI_CONFIG_AE_THRESHOLD; 2914 2915 /** 2916 * Enumeration describing the main gestures 2917 */ 2918 typedef enum OMX_TI_GESTURES_TYPE { 2919 OMX_TI_GESTURE_NO_GESTURE = 0x70000001, 2920 OMX_TI_GESTURE_SWIPE_RIGHT, 2921 OMX_TI_GESTURE_SWIPE_LEFT, 2922 OMX_TI_GESTURE_FIST_RIGHT, 2923 OMX_TI_GESTURE_FIST_LEFT, 2924 2925 OMX_TI_GESTURE_COUNT, 2926 OMX_TI_GESTURE_MAX = 0x7FFFFFFF 2927 } OMX_TI_GESTURES_TYPE; 2928 2929 /** 2930 * Enumeration describing the main gesture objects 2931 */ 2932 typedef enum OMX_TI_OBJECT_TYPE { 2933 OMX_TI_OBJECT_PALM, 2934 OMX_TI_OBJECT_FIST, 2935 OMX_TI_OBJECT_FACE, 2936 2937 OMX_TI_OBJECT_MAX = 0x7FFFFFFF 2938 } OMX_TI_OBJECT_TYPE; 2939 2940 /** 2941 * Data structure carrying information about 2942 * objects located at a certain area of frame buffer. 2943 * 2944 * @param nSize Size of the structure in bytes. 2945 * @param nVersion OMX specification version information. 2946 * @param nPortIndex Port index to which to apply. 2947 * @param eType The object type. 2948 * @param nTop The top coordinate. 2949 * @param nLeft The left coordinate. 2950 * @param nWidth The width of the object. 2951 * @param nHeight The height of the object. 2952 */ 2953 typedef struct OMX_CONFIG_OBJECT_RECT_TYPE { 2954 OMX_U32 nSize; 2955 OMX_VERSIONTYPE nVersion; 2956 OMX_U32 nPortIndex; 2957 OMX_TI_OBJECT_TYPE eType; 2958 OMX_S32 nTop; 2959 OMX_S32 nLeft; 2960 OMX_U32 nWidth; 2961 OMX_U32 nHeight; 2962 } OMX_CONFIG_OBJECT_RECT_TYPE; 2963 2964 /** 2965 * Data structure carrying information about 2966 * gestures detected at a certain frame. 2967 * 2968 * @param nSize Size of the structure in bytes. 2969 * @param nVersion OMX specification version information. 2970 * @param nPortIndex Port index to which to apply. 2971 * @param nTimeStamp Frame id. 2972 * @param eType Type of the gesture detected at that frame. 2973 * @param nNumDetectedGestures Number ot the areas of the frame in which this gesture is detected. 2974 * @param nGestureAreas The areas where this gesture is detected. 2975 */ 2976 typedef struct OMX_TI_CONFIG_GESTURES_INFO { 2977 OMX_U32 nSize; 2978 OMX_VERSIONTYPE nVersion; 2979 OMX_U32 nPortIndex; 2980 OMX_TICKS nTimeStamp; 2981 OMX_TI_GESTURES_TYPE eType; 2982 OMX_U32 nNumDetectedGestures; 2983 OMX_CONFIG_OBJECT_RECT_TYPE nGestureAreas[35]; 2984 } OMX_TI_CONFIG_GESTURES_INFO; 2985 2986 /** 2987 * Define the frames queue len for ZSL 2988 * 2989 * STRUCT MEMBERS: 2990 * nSize: Size of the structure in bytes 2991 * nVersion: OMX specification version information 2992 * nHistoryLen: History len in number of frames 2993 */ 2994 typedef struct OMX_TI_PARAM_ZSLHISTORYLENTYPE { 2995 OMX_U32 nSize; 2996 OMX_VERSIONTYPE nVersion; 2997 OMX_U32 nHistoryLen; 2998 } OMX_TI_PARAM_ZSLHISTORYLENTYPE; 2999 3000 /** 3001 * Define the frame delay in ms for ZSL 3002 * 3003 * STRUCT MEMBERS: 3004 * nSize: Size of the structure in bytes 3005 * nVersion: OMX specification version information 3006 * nDelay: Capture frame delay in ms 3007 */ 3008 typedef struct OMX_TI_CONFIG_ZSLDELAYTYPE { 3009 OMX_U32 nSize; 3010 OMX_VERSIONTYPE nVersion; 3011 OMX_S32 nDelay; 3012 } OMX_TI_CONFIG_ZSLDELAYTYPE; 3013 3014 /** 3015 * AlogAreas purpose 3016 * This type specifies the purpose of areas specified in OMX_ALGOAREASTYPE. 3017 * */ 3018 typedef enum OMX_ALGOAREAPURPOSE{ 3019 OMX_AlgoAreaFocus = 0, // Multi region focus 3020 OMX_AlgoAreaExposure, 3021 }OMX_ALGOAREAPURPOSE; 3022 3023 typedef struct OMX_ALGOAREA { 3024 OMX_S32 nLeft; /**< The leftmost coordinate of the area rectangle */ 3025 OMX_S32 nTop; /**< The topmost coordinate of the area rectangle */ 3026 OMX_U32 nWidth; /**< The width of the area rectangle in pixels */ 3027 OMX_U32 nHeight; /**< The height of the area rectangle in pixels */ 3028 OMX_U32 nPriority; /**< Priority - ranges from 1 to 1000 */ 3029 }OMX_ALGOAREA; 3030 3031 /** 3032 * Algorythm areas type 3033 * This type defines areas for Multi Region Focus, 3034 * or another algorithm region parameters, 3035 * such as Multi Region Auto Exposure. 3036 * 3037 * STRUCT MEMBERS: 3038 * nSize : Size of the structure in bytes 3039 * nVersion : OMX specification version information 3040 * nPortIndex : Port index 3041 * tAreaPosition : Area definition - coordinates and purpose - Multi Region Focus, Auto Exposure, etc. 3042 * nNumAreas : Number of areas defined in the array 3043 * nAlgoAreaPurpose : Algo area purpose - eg. Multi Region Focus is OMX_AlgoAreaFocus 3044 */ 3045 typedef struct OMX_ALGOAREASTYPE { 3046 OMX_U32 nSize; 3047 OMX_VERSIONTYPE nVersion; 3048 OMX_U32 nPortIndex; 3049 3050 OMX_U32 nNumAreas; 3051 OMX_ALGOAREA tAlgoAreas[MAX_ALGOAREAS]; 3052 OMX_ALGOAREAPURPOSE nAlgoAreaPurpose; 3053 } OMX_ALGOAREASTYPE; 3054 3055 /*==========================================================================*/ 3056 /*! 3057 @brief OMX_TI_PARAM_ENHANCEDPORTRECONFIG : Suport added to new port reconfig usage 3058 @param bUsePortReconfigForCrop Enables port reconfig for crop. 3059 @param bUsePortReconfigForPadding Enables port reconfig for padding 3060 */ 3061 /*==========================================================================*/ 3062 3063 typedef struct OMX_TI_PARAM_ENHANCEDPORTRECONFIG { 3064 OMX_U32 nSize; 3065 OMX_VERSIONTYPE nVersion; 3066 OMX_U32 nPortIndex; 3067 OMX_BOOL bUsePortReconfigForCrop; 3068 OMX_BOOL bUsePortReconfigForPadding; 3069 } OMX_TI_PARAM_ENHANCEDPORTRECONFIG; 3070 3071 3072 typedef struct { 3073 OMX_U16 nVPos; //!< AEWINSTART WINSV //AFPAXSTART PAXSV 3074 OMX_U8 nVSize; //!< AEWWIN1 WINW //AFPAX1 PAXH 3075 OMX_U16 nHPos; //!< AEWINSTART WINSH //AFPAXSTART PAXSH 3076 OMX_U8 nHSize; //!< AEWWIN1 WINH //AFPAX1 PAXW 3077 OMX_U8 nVCount; //!< AEWWIN1 WINVC //AFPAX2 PAXVC 3078 OMX_U8 nVIncr; //!< AEWSUBWIN AEWINCV //AFPAX2 AFINCV 3079 OMX_U8 nHCount; //!< AEWWIN1 WINHC //AFPAX2 PAXHC 3080 OMX_U8 nHIncr; //!< AEWSUBWIN AEWINCH //AFPAX2 AFINCH 3081 }OMX_TI_H3aPAXELCFG; 3082 3083 typedef struct { 3084 /** Average value for red pixels in current paxel */ 3085 OMX_U16 red; 3086 /** Average value for green pixels in current paxel */ 3087 OMX_U16 green; 3088 /** Average value for blue pixels in current paxel */ 3089 OMX_U16 blue; 3090 /** Flag indicating whether current paxel is valid 0:invalid, !0:valid */ 3091 OMX_U16 valid; 3092 } OMX_TI_H3AAEWBPAXELDATA; 3093 3094 typedef struct OMX_TI_H3AAFDATA { 3095 OMX_U32 nSize; /**< The size of the structure 3096 including the length of data field containing the histogram data */ 3097 OMX_VERSIONTYPE nVersion; 3098 OMX_U32 nPortIndex; 3099 OMX_TI_CAMERAVIEWTYPE eCameraView; 3100 OMX_U8 *data; 3101 } OMX_TI_H3AAFDATA; 3102 3103 /** 3104 * Data structure carrying information about 3105 * VTC slice height. 3106 * 3107 * @param nSize Size of the structure in bytes. 3108 * @param nVersion OMX specification version information. 3109 * @param nSliceHeight Definition of slice height. 3110 * 3111 * 3112 * 3113 * 3114 */ 3115 typedef struct OMX_TI_PARAM_VTCSLICE { 3116 OMX_U32 nSize; 3117 OMX_VERSIONTYPE nVersion; 3118 OMX_U32 nSliceHeight; 3119 OMX_U32 nInternalBuffers; 3120 OMX_PTR IonBufhdl[2]; 3121 } OMX_TI_PARAM_VTCSLICE; 3122 3123 3124 /** 3125 * nSize is the size of the structure including the length of data field containing 3126 * the histogram data. 3127 * nBins is the number of bins in the histogram. 3128 * eComponentType specifies the type of the histogram bins according to enum. 3129 * It can be selected to generate multiple component types, then the extradata struct 3130 * is repeated for each component type. 3131 */ 3132 typedef struct OMX_TI_HISTOGRAMTYPE { 3133 OMX_U32 nSize; /**< The size of the structure 3134 including the length of data field containing the histogram data */ 3135 OMX_VERSIONTYPE nVersion; 3136 OMX_U32 nPortIndex; 3137 OMX_TI_CAMERAVIEWTYPE eCameraView; 3138 OMX_U32 nBins; /**< The number of bins in the histogram */ 3139 OMX_HISTCOMPONENTTYPE eComponentType; /**< Specifies the type of the histogram bins according to enum. 3140 It can be selected to generate multiple component types, 3141 then the extradata struct is repeated for each component type */ 3142 OMX_U8 *data; 3143 } OMX_TI_HISTOGRAMTYPE; 3144 3145 3146 3147 typedef struct OMX_TI_CPCAMDATA { 3148 OMX_U32 nSize; 3149 OMX_VERSIONTYPE nVersion; 3150 OMX_U32 nPortIndex; 3151 OMX_TI_CAMERAVIEWTYPE eCameraView; 3152 3153 /* Face Detect */ 3154 OMX_U16 ulFaceCount; // faces detected 3155 OMX_TI_FACERESULT tFacePosition[35]; // 35 is max faces supported by FDIF 3156 3157 3158 /**** Ancillary Data ******/ 3159 OMX_U32 nFrameNumber; 3160 OMX_U16 nInputImageHeight; 3161 OMX_U16 nInputImageWidth; 3162 OMX_U16 nOutputImageHeight; 3163 OMX_U16 nOutputImageWidth; 3164 OMX_U16 nDigitalZoomFactor; 3165 OMX_S16 nCropCenterColumn; 3166 OMX_S16 nCropCenterRow; 3167 OMX_U16 nOpticalZoomValue; 3168 OMX_U8 nAFStatus; 3169 OMX_U8 nAWBStatus; 3170 OMX_U8 nAEStatus; 3171 OMX_U32 nExposureTime; 3172 OMX_U16 nEVCompensation; 3173 OMX_U8 nDigitalGainValue; 3174 OMX_U8 nAnalogGainValue; 3175 OMX_U16 nCurrentISO; 3176 OMX_U16 nReferenceISO; 3177 OMX_U8 nApertureValue; 3178 OMX_U8 nPixelRange; 3179 OMX_U8 nCameraShake; 3180 OMX_U8 nNumFacesDetected; 3181 3182 /* Not Yet Supported */ 3183 OMX_U16 nFocalDistance; 3184 OMX_U16 nShotNumber; 3185 OMX_U8 nFlashStatus; 3186 3187 3188 /*** White Balance gains ****/ 3189 /**< White Balance Color Temperature in Kelvins */ 3190 OMX_U16 nColorTemperature; 3191 3192 /**< Bayer applied R color channel gain in (U13Q9) */ 3193 OMX_U16 nGainR; 3194 3195 /**< Bayer applied Gr color channel gain in (U13Q9) */ 3196 OMX_U16 nGainGR; 3197 3198 /**< Bayer applied Gb color channel gain in (U13Q9) */ 3199 OMX_U16 nGainGB; 3200 3201 /**< Bayer applied B color channel gain in (U13Q9) */ 3202 OMX_U16 nGainB; 3203 3204 /* BELOW ARE NOT SUPPORTED , Default set to 0 */ 3205 OMX_S16 nOffsetR; /**< Bayer applied R color channel offset */ 3206 OMX_S16 nOffsetGR; /**< Bayer applied Gr color channel offset */ 3207 OMX_S16 nOffsetGB; /**< Bayer applied Gb color channel offset */ 3208 OMX_S16 nOffsetB; /**< Bayer applied B color channel offset */ 3209 3210 3211 /* AEWB,AF,HIST data size */ 3212 OMX_U32 nAewbDataSize; 3213 OMX_U32 nAfDataSize; 3214 OMX_U32 nHistSize; 3215 3216 3217 3218 /*** H3A AF-AEW DATA ***/ 3219 OMX_TI_H3aPAXELCFG tAfPaxelWin; 3220 OMX_TI_H3aPAXELCFG tAewbPaxelWin; 3221 OMX_TI_H3AAEWBPAXELDATA *tpPaxel; 3222 OMX_TI_H3AAFDATA tH3A_Af; 3223 /* Histogram */ 3224 OMX_TI_HISTOGRAMTYPE Histogram; 3225 3226 3227 } OMX_TI_CPCAMDATA; 3228 3229 /** 3230 * Start/Stop mechanical misalignment 3231 * 3232 * STRUCT MEMBERS: 3233 * nSize: Size of the structure in bytes 3234 * nVersion: OMX specification version information 3235 * nDelay: Capture frame delay in ms 3236 */ 3237 typedef struct OMX_TI_CONFIG_MM { 3238 OMX_U32 nSize; 3239 OMX_VERSIONTYPE nVersion; 3240 OMX_BOOL bMM; 3241 } OMX_TI_CONFIG_MM; 3242 3243 /** 3244 * Start/Stop Affine transformation for Mm/Ac 3245 * 3246 * STRUCT MEMBERS: 3247 * nSize: Size of the structure in bytes 3248 * nVersion: OMX specification version information 3249 * bAffine: Enable / Disable 3250 */ 3251 typedef struct OMX_TI_PARAM_AFFINE { 3252 OMX_U32 nSize; 3253 OMX_VERSIONTYPE nVersion; 3254 OMX_BOOL bAffine; 3255 } OMX_TI_PARAM_AFFINE; 3256 3257 /** 3258 * A pointer to this struct is passed to the OMX_SetParameter when the extension 3259 * index for the 'OMX.google.android.index.enableAndroidNativeBuffers' extension 3260 * is given. 3261 * The corresponding extension Index is OMX_TI_IndexUseNativeBuffers. 3262 * This will be used to inform OMX about the presence of gralloc pointers instead 3263 * of virtual pointers 3264 */ 3265 typedef struct OMX_TI_PARAMUSENATIVEBUFFER { 3266 OMX_U32 nSize; 3267 OMX_VERSIONTYPE nVersion; 3268 OMX_U32 nPortIndex; 3269 OMX_BOOL bEnable; 3270 } OMX_TI_PARAMUSENATIVEBUFFER; 3271 3272 /** 3273 * A pointer to this struct is passed to OMX_GetParameter when the extension 3274 * index for the 'OMX.google.android.index.getAndroidNativeBufferUsage' 3275 * extension is given. 3276 * The corresponding extension Index is OMX_TI_IndexAndroidNativeBufferUsage. 3277 * The usage bits returned from this query will be used to allocate the Gralloc 3278 * buffers that get passed to the useAndroidNativeBuffer command. 3279 */ 3280 typedef struct OMX_TI_PARAMNATIVEBUFFERUSAGE { 3281 OMX_U32 nSize; 3282 OMX_VERSIONTYPE nVersion; 3283 OMX_U32 nPortIndex; 3284 OMX_U32 nUsage; 3285 } OMX_TI_PARAMNATIVEBUFFERUSAGE; 3286 3287 /** 3288 * OMX_TI_ZSL_PRIORITY_TYPE Enumerated Value 3289 */ 3290 typedef enum OMX_TI_ZSL_PRIORITY_TYPE { 3291 OMX_TI_ZSL_PRIORITY_TIME, 3292 OMX_TI_ZSL_PRIORITY_FOCUS, 3293 OMX_TI_ZSL_PRIORITY = 0x7FFFFFFF 3294 } OMX_TI_ZSL_PRIORITY_TYPE; 3295 3296 /** 3297 * Define the priority tha twill be used to select ZSL frame 3298 * 3299 * STRUCT MEMBERS: 3300 * nSize: Size of the structure in bytes 3301 * nVersion: OMX specification version information 3302 * ePriority: Priority 3303 */ 3304 typedef struct OMX_TI_CONFIG_ZSLFRAMESELECTPRIOTYPE { 3305 OMX_U32 nSize; 3306 OMX_VERSIONTYPE nVersion; 3307 OMX_TI_ZSL_PRIORITY_TYPE ePriority; 3308 } OMX_TI_CONFIG_ZSLFRAMESELECTPRIOTYPE; 3309 3310 /** 3311 * MIPI, ECC, and CRC counters 3312 * Mipi counter counts the frames from the MIPI receiver (CSI_RX). 3313 * TCMD application will use this test 3314 * to validate the MIPI channel integrity (TX to RX). 3315 * 3316 * STRUCT MEMBERS: 3317 * nSize : Size of the structure in bytes 3318 * nVersion : OMX specification version information 3319 * nPortIndex : Port that this structure applies to 3320 * bResetMIPICounter : if OMX_SetConfig() is called with value True 3321 * for this parameter, the MIPICounter shall be reset to 0, by ducati. 3322 * nMIPICounter : MIPI frame counter 3323 * nECCCounter : ECC counter 3324 * nCRCCounter : CRC counter 3325 */ 3326 typedef struct OMX_CONFIG_MIPICOUNTERS { 3327 OMX_U32 nSize; 3328 OMX_VERSIONTYPE nVersion; 3329 OMX_U32 nPortIndex; 3330 OMX_BOOL bResetMIPICounter; 3331 OMX_U32 nMIPICounter; 3332 OMX_U32 nECCCounter; 3333 OMX_U32 nCRCCounter; 3334 OMX_U32 nFifoOvfCounter; 3335 OMX_U32 nOCPCounter; 3336 OMX_U32 nEccCorrCounter; 3337 OMX_U32 SoTErrCnt; 3338 OMX_U32 SoTSyncErrCnt; 3339 OMX_U32 ULPMCnt; 3340 OMX_U32 ULPMExitCnt; 3341 OMX_U32 ULPMEnterCnt; 3342 OMX_U32 ControlErrCnt; 3343 OMX_U32 ErrEscapeCnt; 3344 OMX_U32 CSIRxTimeoutCnt; 3345 OMX_U32 bStopStartCntrs; 3346 } OMX_CONFIG_MIPICOUNTERS; 3347 3348 /** 3349 * CSI Timing Register 3350 * 3351 * STRUCT MEMBERS: 3352 * nSize : Size of the structure in bytes 3353 * nVersion : OMX specification version information 3354 * nPortIndex : Port that this structure applies to 3355 * nReadWrite : if OMX_SetConfig() is called with value True 3356 * for this parameter, the ISS_CAMERARX_CORE1_REG0 register will be 3357 * written with the supplied values below. 3358 * nThsSettle : 3359 * nThsTerm : 3360 * nHsClkCfg : 3361 */ 3362 typedef struct OMX_CONFIG_CSITIMINGRW { 3363 OMX_U32 nSize; 3364 OMX_VERSIONTYPE nVersion; 3365 OMX_U32 nPortIndex; 3366 OMX_U8 nReadWrite; 3367 OMX_U8 nThsSettle; 3368 OMX_U8 nThsTerm; 3369 OMX_U8 nHsClkCfg; 3370 } OMX_CONFIG_CSITIMINGRW; 3371 3372 /** 3373 * CSI Complex IO Data 3374 * 3375 * STRUCT MEMBERS: 3376 * nSize : Size of the structure in bytes 3377 * nVersion : OMX specification version information 3378 * nPortIndex : Port that this structure applies to 3379 * nFrameCount : Recieved Frames on the CSI2Rx 3380 * nLaneCount : Number of active lanes 3381 * nCSISpeed : CSI2Rx speed 3382 */ 3383 typedef struct OMX_CONFIG_CSICMPXIO { 3384 OMX_U32 nSize; 3385 OMX_VERSIONTYPE nVersion; 3386 OMX_U32 nPortIndex; 3387 OMX_U32 nFrameCount; 3388 OMX_U32 nLaneCount; 3389 OMX_U32 nCSISpeed; 3390 } OMX_CONFIG_CSICMPXIO; 3391 3392 /** 3393 * Auto Focus Score 3394 * 3395 * STRUCT MEMBERS: 3396 * nSize : Size of the structure in bytes 3397 * nVersion : OMX specification version information 3398 * nPortIndex : Port that this structure applies to 3399 * nAutoFocusScore : Auto Focus Score 3400 */ 3401 typedef struct OMX_CONFIG_AUTOFOCUSSCORE { 3402 OMX_U32 nSize; 3403 OMX_VERSIONTYPE nVersion; 3404 OMX_U32 nPortIndex; 3405 OMX_U32 nAutoFocusScore; 3406 } OMX_CONFIG_AUTOFOCUSSCORE; 3407 3408 /** 3409 * Color Bar test pattern 3410 * 3411 * STRUCT MEMBERS: 3412 * nSize : Size of the structure in bytes 3413 * nVersion : OMX specification version information 3414 * nPortIndex : Port that this structure applies to 3415 * bEnableColorBars : Enable Color Bars test pattern 3416 */ 3417 typedef struct OMX_CONFIG_COLORBARS { 3418 OMX_U32 nSize; 3419 OMX_VERSIONTYPE nVersion; 3420 OMX_U32 nPortIndex; 3421 OMX_U32 bEnableColorBars; 3422 } OMX_CONFIG_COLORBARS; 3423 3424 /** 3425 * Sensor OTP EEEPROM data 3426 * 3427 * STRUCT MEMBERS: 3428 * nSize : Size of the structure in bytes 3429 * nVersion : OMX specification version information 3430 * nPortIndex : Port that this structure applies to 3431 * pData : pointer to the client's buffer 3432 * nDataSize : size of the EEPROM data in bytes 3433 * nClientDataSize : size of the client's buffer 3434 * SensorIndex : index of the eeprom buffer 3435 */ 3436 typedef struct OMX_CONFIG_OTPEEPROM { 3437 OMX_U32 nSize; 3438 OMX_VERSIONTYPE nVersion; 3439 OMX_U32 nPortIndex; 3440 OMX_PTR pData; 3441 OMX_U32 nDataSize; 3442 OMX_U32 nClientDataSize; 3443 OMX_U8 SensorIndex; 3444 }OMX_CONFIG_OTPEEPROM; 3445 3446 /** 3447 * The OMX_ISP_TYPE enumeration is used to define the 3448 * TI ISP & ST ISP types. 3449 */ 3450 typedef enum OMX_ISP_TYPE { 3451 OMX_TIISP = 0, 3452 OMX_STISP= 1, 3453 OMX_ISPUnknown 3454 } OMX_ISP_TYPE; 3455 3456 /** 3457 * ISP Information 3458 * 3459 * STRUCT MEMBERS: 3460 * nSize : Size of the structure in bytes 3461 * nVersion : OMX specification version information 3462 * nPortIndex : Port that this structure applies to 3463 * eIspType : ISP Type (TI ISP/ ST ISP) 3464 * nHardwareVersion : Hardware version of ISP 3465 * nSoftwareVersion : Software version of ISP 3466 */ 3467 typedef struct OMX_CONFIG_ISPINFO { 3468 OMX_U32 nSize; 3469 OMX_VERSIONTYPE nVersion; 3470 OMX_U32 nPortIndex; 3471 OMX_ISP_TYPE eIspType; 3472 OMX_U32 nHardwareVersion; 3473 OMX_U32 nSoftwareVersion; 3474 OMX_S8 cDucatiVersion[32]; 3475 }OMX_CONFIG_ISPINFO; 3476 3477 typedef enum OMX_TI_PORTTAPPOINTTYPE { 3478 OMX_TI_PortTap_Bayer_SensorOutput, 3479 OMX_TI_PortTap_Bayer_PostLsc, 3480 OMX_TI_PortTap_Bayer_PreBayerToYUVConversion, 3481 OMX_TI_PortTap_YUV_PostBayerToYUVConversion, 3482 OMX_TI_PortTap_YUV_PreJPEGCompression, 3483 OMX_TI_PortTap = 0x7FFFFFFF 3484 } OMX_TI_PORTTAPPOINTTYPE; 3485 3486 /** 3487 * Define configuration structure for 3488 * tap in/out points for the selected port 3489 * 3490 * STRUCT MEMBERS: 3491 * nSize : Size of the structure in bytes 3492 * nVersion : OMX specification version information 3493 * nPortIndex : Port that this structure applies to 3494 * eTapPoint : Select the tap in/out point for the port 3495 */ 3496 typedef struct OMX_TI_CONFIG_PORTTAPPOINTTYPE { 3497 OMX_U32 nSize; 3498 OMX_VERSIONTYPE nVersion; 3499 OMX_U32 nPortIndex; 3500 OMX_TI_PORTTAPPOINTTYPE eTapPoint; 3501 } OMX_TI_CONFIG_PORTTAPPOINTTYPE; 3502 3503 /** 3504 * Available methods to apply vect shot exposure and gain 3505 */ 3506 typedef enum OMX_TI_EXPGAINAPPLYMETHODTYPE { 3507 OMX_TI_EXPGAINAPPLYMETHOD_ABSOLUTE, 3508 OMX_TI_EXPGAINAPPLYMETHOD_RELATIVE, 3509 OMX_TI_EXPGAINAPPLYMETHOD_FORCE_RELATIVE, 3510 OMX_TI_EXPGAINAPPLYMETHOD_FORCE_ABSOLUTE, 3511 OMX_TI_EXPGAINAPPLYMETHOD = 0x7FFFFFFF 3512 } OMX_TI_EXPGAINAPPLYMETHODTYPE; 3513 3514 /** 3515 * Define configuration structure for 3516 * shot configuration for the selected port 3517 * 3518 * STRUCT MEMBERS: 3519 * nSize : Size of the structure in bytes 3520 * nVersion : OMX specification version information 3521 * nPortIndex : Port that this structure applies to 3522 * nConfigId : A unique config identification number that will be 3523 * put in ancillary data for the corresponding output frame 3524 * nFrames : Number of sequential frames that will use this 3525 * configuration 3526 * nEC : Total exposure compensation value 3527 * nExp : Exposure value for this configuration slot 3528 * nGain : Gain value for this configuration slot 3529 * eExpGainApplyMethod : Selects the method which will be used to apply exposure and gain 3530 * bNoSnapshot : Determinates whether a snapshot image will be send 3531 * on the preview port for this shot config 3532 */ 3533 typedef struct OMX_TI_CONFIG_SHOTCONFIG { 3534 OMX_U32 nConfigId; 3535 OMX_U32 nFrames; 3536 OMX_S32 nEC; 3537 OMX_S32 nExp; 3538 OMX_S32 nGain; 3539 OMX_TI_EXPGAINAPPLYMETHODTYPE eExpGainApplyMethod; 3540 OMX_BOOL bNoSnapshot; 3541 } OMX_TI_CONFIG_SHOTCONFIG; 3542 3543 /** 3544 * Define configuration structure for 3545 * shot configuration vector for the selected port 3546 * 3547 * STRUCT MEMBERS: 3548 * nSize : Size of the structure in bytes 3549 * nVersion : OMX specification version information 3550 * nPortIndex : Port that this structure applies to 3551 * bFlushQueue : If TRUE: Flush queue and abort processing before enqueing 3552 * new shot configurations 3553 * nNumConfigs : Number of valid configurations in the nShotConfig array 3554 * nShotConfig : Array of shot configurations 3555 * nSlotsAvilable : Return value with number of available slots in the queue 3556 */ 3557 typedef struct OMX_TI_CONFIG_ENQUEUESHOTCONFIGS { 3558 OMX_U32 nSize; 3559 OMX_VERSIONTYPE nVersion; 3560 OMX_U32 nPortIndex; 3561 OMX_BOOL bFlushQueue; 3562 OMX_U32 nNumConfigs; 3563 OMX_TI_CONFIG_SHOTCONFIG nShotConfig[5]; 3564 } OMX_TI_CONFIG_ENQUEUESHOTCONFIGS; 3565 3566 /** 3567 * Define configuration structure to 3568 * query available/free shots in shot queue. 3569 * Will be supported only as GetConfig function. 3570 * 3571 * STRUCT MEMBERS: 3572 * nSize : Size of the structure in bytes 3573 * nVersion : OMX specification version information 3574 * nPortIndex : Port that this structure applies to 3575 * nAvailableShots : Number of available shots 3576 */ 3577 typedef struct OMX_TI_CONFIG_QUERYAVAILABLESHOTS { 3578 OMX_U32 nSize; 3579 OMX_VERSIONTYPE nVersion; 3580 OMX_U32 nPortIndex; 3581 OMX_U32 nAvailableShots; 3582 } OMX_TI_CONFIG_QUERYAVAILABLESHOTS; 3583 3584 /** 3585 * Available vector shot capture stop methods 3586 */ 3587 typedef enum OMX_TI_VECTSHOTSTOPMETHOD { 3588 OMX_TI_VECTSHOTSTOPMETHOD_GOTO_PREVIEW, 3589 OMX_TI_VECTSHOTSTOPMETHOD_WAIT_IN_CAPTURE, 3590 OMX_TI_VECTSHOTSTOPMETHOD_MAX = 0x7FFFFFFF 3591 } OMX_TI_VECTSHOTSTOPMETHOD; 3592 3593 /** 3594 * Define configuration structure to 3595 * specify the beahvior of vector shot capture 3596 * when the shot queue is empty 3597 * 3598 * STRUCT MEMBERS: 3599 * nSize : Size of the structure in bytes 3600 * nVersion : OMX specification version information 3601 * nPortIndex : Port that this structure applies to 3602 * eStopMethod : Select the stop method 3603 */ 3604 typedef struct OMX_TI_CONFIG_VECTSHOTSTOPMETHODTYPE { 3605 OMX_U32 nSize; 3606 OMX_VERSIONTYPE nVersion; 3607 OMX_U32 nPortIndex; 3608 OMX_TI_VECTSHOTSTOPMETHOD eStopMethod; 3609 } OMX_TI_CONFIG_VECTSHOTSTOPMETHODTYPE; 3610 3611 3612 #ifdef __cplusplus 3613 } 3614 #endif /* __cplusplus */ 3615 3616 #endif 3617 3618 3619