OMX_TI_IVCommon.h revision e5d86ac2b8d0b0172944bb46c7a5d2c6b659b2a9
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 50extern "C" { 51#endif /* __cplusplus */ 52 53#include <OMX_IVCommon.h> 54#include <OMX_Image.h> 55 56 57#define MAX_URI_LENGTH (OMX_MAX_STRINGNAME_SIZE) 58 59/*======================================================================= */ 60/* Enumerated values for operation mode for compressed image 61 * 62 * ENUMS: 63 * Chunk : Chunk based operation 64 * NonChunk : Non-chunk based operation 65 */ 66 /* ======================================================================= */ 67typedef enum OMX_JPEG_COMPRESSEDMODETYPE { 68 OMX_JPEG_ModeChunk = 0, 69 OMX_JPEG_ModeNonChunk 70}OMX_JPEG_COMPRESSEDMODETYPE ; 71 72 73/*======================================================================= */ 74/* Enumerated values for operation mode for uncompressed image 75 * 76 * ENUMS: 77 * Frame : Frame based operation 78 * Slice : Slice based operation 79 * Stitch : For stitching between image frames 80 * Burst : For stitching between image frames 81 */ 82 /* ======================================================================= */ 83typedef enum OMX_JPEG_UNCOMPRESSEDMODETYPE { 84 OMX_JPEG_UncompressedModeFrame = 0, 85 OMX_JPEG_UncompressedModeSlice, 86 OMX_JPEG_UncompressedModeStitch, 87 OMX_JPEG_UncompressedModeBurst 88}OMX_JPEG_UNCOMPRESSEDMODETYPE; 89 90 91 92/*======================================================================= */ 93/* Configuration structure for compressed image 94 * 95 * STRUCT MEMBERS: 96 * nSize : Size of the structure in bytes 97 * nVersion : OMX specification version information 98 * nPortIndex : Port that this structure applies to 99 * eCompressedImageMode : Operating mode enumeration for compressed image 100 */ 101 /*======================================================================= */ 102typedef struct OMX_JPEG_PARAM_COMPRESSEDMODETYPE{ 103 OMX_U32 nSize; 104 OMX_VERSIONTYPE nVersion; 105 OMX_U32 nPortIndex; 106 OMX_JPEG_COMPRESSEDMODETYPE eCompressedImageMode; 107}OMX_JPEG_PARAM_COMPRESSEDMODETYPE; 108 109 110 111/*======================================================================= */ 112/* Uncompressed image Operating mode configuration structure 113 * 114 * STRUCT MEMBERS: 115 * nSize : Size of the structure in bytes 116 * nVersion : OMX specification version information 117 * nPortIndex : Port that this structure applies to 118 * nBurstLength : No of frames to be dumped in burst mode 119 * eUncompressedImageMode : uncompressed image mode information 120 * eSourceType : Image encode souce info 121 * tRotationInfo : Rotation related information 122 */ 123 /*======================================================================= */ 124typedef struct OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE{ 125 OMX_U32 nSize; 126 OMX_VERSIONTYPE nVersion; 127 OMX_U32 nPortIndex; 128 OMX_U32 nBurstLength; 129 OMX_JPEG_UNCOMPRESSEDMODETYPE eUncompressedImageMode; 130}OMX_JPEG_PARAM_UNCOMPRESSEDMODETYPE; 131 132 133/*======================================================================= */ 134/* Subregion Decode Parameter configuration structure 135 * 136 * STRUCT MEMBERS: 137 * nSize : Size of the structure in bytes 138 * nVersion : OMX specification version information 139 * nXOrg : Sectional decoding X origin 140 * nYOrg : Sectional decoding Y origin 141 * nXLength : Sectional decoding X length 142 * nYLength : Sectional decoding Y length 143 */ 144 /*======================================================================= */ 145typedef struct OMX_IMAGE_PARAM_DECODE_SUBREGION{ 146 OMX_U32 nSize; 147 OMX_VERSIONTYPE nVersion; 148 OMX_U32 nXOrg; 149 OMX_U32 nYOrg; 150 OMX_U32 nXLength; 151 OMX_U32 nYLength; 152}OMX_IMAGE_PARAM_DECODE_SUBREGION; 153 154 155/** 156 * sensor select types 157 */ 158typedef enum OMX_SENSORSELECT{ 159 OMX_PrimarySensor = 0, 160 OMX_SecondarySensor, 161 OMX_TI_StereoSensor, 162 OMX_SensorTypeMax = 0x7fffffff 163}OMX_SENSORSELECT; 164 165/** 166 * 167 * Sensor Select 168 */ 169typedef struct OMX_CONFIG_SENSORSELECTTYPE { 170OMX_U32 nSize; /**< Size of the structure in bytes */ 171OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ 172OMX_U32 nPortIndex; /**< Port that this struct applies to */ 173OMX_SENSORSELECT eSensor; /**< sensor select */ 174} OMX_CONFIG_SENSORSELECTTYPE; 175 176/** 177 * Flicker cancellation types 178 */ 179typedef enum OMX_COMMONFLICKERCANCELTYPE{ 180 OMX_FlickerCancelOff = 0, 181 OMX_FlickerCancelAuto, 182 OMX_FlickerCancel50, 183 OMX_FlickerCancel60, 184 OMX_FlickerCancel100, 185 OMX_FlickerCancel120, 186 OMX_FlickerCancelMax = 0x7fffffff 187}OMX_COMMONFLICKERCANCELTYPE; 188 189typedef struct OMX_CONFIG_FLICKERCANCELTYPE { 190 OMX_U32 nSize; 191 OMX_VERSIONTYPE nVersion; 192 OMX_U32 nPortIndex; 193 OMX_COMMONFLICKERCANCELTYPE eFlickerCancel; 194} OMX_CONFIG_FLICKERCANCELTYPE; 195 196 197/** 198 * Sensor caleberation types 199 */ 200typedef enum OMX_SENSORCALTYPE{ 201 OMX_SensorCalFull = 0, 202 OMX_SensorCalQuick, 203 OMX_SensorCalMax = 0x7fffffff 204}OMX_SENSORCALTYPE; 205 206typedef struct OMX_CONFIG_SENSORCALTYPE { 207 OMX_U32 nSize; 208 OMX_VERSIONTYPE nVersion; 209 OMX_U32 nPortIndex; 210 OMX_SENSORCALTYPE eSensorCal; 211} OMX_CONFIG_SENSORCALTYPE; 212 213/** 214 * Scene mode types 215 */ 216typedef enum OMX_SCENEMODETYPE{ 217 218 OMX_Manual = 0, 219 OMX_Closeup, 220 OMX_Portrait, 221 OMX_Landscape, 222 OMX_Underwater, 223 OMX_Sport, 224 OMX_SnowBeach, 225 OMX_Mood, 226 OMX_NightPortrait, 227 OMX_NightIndoor, 228 OMX_Fireworks, 229 OMX_Document, /**< for still image */ 230 OMX_Barcode, /**< for still image */ 231 OMX_SuperNight, /**< for video */ 232 OMX_Cine, /**< for video */ 233 OMX_OldFilm, /**< for video */ 234 OMX_TI_Action, 235 OMX_TI_Beach, 236 OMX_TI_Candlelight, 237 OMX_TI_Night, 238 OMX_TI_Party, 239 OMX_TI_Portrait, 240 OMX_TI_Snow, 241 OMX_TI_Steadyphoto, 242 OMX_TI_Sunset, 243 OMX_TI_Theatre, 244 OMX_SceneModeMax = 0x7fffffff 245}OMX_SCENEMODETYPE; 246 247typedef struct OMX_CONFIG_SCENEMODETYPE { 248 OMX_U32 nSize; 249 OMX_VERSIONTYPE nVersion; 250 OMX_U32 nPortIndex; 251 OMX_SCENEMODETYPE eSceneMode; 252} OMX_CONFIG_SCENEMODETYPE; 253 254 /** 255 * Port specific capture trigger 256 * useful for the usecases with multiple capture ports. 257 * 258 * STRUCT MEMBERS: 259 * nSize : Size of the structure in bytes 260 * nVersion : OMX specification version information 261 * nPortIndex : Port that this structure applies to 262 * bExtCapturing : Start Captre at the specified port. Can be queried to know the status of a specific port. 263 */ 264typedef struct OMX_CONFIG_EXTCAPTURING { 265 OMX_U32 nSize; 266 OMX_VERSIONTYPE nVersion; 267 OMX_U32 nPortIndex; 268 OMX_BOOL bExtCapturing; 269} OMX_CONFIG_EXTCAPTURING; 270 271 272 /** 273 * Digital Zoom Speed 274 * 275 * STRUCT MEMBERS: 276 * nSize : Size of the structure in bytes 277 * nVersion : OMX specification version information 278 * nPortIndex : Port that this structure applies to 279 * nDigitalZoomSpeed : Optical zoom speed level. Special values: 280 * 0 - stop current movement 281 * values from 1 to 254 are mapped proportionally to supported zoom speeds inside optical zoom driver. 282 * So 1 is slowest available optical zoom speed and 254 is fastest available optical zoom speed 283 * 255 - default optical zoom speed value 284 */ 285typedef struct OMX_CONFIG_DIGITALZOOMSPEEDTYPE { 286 OMX_U32 nSize; 287 OMX_VERSIONTYPE nVersion; 288 OMX_U32 nPortIndex; 289 OMX_U8 nDigitalZoomSpeed; 290} OMX_CONFIG_DIGITALZOOMSPEEDTYPE; 291 292 293 /** 294 * Digital Zoom Target 295 * 296 * STRUCT MEMBERS: 297 * nSize : Size of the structure in bytes 298 * nVersion : OMX specification version information 299 * nPortIndex : Port that this structure applies to 300 * nDigitalZoomTarget : Default and minimum is 0. Maximum is determined by the current supported range 301 */ 302 303typedef struct OMX_CONFIG_DIGITALZOOMTARGETTYPE { 304 OMX_U32 nSize; 305 OMX_VERSIONTYPE nVersion; 306 OMX_U32 nPortIndex; 307 OMX_U32 nDigitalZoomTarget; 308} OMX_CONFIG_DIGITALZOOMTARGETTYPE; 309 310 311/** 312* Scale quality enums 313*/ 314typedef enum OMX_SCALEQUALITY{ 315 OMX_DefaultScaling = 0, /** <default scaling if nothing is specified > */ 316 OMX_BetterScaling, /** <better scaling> */ 317 OMX_BestScaling, /** <best scaling> */ 318 OMX_AutoScalingQuality, /** <auto scaling quality> */ 319 OMX_FastScaling, /** <fast scaling, prioritizes speed> */ 320 OMX_ScaleQualityMax = 0x7fffffff 321}OMX_SCALEQUALITY; 322 323/** 324* Scaling Quality Mode 325*/ 326typedef enum OMX_SCALEQUALITYMODE{ 327 OMX_SingleFrameScalingMode = 0, /** <default > */ 328 OMX_MultiFrameScalingMode, /** <better scaling> */ 329 OMX_AutoScalingMode, /** <best scaling> */ 330 OMX_ScaleModeMax = 0x7fffffff 331}OMX_SCALEQUALITYMODE; 332 333 /** 334 * Rescale quality control type 335 * 336 * STRUCT MEMBERS: 337 * nSize : Size of the structure in bytes 338 * nVersion : OMX specification version information 339 * eScaleQuality : controls the quality level. 340 * eScaleQualityMode : controls the scaling algo types 341 */ 342typedef struct OMX_CONFIG_SCALEQUALITYTYPE { 343 OMX_U32 nSize; 344 OMX_VERSIONTYPE nVersion; 345 OMX_U32 nPortIndex; 346 OMX_SCALEQUALITY eScaleQuality; 347 OMX_SCALEQUALITYMODE eScaleQualityMode; 348} OMX_CONFIG_SCALEQUALITYTYPE; 349 350/** 351* Smooth Zoom mode enum 352* Starts or stops the Smooth Zoom. Selecting INCREASE will cause an increasing digital zoom factor (increased cropping), 353* with a shrinking viewable area and crop height percentage. Selecting DECREASE will cause a decreasing digital zoom (decreased cropping), 354* with a growing viewable area and crop height percentage. The CaptureCropHeight will continue to update based on the SmoothZoomRate until 355* the SmoothZoomMin or SmoothZoomMax zoom step is reached, the framework minimum zoom step is reached, the SmoothZoomRate becomes 0, 356* or the SmoothZoomMode is set to OFF. 357* 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. 358*/ 359typedef enum OMX_SMOOTHZOOMMODE{ 360 OMX_Off=0, /**< default OFF */ 361 OMX_Increase, 362 OMX_Decrease 363}OMX_SMOOTHZOOMMODE; 364 365 366 /** 367 * Rescale quality control type 368 * 369 * STRUCT MEMBERS: 370 * nSize : Size of the structure in bytes 371 * nVersion : OMX specification version information 372 * eSmoothZoomMode : controls the smooth zoom feature. 373 * nSmoothZoomRate : Values from 0 to 65535 which represents percentage to increase per second, where 65535 = 100%, and 0 = 0%. 374 * nSmoothZoomQuantize: 375 * nSmoothZoomThresh 376 * nSmoothZoomMin 377 * nSmoothZoomMax 378 */ 379typedef struct OMX_CONFIG_SMOOTHZOOMTYPE { 380 OMX_U32 nSize; 381 OMX_VERSIONTYPE nVersion; 382 OMX_U32 nPortIndex; 383 OMX_SMOOTHZOOMMODE eSmoothZoomMode; 384 OMX_U32 nSmoothZoomRate; 385 OMX_U32 nSmoothZoomQuantize; 386 OMX_U32 nSmoothZoomThresh; 387 OMX_U32 nSmoothZoomMin; 388 OMX_U32 nSmoothZoomMax; 389} OMX_CONFIG_SMOOTHZOOMTYPE; 390 391/** 392 * Enumeration of possible Extended image filter types for OMX_CONFIG_IMAGEFILTERTYPE 393 */ 394typedef enum OMX_EXTIMAGEFILTERTYPE { 395 OMX_ImageFilterSepia = 0x7F000001, 396 OMX_ImageFilterGrayScale, 397 OMX_ImageFilterNatural, 398 OMX_ImageFilterVivid, 399 OMX_ImageFilterColourSwap, 400 OMX_ImageFilterOutOfFocus, 401 OMX_ImageFilterWaterColour, 402 OMX_ImageFilterPastel, 403 OMX_ImageFilterFilm, 404 OMX_TI_ImageFilterBlackWhite, 405 OMX_TI_ImageFilterWhiteBoard, 406 OMX_TI_ImageFilterBlackBoard, 407 OMX_TI_ImageFilterAqua, 408 OMX_TI_ImageFilterPosterize 409} OMX_EXTIMAGEFILTERTYPE; 410 411 412/** 413 * Image filter configuration extended 414 * 415 * STRUCT MEMBERS: 416 * nSize : Size of the structure in bytes 417 * nVersion : OMX specification version information 418 * nPortIndex : Port that this structure applies to 419 * bBlemish : Enable/Disable Blemish correction 420 */ 421typedef struct OMX_CONFIG_BLEMISHTYPE { 422 OMX_U32 nSize; 423 OMX_VERSIONTYPE nVersion; 424 OMX_U32 nPortIndex; 425 OMX_BOOL bBlemish; 426} OMX_CONFIG_BLEMISHTYPE; 427 428/** 429 * Enumeration of Bracket types 430 * OMX_BracketExposureRelativeInEV: 431 * Exposure value is changed relative to the value set by automatic exposure. 432 * nBracketStartValue and nBracketStep are in Q16. Increment is additive. 433 * OMX_BracketExposureAbsoluteMs: 434 * Exposure value is changed in absolute value in ms. 435 * nBracketStartValue and nBracketStep are in Q16. Increment is multiplicative. 436 * OMX_BracketFocusRelative: 437 * Focus is adjusted relative to the focus set by auto focus. 438 * The value is S32 integer, and is the same as adjusting nFocusSteps of OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively. 439 * Increment is additive. 440 * OMX_BracketFocusAbsolute: 441 * Focus position is adjusted absolutely. It is the same as setting nFocusSteps of 442 * OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE relatively for each captures. 443 * The value should be interpreted as U32 value. Increment is additive. 444 * OMX_BracketFlashPower: 445 * Power of flash is adjusted relative to the automatic level. Increment is multiplicative. 446 * OMX_BracketAperture: 447 * Aperture number relative to the automatic setting. Data in Q16 format. Increment is multiplicative. 448 * OMX_BracketTemporal: 449 * To suppport temporal bracketing. 450 */ 451typedef enum OMX_BRACKETMODETYPE { 452 OMX_BracketExposureRelativeInEV = 0, 453 OMX_BracketExposureAbsoluteMs, 454 OMX_BracketFocusRelative, 455 OMX_BracketFocusAbsolute, 456 OMX_BracketFlashPower, 457 OMX_BracketAperture, 458 OMX_BracketTemporal, 459 OMX_BrackerTypeKhronosExtensions = 0x6f000000, 460 OMX_BrackerTypeVendorStartUnused = 0x7f000000, 461 OMX_BracketTypeMax = 0x7FFFFFFF 462} OMX_BRACKETMODETYPE; 463 464typedef struct OMX_CONFIG_BRACKETINGTYPE { 465 OMX_U32 nSize; 466 OMX_VERSIONTYPE nVersion; 467 OMX_U32 nPortIndex; 468 OMX_BRACKETMODETYPE eBracketMode; 469 OMX_U32 nNbrBracketingValues; 470 OMX_S32 nBracketValues[10]; /**< 10 can be assumed */ 471} OMX_CONFIG_BRACKETINGTYPE; 472 473 474/** 475 * Capture mode types 476 * Note: this list could get extended modified based on the type of interenal use-case pipelines implemented within the camera component. 477 * 478 * OMX_CaptureImageHighSpeedBurst = 0, 479 * OMX_CaptureImageHighSpeedTemporalBracketing, 480 * OMX_CaptureImageProfileBase(Base): 481 * Base one almost same as Highspeed one. 482 * OMX_CaptureImageProfileLowLight1(LL1): 483 * Includes NSF2 in addition to Base processing 484 * OMX_CaptureImageProfileLowLight2(LL2): 485 * Includes NSF2 and LBCE in addition to Base processing. 486 * OMX_CaptureImageProfileOpticalCorr1(OC1): 487 * Includes LDC in addition to Base processing. 488 * OMX_CaptureImageProfileOpticalCorr2(OC2): 489 * Includes LDC and CAC in addition to Base processing. 490 * OMX_CaptureImageProfileExtended1(Ext1): 491 * Includes NSF2, LBCE, LDC, and CAC in addition to Base 492 * OMX_CaptureStereoImageCapture: 493 * Stereo image capture use-case. 494 * OMX_CaptureImageMemoryInput: 495 * need to take sensor input from INPUT port. 496 * OMX_CaptureVideo: 497 * OMX_CaptureHighSpeedVideo: 498 * OMX_CaptureVideoMemoryInput: 499 * 500 */ 501typedef enum OMX_CAMOPERATINGMODETYPE { 502 OMX_CaptureImageHighSpeedBurst = 0, 503 OMX_CaptureImageHighSpeedTemporalBracketing, 504 OMX_CaptureImageProfileBase, 505 OMX_CaptureImageProfileLowLight1, 506 OMX_CaptureImageProfileLowLight2, 507 OMX_CaptureImageProfileOpticalCorr1, 508 OMX_CaptureImageProfileOpticalCorr2, 509 OMX_CaptureImageProfileExtended1, 510 OMX_CaptureStereoImageCapture, 511 OMX_CaptureImageMemoryInput, 512 OMX_CaptureVideo, 513 OMX_CaptureHighSpeedVideo, 514 OMX_CaptureVideoMemoryInput, 515 OMX_TI_CaptureDummy, 516 OMX_TI_CaptureGestureRecognition, 517 OMX_TI_CaptureImageProfileZeroShutterLag, 518 OMX_CamOperatingModeMax = 0x7fffffff 519} OMX_CAMOPERATINGMODETYPE; 520/** 521 * Capture mode setting: applicable to multi shot capture also including bracketing. 522 * 523 * STRUCT MEMBERS: 524 * nSize : Size of the structure in bytes 525 * nVersion : OMX specification version information 526 * nPortIndex : Port that this structure applies to 527 * eCamOperatingMode : specifies the camera operating mode. 528 */ 529typedef struct OMX_CONFIG_CAMOPERATINGMODETYPE { 530 OMX_U32 nSize; 531 OMX_VERSIONTYPE nVersion; 532 OMX_CAMOPERATINGMODETYPE eCamOperatingMode; 533} OMX_CONFIG_CAMOPERATINGMODETYPE; 534 535 536/** 537 * Capture mode setting: applicable to multi shot capture also including bracketing. 538 * 539 * STRUCT MEMBERS: 540 * nSize : Size of the structure in bytes 541 * nVersion : OMX specification version information 542 * nPortIndex : Port that this structure applies to 543 * 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. 544 * nFrameBefore : 545 * is specifying how many frames before the capture trigger shall be used. 546 * It is implementation dependent how many is supported. This shall only be supported for images and not for video frames. 547 * bPrepareCapture : 548 * should be set to true when nFrameBefore is greater than zero and before capturing of before-frames should start. 549 * The component is not allowed to deliver buffers until capturing starts. This shall only be supported for images and not for video frames. 550 * bEnableBracketing : 551 * should be enabled when bracketing is used. In bracketing mode, one parameter can be changed per each capture. 552 * tBracketConfigType : 553 * specifies bracket mode to use. Valid only when bEnableBracketing is set. 554 */ 555typedef struct OMX_CONFIG_EXTCAPTUREMODETYPE { 556 OMX_U32 nSize; 557 OMX_VERSIONTYPE nVersion; 558 OMX_U32 nPortIndex; 559 OMX_U32 nFrameRate; 560 OMX_U32 nFrameBefore; 561 OMX_BOOL bPrepareCapture; 562 OMX_BOOL bEnableBracketing; 563 OMX_CONFIG_BRACKETINGTYPE tBracketConfigType; 564} OMX_CONFIG_EXTCAPTUREMODETYPE; 565 566/** 567 * For Extended Focus region Type - 568 */ 569typedef struct OMX_CONFIG_EXTFOCUSREGIONTYPE { 570 OMX_U32 nSize; 571 OMX_VERSIONTYPE nVersion; 572 OMX_U32 nPortIndex; 573 OMX_U32 nRefPortIndex; 574 OMX_S32 nLeft; 575 OMX_S32 nTop; 576 OMX_U32 nWidth; 577 OMX_U32 nHeight; 578} OMX_CONFIG_EXTFOCUSREGIONTYPE; 579 580/** 581 * Digital Flash Control 582 * STRUCT MEMBERS: 583 * nSize : Size of the structure in bytes 584 * nVersion : OMX specification version information 585 * nPortIndex : Port that this structure applies to 586 * bDigitalFlash : Digital flash type Enable/Disable - 587 * Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings. 588 */ 589typedef struct OMX_CONFIG_DIGITALFLASHTYPE { 590 OMX_U32 nSize; 591 OMX_VERSIONTYPE nVersion; 592 OMX_U32 nPortIndex; 593 OMX_BOOL bDigitalFlash; 594} OMX_CONFIG_DIGITALFLASHTYPE; 595 596 597 598/** 599 * Privacy Indicator Enable/Disable 600 * STRUCT MEMBERS: 601 * nSize : Size of the structure in bytes 602 * nVersion : OMX specification version information 603 * nPortIndex : Port that this structure applies to 604 * bPrivacyIndicator : 605 * Specifies whether the flash should be used to indicate image or video capture. When flash is not used for exposure, 606 * flash will be activated after exposure to indicate image capture. 607 * If video light is not used, the flash can be blinking or constant at low intensity to indicate capture but not affect exposure. 608 * Specifies whether the digital flash algorithm is enabled or disabled. This overrides the contrast and brightness settings. 609 */ 610typedef struct OMX_CONFIG_PRIVACYINDICATOR { 611 OMX_U32 nSize; 612 OMX_VERSIONTYPE nVersion; 613 OMX_U32 nPortIndex; 614 OMX_BOOL bPrivacyIndicator; 615} OMX_CONFIG_PRIVACYINDICATOR; 616 617 618/** 619 * Privacy Indicator Enable/Disable 620 * STRUCT MEMBERS: 621 * nSize : Size of the structure in bytes 622 * nVersion : OMX specification version information 623 * nPortIndex : Port that this structure applies to 624 * bTorchMode : 625 * Enable/Disable 626 * nIntensityLevel : relative intensity from 0 - 100 627 * nDuration : duration in msec 628 */ 629typedef struct OMX_CONFIG_TORCHMODETYPE { 630 OMX_U32 nSize; 631 OMX_VERSIONTYPE nVersion; 632 OMX_U32 nPortIndex; 633 OMX_BOOL bTorchMode; 634 OMX_U32 nIntensityLevel; 635 OMX_U32 nDuration; 636} OMX_CONFIG_TORCHMODETYPE; 637 638 639 640/** 641 * Privacy Indicator Enable/Disable 642 * DISABLE - Fire the xenon flash in the usual manner 643 * ENABLE - Reduce the light intensity of the main flash (ex 1EV) 644 * 645 * STRUCT MEMBERS: 646 * nSize : Size of the structure in bytes 647 * nVersion : OMX specification version information 648 * nPortIndex : Port that this structure applies to 649 * bSlowSync : 650 * Enable - OMX_TRUE/Disable - OMX_FALSE 651 */ 652typedef struct OMX_CONFIG_SLOWSYNCTYPE { 653 OMX_U32 nSize; 654 OMX_VERSIONTYPE nVersion; 655 OMX_U32 nPortIndex; 656 OMX_BOOL bSlowSync; 657} OMX_CONFIG_SLOWSYNCTYPE; 658 659 660/** 661 * Focus control extended enums. use this along with OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE 662 */ 663typedef enum OMX_IMAGE_EXTFOCUSCONTROLTYPE { 664 OMX_IMAGE_FocusControlAutoMacro = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */ 665 OMX_IMAGE_FocusControlAutoInfinity, 666 OMX_IMAGE_FocusControlHyperfocal, 667 OMX_IMAGE_FocusControlPortrait, /**< from Xena */ 668 OMX_IMAGE_FocusControlExtended, /**< from Xena */ 669 OMX_IMAGE_FocusControlContinousNormal, /**< from Xena */ 670 OMX_IMAGE_FocusControlContinousExtended /**< from Xena */ 671} OMX_IMAGE_EXTFOCUSCONTROLTYPE; 672 673 674 675/** 676 * Specifies whether the LED can be used to assist in autofocus, due to low lighting conditions. 677 * ENABLE means use as determined by the auto exposure algorithm. 678 * 679 * STRUCT MEMBERS: 680 * nSize : Size of the structure in bytes 681 * nVersion : OMX specification version information 682 * nPortIndex : Port that this structure applies to 683 * bFocusAssist : 684 * Enable - OMX_TRUE/Disable - OMX_FALSE 685 */ 686typedef struct OMX_CONFIG_FOCUSASSISTTYPE { 687 OMX_U32 nSize; 688 OMX_VERSIONTYPE nVersion; 689 OMX_U32 nPortIndex; 690 OMX_BOOL bFocusAssist; 691} OMX_CONFIG_FOCUSASSISTTYPE; 692 693 694 695/** 696 *for locking the focus 697 * 698 * STRUCT MEMBERS: 699 * nSize : Size of the structure in bytes 700 * nVersion : OMX specification version information 701 * nPortIndex : Port that this structure applies to 702 * bFocusLock : 703 * Enable - OMX_TRUE/Disable - OMX_FALSE 704 */ 705typedef struct OMX_CONFIG_FOCUSLOCKTYPE { 706 OMX_U32 nSize; 707 OMX_VERSIONTYPE nVersion; 708 OMX_U32 nPortIndex; 709 OMX_BOOL bFocusLock; 710} OMX_CONFIG_FOCUSLOCKTYPE; 711 712 713/** 714 *for locking the White balance 715 * 716 * STRUCT MEMBERS: 717 * nSize : Size of the structure in bytes 718 * nVersion : OMX specification version information 719 * nPortIndex : Port that this structure applies to 720 * bWhiteBalanceLock : 721 * Enable - OMX_TRUE/Disable - OMX_FALSE 722 */ 723typedef struct OMX_CONFIG_WHITEBALANCELOCKTYPE { 724 OMX_U32 nSize; 725 OMX_VERSIONTYPE nVersion; 726 OMX_U32 nPortIndex; 727 OMX_BOOL bWhiteBalanceLock; 728} OMX_CONFIG_WHITEBALANCELOCKTYPE; 729 730/** 731 *for locking the Exposure 732 * 733 * STRUCT MEMBERS: 734 * nSize : Size of the structure in bytes 735 * nVersion : OMX specification version information 736 * nPortIndex : Port that this structure applies to 737 * bExposureLock : 738 * Enable - OMX_TRUE/Disable - OMX_FALSE 739 */ 740typedef struct OMX_CONFIG_EXPOSURELOCKTYPE { 741 OMX_U32 nSize; 742 OMX_VERSIONTYPE nVersion; 743 OMX_U32 nPortIndex; 744 OMX_BOOL bExposureLock; 745} OMX_CONFIG_EXPOSURELOCKTYPE; 746 747/** 748 *for locking the Exposure 749 * Simultaneously lock focus, white balance and exposure (and relevant other settings). 750 * 751 * STRUCT MEMBERS: 752 * nSize : Size of the structure in bytes 753 * nVersion : OMX specification version information 754 * nPortIndex : Port that this structure applies to 755 * bAllLock : 756 * Enable - OMX_TRUE/Disable - OMX_FALSE 757 */ 758typedef struct OMX_CONFIG_ALLLOCKTYPE { 759 OMX_U32 nSize; 760 OMX_VERSIONTYPE nVersion; 761 OMX_U32 nPortIndex; 762 OMX_BOOL bAllLock; 763} OMX_CONFIG_ALLLOCKTYPE; 764 765/** 766 *for locking 767 * Simultaneously lock focus, white balance and exposure (and relevant other settings). 768 * 769 * STRUCT MEMBERS: 770 * nSize : Size of the structure in bytes 771 * nVersion : OMX specification version information 772 * nPortIndex : Port that this structure applies to 773 * bLock : 774 * Enable - OMX_TRUE/Disable - OMX_FALSE 775 * bAtCapture: 776 * 777 */ 778typedef struct OMX_IMAGE_CONFIG_LOCKTYPE { 779 OMX_U32 nSize; 780 OMX_VERSIONTYPE nVersion; 781 OMX_U32 nPortIndex; 782 OMX_BOOL bLock; 783 OMX_BOOL bAtCapture; 784} OMX_IMAGE_CONFIG_LOCKTYPE; 785 786/** 787 * processig level types enum 788 */ 789typedef enum OMX_PROCESSINGLEVEL{ 790 OMX_Min = 0, 791 OMX_Low, 792 OMX_Medium, 793 OMX_High, 794 OMX_Max, 795 OMX_ProcessingLevelMax = 0x7fffffff 796}OMX_PROCESSINGLEVEL; 797 798/** 799 *processing level type 800 * Simultaneously lock focus, white balance and exposure (and relevant other settings). 801 * 802 * STRUCT MEMBERS: 803 * nSize : Size of the structure in bytes 804 * nVersion : OMX specification version information 805 * nPortIndex : Port that this structure applies to 806 * nLevel : 807 * nLevel hinting processing amount. Range of values is -100 to 100. 808 * 0 causes no change to the image. Increased values cause increased processing to occur, with 100 applying maximum processing. 809 * Negative values have the opposite effect of positive values. 810 * bAuto: 811 * sets if the processing should be applied according to input data. 812 It is allowed to combine the hint level with the auto setting, 813 * i.e. to give a bias to the automatic setting. When set to false, the processing should not take input data into account. 814 */ 815 816typedef struct OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE { 817OMX_U32 nSize; 818OMX_VERSIONTYPE nVersion; 819OMX_U32 nPortIndex; 820OMX_S32 nLevel; 821OMX_BOOL bAuto; 822} OMX_IMAGE_CONFIG_PROCESSINGLEVELTYPE; 823 824 825/** 826 * White Balance control type extended enums - to be used along with the structure @OMX_CONFIG_WHITEBALCONTROLTYPE 827 * 828 * 829 * 830 */ 831typedef enum OMX_EXTWHITEBALCONTROLTYPE { 832 OMX_WhiteBalControlFacePriorityMode = OMX_WhiteBalControlVendorStartUnused + 1, /**< */ 833 OMX_TI_WhiteBalControlSunset, 834 OMX_TI_WhiteBalControlShade, 835 OMX_TI_WhiteBalControlTwilight, 836 OMX_TI_WhiteBalControlWarmFluorescent 837} OMX_EXTWHITEBALCONTROLTYPE; 838 839/** 840 *white balance gain type 841 * xWhiteBalanceGain and xWhiteBalanceOffset represents gain and offset for R, Gr, Gb, B channels respectively in Q16 format. \ 842 * For example, new red pixel value = xWhiteBalanceGain[1]* the current pixel value + xWhiteBalanceOffset[1]. 843 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 844 * nWhiteThreshhold represents thresholds for "white" area measurments in Q16 format. 845 * 846 * STRUCT MEMBERS: 847 * nSize : Size of the structure in bytes 848 * nVersion : OMX specification version information 849 * nPortIndex : Port that this structure applies to 850 * 851 */ 852typedef struct OMX_CONFIG_WHITEBALGAINTYPE { 853 OMX_U32 nSize; 854 OMX_VERSIONTYPE nVersion; 855 OMX_U32 nPortIndex; 856 OMX_S32 xWhiteBalanceGain[4]; 857 OMX_S32 xWhiteBalanceOffset[4]; 858 OMX_S32 nWhiteThreshhold[4]; 859} OMX_CONFIG_WHITEBALGAINTYPE; 860 861/** 862 * 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 863 * R' = xColorMatrix[1][1]*R + xColorMatrix[1][2]*G + xColorMatrix[1][3]*B + xColorOffset[1] 864 * G' = xColorMatrix[2][1]*R + xColorMatrix[2][2]*G + xColorMatrix[2][3]*B + xColorOffset[2] 865 * B' = xColorMatrix[3][1]*R + xColorMatrix[3][2]*G + xColorMatrix[3][3]*B + xColorOffset[3] 866 * Both xColorMatrix and xColorOffset are represented as Q16 value. 867 * bFullColorRange represents represents whether valid range of color is 0 to 255 (when set to TRUE) or 16 to 235 (for FALSE). 868 * Again all values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 869 * 870 * 871 * STRUCT MEMBERS: 872 * nSize : Size of the structure in bytes 873 * nVersion : OMX specification version information 874 * nPortIndex : Port that this structure applies to 875 * 876 */ 877typedef struct OMX_CONFIG_EXT_COLORCONVERSIONTYPE { 878 OMX_U32 nSize; 879 OMX_VERSIONTYPE nVersion; 880 OMX_U32 nPortIndex; 881 OMX_S32 xColorMatrix[3][3]; 882 OMX_S32 xColorOffset[3]; 883 OMX_BOOL bFullColorRange; 884}OMX_CONFIG_EXT_COLORCONVERSIONTYPE; 885 886 887/** 888 * xGamma represents lool-up table for gamma correction in Q16 format. 889 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 890 * 891 * 892 * 893 * STRUCT MEMBERS: 894 * nSize : Size of the structure in bytes 895 * nVersion : OMX specification version information 896 * nPortIndex : Port that this structure applies to 897 * 898 */ 899typedef struct OMX_CONFIG_GAMMATABLETYPE { 900 OMX_U32 nSize; 901 OMX_VERSIONTYPE nVersion; 902 OMX_U32 nPortIndex; 903 OMX_U32 xGamma[3][256]; 904}OMX_CONFIG_GAMMATABLETYPE; 905 906 907 908/** 909 * processig types 910 */ 911typedef enum OMX_PROCESSINGTYPE{ 912 OMX_BloomingReduction = 0, 913 OMX_Denoise, 914 OMX_Sharpening, 915 OMX_Deblurring, 916 OMX_Demosaicing, 917 OMX_ContrastEnhancement, 918 OMX_ProcessingTypeMax = 0x7fffffff 919}OMX_PROCESSINGTYPE; 920 921 922typedef struct OMX_CONFIGPROCESSINGORDERTYPE { 923OMX_U32 nSize; /**< Size of the structure in bytes */ 924OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ 925OMX_U32 nPortIndex; /**< Port that this struct applies to */ 926OMX_U32 nIndex; 927OMX_PROCESSINGTYPE eProc; 928} OMX_CONFIGPROCESSINGORDERTYPE; 929 930/** 931 * HIST TYPE 932 */ 933typedef enum OMX_HISTTYPE{ 934 OMX_HistControlLuminance = 0, /**< Luminance histogram is calculated (Y)*/ 935 OMX_HistControlColorComponents, /**< A histogram per color component (R, G, B) is calculated*/ 936 OMX_HistControlChrominanceComponents /**< A histogram per chrominance component (Cb, Cr) is calculated.*/ 937}OMX_HISTTYPE; 938 939/** 940 * Histogram Setting 941 * nPortIndex is an output port. The port index decides on which port the extra data structur is sent on. 942 * bFrameLimited is a Boolean used to indicate if measurement shall be terminated after the specified number of 943 * frames if true frame limited measurement is enabled; otherwise the port does not terminate measurement until 944 * instructed to do so by the client. 945 * nFrameLimit is the limit on number of frames measured, this parameter is only valid if bFrameLimited is enabled. 946 * 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. 947 * nBins specifies the number of histogram bins. When queried with set to zero, the respons gives the maximum number of bins allowed. 948 * nLeft is the leftmost coordinate of the measurement area rectangle. 949 * nTop is the topmost coordinate of the measurement area rectangle. 950 * nWidth is the width of the measurement area rectangle in pixels. 951 * nHeight is the height of the measurement area rectangle in pixels. 952 * eHistType is an enumeration specifying the histogram type 953 * 954 * 955 */ 956 957typedef struct OMX_CONFIG_HISTOGRAMTYPE { 958 OMX_U32 nSize; 959 OMX_VERSIONTYPE nVersion; 960 OMX_U32 nPortIndex; 961 OMX_BOOL bFrameLimited; 962 OMX_U32 nFrameLimit; 963 OMX_BOOL bMeasure; 964 OMX_U32 nBins; 965 OMX_S32 nLeft; 966 OMX_S32 nTop; 967 OMX_U32 nWidth; 968 OMX_U32 nHeight; 969 OMX_HISTTYPE eHistType; 970} OMX_CONFIG_HISTOGRAMTYPE; 971 972/** 973 * Enums for HIST component type. 974 */ 975typedef enum OMX_HISTCOMPONENTTYPE{ 976 OMX_HISTCOMP_Y = 0, /**< Luminance histogram (Y) */ 977 OMX_HISTCOMP_YLOG, /**< Logarithmic luminance histogram (Y)*/ 978 OMX_HISTCOMP_R, /**< Red histogram component (R)*/ 979 OMX_HISTCOMP_G, /**< Green histogram component (G)*/ 980 OMX_HISTCOMP_B, /**< Blue histogram component (B)*/ 981 OMX_HISTCOMP_Cb, /**< Chroma blue histogram component (Cb)*/ 982 OMX_HISTCOMP_Cr /**< Chroma red histogram component (Cr) */ 983}OMX_HISTCOMPONENTTYPE; 984 985 /** 986 * The OMX_TI_CAMERAVIEWTYPE enumeration is used to identify the 987 * particular camera view that the rest of the data in the structure is 988 * associated with. 989 */ 990typedef enum OMX_TI_CAMERAVIEWTYPE 991{ 992 OMX_2D, /**< Camera view in 2D sensor configuration */ 993 OMX_Left, /**< Left camera view in stereo sensor configuration */ 994 OMX_Right, /**< Right camera view in stereo sensor configuration */ 995 OMX_TI_CAMERAVIEWTYPE_32BIT_PATCH = 0x7FFFFFFF 996} OMX_TI_CAMERAVIEWTYPE; 997/** 998 * nSize is the size of the structure including the length of data field containing 999 * the histogram data. 1000 * nBins is the number of bins in the histogram. 1001 * eComponentType specifies the type of the histogram bins according to enum. 1002 * It can be selected to generate multiple component types, then the extradata struct 1003 * is repeated for each component type. 1004 * data[1] first byte of the histogram data 1005 */ 1006typedef struct OMX_HISTOGRAMTYPE { 1007 OMX_U32 nSize; 1008 OMX_VERSIONTYPE nVersion; 1009 OMX_U32 nPortIndex; 1010 OMX_TI_CAMERAVIEWTYPE eCameraView; 1011 OMX_U32 nBins; 1012 OMX_HISTCOMPONENTTYPE eComponentType; 1013 OMX_U8 data[1]; 1014} OMX_HISTOGRAMTYPE; 1015 1016#define OMX_OTHER_EXTRADATATYPE_SIZE ( (OMX_U32)(((OMX_OTHER_EXTRADATATYPE*)0x0)->data) ) /**< Size of OMX_OTHER_EXTRADATATYPE**/ 1017/** 1018 * The extra data having ancillary data is described with the following structure. 1019 * This data contains single flags and values 1020 * (not arrays) that have general usage for camera applications. 1021 */ 1022typedef struct OMX_TI_ANCILLARYDATATYPE { 1023 OMX_U32 nSize; 1024 OMX_VERSIONTYPE nVersion; 1025 OMX_U32 nPortIndex; 1026 OMX_TI_CAMERAVIEWTYPE eCameraView; 1027 OMX_U32 nAncillaryDataVersion; 1028 OMX_U32 nFrameNumber; 1029 OMX_U32 nShotNumber; 1030 OMX_U16 nInputImageHeight; 1031 OMX_U16 nInputImageWidth; 1032 OMX_U16 nOutputImageHeight; 1033 OMX_U16 nOutputImageWidth; 1034 OMX_U16 nDigitalZoomFactor; 1035 OMX_S16 nCropCenterColumn; 1036 OMX_S16 nCropCenterRow; 1037 OMX_U16 nOpticalZoomValue; 1038 OMX_U8 nFlashConfiguration; 1039 OMX_U8 nFlashUsage; 1040 OMX_U32 nFlashStatus; 1041 OMX_U8 nAFStatus; 1042 OMX_U8 nAWBStatus; 1043 OMX_U8 nAEStatus; 1044 OMX_U32 nExposureTime; 1045 OMX_U16 nEVCompensation; 1046 OMX_U8 nDigitalGainValue; 1047 OMX_U8 nAnalogGainValue; 1048 OMX_U16 nCurrentISO; 1049 OMX_U16 nReferenceISO; 1050 OMX_U8 nApertureValue; 1051 OMX_U8 nPixelRange; 1052 OMX_U16 nPixelAspectRatio; 1053 OMX_U8 nCameraShake; 1054 OMX_U16 nFocalDistance; 1055 OMX_U64 nParameterChangeFlags; 1056 OMX_U8 nNumFacesDetected; 1057 OMX_U8 nConvergenceMode; 1058 OMX_U8 nConvergenceStatus; 1059 OMX_U8 nDCCStatus; 1060} OMX_TI_ANCILLARYDATATYPE; 1061 1062typedef struct OMX_TI_WHITEBALANCERESULTTYPE { 1063 OMX_U32 nSize; /**< Size */ 1064 OMX_VERSIONTYPE nVersion; /**< Version */ 1065 OMX_U32 nPortIndex; /**< Port Index */ 1066 OMX_TI_CAMERAVIEWTYPE eCameraView; 1067 OMX_U16 nColorTemperature; /**< White Balance Color Temperature in Kelvins */ 1068 OMX_U16 nGainR; /**< Bayer applied R color channel gain in (U13Q9) */ 1069 OMX_U16 nGainGR; /**< Bayer applied Gr color channel gain in (U13Q9) */ 1070 OMX_U16 nGainGB; /**< Bayer applied Gb color channel gain in (U13Q9) */ 1071 OMX_U16 nGainB; /**< Bayer applied B color channel gain in (U13Q9) */ 1072 OMX_S16 nOffsetR; /**< Bayer applied R color channel offset */ 1073 OMX_S16 nOffsetGR; /**< Bayer applied Gr color channel offset */ 1074 OMX_S16 nOffsetGB; /**< Bayer applied Gb color channel offset */ 1075 OMX_S16 nOffsetB; /**< Bayer applied B color channel offset */ 1076} OMX_TI_WHITEBALANCERESULTTYPE; 1077 1078/** 1079 * Unsaturated Regions data 1080 * The extra data having unsaturated regions data is 1081 * described with the following structure.. 1082 */ 1083typedef struct OMX_TI_UNSATURATEDREGIONSTYPE { 1084 OMX_U32 nSize; /**< Size */ 1085 OMX_VERSIONTYPE nVersion; /**< Version */ 1086 OMX_U32 nPortIndex; /**< Port Index */ 1087 OMX_U16 nPaxelsX; /**< The number of paxels in the horizontal direction */ 1088 OMX_U16 nPaxelsY; /**< The number of paxels in the vertical direction */ 1089 OMX_U16 data[1]; /**< the first value of an array of values that represent */ 1090} OMX_TI_UNSATURATEDREGIONSTYPE; 1091 1092/** 1093 * OMX_BARCODETYPE 1094 */ 1095typedef enum OMX_BARCODETYPE{ 1096 OMX_BARCODE1D = 0, /**< 1D barcode */ 1097 OMX_BARCODE2D, /**< 2D barcode */ 1098}OMX_BARCODETYPE; 1099/** 1100 * Brcode detection data 1101 * nLeft is the leftmost coordinate of the detected area rectangle. 1102 * nTop is the topmost coordinate of the detected area rectangle. 1103 * nWidth is the width of the detected area rectangle in pixels. 1104 * nHeight is the height of the detected area rectangle in pixels. 1105 * 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. 1106 * eBarcodetype is an enumeration specifying the barcode type, as listed in the given table. 1107 */ 1108typedef struct OMX_BARCODEDETECTIONTYPE { 1109 OMX_U32 nSize; 1110 OMX_VERSIONTYPE nVersion; 1111 OMX_U32 nPortIndex; 1112 OMX_TI_CAMERAVIEWTYPE eCameraView; 1113 OMX_S32 nLeft; 1114 OMX_S32 nTop; 1115 OMX_U32 nWidth; 1116 OMX_U32 nHeight; 1117 OMX_S32 nOrientation; 1118 OMX_BARCODETYPE eBarcodetype; 1119 } OMX_BARCODEDETECTIONTYPE; 1120 1121/** 1122 * Front object detection data 1123 * nLeft is the leftmost coordinate of the detected area rectangle. 1124 * nTop is the topmost coordinate of the detected area rectangle. 1125 * nWidth is the width of the detected area rectangle in pixels. 1126 * nHeight is the height of the detected area rectangle in pixels. 1127 */ 1128typedef struct OMX_FRONTOBJDETECTIONTYPE { 1129 OMX_U32 nSize; 1130 OMX_VERSIONTYPE nVersion; 1131 OMX_U32 nPortIndex; 1132 OMX_TI_CAMERAVIEWTYPE eCameraView; 1133 OMX_S32 nLeft; 1134 OMX_S32 nTop; 1135 OMX_U32 nWidth; 1136 OMX_U32 nHeight; 1137} OMX_FRONTOBJDETECTIONTYPE; 1138 1139/** 1140 * Distance estimation data 1141 * nDistance is the estimated distance to the object in millimeters. 1142 * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown. 1143 */ 1144typedef struct OMX_DISTANCEESTIMATIONTYPE { 1145 OMX_U32 nSize; 1146 OMX_VERSIONTYPE nVersion; 1147 OMX_U32 nPortIndex; 1148 OMX_TI_CAMERAVIEWTYPE eCameraView; 1149 OMX_U32 nDistance; 1150 OMX_U32 nLargestDiscrepancy; 1151} OMX_DISTANCEESTIMATIONTYPE; 1152 1153/** 1154 * Distance estimation data 1155 * nDistance is the estimated distance to the object in millimeters. 1156 * nLargestDiscrepancy is the estimated largest discrepancy of the distance to the object in millimeters. When equal to MAX_INT the discrepancy is unknown. 1157 */ 1158 1159typedef struct OMX_MOTIONESTIMATIONTYPE { 1160 OMX_U32 nSize; 1161 OMX_VERSIONTYPE nVersion; 1162 OMX_U32 nPortIndex; 1163 OMX_TI_CAMERAVIEWTYPE eCameraView; 1164 OMX_S32 nPanX; 1165 OMX_S32 nPanY; 1166} OMX_MOTIONESTIMATIONTYPE; 1167 1168 1169/** 1170 * Focus region data 1171 * nRefPortIndex is the port the image frame size is defined on. This image frame size is used as reference for the focus region rectangle. 1172 * nLeft is the leftmost coordinate of the focus region rectangle. 1173 * nTop is the topmost coordinate of the focus region rectangle. 1174 * nWidth is the width of the focus region rectangle in pixels. 1175 * nHeight is the height of the focus region rectangle in pixels. 1176 * 1177 */ 1178typedef struct OMX_FOCUSREGIONTYPE { 1179 OMX_U32 nSize; 1180 OMX_VERSIONTYPE nVersion; 1181 OMX_U32 nPortIndex; 1182 OMX_TI_CAMERAVIEWTYPE eCameraView; 1183 OMX_U32 nRefPortIndex; 1184 OMX_S32 nLeft; 1185 OMX_S32 nTop; 1186 OMX_U32 nWidth; 1187 OMX_U32 nHeight; 1188} OMX_FOCUSREGIONTYPE; 1189 1190/** 1191 * OMX_ISOSETTINGTYPE: specifies its auto or manual setting 1192 * 1193 */ 1194typedef enum OMX_ISOSETTINGTYPE{ 1195 OMX_Auto = 0, /**< */ 1196 OMX_IsoManual /**< */ 1197}OMX_ISOSETTINGTYPE; 1198 1199/** 1200 * nSize is the size of the structure including the length of data field containing 1201 * the histogram data. 1202 * eISOMode: 1203 * specifies the ISO seetting mode - auto/manual 1204 * nISOSetting: 1205 * for manual mode client can specify the ISO setting. 1206 */ 1207 1208typedef struct OMX_CONFIG_ISOSETTINGTYPE{ 1209 OMX_U32 nSize; 1210 OMX_VERSIONTYPE nVersion; 1211 OMX_U32 nPortIndex; 1212 OMX_ISOSETTINGTYPE eISOMode; 1213 OMX_U32 nISOSetting; 1214}OMX_CONFIG_ISOSETTINGTYPE; 1215 1216/** 1217 * custom RAW format 1218 */ 1219typedef struct OMX_CONFIG_RAWFORMATTYPE { 1220 OMX_U32 nSize; 1221 OMX_VERSIONTYPE nVersion; 1222 OMX_U32 nPortIndex; 1223 OMX_VERSIONTYPE nFormatVersion; 1224 OMX_STRING cVendorName; 1225} OMX_CONFIG_RAWFORMATTYPE; 1226 1227/** 1228 * Sensor type 1229 */ 1230typedef struct OMX_CONFIG_SENSORTYPE { 1231 OMX_U32 nSize; 1232 OMX_VERSIONTYPE nVersion; 1233 OMX_U32 nPortIndex; 1234 OMX_VERSIONTYPE nSensorVersion; 1235 OMX_STRING cModelName; 1236} OMX_CONFIG_SENSORTYPE; 1237 1238/** 1239 * Sensor custom data type 1240 */ 1241typedef struct OMX_CONFIG_SENSORCUSTOMDATATYPE { 1242 OMX_U32 nSize; 1243 OMX_VERSIONTYPE nVersion; 1244 OMX_U32 nPortIndex; 1245 OMX_U32 nDataLength; 1246 OMX_U8 xSensorData[1]; 1247} OMX_CONFIG_SENSORCUSTOMDATATYPE; 1248 1249/** 1250 * OMX_OBJDETECTQUALITY 1251 * 1252 */ 1253typedef enum OMX_OBJDETECTQUALITY{ 1254 OMX_FastDetection = 0, /**< A detection that prioritizes speed*/ 1255 OMX_Default, /**< The default detection, should be used when no control of the detection quality is given.*/ 1256 OMX_BetterDetection, /**< A detection that levels correct detection with speed*/ 1257 OMX_BestDtection, /**< A detection that prioritizes correct detection*/ 1258 OMX_AUTODETECTION /**< Automatically decide which object detection quality is best.*/ 1259}OMX_OBJDETECTQUALITY; 1260 1261/** 1262 * OBJECT DETECTION Type 1263 * nPortIndex: is an output port. The port index decides on which port the extra data structur of detected object is sent on. 1264 * bEnable : this controls ON/OFF for this object detection algirithm. 1265 * bFrameLimited: is a Boolean used to indicate if detection shall be terminated after the specified number of frames if 1266 * true frame limited detection is enabled; otherwise the port does not terminate detection until instructed to do so by the client. 1267 * nFrameLimit: is the limit on number of frames detection is executed for, this parameter is only valid if bFrameLimited is enabled. 1268 * nMaxNbrObjects: specifies the maximum number of objects that should be found in each frame. It is implementation dependent which objects are found. 1269 * nLeft: is the leftmost coordinate of the detection area rectangle. 1270 * nTop: is the topmost coordinate of the detection area rectangle. 1271 * nWidth: is the width of the detection area rectangle in pixels. 1272 * nHeight: is the height of the detection area rectangle in pixels. 1273 * eObjDetectQuality: is an enumeration specifying the quality desired by the detection. 1274 * nPriority: represents priority of each object when there are multiple objects detected. 1275 */ 1276 1277typedef struct OMX_CONFIG_OBJDETECTIONTYPE { 1278 OMX_U32 nSize; 1279 OMX_VERSIONTYPE nVersion; 1280 OMX_U32 nPortIndex; 1281 OMX_BOOL bEnable; 1282 OMX_BOOL bFrameLimited; 1283 OMX_U32 nFrameLimit; 1284 OMX_U32 nMaxNbrObjects; 1285 OMX_S32 nLeft; 1286 OMX_S32 nTop; 1287 OMX_U32 nWidth; 1288 OMX_U32 nHeight; 1289 OMX_OBJDETECTQUALITY eObjDetectQuality; 1290 OMX_U32 nPriority; 1291 OMX_U32 nDeviceOrientation; 1292 } OMX_CONFIG_OBJDETECTIONTYPE; 1293 1294 1295/** 1296 * OMX_OBJDETECTQUALITY 1297 * 1298 */ 1299typedef enum OMX_DISTTYPE{ 1300 OMX_DistanceControlFocus = 0, /**< focus objects distance type*/ 1301 OMX_DISTANCECONTROL_RECT /**< Evaluated distance to the object found in the rectangelar area indicated as input region. */ 1302}OMX_DISTTYPE; 1303 1304 1305/** 1306 * Distance mesurement 1307 * bStarted is a Boolean. The IL client sets it to true to start the measurement . 1308 * the IL client sets to false to stop the measurement. The IL client can query it to check if the measurement is ongoing. 1309 * nLeft : is the leftmost coordinate of the rectangle. 1310 * nTop : is the topmost coordinate of the rectangle. 1311 * nWidth: is the width of the rectangle in pixels. 1312 * nHeight: is the height of the rectangle in pixels. 1313 * eDistType: is an enumeration specifying the distance measurement type, as shown in 1314 */ 1315typedef struct OMX_CONFIG_DISTANCETYPE { 1316 OMX_U32 nSize; 1317 OMX_VERSIONTYPE nVersion; 1318 OMX_U32 nPortIndex; 1319 OMX_BOOL bStarted; 1320 OMX_S32 nLeft; 1321 OMX_S32 nTop; 1322 OMX_U32 nWidth; 1323 OMX_U32 nHeight; 1324 OMX_DISTTYPE eDistType; 1325} OMX_CONFIG_DISTANCETYPE; 1326 1327 1328/** 1329 * face detect data - face attribute 1330 * nARGBEyeColor: is the indicates a 32-bit eye color of the person, where bits 0-7 are blue, 1331 * bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. 1332 * nARGBSkinColor: is the indicates a 32-bit skin color of the person, where bits 0-7 are blue, 1333 * bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. 1334 * nARGBHairColor: is the indicates a 32-bit hair color of the person, where bits 0-7 are blue, 1335 * bits 15-8 are green, bits 24-16 are red, and bits 31-24 are for alpha. 1336 * nSmileScore: a smile detection score between 0 and 100, where 0 means not detecting, 1337 * 1 means least certain and 100 means most certain a smile is detected. 1338 * nBlinkScore: a eye-blink detection score between 0 and 100, where 0 means not detecting, 1339 * 1 means least certain and 100 means most certain an eye-blink is detected. 1340 * xIdentity: represents the identity of the face. With identity equal to zero this is not supported. 1341 * This can be used by a face recognition application. The component shall not reuse an identity value unless the same face. 1342 * Can be used to track detected faces when it moves between frames. Specific usage of this field is implementation dependent. 1343 * It can be some kind of ID. 1344 * 1345 */ 1346typedef struct OMX_FACEATTRIBUTE { 1347 OMX_U32 nARGBEyeColor; 1348 OMX_U32 nARGBSkinColor; 1349 OMX_U32 nARGBHairColor; 1350 OMX_U32 nSmileScore; 1351 OMX_U32 nBlinkScore; 1352 OMX_U32 xIdentity[4]; 1353} OMX_FACEATTRIBUTE; 1354 1355/** 1356 * xGamma represents lool-up table for gamma correction in Q16 format. 1357 * All values assume that maximum value is 255. If internal implementation uses higher dynamic range, this value should be adjusted internally. 1358 * 1359 * 1360 * 1361 * STRUCT MEMBERS: 1362 * 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. 1363 * nLeft: is the leftmost coordinate of the detected area rectangle. 1364 * nTop: is the topmost coordinate of the detected area rectangle. 1365 * nWidth: is the width of the detected area rectangle in pixels. 1366 * nHeight: is the height of the detected area rectangle in pixels. 1367 * 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. 1368 * nPriority represents priority of each object when there are multiple objects detected. 1369 * nFaceAttr describe the attributes of the detected face object with the following structure: 1370 * 1371 * 1372 */ 1373typedef struct OMX_TI_FACERESULT { 1374 OMX_U32 nSize; 1375 OMX_VERSIONTYPE nVersion; 1376 OMX_U32 nPortIndex; 1377 OMX_TI_CAMERAVIEWTYPE eCameraView; 1378 OMX_U32 nScore; 1379 OMX_S32 nLeft; 1380 OMX_S32 nTop; 1381OMX_U32 nWidth; 1382OMX_U32 nHeight; 1383OMX_S32 nOrientationRoll; 1384OMX_S32 nOrientationYaw; 1385OMX_S32 nOrientationPitch; 1386OMX_U32 nPriority; 1387OMX_FACEATTRIBUTE nFaceAttr; 1388} OMX_TI_FACERESULT; 1389 1390 1391/** 1392 * Face detection data 1393 * The extra data having face detection data is described with the following structure. 1394 * The parser should only assume that the first tFacePosition[ulFaceCount] of the 35 elements 1395 * of the array should contain valid data. 1396 */ 1397typedef struct OMX_FACEDETECTIONTYPE { 1398 OMX_U32 nSize; 1399 OMX_VERSIONTYPE nVersion; 1400 OMX_U32 nPortIndex; 1401 OMX_TI_CAMERAVIEWTYPE eCameraView; 1402 OMX_U16 ulFaceCount; 1403 OMX_TI_FACERESULT tFacePosition[35];// 35 is max faces supported by FDIF 1404} OMX_FACEDETECTIONTYPE; 1405 1406/** 1407 * MTIS Vendor Specific Motion estimation 1408 * The extra data having MTIS motion estimation data is 1409 * described with the following structure. 1410 */ 1411typedef struct OMX_TI_MTISTYPE { 1412 OMX_U32 nSize; 1413 OMX_VERSIONTYPE nVersion; 1414 OMX_U32 nPortIndex; 1415 OMX_TI_CAMERAVIEWTYPE eCameraView; 1416 OMX_S32 nMaxMVh; /**< The maximum MV for horizontal direction */ 1417 OMX_S32 nMaxMVv; /**< The maximum MV for vertical direction */ 1418 OMX_U16 nMVRelY[9]; /**< The mask for MV reliability */ 1419 OMX_U16 nMVRelX[9]; /**< The mask for MV reliability */ 1420 OMX_S32 nMVh[9]; /**< The MVs for horizontal direction */ 1421 OMX_S32 nMVv[9]; /**< The MVs for vertical direction */ 1422} OMX_TI_MTISTYPE; 1423 1424/** 1425 * The OMX_EXTRADATATYPE enumeration is used to define the 1426 * possible extra data payload types. 1427 */ 1428typedef enum OMX_EXT_EXTRADATATYPE 1429{ 1430 OMX_ExifAttributes = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */ 1431 OMX_AncillaryData, /**< 0x7F000002 ancillary data */ 1432 OMX_WhiteBalance, /**< 0x7F000003 white balance resultant data */ 1433 OMX_UnsaturatedRegions, /**< 0x7F000004 unsaturated regions data */ 1434 OMX_FaceDetection, /**< face detect data */ 1435 OMX_BarcodeDetection, /**< bar-code detct data */ 1436 OMX_FrontObjectDetection, /**< Front object detection data */ 1437 OMX_MotionEstimation, /**< motion Estimation data */ 1438 OMX_TI_MTISType, /**< 0x7F000009 MTIS motion Estimation data */ 1439 OMX_DistanceEstimation, /**< disctance estimation */ 1440 OMX_Histogram, /**< histogram */ 1441 OMX_FocusRegion, /**< focus region data */ 1442 OMX_ExtraDataPanAndScan, /**< 0x7F00000D pan and scan data */ 1443 OMX_RawFormat, /**< custom RAW data format */ 1444 OMX_SensorType, /**< vendor & model of the sensor being used */ 1445 OMX_SensorCustomDataLength, /**< vendor specific custom data length */ 1446 OMX_SensorCustomData, /**< vendor specific data */ 1447 OMX_TI_FrameLayout, /**< 0x7F000012 vendor specific data */ 1448 OMX_TI_SEIinfo2004Frame1, /**< 0x7F000013 Used for 2004 SEI message to be provided by video decoders */ 1449 OMX_TI_SEIinfo2004Frame2, /**< 0x7F000014 Used for 2004 SEI message to be provided by video decoders */ 1450 OMX_TI_SEIinfo2010Frame1, /**< 0x7F000015 Used for 2010 SEI message to be provided by video decoders */ 1451 OMX_TI_SEIinfo2010Frame2, /**< 0x7F000016 Used for 2010 SEI message to be provided by video decoders */ 1452 OMX_TI_RangeMappingInfo, /**< 0x7F000017 Used for Range mapping info provided by Video Decoders */ 1453 OMX_TI_RescalingInfo, /**< 0x7F000018 Used for width/height rescaling info provided by Video Decoders */ 1454 OMX_TI_WhiteBalanceOverWrite, /**< 0x7F000019 Used for manual AWB settings */ 1455 OMX_TI_ExtraData_Count, 1456 OMX_TI_ExtraData_Max = OMX_TI_ExtraData_Count - 1, 1457} OMX_EXT_EXTRADATATYPE; 1458 1459 1460/** 1461 * Enable Extra-data on a specific port. 1462 * 1463 * 1464 * 1465 * STRUCT MEMBERS: 1466 * nSize : Size of the structure in bytes 1467 * nVersion : OMX specification version information 1468 * nPortIndex : Port on which this extra data to be assosiated 1469 * eExtraDataType : Extra data type 1470 * bEnable : Eneble/Disable this extra-data through port. 1471 * 1472 */ 1473typedef struct OMX_CONFIG_EXTRADATATYPE { 1474 OMX_U32 nSize; 1475 OMX_VERSIONTYPE nVersion; 1476 OMX_U32 nPortIndex; 1477 OMX_EXT_EXTRADATATYPE eExtraDataType; 1478 OMX_TI_CAMERAVIEWTYPE eCameraView; 1479 OMX_BOOL bEnable; 1480} OMX_CONFIG_EXTRADATATYPE; 1481 1482/** 1483 * JPEG header type 1484 * */ 1485 1486typedef enum OMX_JPEGHEADERTYPE{ 1487 OMX_NoHeader = 0, 1488 OMX_JFIF, 1489 OMX_EXIF 1490}OMX_JPEGHEADERTYPE; 1491/** 1492 * Re-start marker configuration 1493 * 1494 * 1495 * 1496 * STRUCT MEMBERS: 1497 * nSize : Size of the structure in bytes 1498 * nVersion : OMX specification version information 1499 * nPortIndex : Port on which this extra data to be assosiated 1500 * eJpegHeaderType : JPEG header type EXIF, JFIF, or No heeader. 1501 */ 1502 1503typedef struct OMX_CONFIG_JPEGHEEADERTYPE{ 1504 OMX_U32 nSize; 1505 OMX_VERSIONTYPE nVersion; 1506 OMX_U32 nPortIndex; 1507 OMX_JPEGHEADERTYPE eJpegHeaderType; 1508}OMX_CONFIG_JPEGHEEADERTYPE; 1509 1510/** 1511 * Re-start marker configuration 1512 * 1513 * 1514 * 1515 * STRUCT MEMBERS: 1516 * nSize : Size of the structure in bytes 1517 * nVersion : OMX specification version information 1518 * nPortIndex : Port on which this extra data to be assosiated 1519 * nRstInterval : interval at which RST markers are to be inserted. 1520 * bEnable : Eneble/Disable this RST marker insertion feature. 1521 * 1522 */ 1523 1524typedef struct OMX_CONFIG_RSTMARKER{ 1525 OMX_U32 nSize; 1526 OMX_VERSIONTYPE nVersion; 1527 OMX_U32 nPortIndex; 1528 OMX_U32 nRstInterval; 1529 OMX_BOOL nEnable; 1530}OMX_CONFIG_RSTMARKER; 1531 1532/** 1533 * Enable Extra-data on a specific port. 1534 * 1535 * 1536 * 1537 * STRUCT MEMBERS: 1538 * nSize : Size of the structure in bytes 1539 * nVersion : OMX specification version information 1540 * nPortIndex : Port that this structure applies to 1541 * nMaxSize : max size 1542 * 1543 * 1544 */ 1545typedef struct OMX_IMAGE_JPEGMAXSIZE { 1546 OMX_U32 nSize; 1547 OMX_VERSIONTYPE nVersion; 1548 OMX_U32 nPortIndex; 1549 OMX_U32 nMaxSize; 1550} OMX_IMAGE_JPEGMAXSIZE; 1551 1552 1553typedef enum OMX_IMAGESTAMPOPERATION{ 1554 OMX_NewImageStamp = 0, 1555 OMX_Continuation 1556}OMX_IMAGESTAMPOPERATION; 1557 1558 1559/** 1560 * Enable Extra-data on a specific port. 1561 * 1562 * 1563 * 1564 * STRUCT MEMBERS: 1565 * nSize : Size of the structure in bytes 1566 * nVersion : OMX specification version information 1567 * nPortIndex : Port that this structure applies to 1568 * nMaxSize : max size 1569 * 1570 * 1571 */ 1572typedef struct OMX_PARAM_IMAGESTAMPOVERLAYTYPE { 1573 OMX_U32 nSize; 1574 OMX_VERSIONTYPE nVersion; 1575 OMX_U32 nPortIndex; 1576 OMX_IMAGESTAMPOPERATION nOp; 1577 OMX_U32 nLeft; 1578 OMX_U32 nTop; 1579 OMX_U32 nHeight; 1580 OMX_U32 nWidth; 1581 OMX_COLOR_FORMATTYPE eFormat; 1582 OMX_U8 * pBitMap; 1583} OMX_PARAM_IMAGESTAMPOVERLAYTYPE; 1584 1585 1586/** 1587 * Enable Extra-data on a specific port. 1588 * 1589 * 1590 * 1591 * STRUCT MEMBERS: 1592 * nSize : Size of the structure in bytes 1593 * nVersion : OMX specification version information 1594 * nPortIndex : Port that this structure applies to 1595 * nMaxSize : max size 1596 * 1597 * 1598 */ 1599typedef struct OMX_PARAM_THUMBNAILTYPE { 1600 OMX_U32 nSize; 1601 OMX_VERSIONTYPE nVersion; 1602 OMX_U32 nPortIndex; 1603 OMX_U32 nHeight; 1604 OMX_U32 nWidth; 1605 OMX_IMAGE_CODINGTYPE eCompressionFormat; 1606 OMX_COLOR_FORMATTYPE eColorFormat; 1607 OMX_U32 nQuality; 1608 OMX_U32 nMaxSize; 1609} OMX_PARAM_THUMBNAILTYPE; 1610 1611/** 1612 * Red-Eye Removal Enum 1613 */ 1614typedef enum OMX_REDEYEREMOVALTYPE{ 1615 OMX_RedEyeRemovalOff = 0, /** No red eye removal*/ 1616 OMX_RedEyeRemovalOn, /** Red eye removal on*/ 1617 OMX_RedEyeRemovalAuto, /** Red eye removal will be done automatically when detected*/ 1618 OMX_RedEyeRemovalKhronosExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions*/ 1619 OMX_RedEyeRemovalVendorStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions*/ 1620 OMX_RedEyeRemovalMax = 0x7FFFFFFF 1621}OMX_REDEYEREMOVALTYPE; 1622 1623/** 1624 * Enable Extra-data on a specific port. 1625 * 1626 * 1627 * 1628 * STRUCT MEMBERS: 1629 * nSize : Size of the structure in bytes 1630 * nVersion : OMX specification version information 1631 * nPortIndex : Port that this structure applies to 1632 * nLeft: is the leftmost coordinate of the detection area rectangle (such as face region). 1633 * nTop: is the topmost coordinate of the detection area rectangle (such as face region). 1634 * nWidth: is the width of the detection area rectangle in pixels. 1635 * nHeight: is the height of the detection area rectangle in pixels. 1636 * 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. 1637 1638 * 1639 */ 1640typedef struct OMX_CONFIG_REDEYEREMOVALTYPE { 1641 OMX_U32 nSize; 1642 OMX_VERSIONTYPE nVersion; 1643 OMX_U32 nPortIndex; 1644 OMX_S32 nLeft; 1645 OMX_S32 nTop; 1646 OMX_U32 nWidth; 1647 OMX_U32 nHeight; 1648 OMX_U32 nARGBEyeColor; 1649 OMX_REDEYEREMOVALTYPE eMode; 1650} OMX_CONFIG_REDEYEREMOVALTYPE; 1651 1652 1653 1654 1655 1656 1657/** 1658 * Video capture YUV Range Enum 1659 */ 1660typedef enum OMX_VIDEOYUVRANGETYPE{ 1661 OMX_ITURBT601 = 0, 1662 OMX_Full8Bit, 1663 OMX_VideoYUVRangeKhronosExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions*/ 1664 OMX_VideoYUVRangeVendorStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions*/ 1665 OMX_VideoYUVRangeMax = 0x7FFFFFFF 1666}OMX_VIDEOYUVRANGETYPE; 1667 1668/** 1669 * Enable Extra-data on a specific port. 1670 * 1671 * 1672 * 1673 * STRUCT MEMBERS: 1674 * nSize : Size of the structure in bytes 1675 * nVersion : OMX specification version information 1676 * nPortIndex : Port that this structure applies to 1677 * 1678 */ 1679typedef struct OMX_PARAM_VIDEOYUVRANGETYPE { 1680 OMX_U32 nSize; 1681 OMX_VERSIONTYPE nVersion; 1682 OMX_U32 nPortIndex; 1683 OMX_VIDEOYUVRANGETYPE eYUVRange; 1684} OMX_PARAM_VIDEOYUVRANGETYPE; 1685 1686/** 1687 * Video noise filter mode range enum 1688 */ 1689typedef enum OMX_VIDEONOISEFILTERMODETYPE{ 1690 OMX_VideoNoiseFilterModeOff = 0, 1691 OMX_VideoNoiseFilterModeOn, 1692 OMX_VideoNoiseFilterModeAuto, 1693 OMX_VideoNoiseFilterModeExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1694 OMX_VideoNoiseFilterModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1695 OMX_VideoNoiseFilterModeMax = 0x7FFFFFFF 1696} OMX_VIDEONOISEFILTERMODETYPE; 1697 1698/** 1699 * Enable video noise filter. 1700 * 1701 * STRUCT MEMBERS: 1702 * nSize : Size of the structure in bytes 1703 * nVersion : OMX specification version information 1704 * nPortIndex : Port that this structure applies to 1705 * eMode : Video noise filter mode (on/off/auto) 1706 */ 1707typedef struct OMX_PARAM_VIDEONOISEFILTERTYPE { 1708 OMX_U32 nSize; 1709 OMX_VERSIONTYPE nVersion; 1710 OMX_U32 nPortIndex; 1711 OMX_VIDEONOISEFILTERMODETYPE eMode; 1712} OMX_PARAM_VIDEONOISEFILTERTYPE; 1713 1714 1715/** 1716 * High ISO Noise filter mode range enum 1717 */ 1718typedef enum OMX_ISONOISEFILTERMODETYPE{ 1719 OMX_ISONoiseFilterModeOff = 0, 1720 OMX_ISONoiseFilterModeOn, 1721 OMX_ISONoiseFilterModeAuto, 1722 OMX_ISONoiseFilterModeExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1723 OMX_ISONoiseFilterModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1724 OMX_ISONoiseFilterModeMax = 0x7FFFFFFF 1725} OMX_ISONOISEFILTERMODETYPE; 1726 1727/** 1728 * Enable ISO noise filter. 1729 * 1730 * STRUCT MEMBERS: 1731 * nSize : Size of the structure in bytes 1732 * nVersion : OMX specification version information 1733 * nPortIndex : Port that this structure applies to 1734 * eMode : ISO noise filter (NSF2 is used) mode (on/off/auto) 1735 */ 1736typedef struct OMX_PARAM_ISONOISEFILTERTYPE { 1737 OMX_U32 nSize; 1738 OMX_VERSIONTYPE nVersion; 1739 OMX_U32 nPortIndex; 1740 OMX_ISONOISEFILTERMODETYPE eMode; 1741} OMX_PARAM_ISONOISEFILTERTYPE; 1742 1743/** 1744 * Structure used to to call OMX_GetParams() for each 1745 * increment of "Index" starting with "0" 1746 * 1747 * STRUCT MEMBERS: 1748 * nSize : Size of the structure in bytes 1749 * nVersion : OMX specification version information 1750 * nIndex : Index of the sDCCURI 0..MAX_URI_LENGTH 1751 * sDCCURI : Look-up table containing strings. Ends with '\0' 1752 */ 1753typedef struct OMX_TI_PARAM_DCCURIINFO { 1754 OMX_U32 nSize; 1755 OMX_VERSIONTYPE nVersion; 1756 OMX_U32 nIndex; 1757 OMX_S8 sDCCURI[MAX_URI_LENGTH]; 1758} OMX_TI_PARAM_DCCURIINFO; 1759 1760/** 1761 * Structure used to configure DCC buffer 1762 * 1763 * STRUCT MEMBERS: 1764 * nSize : Size of the structure in bytes 1765 * nVersion : OMX specification version information 1766 * nDCCURIBuffSize : Size of the pDCCURIBuff in bytes 1767 * pDCCURIBuff : Pointer to a buffer 1768 */ 1769typedef struct OMX_TI_PARAM_DCCURIBUFFER { 1770 OMX_U32 nSize; 1771 OMX_VERSIONTYPE nVersion; 1772 OMX_U32 nDCCURIBuffSize; 1773 OMX_U8 *pDCCURIBuff; 1774} OMX_TI_PARAM_DCCURIBUFFER; 1775 1776/** 1777 * Manual White Balance color temperature 1778 * STRUCT MEMBERS: 1779 * nSize : Size of the structure in bytes 1780 * nVersion : OMX specification version information 1781 * nPortIndex : Port that this structure applies to 1782 * nColorTemperature : Color Temperature in K 1783 */ 1784typedef struct OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE { 1785 OMX_U32 nSize; 1786 OMX_VERSIONTYPE nVersion; 1787 OMX_U32 nPortIndex; 1788 OMX_U32 nColorTemperature; 1789} OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE; 1790 1791/** 1792 * Focus spot weighting range enum 1793 */ 1794typedef enum OMX_TI_CONFIG_FOCUSSPOTMODETYPE { 1795 OMX_FocusSpotDefault = 0, /** Makes CommonFocusRegion to be used. */ 1796 OMX_FocusSpotSinglecenter, 1797 OMX_FocusSpotMultiNormal, 1798 OMX_FocusSpotMultiAverage, 1799 OMX_FocusSpotMultiCenter, 1800 OMX_FocusSpotExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1801 OMX_FocusSpotModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1802 OMX_FocusSpotModeMax = 0x7FFFFFFF 1803} OMX_TI_CONFIG_FOCUSSPOTMODETYPE; 1804 1805/** 1806 * Focus Spot Weighting configuration. 1807 * 1808 * STRUCT MEMBERS: 1809 * nSize : Size of the structure in bytes 1810 * nVersion : OMX specification version information 1811 * nPortIndex : Port that this structure applies to 1812 * eMode : Spot Weighting mode 1813 */ 1814typedef struct OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE { 1815 OMX_U32 nSize; 1816 OMX_VERSIONTYPE nVersion; 1817 OMX_U32 nPortIndex; 1818 OMX_TI_CONFIG_FOCUSSPOTMODETYPE eMode; 1819} OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE; 1820 1821/** 1822 * Enumeration of possible Exposure control types for OMX_EXPOSURECONTROLTYPE 1823 */ 1824typedef enum OMX_TI_EXTEXPOSURECONTROLTYPE { 1825 OMX_TI_ExposureControlVeryLong = OMX_ExposureControlVendorStartUnused + 1 1826} OMX_TI_EXTEXPOSURECONTROLTYPE; 1827 1828/** 1829 * Variable frame rate configuration. 1830 * 1831 * STRUCT MEMBERS: 1832 * nSize : Size of the structure in bytes 1833 * nVersion : OMX specification version information 1834 * nPortIndex : Port that this structure applies to 1835 * xMinFramerate : Minimum variable frame rate value 1836 */ 1837typedef struct OMX_TI_PARAM_VARFRAMERATETYPE { 1838 OMX_U32 nSize; 1839 OMX_VERSIONTYPE nVersion; 1840 OMX_U32 nPortIndex; 1841 OMX_U32 xMinFramerate; 1842} OMX_TI_PARAM_VARFRAMERATETYPE; 1843 1844/** 1845 * Exposure config for right frame 1846 */ 1847typedef struct OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE { 1848 OMX_U32 nSize; 1849 OMX_VERSIONTYPE nVersion; 1850 OMX_U32 nPortIndex; 1851 OMX_U32 nApertureFNumber; /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */ 1852 OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */ 1853 OMX_U32 nSensitivity; /**< e.g. nSensitivity = 100 implies "ISO 100" */ 1854} OMX_TI_CONFIG_EXPOSUREVALUERIGHTTYPE; 1855 1856/** 1857 * Auto Convergence mode enum 1858 */ 1859typedef enum OMX_TI_AUTOCONVERGENCEMODETYPE { 1860 OMX_TI_AutoConvergenceModeDisable, 1861 OMX_TI_AutoConvergenceModeFrame, 1862 OMX_TI_AutoConvergenceModeCenter, 1863 OMX_TI_AutoConvergenceModeFocusFaceTouch, 1864 OMX_TI_AutoConvergenceModeManual, 1865 OMX_TI_AutoConvergenceExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ 1866 OMX_TI_AutoConvergenceStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ 1867 OMX_TI_AutoConvergenceModeMax = 0x7FFFFFFF 1868} OMX_TI_AUTOCONVERGENCEMODETYPE; 1869 1870/** 1871 * Variable farame rate configuration. 1872 * 1873 * STRUCT MEMBERS: 1874 * nSize : Size of the structure in bytes 1875 * nVersion : OMX specification version information 1876 * nPortIndex : Port that this structure applies to 1877 * eACMode : Auto convergence mode 1878 * nManualConverence : Manual Converence value 1879 * nACProcWinStartX : Start X AC Window 1880 * nACProcWinStartY : Start Y AC Window 1881 * nACProcWinWidth : Width of AC Window 1882 * nACProcWinHeight : Height of AC Window 1883 * bACStatus : output status from AL alg 1884 */ 1885typedef struct OMX_TI_CONFIG_CONVERGENCETYPE { 1886 OMX_U32 nSize; 1887 OMX_VERSIONTYPE nVersion; 1888 OMX_U32 nPortIndex; 1889 OMX_TI_AUTOCONVERGENCEMODETYPE eACMode; 1890 OMX_S32 nManualConverence; 1891 OMX_U32 nACProcWinStartX; 1892 OMX_U32 nACProcWinStartY; 1893 OMX_U32 nACProcWinWidth; 1894 OMX_U32 nACProcWinHeight; 1895 OMX_BOOL bACStatus; 1896} OMX_TI_CONFIG_CONVERGENCETYPE; 1897 1898/** 1899 * Camera specific version. 1900 * 1901 * STRUCT MEMBERS: 1902 * nBranch : Branch 1903 * nCommitID : Commit ID 1904 * nBuildDateTime : Build date and time 1905 * nExtraInfo : rederved for future use 1906 */ 1907typedef struct OMX_TI_CAMERASPECVERSIONTYPE { 1908 OMX_U8 nBranch[64]; 1909 OMX_U8 nCommitID[64]; 1910 OMX_U8 nBuildDateTime[64]; 1911 OMX_U8 nExtraInfo[64]; 1912} OMX_TI_CAMERASPECVERSIONTYPE; 1913 1914/** 1915 * Stereo frame layout enum 1916 */ 1917typedef enum OMX_TI_STEREOFRAMELAYOUTTYPE { 1918 OMX_TI_StereoFrameLayout2D, 1919 OMX_TI_StereoFrameLayoutTopBottom, 1920 OMX_TI_StereoFrameLayoutLeftRight, 1921 OMX_TI_StereoFrameLayoutMax = 0x7FFFFFFF 1922} OMX_TI_STEREOFRAMELAYOUTTYPE; 1923 1924/** 1925 * Camera frame layout type. 1926 * 1927 * STRUCT MEMBERS: 1928 * eFrameLayout : frame layout 1929 * nSubsampleRatio : subsample ratio 1930 */ 1931typedef struct OMX_TI_FRAMELAYOUTTYPE { 1932 OMX_U32 nSize; 1933 OMX_VERSIONTYPE nVersion; 1934 OMX_U32 nPortIndex; 1935 OMX_TI_STEREOFRAMELAYOUTTYPE eFrameLayout; 1936 OMX_U32 nSubsampleRatio; /** Subsampling ratio, Q15.7 */ 1937} OMX_TI_FRAMELAYOUTTYPE; 1938 1939/** 1940 * The OMX_TI_COLOR_FORMATTYPE enumeration is used to define the 1941 * extended color format types. 1942 */ 1943typedef enum OMX_TI_COLOR_FORMATTYPE { 1944 OMX_TI_COLOR_FormatYUV420PackedSemiPlanarInterlaced = 1945 (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 1, 1946 OMX_TI_COLOR_FormatRawBayer10bitStereo = 1947 OMX_COLOR_FormatVendorStartUnused + 2, /**< 10 bit raw for stereo */ 1948 OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 1949 (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x100, /* 0x100 is used since it is the corresponding HAL pixel fromat */ 1950 OMX_COLOR_FormatAndroidOpaque = 1951 (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x789 /**< Platform specified opaque format set to unique value 0x789*/ 1952} OMX_TI_COLOR_FORMATTYPE; 1953 1954/** 1955 * The OMX_TI_EXIFTAGSTATUS enumeration is used to define the 1956 * tag status types. 1957 */ 1958typedef enum OMX_TI_EXIFTAGSTATUS { 1959 OMX_TI_TagReadOnly, /**< implies this tag is generated within omx-camera >*/ 1960 OMX_TI_TagReadWrite, /**< implies this tag can be overwritten by client >*/ 1961 OMX_TI_TagUpdated, /**< client has to use this to indicate the specific tag is overwritten >*/ 1962 OMX_TI_ExifStatus_Max = 0x7fffffff 1963} OMX_TI_EXIFTAGSTATUS; 1964 1965typedef struct OMX_TI_CONFIG_EXIF_TAGS { 1966 OMX_U32 nSize; 1967 OMX_VERSIONTYPE nVersion; 1968 OMX_U32 nPortIndex; 1969 OMX_TI_EXIFTAGSTATUS eStatusImageWidth; 1970 OMX_U32 ulImageWidth; 1971 OMX_TI_EXIFTAGSTATUS eStatusImageHeight; 1972 OMX_U32 ulImageHeight; 1973 OMX_TI_EXIFTAGSTATUS eStatusBitsPerSample; 1974 OMX_U16 usBitsPerSample[3]; 1975 OMX_TI_EXIFTAGSTATUS eStatusCompression; 1976 OMX_U16 usCompression; 1977 OMX_TI_EXIFTAGSTATUS eStatusPhotometricInterpretation; 1978 OMX_U16 usPhotometricInterpretation; 1979 OMX_TI_EXIFTAGSTATUS eStatusOrientation; 1980 OMX_U16 usOrientation; 1981 OMX_TI_EXIFTAGSTATUS eStatusSamplesPerPixel; 1982 OMX_U16 usSamplesPerPixel; 1983 OMX_TI_EXIFTAGSTATUS eStatusPlanarConfiguration; 1984 OMX_U16 usPlanarConfiguration; 1985 OMX_TI_EXIFTAGSTATUS eStatusYCbCrSubSampling; 1986 OMX_U16 usYCbCrSubSampling[2]; 1987 OMX_TI_EXIFTAGSTATUS eStatusYCbCrPositioning; 1988 OMX_U16 usYCbCrPositioning; 1989 OMX_TI_EXIFTAGSTATUS eStatusXResolution; 1990 OMX_U32 ulXResolution[2]; 1991 OMX_TI_EXIFTAGSTATUS eStatusYResolution; 1992 OMX_U32 ulYResolution[2]; 1993 OMX_TI_EXIFTAGSTATUS eStatusResolutionUnit; 1994 OMX_U16 usResolutionUnit; 1995 1996 OMX_TI_EXIFTAGSTATUS eStatusRowsPerStrip; 1997 OMX_U32 ulRowsPerStrip; 1998 OMX_TI_EXIFTAGSTATUS eStatusDataSize; 1999 OMX_U32 ulDataSize; 2000 2001 OMX_TI_EXIFTAGSTATUS eStatusTransferFunction; 2002 OMX_U16 usTransferFunction[3*256]; 2003 OMX_TI_EXIFTAGSTATUS eStatusWhitePoint; 2004 OMX_U32 ulWhitePoint[4]; //2x2 2005 OMX_TI_EXIFTAGSTATUS eStatusPrimaryChromaticities; 2006 OMX_U32 ulPrimaryChromaticities[12]; //2x6 2007 OMX_TI_EXIFTAGSTATUS eStatusYCbCrCoefficients; 2008 OMX_U32 ulYCbCrCoefficients[6]; //2x3 2009 OMX_TI_EXIFTAGSTATUS eStatusReferenceBlackWhite; 2010 OMX_U32 ulReferenceBlackWhite[12]; //2x6 2011 OMX_TI_EXIFTAGSTATUS eStatusDateTime; 2012 OMX_S8* pDateTimeBuff; 2013 OMX_U32 ulDateTimeBuffSizeBytes; 2014 OMX_TI_EXIFTAGSTATUS eStatusImageDescription; 2015 OMX_S8* pImageDescriptionBuff; 2016 OMX_U32 ulImageDescriptionBuffSizeBytes; 2017 OMX_TI_EXIFTAGSTATUS eStatusMake; 2018 OMX_S8* pMakeBuff; 2019 OMX_U32 ulMakeBuffSizeBytes; 2020 OMX_TI_EXIFTAGSTATUS eStatusModel; 2021 OMX_S8* pModelBuff; 2022 OMX_U32 ulModelBuffSizeBytes; 2023 OMX_TI_EXIFTAGSTATUS eStatusSoftware; 2024 OMX_S8* pSoftwareBuff; 2025 OMX_U32 ulSoftwareBuffSizeBytes; 2026 OMX_TI_EXIFTAGSTATUS eStatusArtist; 2027 OMX_S8* pArtistBuff; 2028 OMX_U32 ulArtistBuffSizeBytes; 2029 OMX_TI_EXIFTAGSTATUS eStatusCopyright; 2030 OMX_S8* pCopyrightBuff; 2031 OMX_U32 ulCopyrightBuffSizeBytes; 2032 2033 OMX_TI_EXIFTAGSTATUS eStatusExifVersion; 2034 OMX_S8 cExifVersion[4]; 2035 OMX_TI_EXIFTAGSTATUS eStatusFlashpixVersion; 2036 OMX_S8 cFlashpixVersion[4]; 2037 OMX_TI_EXIFTAGSTATUS eStatusColorSpace; 2038 OMX_U16 usColorSpace; 2039 OMX_TI_EXIFTAGSTATUS eStatusComponentsConfiguration; 2040 OMX_S8 cComponentsConfiguration[4]; 2041 OMX_TI_EXIFTAGSTATUS eStatusCompressedBitsPerPixel; 2042 OMX_U32 ulCompressedBitsPerPixel[2]; 2043 OMX_TI_EXIFTAGSTATUS eStatusPixelXDimension; 2044 OMX_U32 ulPixelXDimension; 2045 OMX_TI_EXIFTAGSTATUS eStatusPixelYDimension; 2046 OMX_U32 ulPixelYDimension; 2047 OMX_TI_EXIFTAGSTATUS eStatusMakerNote; 2048 OMX_S8* pMakerNoteBuff; 2049 OMX_U32 ulMakerNoteBuffSizeBytes; 2050 OMX_TI_EXIFTAGSTATUS eStatusUserComment; 2051 OMX_S8* pUserCommentBuff; 2052 OMX_U32 ulUserCommentBuffSizeBytes; 2053 OMX_TI_EXIFTAGSTATUS eStatusRelatedSoundFile; 2054 OMX_S8 cRelatedSoundFile[13]; 2055 OMX_TI_EXIFTAGSTATUS eStatusDateTimeOriginal; 2056 OMX_S8* pDateTimeOriginalBuff; 2057 OMX_U32 ulDateTimeOriginalBuffSizeBytes; 2058 OMX_TI_EXIFTAGSTATUS eStatusDateTimeDigitized; 2059 OMX_S8* pDateTimeDigitizedBuff; 2060 OMX_U32 ulDateTimeDigitizedBuffSizeBytes; 2061 OMX_TI_EXIFTAGSTATUS eStatusSubSecTime; 2062 OMX_S8* pSubSecTimeBuff; 2063 OMX_U32 ulSubSecTimeBuffSizeBytes; 2064 OMX_TI_EXIFTAGSTATUS eStatusSubSecTimeOriginal; 2065 OMX_S8* pSubSecTimeOriginalBuff; 2066 OMX_U32 ulSubSecTimeOriginalBuffSizeBytes; 2067 OMX_TI_EXIFTAGSTATUS eStatusSubSecTimeDigitized; 2068 OMX_S8* pSubSecTimeDigitizedBuff; 2069 OMX_U32 ulSubSecTimeDigitizedBuffSizeBytes; 2070 2071 OMX_TI_EXIFTAGSTATUS eStatusExposureTime; 2072 OMX_U32 ulExposureTime[2]; 2073 OMX_TI_EXIFTAGSTATUS eStatusFNumber; 2074 OMX_U32 ulFNumber[2]; 2075 OMX_TI_EXIFTAGSTATUS eStatusExposureProgram; 2076 OMX_U16 usExposureProgram; 2077 OMX_TI_EXIFTAGSTATUS eStatusSpectralSensitivity; 2078 OMX_S8* pSpectralSensitivityBuff; 2079 OMX_U32 ulSpectralSensitivityBuffSizeBytes; 2080 OMX_TI_EXIFTAGSTATUS eStatusISOCount; 2081 OMX_U16 usISOCount; 2082 OMX_TI_EXIFTAGSTATUS eStatusISOSpeedRatings; 2083 OMX_U16* pISOSpeedRatings; 2084 OMX_TI_EXIFTAGSTATUS eStatusOECF; 2085 OMX_S8* pOECFBuff; 2086 OMX_U32 ulOECFBuffSizeBytes; 2087 OMX_TI_EXIFTAGSTATUS eStatusShutterSpeedValue; 2088 OMX_S32 slShutterSpeedValue[2]; 2089 OMX_TI_EXIFTAGSTATUS eStatusApertureValue; 2090 OMX_U32 ulApertureValue[2]; 2091 OMX_TI_EXIFTAGSTATUS eStatusBrightnessValue; 2092 OMX_S32 slBrightnessValue[2]; 2093 OMX_TI_EXIFTAGSTATUS eStatusExposureBiasValue; 2094 OMX_S32 slExposureBiasValue[2]; 2095 OMX_TI_EXIFTAGSTATUS eStatusMaxApertureValue; 2096 OMX_U32 ulMaxApertureValue[2]; 2097 OMX_TI_EXIFTAGSTATUS eStatusSubjectDistance; 2098 OMX_U32 ulSubjectDistance[2]; 2099 OMX_TI_EXIFTAGSTATUS eStatusMeteringMode; 2100 OMX_U16 usMeteringMode; 2101 OMX_TI_EXIFTAGSTATUS eStatusLightSource; 2102 OMX_U16 usLightSource; 2103 OMX_TI_EXIFTAGSTATUS eStatusFlash; 2104 OMX_U16 usFlash; 2105 OMX_TI_EXIFTAGSTATUS eStatusFocalLength; 2106 OMX_U32 ulFocalLength[2]; 2107 OMX_TI_EXIFTAGSTATUS eStatusSubjectArea; 2108 OMX_U16 usSubjectArea[4]; 2109 OMX_TI_EXIFTAGSTATUS eStatusFlashEnergy; 2110 OMX_U32 ulFlashEnergy[2]; 2111 OMX_TI_EXIFTAGSTATUS eStatusSpatialFrequencyResponse; 2112 OMX_S8* pSpatialFrequencyResponseBuff; 2113 OMX_U32 ulSpatialFrequencyResponseBuffSizeBytes; 2114 OMX_TI_EXIFTAGSTATUS eStatusFocalPlaneXResolution; 2115 OMX_U32 ulFocalPlaneXResolution[2]; 2116 OMX_TI_EXIFTAGSTATUS eStatusFocalPlaneYResolution; 2117 OMX_U32 ulFocalPlaneYResolution[2]; 2118 OMX_TI_EXIFTAGSTATUS eStatusFocalPlaneResolutionUnit; 2119 OMX_U16 usFocalPlaneResolutionUnit; 2120 OMX_TI_EXIFTAGSTATUS eStatusSubjectLocation; 2121 OMX_U16 usSubjectLocation[2]; 2122 OMX_TI_EXIFTAGSTATUS eStatusExposureIndex; 2123 OMX_U32 ulExposureIndex[2]; 2124 OMX_TI_EXIFTAGSTATUS eStatusSensingMethod; 2125 OMX_U16 usSensingMethod; 2126 OMX_TI_EXIFTAGSTATUS eStatusFileSource; 2127 OMX_S8 cFileSource; 2128 OMX_TI_EXIFTAGSTATUS eStatusSceneType; 2129 OMX_S8 cSceneType; 2130 OMX_TI_EXIFTAGSTATUS eStatusCFAPattern; 2131 OMX_S8* pCFAPatternBuff; 2132 OMX_U32 ulCFAPatternBuffSizeBytes; 2133 OMX_TI_EXIFTAGSTATUS eStatusCustomRendered; 2134 OMX_U16 usCustomRendered; 2135 OMX_TI_EXIFTAGSTATUS eStatusExposureMode; 2136 OMX_U16 usExposureMode; 2137 OMX_TI_EXIFTAGSTATUS eStatusWhiteBalance; 2138 OMX_U16 usWhiteBalance; 2139 OMX_TI_EXIFTAGSTATUS eStatusDigitalZoomRatio; 2140 OMX_U32 ulDigitalZoomRatio[2]; 2141 OMX_TI_EXIFTAGSTATUS eStatusFocalLengthIn35mmFilm; 2142 OMX_U16 usFocalLengthIn35mmFilm; 2143 OMX_TI_EXIFTAGSTATUS eStatusSceneCaptureType; 2144 OMX_U16 usSceneCaptureType; 2145 OMX_TI_EXIFTAGSTATUS eStatusGainControl; 2146 OMX_U16 usGainControl; 2147 OMX_TI_EXIFTAGSTATUS eStatusContrast; 2148 OMX_U16 usContrast; 2149 OMX_TI_EXIFTAGSTATUS eStatusSaturation; 2150 OMX_U16 usSaturation; 2151 OMX_TI_EXIFTAGSTATUS eStatusSharpness; 2152 OMX_U16 usSharpness; 2153 OMX_TI_EXIFTAGSTATUS eStatusDeviceSettingDescription; 2154 OMX_S8* pDeviceSettingDescriptionBuff; 2155 OMX_U32 ulDeviceSettingDescriptionBuffSizeBytes; 2156 OMX_TI_EXIFTAGSTATUS eStatusSubjectDistanceRange; 2157 OMX_U16 usSubjectDistanceRange; 2158 2159 OMX_TI_EXIFTAGSTATUS eStatusImageUniqueID; 2160 OMX_S8 cImageUniqueID[33]; 2161 OMX_U8* pPrivateNextIFDPointer; //Should not be used by the application 2162 OMX_U8* pPrivateThumbnailSize; //Should not be used by the application 2163 OMX_U8* pPrivateTiffHeaderPointer; //Should not be used by the application 2164 2165 OMX_TI_EXIFTAGSTATUS eStatusGpsVersionId; 2166 OMX_U8 ucGpsVersionId[4]; 2167 OMX_TI_EXIFTAGSTATUS eStatusGpslatitudeRef; 2168 OMX_S8 cGpslatitudeRef[2]; 2169 OMX_TI_EXIFTAGSTATUS eStatusGpsLatitude; 2170 OMX_U32 ulGpsLatitude[6]; 2171 OMX_TI_EXIFTAGSTATUS eStatusGpsLongitudeRef; 2172 OMX_S8 cGpsLongitudeRef[2]; 2173 OMX_TI_EXIFTAGSTATUS eStatusGpsLongitude; 2174 OMX_U32 ulGpsLongitude[6]; 2175 OMX_TI_EXIFTAGSTATUS eStatusGpsAltitudeRef; 2176 OMX_U8 ucGpsAltitudeRef; 2177 OMX_TI_EXIFTAGSTATUS eStatusGpsAltitude; 2178 OMX_U32 ulGpsAltitude[2]; 2179 OMX_TI_EXIFTAGSTATUS eStatusGpsTimeStamp; 2180 OMX_U32 ulGpsTimeStamp[6]; 2181 OMX_TI_EXIFTAGSTATUS eStatusGpsSatellites; 2182 OMX_S8* pGpsSatellitesBuff; 2183 OMX_U32 ulGpsSatellitesBuffSizeBytes; 2184 OMX_TI_EXIFTAGSTATUS eStatusGpsStatus; 2185 OMX_S8 cGpsStatus[2]; 2186 OMX_TI_EXIFTAGSTATUS eStatusGpsMeasureMode; 2187 OMX_S8 cGpsMeasureMode[2]; 2188 OMX_TI_EXIFTAGSTATUS eStatusGpsDop; 2189 OMX_U32 ulGpsDop[2]; 2190 OMX_TI_EXIFTAGSTATUS eStatusGpsSpeedRef; 2191 OMX_S8 cGpsSpeedRef[2]; 2192 OMX_TI_EXIFTAGSTATUS eStatusGpsSpeed; 2193 OMX_U32 ulGpsSpeed[2]; 2194 OMX_TI_EXIFTAGSTATUS eStatusGpsTrackRef; 2195 OMX_S8 cGpsTrackRef[2]; 2196 OMX_TI_EXIFTAGSTATUS eStatusGpsTrack; 2197 OMX_U32 ulGpsTrack[2]; 2198 OMX_TI_EXIFTAGSTATUS eStatusGpsImgDirectionRef; 2199 OMX_S8 cGpsImgDirectionRef[2]; 2200 OMX_TI_EXIFTAGSTATUS eStatusGpsImgDirection; 2201 OMX_U32 ulGpsImgDirection[2]; 2202 OMX_TI_EXIFTAGSTATUS eStatusGpsMapDatum; 2203 OMX_S8* pGpsMapDatumBuff; 2204 OMX_U32 ulGpsMapDatumBuffSizeBytes; 2205 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLatitudeRef; 2206 OMX_S8 cGpsDestLatitudeRef[2]; 2207 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLatitude; 2208 OMX_U32 ulGpsDestLatitude[6]; 2209 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLongitudeRef; 2210 OMX_S8 cGpsDestLongitudeRef[2]; 2211 OMX_TI_EXIFTAGSTATUS eStatusGpsDestLongitude; 2212 OMX_U32 ulGpsDestLongitude[6]; 2213 OMX_TI_EXIFTAGSTATUS eStatusGpsDestBearingRef; 2214 OMX_S8 cGpsDestBearingRef[2]; 2215 OMX_TI_EXIFTAGSTATUS eStatusGpsDestBearing; 2216 OMX_U32 ulGpsDestBearing[2]; 2217 OMX_TI_EXIFTAGSTATUS eStatusGpsDestDistanceRef; 2218 OMX_S8 cGpsDestDistanceRef[2]; 2219 OMX_TI_EXIFTAGSTATUS eStatusGpsDestDistance; 2220 OMX_U32 ulGpsDestDistance[2]; 2221 OMX_TI_EXIFTAGSTATUS eStatusGpsProcessingMethod; 2222 OMX_S8* pGpsProcessingMethodBuff; 2223 OMX_U32 ulGpsProcessingMethodBuffSizeBytes; 2224 OMX_TI_EXIFTAGSTATUS eStatusGpsAreaInformation; 2225 OMX_S8* pGpsAreaInformationBuff; 2226 OMX_U32 ulGpsAreaInformationBuffSizeBytes; 2227 OMX_TI_EXIFTAGSTATUS eStatusGpsDateStamp; 2228 OMX_S8 cGpsDateStamp[11]; 2229 OMX_TI_EXIFTAGSTATUS eStatusGpsDifferential; 2230 OMX_U16 usGpsDifferential; 2231} OMX_TI_CONFIG_EXIF_TAGS; 2232 2233/** 2234 * Structure used to configure current OMX_TI_SENMOUNT_TYPE 2235 * 2236 * @param nSenId 2237 * @param nRotation 2238 */ 2239typedef struct OMX_TI_SENMOUNT_TYPE { 2240 OMX_U32 nSenId; 2241 OMX_U32 nRotation; 2242}OMX_TI_SENMOUNT_TYPE; 2243 2244/** 2245 * Structure used to configure current OMX_TI_VARFPSTYPE 2246 * 2247 * @param nVarFPSMin Number of the smallest FPS supported. 2248 * @param nVarFPSMax Number of the biggest FPS supported. 2249 */ 2250typedef struct OMX_TI_VARFPSTYPE { 2251 OMX_U32 nVarFPSMin; 2252 OMX_U32 nVarFPSMax; 2253} OMX_TI_VARFPSTYPE; 2254 2255/** 2256 * Structure used to configure current OMX_TI_CONFIG_SHAREDBUFFER 2257 * 2258 * STRUCT MEMBERS: 2259 * nSize : Size of the structure in bytes 2260 * nVersion : OMX specification version information 2261 * nPortIndex : Port that this structure applies to 2262 * nSharedBuffSize : Size of the pSharedBuff in bytes 2263 * pSharedBuff : Pointer to a buffer 2264 */ 2265typedef struct OMX_TI_CONFIG_SHAREDBUFFER { 2266 OMX_U32 nSize; 2267 OMX_VERSIONTYPE nVersion; 2268 OMX_U32 nPortIndex; 2269 OMX_U32 nSharedBuffSize; 2270 OMX_U8* pSharedBuff; 2271} OMX_TI_CONFIG_SHAREDBUFFER; 2272 2273/** 2274 * Structure used to configure current OMX_TI_CAPRESTYPE 2275 * 2276 * STRUCT MEMBERS: 2277 * nSize : Size of the structure in bytes 2278 * nVersion : OMX specification version information 2279 * nPortIndex : Port that this structure applies to 2280 * nWidthMin : Number of the smallest width supported 2281 * nHeightMin : Number of the smallest height supported 2282 * nWidthMax : Number of the biggest width supported 2283 * nHeightMax : Number of the biggest height supported 2284 */ 2285typedef struct OMX_TI_CAPRESTYPE { 2286 OMX_U32 nSize; 2287 OMX_VERSIONTYPE nVersion; 2288 OMX_U32 nPortIndex; 2289 OMX_U32 nWidthMin; // smallest width supported 2290 OMX_U32 nHeightMin; // smallest height supported 2291 OMX_U32 nWidthMax; // biggest width supported 2292 OMX_U32 nHeightMax; // biggest height supported 2293} OMX_TI_CAPRESTYPE; 2294 2295/** 2296 * Structure used to configure current OMX_TI_CAPTYPE 2297 * 2298 * STRUCT MEMBERS: 2299 * nSize : Size of the structure in bytes 2300 * nVersion : OMX specification version information 2301 * nPortIndex : Port that this structure applies to 2302 * ulPreviewFormatCount : Number of the supported preview pixelformat count 2303 * ePreviewFormats : Array containing the supported preview pixelformat count 2304 * ulImageFormatCount : Number of the supported image pixelformat count 2305 * eImageFormats : Array containing the supported image pixelformat count 2306 * tPreviewResRange : Supported preview resolution range 2307 * tImageResRange : Supported image resolution range 2308 * tThumbResRange : Supported thumbnail resolution range 2309 * ulWhiteBalanceCount : Supported whitebalance mode count 2310 * eWhiteBalanceModes : Array containing the whitebalance modes 2311 * ulColorEffectCount : Supported effects count 2312 * eColorEffects : Array containing the supported effects 2313 * xMaxWidthZoom : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Width 2314 * xMaxHeightZoom : Fixed point value stored as Q16 representing the maximum value for the Zoom allowed on Height 2315 * ulFlickerCount : Number of the supported anti-flicker modes 2316 * eFlicker : Array containing the supported anti-flicker modes 2317 * ulExposureModeCount : Number of the supported exposure modes 2318 * eExposureModes : Array containing the supported exposure modes 2319 * bLensDistortionCorrectionSupported : Flag for Lens Distortion Correction Algorithm support 2320 * bISONoiseFilterSupported : Flag for Noise Filter Algorithm support 2321 * xEVCompensationMin : Fixed point value stored as Q16 representing the EVCompensation minumum allowed value 2322 * xEVCompensationMax : Fixed point value stored as Q16 representing the EVCompensation maximum allowed value 2323 * nSensitivityMax : nSensitivityMax = 100 implies maximum supported equal to "ISO 100" 2324 * ulFocusModeCount : Number of the supported focus modes 2325 * eFocusModes : Array containing the supported focus modes 2326 * ulSceneCount : Number of the supported scenes 2327 * eSceneModes : Array containing the supported scenes 2328 * ulFlashCount : Number of the supported flash modes 2329 * eFlashModes : Array containing the supported flash modes 2330 * xFramerateMin : Fixed point value stored as Q16 representing the minimum framerate allowed 2331 * xFramerateMax : Fixed point value stored as Q16 representing the maximum framerate allowed 2332 * bContrastSupported : Flag showing if the contrast is supported 2333 * bSaturationSupported : Flag showing if the saturation is supported 2334 * bBrightnessSupported : Flag showing if the brightness is supported 2335 * bProcessingLevelSupported : Flag showing if the processing level is supported 2336 * bQFactorSupported : Flag showing if the QFactor is supported 2337 * ulPrvVarFPSModesCount : Number of preview FPS modes 2338 * tPrvVarFPSModes : Preview FPS modes 2339 * ulCapVarFPSModesCount : Number of capture FPS modes 2340 * tCapVarFPSModes : Capture FPS modes 2341 * tSenMounting : Sensor mount information 2342 */ 2343typedef struct OMX_TI_CAPTYPE { 2344 OMX_U32 nSize; 2345 OMX_VERSIONTYPE nVersion; 2346 OMX_U32 nPortIndex; 2347 OMX_U16 ulPreviewFormatCount; // supported preview pixelformat count 2348 OMX_COLOR_FORMATTYPE ePreviewFormats[100]; 2349 OMX_U16 ulImageFormatCount; // supported image pixelformat count 2350 OMX_COLOR_FORMATTYPE eImageFormats[100]; 2351 OMX_TI_CAPRESTYPE tPreviewResRange; // supported preview resolution range 2352 OMX_TI_CAPRESTYPE tImageResRange; // supported image resolution range 2353 OMX_TI_CAPRESTYPE tThumbResRange; // supported thumbnail resolution range 2354 OMX_U16 ulWhiteBalanceCount; // supported whitebalance mode count 2355 OMX_WHITEBALCONTROLTYPE eWhiteBalanceModes[100]; 2356 OMX_U16 ulColorEffectCount; // supported effects count 2357 OMX_IMAGEFILTERTYPE eColorEffects[100]; 2358 OMX_S32 xMaxWidthZoom; // Fixed point value stored as Q16 2359 OMX_S32 xMaxHeightZoom; // Fixed point value stored as Q16 2360 OMX_U16 ulFlickerCount; // supported anti-flicker mode count 2361 OMX_COMMONFLICKERCANCELTYPE eFlicker[100]; 2362 OMX_U16 ulExposureModeCount; // supported exposure mode count 2363 OMX_EXPOSURECONTROLTYPE eExposureModes[100]; 2364 OMX_BOOL bLensDistortionCorrectionSupported; 2365 OMX_BOOL bISONoiseFilterSupported; 2366 OMX_S32 xEVCompensationMin; // Fixed point value stored as Q16 2367 OMX_S32 xEVCompensationMax; // Fixed point value stored as Q16 2368 OMX_U32 nSensitivityMax; // nSensitivityMax = 100 implies maximum supported equal to "ISO 100" 2369 OMX_U16 ulFocusModeCount; // supported focus mode count 2370 OMX_IMAGE_FOCUSCONTROLTYPE eFocusModes[100]; 2371 OMX_U16 ulSceneCount; // supported scene count 2372 OMX_SCENEMODETYPE eSceneModes[100]; 2373 OMX_U16 ulFlashCount; // supported flash modes count 2374 OMX_IMAGE_FLASHCONTROLTYPE eFlashModes[100]; 2375 OMX_U32 xFramerateMin; // Fixed point value stored as Q16 2376 OMX_U32 xFramerateMax; // Fixed point value stored as Q16 2377 OMX_BOOL bContrastSupported; 2378 OMX_BOOL bSaturationSupported; 2379 OMX_BOOL bBrightnessSupported; 2380 OMX_BOOL bProcessingLevelSupported; 2381 OMX_BOOL bQFactorSupported; 2382 OMX_U16 ulPrvVarFPSModesCount; // supported variable FPS preview modes count 2383 OMX_TI_VARFPSTYPE tPrvVarFPSModes[10]; 2384 OMX_U16 ulCapVarFPSModesCount; // supported variable FPS capture modes count 2385 OMX_TI_VARFPSTYPE tCapVarFPSModes[10]; 2386 OMX_TI_SENMOUNT_TYPE tSenMounting; 2387} OMX_TI_CAPTYPE; 2388 2389/** 2390 * Defines 3A Face priority mode. 2391 * 2392 * STRUCT MEMBERS: 2393 * nSize : Size of the structure in bytes 2394 * nVersion : OMX specification version information 2395 * nPortIndex : Port that this structure applies to 2396 * bAwbFaceEnable : Enable Face priority for Auto White Balance 2397 * bAeFaceEnable : Enable Face priority for Auto Exposure 2398 * bAfFaceEnable : Enable Face priority for Auto Focus 2399 */ 2400typedef struct OMX_TI_CONFIG_3A_FACE_PRIORITY { 2401 OMX_U32 nSize; 2402 OMX_VERSIONTYPE nVersion; 2403 OMX_U32 nPortIndex; 2404 OMX_BOOL bAwbFaceEnable; 2405 OMX_BOOL bAeFaceEnable; 2406 OMX_BOOL bAfFaceEnable; 2407} OMX_TI_CONFIG_3A_FACE_PRIORITY; 2408 2409/** 2410 * Defines 3A Region priority mode. 2411 * 2412 * STRUCT MEMBERS: 2413 * nSize : Size of the structure in bytes 2414 * nVersion : OMX specification version information 2415 * nPortIndex : Port that this structure applies to 2416 * bAwbFaceEnable : Enable Region priority for Auto White Balance 2417 * bAeFaceEnable : Enable Region priority for Auto Exposure 2418 * bAfFaceEnable : Enable Region priority for Auto Focus 2419 */ 2420typedef struct OMX_TI_CONFIG_3A_REGION_PRIORITY { 2421 OMX_U32 nSize; 2422 OMX_VERSIONTYPE nVersion; 2423 OMX_U32 nPortIndex; 2424 OMX_BOOL bAwbRegionEnable; 2425 OMX_BOOL bAeRegionEnable; 2426 OMX_BOOL bAfRegionEnable; 2427} OMX_TI_CONFIG_3A_REGION_PRIORITY; 2428 2429/* 2430* STRUCT MEMBERS: 2431* nSize : Size of the structure in bytes 2432* nVersion : OMX specification version information 2433* nPortIndex : Port that this structure applies to 2434* bAutoConvergence : Enable/Disable Auto Convergence 2435*/ 2436typedef struct OMX_TI_PARAM_AUTOCONVERGENCETYPE { 2437 OMX_U32 nSize; 2438 OMX_VERSIONTYPE nVersion; 2439 OMX_U32 nPortIndex; 2440 OMX_BOOL bAutoConvergence; 2441} OMX_TI_PARAM_AUTOCONVERGENCETYPE; 2442 2443/** 2444 * Focus distance configuration 2445 * 2446 * STRUCT MEMBERS: 2447 * nSize: Size of the structure in bytes 2448 * nVersion: OMX specification version information 2449 * nPortIndex: Port that this structure applies to 2450 * nFocusDistanceNear : Specifies the near focus distance in mm ( 0 equals infinity ) 2451 * nFocusDistanceOptimal : Specifies the optimal focus distance in mm ( 0 equals infinity ) 2452 * nFocusDistanceFar : Specifies the far focus distance in mm ( 0 equals infinity ) 2453 * nLensPosition : Specifies the current lens position in driver units 2454 */ 2455typedef struct OMX_TI_CONFIG_FOCUSDISTANCETYPE { 2456 OMX_U32 nSize; 2457 OMX_VERSIONTYPE nVersion; 2458 OMX_U32 nPortIndex; 2459 OMX_U32 nFocusDistanceNear; 2460 OMX_U32 nFocusDistanceOptimal; 2461 OMX_U32 nFocusDistanceFar; 2462 OMX_S32 nLensPosition; 2463} OMX_TI_CONFIG_FOCUSDISTANCETYPE; 2464 2465/* 2466* STRUCT MEMBERS: 2467* nSize : Size of the structure in bytes 2468* nVersion : OMX specification version information 2469* nPortIndex : Port that this structure applies to 2470* pAAAskipBuff : Pointer to a buffer 2471* AAAskipBuffId : Id of the send buffer 2472* AAAskipBuffSize : Size of the sent buffer 2473*/ 2474typedef struct OMX_TI_CONFIG_AAASKIPBUFFERTYPE { 2475 OMX_U32 nSize; 2476 OMX_VERSIONTYPE nVersion; 2477 OMX_U32 nPortIndex; 2478 OMX_PTR pAAAskipBuff; 2479 OMX_U32 AAAskipBuffId; 2480 OMX_U32 AAAskipBuffSize; 2481} OMX_TI_CONFIG_AAASKIPBUFFERTYPE; 2482 2483 2484/** 2485 * The OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE enumeration is used to define the 2486 * brightness and contrast mode types. 2487 */ 2488typedef enum OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE { 2489 OMX_TI_BceModeOff = 0, 2490 OMX_TI_BceModeOn, 2491 OMX_TI_BceModeAuto, 2492 OMX_TI_BceModeMax = 0x7FFFFFFF 2493} OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE; 2494 2495/** 2496 * Local and global brightness contrast type. 2497 * 2498 * STRUCT MEMBERS: 2499 * nSize : Size of the structure in bytes 2500 * nVersion : OMX specification version information 2501 * nPortIndex : Port that this structure applies to 2502 * eControl : Control field for GLBCE 2503 */ 2504typedef struct OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE { 2505 OMX_U32 nSize; 2506 OMX_VERSIONTYPE nVersion; 2507 OMX_U32 nPortIndex; 2508 OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE eControl; 2509} OMX_TI_CONFIG_LOCAL_AND_GLOBAL_BRIGHTNESSCONTRASTTYPE; 2510 2511/** 2512 * Uncompressed image operating mode configuration structure. 2513 * 2514 * @param nSize Size of the structure in bytes. 2515 * @param nVersion OMX specification version information. 2516 * @param xMin The minimum frame rate allowed. 2517 * Units are Q16 frames per second. 2518 * @param xMax The maximum frame rate allowed. 2519 * Units are Q16 frames per second. 2520 */ 2521 2522typedef struct OMX_TI_CONFIG_VARFRMRANGETYPE { 2523 OMX_U32 nSize; 2524 OMX_VERSIONTYPE nVersion; 2525 OMX_U32 xMin; 2526 OMX_U32 xMax; 2527} OMX_TI_CONFIG_VARFRMRANGETYPE; 2528 2529/** 2530* A pointer to this struct is passed to the OMX_SetParameter when the extension 2531* index for the 'OMX.google.android.index.enableAndroidNativeBuffers' extension 2532* is given. 2533* The corresponding extension Index is OMX_TI_IndexUseNativeBuffers. 2534* This will be used to inform OMX about the presence of gralloc pointers instead 2535* of virtual pointers 2536*/ 2537typedef struct OMX_TI_PARAMUSENATIVEBUFFER { 2538 OMX_U32 nSize; 2539 OMX_VERSIONTYPE nVersion; 2540 OMX_U32 nPortIndex; 2541 OMX_BOOL bEnable; 2542} OMX_TI_PARAMUSENATIVEBUFFER; 2543 2544/*==========================================================================*/ 2545/*! 2546@brief OMX_TI_PARAM_ENHANCEDPORTRECONFIG : Suport added to new port reconfig usage 2547@param bUsePortReconfigForCrop Enables port reconfig for crop. 2548@param bUsePortReconfigForPadding Enables port reconfig for padding 2549*/ 2550/*==========================================================================*/ 2551 2552typedef struct OMX_TI_PARAM_ENHANCEDPORTRECONFIG { 2553 OMX_U32 nSize; 2554 OMX_VERSIONTYPE nVersion; 2555 OMX_U32 nPortIndex; 2556 OMX_BOOL bUsePortReconfigForCrop; 2557 OMX_BOOL bUsePortReconfigForPadding; 2558} OMX_TI_PARAM_ENHANCEDPORTRECONFIG; 2559 2560/** 2561* Define the frames queue len for ZSL 2562* 2563* STRUCT MEMBERS: 2564* nSize: Size of the structure in bytes 2565* nVersion: OMX specification version information 2566* nHistoryLen: History len in number of frames 2567*/ 2568typedef struct OMX_TI_PARAM_ZSLHISTORYLENTYPE { 2569 OMX_U32 nSize; 2570 OMX_VERSIONTYPE nVersion; 2571 OMX_U32 nHistoryLen; 2572} OMX_TI_PARAM_ZSLHISTORYLENTYPE; 2573 2574/** 2575* Define the frame delay in ms for ZSL 2576* 2577* STRUCT MEMBERS: 2578* nSize: Size of the structure in bytes 2579* nVersion: OMX specification version information 2580* nDelay: Capture frame delay in ms 2581*/ 2582typedef struct OMX_TI_CONFIG_ZSLDELAYTYPE { 2583 OMX_U32 nSize; 2584 OMX_VERSIONTYPE nVersion; 2585 OMX_S32 nDelay; 2586} OMX_TI_CONFIG_ZSLDELAYTYPE; 2587 2588 2589#ifdef __cplusplus 2590} 2591#endif /* __cplusplus */ 2592 2593#endif 2594 2595 2596