diff options
Diffstat (limited to 'domx/omx_core/inc/OMX_TI_IVCommon.h')
-rwxr-xr-x | domx/omx_core/inc/OMX_TI_IVCommon.h | 1457 |
1 files changed, 1209 insertions, 248 deletions
diff --git a/domx/omx_core/inc/OMX_TI_IVCommon.h b/domx/omx_core/inc/OMX_TI_IVCommon.h index cfe228a..c2b5bb8 100755 --- a/domx/omx_core/inc/OMX_TI_IVCommon.h +++ b/domx/omx_core/inc/OMX_TI_IVCommon.h @@ -53,6 +53,7 @@ extern "C" { #include <OMX_IVCommon.h> #include <OMX_Image.h> +#define DCC_PATH "/data/misc/camera/" #define MAX_URI_LENGTH (OMX_MAX_STRINGNAME_SIZE) #define MAX_ALGOAREAS (35) @@ -67,7 +68,8 @@ extern "C" { /* ======================================================================= */ typedef enum OMX_JPEG_COMPRESSEDMODETYPE { OMX_JPEG_ModeChunk = 0, - OMX_JPEG_ModeNonChunk + OMX_JPEG_ModeNonChunk, + OMX_JPEG_CompressedmodeMax = 0x7fffffff }OMX_JPEG_COMPRESSEDMODETYPE ; @@ -85,7 +87,8 @@ typedef enum OMX_JPEG_UNCOMPRESSEDMODETYPE { OMX_JPEG_UncompressedModeFrame = 0, OMX_JPEG_UncompressedModeSlice, OMX_JPEG_UncompressedModeStitch, - OMX_JPEG_UncompressedModeBurst + OMX_JPEG_UncompressedModeBurst, + OMX_JPEG_UncompressedModeMax = 0x7fffffff }OMX_JPEG_UNCOMPRESSEDMODETYPE; @@ -360,7 +363,8 @@ typedef struct OMX_CONFIG_SCALEQUALITYTYPE { typedef enum OMX_SMOOTHZOOMMODE{ OMX_Off=0, /**< default OFF */ OMX_Increase, - OMX_Decrease + OMX_Decrease, + OMX_SmoothZoomModeMax = 0x7fffffff }OMX_SMOOTHZOOMMODE; @@ -406,7 +410,8 @@ typedef enum OMX_EXTIMAGEFILTERTYPE { OMX_TI_ImageFilterWhiteBoard, OMX_TI_ImageFilterBlackBoard, OMX_TI_ImageFilterAqua, - OMX_TI_ImageFilterPosterize + OMX_TI_ImageFilterPosterize, + OMX_ImageFilterTypeMax = 0x7fffffff } OMX_EXTIMAGEFILTERTYPE; @@ -457,6 +462,8 @@ typedef enum OMX_BRACKETMODETYPE { OMX_BracketFlashPower, OMX_BracketAperture, OMX_BracketTemporal, + OMX_BracketExposureGainAbsolute, + OMX_BracketVectorShot, OMX_BrackerTypeKhronosExtensions = 0x6f000000, OMX_BrackerTypeVendorStartUnused = 0x7f000000, OMX_BracketTypeMax = 0x7FFFFFFF @@ -467,8 +474,9 @@ typedef struct OMX_CONFIG_BRACKETINGTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_BRACKETMODETYPE eBracketMode; - OMX_U32 nNbrBracketingValues; - OMX_S32 nBracketValues[10]; /**< 10 can be assumed */ + OMX_U32 nNbrBracketingValues; + OMX_S32 nBracketValues[10]; /**< 10 can be assumed */ + OMX_S32 nBracketValues2[10]; /**< 10 can be assumed */ } OMX_CONFIG_BRACKETINGTYPE; @@ -508,7 +516,7 @@ typedef enum OMX_CAMOPERATINGMODETYPE { OMX_CaptureImageProfileOpticalCorr1, OMX_CaptureImageProfileOpticalCorr2, OMX_CaptureImageProfileExtended1, - OMX_CaptureStereoImageCapture, + OMX_CaptureStereoImageCapture, OMX_CaptureImageMemoryInput, OMX_CaptureVideo, OMX_CaptureHighSpeedVideo, @@ -516,8 +524,18 @@ typedef enum OMX_CAMOPERATINGMODETYPE { OMX_TI_CaptureDummy, OMX_TI_CaptureGestureRecognition, OMX_TI_CaptureImageProfileZeroShutterLag, - OMX_CamOperatingModeMax = 0x7fffffff + OMX_TI_SinglePreview, + OMX_TI_StereoGestureRecognition, + OMX_TI_CPCam, + OMX_TI_StereoVideo, + OMX_CaptureHighQualityVideo, + // Put new entries here so OMX_CamOperatingModeMax always points to + // the last one + OMX_TI_CamOperatingModeCount, + OMX_CamOperatingModeMax = OMX_TI_CamOperatingModeCount - 1, + OMX_CamOperatingMode = 0x7fffffff } OMX_CAMOPERATINGMODETYPE; + /** * Capture mode setting: applicable to multi shot capture also including bracketing. * @@ -668,7 +686,11 @@ typedef enum OMX_IMAGE_EXTFOCUSCONTROLTYPE { OMX_IMAGE_FocusControlPortrait, /**< from Xena */ OMX_IMAGE_FocusControlExtended, /**< from Xena */ OMX_IMAGE_FocusControlContinousNormal, /**< from Xena */ - OMX_IMAGE_FocusControlContinousExtended /**< from Xena */ + OMX_IMAGE_FocusControlContinousExtended, /**< from Xena */ + OMX_IMAGE_FocusControlContinousFacePriority, + OMX_IMAGE_FocusControlContinousRegionPriority, + OMX_IMAGE_FocusControlContinousPicture, + OMX_IMAGE_FocusControlTypeMax = 0x7fffffff } OMX_IMAGE_EXTFOCUSCONTROLTYPE; @@ -834,7 +856,8 @@ typedef enum OMX_EXTWHITEBALCONTROLTYPE { OMX_TI_WhiteBalControlSunset, OMX_TI_WhiteBalControlShade, OMX_TI_WhiteBalControlTwilight, - OMX_TI_WhiteBalControlWarmFluorescent + OMX_TI_WhiteBalControlWarmFluorescent, + OMX_TI_WhiteBalControlMax = 0x7fffffff } OMX_EXTWHITEBALCONTROLTYPE; /** @@ -934,7 +957,8 @@ OMX_PROCESSINGTYPE eProc; typedef enum OMX_HISTTYPE{ OMX_HistControlLuminance = 0, /**< Luminance histogram is calculated (Y)*/ OMX_HistControlColorComponents, /**< A histogram per color component (R, G, B) is calculated*/ - OMX_HistControlChrominanceComponents /**< A histogram per chrominance component (Cb, Cr) is calculated.*/ + OMX_HistControlChrominanceComponents, /**< A histogram per chrominance component (Cb, Cr) is calculated.*/ + OMX_HistControl_32BIT_PATCH = 0x7FFFFFFF }OMX_HISTTYPE; /** @@ -971,7 +995,7 @@ typedef struct OMX_CONFIG_HISTOGRAMTYPE { } OMX_CONFIG_HISTOGRAMTYPE; /** - * Enums for HIST component type. + * OMX_HISTCOMPONENTTYPE Enumerated Value */ typedef enum OMX_HISTCOMPONENTTYPE{ OMX_HISTCOMP_Y = 0, /**< Luminance histogram (Y) */ @@ -980,41 +1004,141 @@ typedef enum OMX_HISTCOMPONENTTYPE{ OMX_HISTCOMP_G, /**< Green histogram component (G)*/ OMX_HISTCOMP_B, /**< Blue histogram component (B)*/ OMX_HISTCOMP_Cb, /**< Chroma blue histogram component (Cb)*/ - OMX_HISTCOMP_Cr /**< Chroma red histogram component (Cr) */ + OMX_HISTCOMP_Cr, /**< Chroma red histogram component (Cr) */ + OMX_HISTCOMP_32BIT_PATCH = 0x7FFFFFFF }OMX_HISTCOMPONENTTYPE; - /** +/** * The OMX_TI_CAMERAVIEWTYPE enumeration is used to identify the - * particular camera view that the rest of the data in the structure is - * associated with. - */ -typedef enum OMX_TI_CAMERAVIEWTYPE -{ - OMX_2D, /**< Camera view in 2D sensor configuration */ - OMX_Left, /**< Left camera view in stereo sensor configuration */ - OMX_Right, /**< Right camera view in stereo sensor configuration */ + * particular camera view and frame type that the rest of + * the data in the structure is associated with. + */ +typedef enum OMX_TI_CAMERAVIEWTYPE { + OMX_2D_Prv, /**< Camera view in 2D for preview */ + OMX_2D_Snap, /**< Camera view in 2D for snapshot */ + OMX_2D_Cap, /**< Camera view in 2D for capture */ + OMX_3D_Left_Prv, /**< Left camera view in 3D for preview */ + OMX_3D_Left_Snap, /**< Left camera view in 3D for snapshot */ + OMX_3D_Left_Cap, /**< Left camera view in 3D for capture */ + OMX_3D_Right_Prv, /**< Right camera view in 3D for preview */ + OMX_3D_Right_Snap, /**< Right camera view in 3D for snapshot */ + OMX_3D_Right_Cap, /**< Right camera view in 3D for capture */ OMX_TI_CAMERAVIEWTYPE_32BIT_PATCH = 0x7FFFFFFF } OMX_TI_CAMERAVIEWTYPE; + +#define OMX_OTHER_EXTRADATATYPE_SIZE ((OMX_U32)(((OMX_OTHER_EXTRADATATYPE *)0x0)->data)) /**< Size of OMX_OTHER_EXTRADATATYPE + without Data[1] and without padding */ + /** - * nSize is the size of the structure including the length of data field containing - * the histogram data. - * nBins is the number of bins in the histogram. - * eComponentType specifies the type of the histogram bins according to enum. - * It can be selected to generate multiple component types, then the extradata struct - * is repeated for each component type. - * data[1] first byte of the histogram data + * The extra data having DCC data is described with the following structure. + * This data contains single flags and values + * (not arrays) that have general usage for camera applications. */ -typedef struct OMX_HISTOGRAMTYPE { - OMX_U32 nSize; - OMX_VERSIONTYPE nVersion; - OMX_U32 nPortIndex; +typedef struct OMX_TI_DCCDATATYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_U32 nBins; - OMX_HISTCOMPONENTTYPE eComponentType; - OMX_U8 data[1]; -} OMX_HISTOGRAMTYPE; + OMX_U32 nCameraModuleId; + OMX_U32 nDccDescriptorId; + OMX_U32 nAlgorithmVendorId; + OMX_U32 nUseCaseId; + OMX_U32 nOffset; + OMX_PTR pData; +} OMX_TI_DCCDATATYPE; +/** + * The extra data type to feed the camera re-processing function + */ +typedef struct OMX_TI_CAMREPROCMETATYPE { + OMX_U32 nExpTime; + OMX_U32 nGain; +} OMX_TI_CAMREPROCMETATYPE; + +/** + * The extra data vector shot feedback info + * nConfigId : Same id that cames with + * OMX_TI_CONFIG_ENQUEUESHOTCONFIGS::nShotConfig[x].nConfigId + * for particular shot config. + * nFrameNum : Frame number in vect shot repeat sequence. + * Starts from 1 for every shot config. + * + * nExpMin : The exposure time lower limit,[us] + * nExpMax : The exposure time upper limit,[us] + * nGainMin : The analog gain lower limit,[0,01EV] + * nGainMax : The analog gain upper limit,[0,01EV] + * + * nReqEC : Requested total exposure compensation + * nReqExpTime : Requested exposure time + * nReqGain : Requested gain + * + * nExpTime : Exposure time of this frame. + * nAGain : Analog gain of this frame. + * + * nSenExpTimeErr : Exposure time error in us. + * If the requested exposure time is ExpReq + * and the one produced by the sensor is nExpTime then: + * nExpTimeErr = nExpTime - ExpReq. + * nSenAGainErr: Analog gain error as multiplier (in Q8 format). + * + * nDevEV : The total exposure deviation,[us] + * nDevExpTime : The exposure time deviation after flicker reduction,[us] + * nDevAGain : The analog gain deviation after flicker reduction,[0,01EV] + */ +typedef struct OMX_TI_VECTSHOTINFOTYPE { + OMX_U32 nConfigId; + OMX_U32 nFrameNum; + OMX_U32 nExpMin; + OMX_U32 nExpMax; + OMX_U32 nGainMin; + OMX_U32 nGainMax; + OMX_S32 nReqEC; + OMX_S32 nReqExpTime; + OMX_S32 nReqGain; + OMX_U32 nExpTime; + OMX_U32 nAGain; + OMX_S32 nSenExpTimeErr; + OMX_U32 nSenAGainErr; + OMX_S32 nDevEV; + OMX_S32 nDevExpTime; + OMX_S32 nDevAGain; +} OMX_TI_VECTSHOTINFOTYPE; + +/* + * LSC gain table size + */ +#define OMX_TI_LSC_GAIN_TABLE_SIZE (80 * 1024) + +/** + * Possible LSC table gain formats + */ +typedef enum OMX_TI_LSC_GAIN_FORMAT_TYPE { + OMX_TI_LSC_GAIN_FORMAT_0Q8, + OMX_TI_LSC_GAIN_FORMAT_0Q8_PLUS_1, + OMX_TI_LSC_GAIN_FORMAT_1Q7, + OMX_TI_LSC_GAIN_FORMAT_1Q7_PLUS_1, + OMX_TI_LSC_GAIN_FORMAT_2Q6, + OMX_TI_LSC_GAIN_FORMAT_2Q6_PLUS_1, + OMX_TI_LSC_GAIN_FORMAT_3Q5, + OMX_TI_LSC_GAIN_FORMAT_3Q5_PLUS_1, + OMX_TI_LSC_GAIN_FORMAT = 0x7FFFFFFF +} OMX_TI_LSC_GAIN_FORMAT_TYPE; + +/** + * The extra data for LSC table + * bApplied : If true the table is applied to the frame. + * eGainFormat : Paxel format + * nWidth : LSC table width in paxels + * nHeight : LSC table height in paxels + * pGainTable : LSC gain table + */ +typedef struct OMX_TI_LSCTABLETYPE { + OMX_BOOL bApplied; + OMX_TI_LSC_GAIN_FORMAT_TYPE eGainFormat; + OMX_U32 nWidth; + OMX_U32 nHeight; + OMX_U8 pGainTable[OMX_TI_LSC_GAIN_TABLE_SIZE]; +} OMX_TI_LSCTABLETYPE; -#define OMX_OTHER_EXTRADATATYPE_SIZE ( (OMX_U32)(((OMX_OTHER_EXTRADATATYPE*)0x0)->data) ) /**< Size of OMX_OTHER_EXTRADATATYPE**/ /** * The extra data having ancillary data is described with the following structure. * This data contains single flags and values @@ -1060,6 +1184,11 @@ typedef struct OMX_TI_ANCILLARYDATATYPE { OMX_U8 nDCCStatus; } OMX_TI_ANCILLARYDATATYPE; +/** + * White Balance Results data + * The extra data having white balance results data is + * described with the following structure.. + */ typedef struct OMX_TI_WHITEBALANCERESULTTYPE { OMX_U32 nSize; /**< Size */ OMX_VERSIONTYPE nVersion; /**< Version */ @@ -1087,15 +1216,17 @@ typedef struct OMX_TI_UNSATURATEDREGIONSTYPE { OMX_U32 nPortIndex; /**< Port Index */ OMX_U16 nPaxelsX; /**< The number of paxels in the horizontal direction */ OMX_U16 nPaxelsY; /**< The number of paxels in the vertical direction */ - OMX_U16 data[1]; /**< the first value of an array of values that represent */ + OMX_U16 data[1]; /**< the first value of an array of values that represent + the percentage of unsaturated pixels within the associated paxel */ } OMX_TI_UNSATURATEDREGIONSTYPE; /** * OMX_BARCODETYPE */ -typedef enum OMX_BARCODETYPE{ +typedef enum OMX_BARCODETYPE { OMX_BARCODE1D = 0, /**< 1D barcode */ OMX_BARCODE2D, /**< 2D barcode */ + OMX_BarcodeMax = 0x7fffffff }OMX_BARCODETYPE; /** * Brcode detection data @@ -1111,12 +1242,13 @@ typedef struct OMX_BARCODEDETECTIONTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_S32 nLeft; - OMX_S32 nTop; - OMX_U32 nWidth; - OMX_U32 nHeight; - OMX_S32 nOrientation; - OMX_BARCODETYPE eBarcodetype; + OMX_S32 nLeft; /**< The leftmost coordinate of the detected area rectangle */ + OMX_S32 nTop; /**< Topmost coordinate of the detected area rectangle */ + OMX_U32 nWidth; /**< The width of the detected area rectangle in pixels */ + OMX_U32 nHeight; /**< The height of the detected area rectangle in pixels */ + OMX_S32 nOrientation; /**< The orientation of the axis of the detected object. + This refers to the angle between the vertical axis of barcode and the horizontal axis */ + OMX_BARCODETYPE eBarcodetype; /**< An enumeration specifying the barcode type, as listed in the given table */ } OMX_BARCODEDETECTIONTYPE; /** @@ -1131,10 +1263,10 @@ typedef struct OMX_FRONTOBJDETECTIONTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_S32 nLeft; - OMX_S32 nTop; - OMX_U32 nWidth; - OMX_U32 nHeight; + OMX_S32 nLeft; /**< The leftmost coordinate of the detected area rectangle */ + OMX_S32 nTop; /**< The topmost coordinate of the detected area rectangle */ + OMX_U32 nWidth; /**< The width of the detected area rectangle in pixels */ + OMX_U32 nHeight; /**< The height of the detected area rectangle in pixels */ } OMX_FRONTOBJDETECTIONTYPE; /** @@ -1147,8 +1279,9 @@ typedef struct OMX_DISTANCEESTIMATIONTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_U32 nDistance; - OMX_U32 nLargestDiscrepancy; + OMX_U32 nDistance; /**< Estimated distance to the object in millimeters */ + OMX_U32 nLargestDiscrepancy; /**< the estimated largest discrepancy of the distance to the object in millimeters. + When equal to MAX_INT the discrepancy is unknown */ } OMX_DISTANCEESTIMATIONTYPE; /** @@ -1162,8 +1295,10 @@ typedef struct OMX_MOTIONESTIMATIONTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_S32 nPanX; - OMX_S32 nPanY; + OMX_S32 nPanX; /**< The detected translation in horizontal direction. + The value is represented as pixels in Q16-format */ + OMX_S32 nPanY; /**< The detected translation in vertical direction. + The value is represented as pixels in Q16-format */ } OMX_MOTIONESTIMATIONTYPE; @@ -1181,11 +1316,12 @@ typedef struct OMX_FOCUSREGIONTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_U32 nRefPortIndex; - OMX_S32 nLeft; - OMX_S32 nTop; - OMX_U32 nWidth; - OMX_U32 nHeight; + OMX_U32 nRefPortIndex; /**< The port the image frame size is defined on. + This image frame size is used as reference for the focus region rectangle */ + OMX_S32 nLeft; /**< The leftmost coordinate of the focus region rectangle */ + OMX_S32 nTop; /**< The topmost coordinate of the focus region rectangle */ + OMX_U32 nWidth; /**< The width of the focus region rectangle in pixels */ + OMX_U32 nHeight; /**< The height of the focus region rectangle in pixels */ } OMX_FOCUSREGIONTYPE; /** @@ -1194,7 +1330,8 @@ typedef struct OMX_FOCUSREGIONTYPE { */ typedef enum OMX_ISOSETTINGTYPE{ OMX_Auto = 0, /**< */ - OMX_IsoManual /**< */ + OMX_IsoManual, /**< */ + OMX_IsoSettingMax = 0x7fffffff }OMX_ISOSETTINGTYPE; /** @@ -1237,6 +1374,38 @@ typedef struct OMX_CONFIG_SENSORTYPE { } OMX_CONFIG_SENSORTYPE; /** +* Sensor Detect +*/ +typedef struct OMX_TI_PARAM_SENSORDETECT { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BOOL bSensorDetect; +} OMX_TI_PARAM_SENSORDETECT; + +/** + * OMX_BAYERCOMPRESSION + * + */ +typedef enum OMX_BAYERCOMPRESSION { + OMX_BAYER_UNPACKED, + OMX_BAYER_PACKED10, + OMX_BAYER_ALAW, + OMX_BAYER_DPCM, + OMX_BAYER_MAX = 0x7FFFFFFF +} OMX_BAYERCOMPRESSION; + +/** +* Sensor Detect +*/ +typedef struct OMX_TI_PARAM_BAYERCOMPRESSION { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BAYERCOMPRESSION eBayerCompression; +} OMX_TI_PARAM_BAYERCOMPRESSION; + +/** * Sensor custom data type */ typedef struct OMX_CONFIG_SENSORCUSTOMDATATYPE { @@ -1256,7 +1425,8 @@ typedef enum OMX_OBJDETECTQUALITY{ OMX_Default, /**< The default detection, should be used when no control of the detection quality is given.*/ OMX_BetterDetection, /**< A detection that levels correct detection with speed*/ OMX_BestDtection, /**< A detection that prioritizes correct detection*/ - OMX_AUTODETECTION /**< Automatically decide which object detection quality is best.*/ + OMX_AUTODETECTION, /**< Automatically decide which object detection quality is best.*/ + OMX_ObjDetectQualityMax = 0x7fffffff }OMX_OBJDETECTQUALITY; /** @@ -1299,7 +1469,8 @@ typedef struct OMX_CONFIG_OBJDETECTIONTYPE { */ typedef enum OMX_DISTTYPE{ OMX_DistanceControlFocus = 0, /**< focus objects distance type*/ - OMX_DISTANCECONTROL_RECT /**< Evaluated distance to the object found in the rectangelar area indicated as input region. */ + OMX_DISTANCECONTROL_RECT, /**< Evaluated distance to the object found in the rectangelar area indicated as input region. */ + OMX_DistTypeMax = 0x7fffffff }OMX_DISTTYPE; @@ -1345,12 +1516,25 @@ typedef struct OMX_CONFIG_DISTANCETYPE { * */ typedef struct OMX_FACEATTRIBUTE { - OMX_U32 nARGBEyeColor; - OMX_U32 nARGBSkinColor; - OMX_U32 nARGBHairColor; - OMX_U32 nSmileScore; - OMX_U32 nBlinkScore; - OMX_U32 xIdentity[4]; + OMX_U32 nARGBEyeColor; /**< The indicates a 32-bit eye color of the person, + where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, + and bits 31-24 are for alpha. */ + OMX_U32 nARGBSkinColor; /**< The indicates a 32-bit skin color of the person, + where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, + and bits 31-24 are for alpha */ + OMX_U32 nARGBHairColor; /**< the indicates a 32-bit hair color of the person, + where bits 0-7 are blue, bits 15-8 are green, bits 24-16 are red, + and bits 31-24 are for alpha */ + OMX_U32 nSmileScore; /**< Smile detection score between 0 and 100, where 0 means not detecting, + 1 means least certain and 100 means most certain a smile is detected */ + OMX_U32 nBlinkScore; /**< Eye-blink detection score between 0 and 100, where 0 means not detecting, + 1 means least certain and 100 means most certain an eye-blink is detected */ + OMX_U32 xIdentity[4]; /**< represents the identity of the face. With identity equal to zero this is not supported. + This can be used by a face recognition application. + The component shall not reuse an identity value unless the same face. + Can be used to track detected faces when it moves between frames. + Specific usage of this field is implementation dependent. + It can be some kind of ID */ } OMX_FACEATTRIBUTE; /** @@ -1376,16 +1560,22 @@ typedef struct OMX_TI_FACERESULT { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_U32 nScore; - OMX_S32 nLeft; - OMX_S32 nTop; -OMX_U32 nWidth; -OMX_U32 nHeight; + OMX_U32 nScore; /**< Detection score between 0 and 100, where 0 means unknown score, + 1 means least certain and 100 means most certain the detection is correct */ + OMX_S32 nLeft; /**< The leftmost coordinate of the detected area rectangle */ + OMX_S32 nTop; /**< The topmost coordinate of the detected area rectangle */ + OMX_U32 nWidth; /**< The width of the detected area rectangle in pixels */ + OMX_U32 nHeight; /**< The height of the detected area rectangle in pixels */ + // 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. OMX_S32 nOrientationRoll; OMX_S32 nOrientationYaw; OMX_S32 nOrientationPitch; -OMX_U32 nPriority; -OMX_FACEATTRIBUTE nFaceAttr; + // + OMX_U32 nPriority; /**< Represents priority of each object when there are multiple objects detected */ + OMX_FACEATTRIBUTE nFaceAttr; /**< Describe the attributes of the detected face object with the following structure */ } OMX_TI_FACERESULT; @@ -1400,7 +1590,7 @@ typedef struct OMX_FACEDETECTIONTYPE { OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_TI_CAMERAVIEWTYPE eCameraView; - OMX_U16 ulFaceCount; + OMX_U16 ulFaceCount; // faces detected OMX_TI_FACERESULT tFacePosition[35];// 35 is max faces supported by FDIF } OMX_FACEDETECTIONTYPE; @@ -1426,25 +1616,24 @@ typedef struct OMX_TI_MTISTYPE { * The OMX_EXTRADATATYPE enumeration is used to define the * possible extra data payload types. */ -typedef enum OMX_EXT_EXTRADATATYPE -{ - OMX_ExifAttributes = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */ +typedef enum OMX_EXT_EXTRADATATYPE { + OMX_ExifAttributes = 0x7F000001, /**< 0x7F000001 Reserved region for introducing Vendor Extensions */ OMX_AncillaryData, /**< 0x7F000002 ancillary data */ OMX_WhiteBalance, /**< 0x7F000003 white balance resultant data */ OMX_UnsaturatedRegions, /**< 0x7F000004 unsaturated regions data */ - OMX_FaceDetection, /**< face detect data */ - OMX_BarcodeDetection, /**< bar-code detct data */ - OMX_FrontObjectDetection, /**< Front object detection data */ - OMX_MotionEstimation, /**< motion Estimation data */ - OMX_TI_MTISType, /**< 0x7F000009 MTIS motion Estimation data */ - OMX_DistanceEstimation, /**< disctance estimation */ - OMX_Histogram, /**< histogram */ - OMX_FocusRegion, /**< focus region data */ + OMX_FaceDetection, /**< 0x7F000005 face detect data */ + OMX_BarcodeDetection, /**< 0x7F000006 bar-code detct data */ + OMX_FrontObjectDetection, /**< 0x7F000007 Front object detection data */ + OMX_MotionEstimation, /**< 0x7F000008 motion Estimation data */ + OMX_MTISType, /**< 0x7F000009 MTIS motion Estimation data */ + OMX_DistanceEstimation, /**< 0x7F00000A disctancedistance estimation */ + OMX_Histogram, /**< 0x7F00000B histogram */ + OMX_FocusRegion, /**< 0x7F00000C focus region data */ OMX_ExtraDataPanAndScan, /**< 0x7F00000D pan and scan data */ - OMX_RawFormat, /**< custom RAW data format */ - OMX_SensorType, /**< vendor & model of the sensor being used */ - OMX_SensorCustomDataLength, /**< vendor specific custom data length */ - OMX_SensorCustomData, /**< vendor specific data */ + OMX_RawFormat, /**< 0x7F00000E custom RAW data format */ + OMX_SensorType, /**< 0x7F00000F vendor & model of the sensor being used */ + OMX_SensorCustomDataLength, /**< 0x7F000010 vendor specific custom data length */ + OMX_SensorCustomData, /**< 0x7F000011 vendor specific data */ OMX_TI_FrameLayout, /**< 0x7F000012 vendor specific data */ OMX_TI_SEIinfo2004Frame1, /**< 0x7F000013 Used for 2004 SEI message to be provided by video decoders */ OMX_TI_SEIinfo2004Frame2, /**< 0x7F000014 Used for 2004 SEI message to be provided by video decoders */ @@ -1453,8 +1642,24 @@ typedef enum OMX_EXT_EXTRADATATYPE OMX_TI_RangeMappingInfo, /**< 0x7F000017 Used for Range mapping info provided by Video Decoders */ OMX_TI_RescalingInfo, /**< 0x7F000018 Used for width/height rescaling info provided by Video Decoders */ OMX_TI_WhiteBalanceOverWrite, /**< 0x7F000019 Used for manual AWB settings */ + OMX_TI_CPCamData, /**< 0x7F00001A Used for cp cam data */ + OMX_TI_H264ESliceDataInfo, /**< 0x7F00001B */ + OMX_TI_DccData, /**< 0x7F00001C Used for dcc data overwrite in the file system */ + OMX_TI_ProfilerData, /**< 0x7F00001D Used for profiling data */ + OMX_TI_VectShotInfo, /**< 0x7F00001E Used for vector shot feedback notification */ + OMX_TI_CamReProcMeta, /**< 0x7F00001F Used for meta data input to camera re-proc function */ + OMX_TI_LSCTable, /**< 0x7F000020 Lens shading table for corresponding frame */ + OMX_TI_CodecExtenderErrorFrame1, /**< 0x7F000021 Used for Codec Extended Error to be provided byvideo decoders */ + OMX_TI_CodecExtenderErrorFrame2, /**< 0x7F000022 Used for Codec Extended Error to be provided byvideo decoders */ + OMX_TI_MBInfoFrame1, /**< 0x7F000023 Used for MBError message to be provided by videodecoders */ + OMX_TI_MBInfoFrame2, /**< 0x7F000024 Used for MBError message to be provided by videodecoders */ + OMX_TI_SEIInfoFrame1, /**< 0x7F000025 Used for SEI message to be provided by video decoders*/ + OMX_TI_SEIInfoFrame2, /**< 0x7F000026 Used for SEI message to be provided by video decoders*/ + OMX_TI_VUIInfoFrame1, /**< 0x7F000027 Used for VUI message to be provided by video decoders */ + OMX_TI_VUIInfoFrame2, /**< 0x7F000028 Used for VUI message to be provided by video decoders */ OMX_TI_ExtraData_Count, OMX_TI_ExtraData_Max = OMX_TI_ExtraData_Count - 1, + OMX_TI_ExtraData_32Bit_Patch = 0x7fffffff } OMX_EXT_EXTRADATATYPE; @@ -1472,11 +1677,12 @@ typedef enum OMX_EXT_EXTRADATATYPE * */ typedef struct OMX_CONFIG_EXTRADATATYPE { - OMX_U32 nSize; + OMX_U32 nSize; /**< The size of the structure including data bytes + and any padding necessary to ensure 32bit alignment + of the next OMX_OTHER_EXTRADATATYPE structure */ OMX_VERSIONTYPE nVersion; - OMX_U32 nPortIndex; - OMX_EXT_EXTRADATATYPE eExtraDataType; - OMX_TI_CAMERAVIEWTYPE eCameraView; + OMX_U32 nPortIndex; /**< The read-only value containing the index of the port */ + OMX_EXT_EXTRADATATYPE eExtraDataType; /**< Identifies the extra data payload type */ OMX_BOOL bEnable; } OMX_CONFIG_EXTRADATATYPE; @@ -1487,7 +1693,8 @@ typedef struct OMX_CONFIG_EXTRADATATYPE { typedef enum OMX_JPEGHEADERTYPE{ OMX_NoHeader = 0, OMX_JFIF, - OMX_EXIF + OMX_EXIF, + OMX_JpegHeaderTypeMax = 0x7fffffff }OMX_JPEGHEADERTYPE; /** * Re-start marker configuration @@ -1553,7 +1760,8 @@ typedef struct OMX_IMAGE_JPEGMAXSIZE { typedef enum OMX_IMAGESTAMPOPERATION{ OMX_NewImageStamp = 0, - OMX_Continuation + OMX_Continuation, + OMX_ImageStapOperationMax = 0x7fffffff }OMX_IMAGESTAMPOPERATION; @@ -1759,22 +1967,6 @@ typedef struct OMX_TI_PARAM_DCCURIINFO { } OMX_TI_PARAM_DCCURIINFO; /** - * Structure used to configure DCC buffer - * - * STRUCT MEMBERS: - * nSize : Size of the structure in bytes - * nVersion : OMX specification version information - * nDCCURIBuffSize : Size of the pDCCURIBuff in bytes - * pDCCURIBuff : Pointer to a buffer - */ -typedef struct OMX_TI_PARAM_DCCURIBUFFER { - OMX_U32 nSize; - OMX_VERSIONTYPE nVersion; - OMX_U32 nDCCURIBuffSize; - OMX_U8 *pDCCURIBuff; -} OMX_TI_PARAM_DCCURIBUFFER; - -/** * Manual White Balance color temperature * STRUCT MEMBERS: * nSize : Size of the structure in bytes @@ -1794,10 +1986,10 @@ typedef struct OMX_TI_CONFIG_WHITEBALANCECOLORTEMPTYPE { */ typedef enum OMX_TI_CONFIG_FOCUSSPOTMODETYPE { OMX_FocusSpotDefault = 0, /** Makes CommonFocusRegion to be used. */ - OMX_FocusSpotSinglecenter, - OMX_FocusSpotMultiNormal, - OMX_FocusSpotMultiAverage, - OMX_FocusSpotMultiCenter, + OMX_FocusSpotSinglecenter, /** Only central part of the image is used for focus. */ + OMX_FocusSpotMultiNormal, /** Middle part of the image is used with 100% weight, upper and lower parts are with 50%. */ + OMX_FocusSpotMultiAverage, /** All the image is used with 100% weight. */ + OMX_FocusSpotMultiCenter, /** Central part of the image is used with 100% weight, the rest is used with 50%. */ OMX_FocusSpotExtensions = 0x6F000000, /** Reserved region for introducing Khronos Standard Extensions */ OMX_FocusSpotModeStartUnused = 0x7F000000, /** Reserved region for introducing Vendor Extensions */ OMX_FocusSpotModeMax = 0x7FFFFFFF @@ -1823,7 +2015,9 @@ typedef struct OMX_TI_CONFIG_FOCUSSPOTWEIGHTINGTYPE { * Enumeration of possible Exposure control types for OMX_EXPOSURECONTROLTYPE */ typedef enum OMX_TI_EXTEXPOSURECONTROLTYPE { - OMX_TI_ExposureControlVeryLong = OMX_ExposureControlVendorStartUnused + 1 + OMX_TI_ExposureControlVeryLong = OMX_ExposureControlVendorStartUnused + 1, + OMX_TI_ExposureControlFacePriority, + OMX_TI_ExposureControlMax = 0x7fffffff } OMX_TI_EXTEXPOSURECONTROLTYPE; /** @@ -1919,6 +2113,8 @@ typedef enum OMX_TI_STEREOFRAMELAYOUTTYPE { OMX_TI_StereoFrameLayout2D, OMX_TI_StereoFrameLayoutTopBottom, OMX_TI_StereoFrameLayoutLeftRight, + OMX_TI_StereoFrameLayoutTopBottomSubsample, + OMX_TI_StereoFrameLayoutLeftRightSubsample, OMX_TI_StereoFrameLayoutMax = 0x7FFFFFFF } OMX_TI_STEREOFRAMELAYOUTTYPE; @@ -1942,14 +2138,11 @@ typedef struct OMX_TI_FRAMELAYOUTTYPE { * extended color format types. */ typedef enum OMX_TI_COLOR_FORMATTYPE { - OMX_TI_COLOR_FormatYUV420PackedSemiPlanarInterlaced = - (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 1, OMX_TI_COLOR_FormatRawBayer10bitStereo = OMX_COLOR_FormatVendorStartUnused + 2, /**< 10 bit raw for stereo */ OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x100, /* 0x100 is used since it is the corresponding HAL pixel fromat */ - OMX_COLOR_FormatAndroidOpaque = - (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x789 /**< Platform specified opaque format set to unique value 0x789*/ + OMX_TI_ColorFormatTypeMax = 0x7fffffff } OMX_TI_COLOR_FORMATTYPE; /** @@ -2232,14 +2425,30 @@ typedef struct OMX_TI_CONFIG_EXIF_TAGS { } OMX_TI_CONFIG_EXIF_TAGS; /** + * The OMX_TI_SENFACING_TYPE enumeration is used to define the + * sensor facing. + */ +typedef enum OMX_TI_SENFACING_TYPE { + OMX_TI_SENFACING_FRONT, + OMX_TI_SENFACING_BACK, + OMX_TI_SENFACING_MAX = 0x7FFFFFFF +}OMX_TI_SENFACING_TYPE; + +/** * Structure used to configure current OMX_TI_SENMOUNT_TYPE * * @param nSenId * @param nRotation + * @param bMirror + * @param bFlip + * @param eFacing */ typedef struct OMX_TI_SENMOUNT_TYPE { OMX_U32 nSenId; OMX_U32 nRotation; + OMX_BOOL bMirror; + OMX_BOOL bFlip; + OMX_TI_SENFACING_TYPE eFacing; }OMX_TI_SENMOUNT_TYPE; /** @@ -2282,15 +2491,17 @@ typedef struct OMX_TI_CONFIG_SHAREDBUFFER { * nHeightMin : Number of the smallest height supported * nWidthMax : Number of the biggest width supported * nHeightMax : Number of the biggest height supported + * nMaxResInPixels : Max resolution in pixels. Used for description of 3d resolutions. */ typedef struct OMX_TI_CAPRESTYPE { - OMX_U32 nSize; + OMX_U32 nSize; //- OMX struct header not required as this struct wont be queried on its own? OMX_VERSIONTYPE nVersion; OMX_U32 nPortIndex; OMX_U32 nWidthMin; // smallest width supported OMX_U32 nHeightMin; // smallest height supported OMX_U32 nWidthMax; // biggest width supported OMX_U32 nHeightMax; // biggest height supported + OMX_U32 nMaxResInPixels;// max resolution in pixels } OMX_TI_CAPRESTYPE; /** @@ -2305,6 +2516,7 @@ typedef struct OMX_TI_CAPRESTYPE { * ulImageFormatCount : Number of the supported image pixelformat count * eImageFormats : Array containing the supported image pixelformat count * tPreviewResRange : Supported preview resolution range + * tRotatedPreviewResRange : Supported rotated preview resolution range * tImageResRange : Supported image resolution range * tThumbResRange : Supported thumbnail resolution range * ulWhiteBalanceCount : Supported whitebalance mode count @@ -2340,53 +2552,130 @@ typedef struct OMX_TI_CAPRESTYPE { * ulCapVarFPSModesCount : Number of capture FPS modes * tCapVarFPSModes : Capture FPS modes * tSenMounting : Sensor mount information + * ulAutoConvModesCount : Supported auto convergence modes count + * eAutoConvModes : Array containing the auto convergence modes + * ulBracketingModesCount : Supported bracketing modes count + * eBracketingModes : Array containing the bracketing modes + * bGbceSupported : Flag showing if the Gbce is supported + * bRawJpegSupported : Flag showing if the Raw + Jpeg is supported + * ulImageCodingFormatCount : Supported image coding formats count + * eImageCodingFormat : Array containing the image coding formats + * uSenNativeResWidth : Sensor native resolution width + * uSenNativeResHeight : Sensor native resolution height + * ulAlgoAreasFocusCount : Supported number of AlgoAreas for focus areas + * ulAlgoAreasExposureCount : Supported number of AlgoAreas for exposure areas + * bAELockSupported : Flag showing if the AE Lock is supported + * bAWBLockSupported : Flag showing if the AWB Lock is supported + * bAFLockSupported : Flag showing if the Af Lock is supported + * nFocalLength : Focal length defined in terms of 0.01mm + * ulPrvFrameLayoutCount : supported frame layout count for preview + * ePrvFrameLayout : Array containing the frame layouts for preview + * ulCapFrameLayoutCount : supported frame layout count for capture + * eCapFrameLayout : Array containing the frame layouts for capture + * bVideoNoiseFilterSupported : Flag showing if the video noise filter is supported + * bVideoStabilizationSupported : Flag showing if the video stabilization is supported + * bStillCapDuringVideoSupported : Flag showing if the still capture is supported during video + * bMechanicalMisalignmentSupported : Flag showing if the mechanical misalignment is supported + * bFacePrioritySupported : Flag showing if the face priority is supported + * bRegionPrioritySupported : Flag showing if the region priority is supported + * bGlbceSupported : Flag showing if the GLBCE is supported + * nManualConvMin : Manual convergence min value + * nManualConvMax : Manual convergence max value + * nManualExpMin : Manual exposure time min value + * nManualExpMax : Manual exposure time max value + * nBrightnessMin : Brightness min value + * nBrightnessMax : Brightness max value + * nContrastMin : Contrast min value + * nContrastMax : Contrast max value + * nSharpnessMin : Sharpness min value + * nSharpnessMax : Sharpness max value + * nSaturationMin : Saturation min value + * nSaturationMax : Saturation max value */ typedef struct OMX_TI_CAPTYPE { - OMX_U32 nSize; - OMX_VERSIONTYPE nVersion; - OMX_U32 nPortIndex; - OMX_U16 ulPreviewFormatCount; // supported preview pixelformat count - OMX_COLOR_FORMATTYPE ePreviewFormats[100]; - OMX_U16 ulImageFormatCount; // supported image pixelformat count - OMX_COLOR_FORMATTYPE eImageFormats[100]; - OMX_TI_CAPRESTYPE tPreviewResRange; // supported preview resolution range - OMX_TI_CAPRESTYPE tImageResRange; // supported image resolution range - OMX_TI_CAPRESTYPE tThumbResRange; // supported thumbnail resolution range - OMX_U16 ulWhiteBalanceCount; // supported whitebalance mode count - OMX_WHITEBALCONTROLTYPE eWhiteBalanceModes[100]; - OMX_U16 ulColorEffectCount; // supported effects count - OMX_IMAGEFILTERTYPE eColorEffects[100]; - OMX_S32 xMaxWidthZoom; // Fixed point value stored as Q16 - OMX_S32 xMaxHeightZoom; // Fixed point value stored as Q16 - OMX_U16 ulFlickerCount; // supported anti-flicker mode count - OMX_COMMONFLICKERCANCELTYPE eFlicker[100]; - OMX_U16 ulExposureModeCount; // supported exposure mode count - OMX_EXPOSURECONTROLTYPE eExposureModes[100]; - OMX_BOOL bLensDistortionCorrectionSupported; - OMX_BOOL bISONoiseFilterSupported; - OMX_S32 xEVCompensationMin; // Fixed point value stored as Q16 - OMX_S32 xEVCompensationMax; // Fixed point value stored as Q16 - OMX_U32 nSensitivityMax; // nSensitivityMax = 100 implies maximum supported equal to "ISO 100" - OMX_U16 ulFocusModeCount; // supported focus mode count - OMX_IMAGE_FOCUSCONTROLTYPE eFocusModes[100]; - OMX_U16 ulSceneCount; // supported scene count - OMX_SCENEMODETYPE eSceneModes[100]; - OMX_U16 ulFlashCount; // supported flash modes count - OMX_IMAGE_FLASHCONTROLTYPE eFlashModes[100]; - OMX_U32 xFramerateMin; // Fixed point value stored as Q16 - OMX_U32 xFramerateMax; // Fixed point value stored as Q16 - OMX_BOOL bContrastSupported; - OMX_BOOL bSaturationSupported; - OMX_BOOL bBrightnessSupported; - OMX_BOOL bProcessingLevelSupported; - OMX_BOOL bQFactorSupported; - OMX_U16 ulPrvVarFPSModesCount; // supported variable FPS preview modes count - OMX_TI_VARFPSTYPE tPrvVarFPSModes[10]; - OMX_U16 ulCapVarFPSModesCount; // supported variable FPS capture modes count - OMX_TI_VARFPSTYPE tCapVarFPSModes[10]; - OMX_TI_SENMOUNT_TYPE tSenMounting; - OMX_U16 ulAlgoAreasFocusCount; // supported number of AlgoAreas for focus areas - OMX_U16 ulAlgoAreasExposureCount; // supported number of AlgoAreas for exposure areas + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U16 ulPreviewFormatCount; // supported preview pixelformat count + OMX_COLOR_FORMATTYPE ePreviewFormats[32]; + OMX_U16 ulImageFormatCount; // supported image pixelformat count + OMX_COLOR_FORMATTYPE eImageFormats[32]; + OMX_TI_CAPRESTYPE tPreviewResRange; // supported preview resolution range + OMX_TI_CAPRESTYPE tRotatedPreviewResRange; // supported rotated preview resolution range + OMX_TI_CAPRESTYPE tImageResRange; // supported image resolution range + OMX_TI_CAPRESTYPE tThumbResRange; // supported thumbnail resolution range + OMX_U16 ulWhiteBalanceCount; // supported whitebalance mode count + OMX_WHITEBALCONTROLTYPE eWhiteBalanceModes[32]; + OMX_U16 ulColorEffectCount; // supported effects count + OMX_IMAGEFILTERTYPE eColorEffects[32]; + OMX_S32 xMaxWidthZoom; // Fixed point value stored as Q16 + OMX_S32 xMaxHeightZoom; // Fixed point value stored as Q16 + OMX_U16 ulFlickerCount; // supported anti-flicker mode count + OMX_COMMONFLICKERCANCELTYPE eFlicker[32]; + OMX_U16 ulExposureModeCount; // supported exposure mode count + OMX_EXPOSURECONTROLTYPE eExposureModes[32]; + OMX_BOOL bLensDistortionCorrectionSupported; + OMX_BOOL bISONoiseFilterSupported; + OMX_S32 xEVCompensationMin; // Fixed point value stored as Q16 + OMX_S32 xEVCompensationMax; // Fixed point value stored as Q16 + OMX_U32 nSensitivityMax; // nSensitivityMax = 100 implies maximum supported equal to "ISO 100" + OMX_U16 ulFocusModeCount; // supported focus mode count + OMX_IMAGE_FOCUSCONTROLTYPE eFocusModes[32]; + OMX_U16 ulSceneCount; // supported scene count + OMX_SCENEMODETYPE eSceneModes[64]; + OMX_U16 ulFlashCount; // supported flash modes count + OMX_IMAGE_FLASHCONTROLTYPE eFlashModes[32]; + OMX_U32 xFramerateMin; // Fixed point value stored as Q16 + OMX_U32 xFramerateMax; // Fixed point value stored as Q16 + OMX_BOOL bContrastSupported; + OMX_BOOL bSaturationSupported; + OMX_BOOL bBrightnessSupported; + OMX_BOOL bProcessingLevelSupported; + OMX_BOOL bQFactorSupported; + OMX_U16 ulPrvVarFPSModesCount; // supported variable FPS preview modes count + OMX_TI_VARFPSTYPE tPrvVarFPSModes[10]; + OMX_U16 ulCapVarFPSModesCount; // supported variable FPS capture modes count + OMX_TI_VARFPSTYPE tCapVarFPSModes[10]; + OMX_TI_SENMOUNT_TYPE tSenMounting; + OMX_U16 ulAutoConvModesCount; // supported auto convergence modes count + OMX_TI_AUTOCONVERGENCEMODETYPE eAutoConvModes[32]; + OMX_U16 ulBracketingModesCount; // supported bracketing modes count + OMX_BRACKETMODETYPE eBracketingModes[32]; + OMX_BOOL bGbceSupported; // Flag showing if the Gbce is supported + OMX_BOOL bRawJpegSupported; // Flag showing if the Raw + Jpeg issupported + OMX_U16 ulImageCodingFormatCount; + OMX_IMAGE_CODINGTYPE eImageCodingFormat[32]; + OMX_U16 uSenNativeResWidth; + OMX_U16 uSenNativeResHeight; + OMX_U16 ulAlgoAreasFocusCount; + OMX_U16 ulAlgoAreasExposureCount; + OMX_BOOL bAELockSupported; + OMX_BOOL bAWBLockSupported; + OMX_BOOL bAFLockSupported; + OMX_U16 nFocalLength; + OMX_U16 ulPrvFrameLayoutCount; // supported frame layout count + OMX_TI_STEREOFRAMELAYOUTTYPE ePrvFrameLayout[16]; + OMX_U16 ulCapFrameLayoutCount; // supported frame layout count + OMX_TI_STEREOFRAMELAYOUTTYPE eCapFrameLayout[16]; + OMX_BOOL bVideoNoiseFilterSupported; + OMX_BOOL bVideoStabilizationSupported; + OMX_BOOL bStillCapDuringVideoSupported; + OMX_BOOL bMechanicalMisalignmentSupported; + OMX_BOOL bFacePrioritySupported; + OMX_BOOL bRegionPrioritySupported; + OMX_BOOL bGlbceSupported; + OMX_S16 nManualConvMin; + OMX_S16 nManualConvMax; + OMX_U16 nManualExpMin; + OMX_U16 nManualExpMax; + OMX_S16 nBrightnessMin; + OMX_S16 nBrightnessMax; + OMX_S16 nContrastMin; + OMX_S16 nContrastMax; + OMX_S16 nSharpnessMin; + OMX_S16 nSharpnessMax; + OMX_S16 nSaturationMin; + OMX_S16 nSaturationMax; } OMX_TI_CAPTYPE; @@ -2467,25 +2756,6 @@ typedef struct OMX_TI_CONFIG_FOCUSDISTANCETYPE { OMX_S32 nLensPosition; } OMX_TI_CONFIG_FOCUSDISTANCETYPE; -/* -* STRUCT MEMBERS: -* nSize : Size of the structure in bytes -* nVersion : OMX specification version information -* nPortIndex : Port that this structure applies to -* pAAAskipBuff : Pointer to a buffer -* AAAskipBuffId : Id of the send buffer -* AAAskipBuffSize : Size of the sent buffer -*/ -typedef struct OMX_TI_CONFIG_AAASKIPBUFFERTYPE { - OMX_U32 nSize; - OMX_VERSIONTYPE nVersion; - OMX_U32 nPortIndex; - OMX_PTR pAAAskipBuff; - OMX_U32 AAAskipBuffId; - OMX_U32 AAAskipBuffSize; -} OMX_TI_CONFIG_AAASKIPBUFFERTYPE; - - /** * The OMX_TI_BRIGHTNESSCONTRASTCRTLTYPE enumeration is used to define the * brightness and contrast mode types. @@ -2532,6 +2802,459 @@ typedef struct OMX_TI_CONFIG_VARFRMRANGETYPE { } OMX_TI_CONFIG_VARFRMRANGETYPE; /** + * Single preview capture modes + */ + typedef enum OMX_TI_SINGLEPREVIEWMODETYPE { + OMX_TI_SinglePreviewMode_PreviewOnly, + OMX_TI_SinglePreviewMode_Video, + OMX_TI_SinglePreviewMode_ImageCapture, + OMX_TI_SinglePreviewMode_ImageCaptureHighSpeed, + OMX_TI_SinglePreviewMode_Reprocess, + OMX_TI_SinglePreviewMode = 0x7FFFFFFF + } OMX_TI_SINGLEPREVIEWMODETYPE; + +/** + * Define configuration structure for + * single preview capture mode + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * eMode : Select the subusecase mode (Video/HQ/HS) + */ + typedef struct OMX_TI_CONFIG_SINGLEPREVIEWMODETYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_TI_SINGLEPREVIEWMODETYPE eMode; + } OMX_TI_CONFIG_SINGLEPREVIEWMODETYPE; + + +/** + * Configuratin structure for freeze AWB parameter modifications. + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param nPortIndex Port index to which to apply. + * @param nTimeDelay Time for which the AWB parameters to be frozen. + * measured in milliseconds + */ + typedef struct OMX_TI_CONFIG_FREEZE_AWB { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 nTimeDelay; + } OMX_TI_CONFIG_FREEZE_AWB; + +/** + * Configuration structure used to set + * minimum time between two sequential WB coefficients modifications. + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param nPortIndex Port index to which to apply. + * @param nDelayTime The time in milliseconds. + */ + typedef struct OMX_TI_CONFIG_AWB_DELAY { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 nDelayTime; + } OMX_TI_CONFIG_AWB_DELAY; + +/** + * Configuration structure used to set + * minimum time delay between + * two sequential AE parameters modifications + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param nPortIndex Port index to which to apply. + * @param nDelayTime The time in milliseconds. + */ + typedef struct OMX_TI_CONFIG_AE_DELAY { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 nDelayTime; + } OMX_TI_CONFIG_AE_DELAY; + + +/** + * Configuration structure used to freeze AE modifications + * for a nTimeDelay milliseconds + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param nPortIndex Port index to which to apply. + * @param nTimeDelay The time in milliseconds. + */ + typedef struct OMX_TI_CONFIG_FREEZE_AE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 nTimeDelay; + } OMX_TI_CONFIG_FREEZE_AE; + +/** + * Configuration structure used to set + * the AE gain threshold + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param uMinTH Minimum value for AE gain. + * @param uMaxTH Maximum value for AE gain. + */ + typedef struct OMX_TI_CONFIG_AE_THRESHOLD { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 uMinTH; + OMX_U32 uMaxTH; + } OMX_TI_CONFIG_AE_THRESHOLD; + +/** + * Enumeration describing the main gestures + */ + typedef enum OMX_TI_GESTURES_TYPE { + OMX_TI_GESTURE_NO_GESTURE = 0x70000001, + OMX_TI_GESTURE_SWIPE_RIGHT, + OMX_TI_GESTURE_SWIPE_LEFT, + OMX_TI_GESTURE_FIST_RIGHT, + OMX_TI_GESTURE_FIST_LEFT, + + OMX_TI_GESTURE_COUNT, + OMX_TI_GESTURE_MAX = 0x7FFFFFFF + } OMX_TI_GESTURES_TYPE; + +/** + * Enumeration describing the main gesture objects + */ + typedef enum OMX_TI_OBJECT_TYPE { + OMX_TI_OBJECT_PALM, + OMX_TI_OBJECT_FIST, + OMX_TI_OBJECT_FACE, + + OMX_TI_OBJECT_MAX = 0x7FFFFFFF + } OMX_TI_OBJECT_TYPE; + +/** + * Data structure carrying information about + * objects located at a certain area of frame buffer. + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param nPortIndex Port index to which to apply. + * @param eType The object type. + * @param nTop The top coordinate. + * @param nLeft The left coordinate. + * @param nWidth The width of the object. + * @param nHeight The height of the object. + */ + typedef struct OMX_CONFIG_OBJECT_RECT_TYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TI_OBJECT_TYPE eType; + OMX_S32 nTop; + OMX_S32 nLeft; + OMX_U32 nWidth; + OMX_U32 nHeight; + } OMX_CONFIG_OBJECT_RECT_TYPE; + +/** + * Data structure carrying information about + * gestures detected at a certain frame. + * + * @param nSize Size of the structure in bytes. + * @param nVersion OMX specification version information. + * @param nPortIndex Port index to which to apply. + * @param nTimeStamp Frame id. + * @param eType Type of the gesture detected at that frame. + * @param nNumDetectedGestures Number ot the areas of the frame in which this gesture is detected. + * @param nGestureAreas The areas where this gesture is detected. + */ + typedef struct OMX_TI_CONFIG_GESTURES_INFO { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TICKS nTimeStamp; + OMX_TI_GESTURES_TYPE eType; + OMX_U32 nNumDetectedGestures; + OMX_CONFIG_OBJECT_RECT_TYPE nGestureAreas[35]; + } OMX_TI_CONFIG_GESTURES_INFO; + +/** +* Define the frames queue len for ZSL +* +* STRUCT MEMBERS: +* nSize: Size of the structure in bytes +* nVersion: OMX specification version information +* nHistoryLen: History len in number of frames +*/ + typedef struct OMX_TI_PARAM_ZSLHISTORYLENTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nHistoryLen; + } OMX_TI_PARAM_ZSLHISTORYLENTYPE; + +/** +* Define the frame delay in ms for ZSL +* +* STRUCT MEMBERS: +* nSize: Size of the structure in bytes +* nVersion: OMX specification version information +* nDelay: Capture frame delay in ms +*/ + typedef struct OMX_TI_CONFIG_ZSLDELAYTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_S32 nDelay; + } OMX_TI_CONFIG_ZSLDELAYTYPE; + +/** +* AlogAreas purpose +* This type specifies the purpose of areas specified in OMX_ALGOAREASTYPE. +* */ + typedef enum OMX_ALGOAREAPURPOSE{ + OMX_AlgoAreaFocus = 0, // Multi region focus + OMX_AlgoAreaExposure, + }OMX_ALGOAREAPURPOSE; + + typedef struct OMX_ALGOAREA { + OMX_S32 nLeft; /**< The leftmost coordinate of the area rectangle */ + OMX_S32 nTop; /**< The topmost coordinate of the area rectangle */ + OMX_U32 nWidth; /**< The width of the area rectangle in pixels */ + OMX_U32 nHeight; /**< The height of the area rectangle in pixels */ + OMX_U32 nPriority; /**< Priority - ranges from 1 to 1000 */ + }OMX_ALGOAREA; + +/** +* Algorythm areas type +* This type defines areas for Multi Region Focus, +* or another algorithm region parameters, +* such as Multi Region Auto Exposure. +* +* STRUCT MEMBERS: +* nSize : Size of the structure in bytes +* nVersion : OMX specification version information +* nPortIndex : Port index +* tAreaPosition : Area definition - coordinates and purpose - Multi Region Focus, Auto Exposure, etc. +* nNumAreas : Number of areas defined in the array +* nAlgoAreaPurpose : Algo area purpose - eg. Multi Region Focus is OMX_AlgoAreaFocus +*/ + typedef struct OMX_ALGOAREASTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_U32 nNumAreas; + OMX_ALGOAREA tAlgoAreas[MAX_ALGOAREAS]; + OMX_ALGOAREAPURPOSE nAlgoAreaPurpose; + } OMX_ALGOAREASTYPE; + +/*==========================================================================*/ +/*! +@brief OMX_TI_PARAM_ENHANCEDPORTRECONFIG : Suport added to new port reconfig usage +@param bUsePortReconfigForCrop Enables port reconfig for crop. +@param bUsePortReconfigForPadding Enables port reconfig for padding +*/ +/*==========================================================================*/ + +typedef struct OMX_TI_PARAM_ENHANCEDPORTRECONFIG { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BOOL bUsePortReconfigForCrop; + OMX_BOOL bUsePortReconfigForPadding; +} OMX_TI_PARAM_ENHANCEDPORTRECONFIG; + + +typedef struct { + OMX_U16 nVPos; //!< AEWINSTART WINSV //AFPAXSTART PAXSV + OMX_U8 nVSize; //!< AEWWIN1 WINW //AFPAX1 PAXH + OMX_U16 nHPos; //!< AEWINSTART WINSH //AFPAXSTART PAXSH + OMX_U8 nHSize; //!< AEWWIN1 WINH //AFPAX1 PAXW + OMX_U8 nVCount; //!< AEWWIN1 WINVC //AFPAX2 PAXVC + OMX_U8 nVIncr; //!< AEWSUBWIN AEWINCV //AFPAX2 AFINCV + OMX_U8 nHCount; //!< AEWWIN1 WINHC //AFPAX2 PAXHC + OMX_U8 nHIncr; //!< AEWSUBWIN AEWINCH //AFPAX2 AFINCH +}OMX_TI_H3aPAXELCFG; + +typedef struct { + /** Average value for red pixels in current paxel */ + OMX_U16 red; + /** Average value for green pixels in current paxel */ + OMX_U16 green; + /** Average value for blue pixels in current paxel */ + OMX_U16 blue; + /** Flag indicating whether current paxel is valid 0:invalid, !0:valid */ + OMX_U16 valid; +} OMX_TI_H3AAEWBPAXELDATA; + +typedef struct OMX_TI_H3AAFDATA { + OMX_U32 nSize; /**< The size of the structure + including the length of data field containing the histogram data */ + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TI_CAMERAVIEWTYPE eCameraView; + OMX_U8 *data; +} OMX_TI_H3AAFDATA; + +/** +* Data structure carrying information about +* VTC slice height. +* +* @param nSize Size of the structure in bytes. +* @param nVersion OMX specification version information. +* @param nSliceHeight Definition of slice height. +* +* +* +* +*/ +typedef struct OMX_TI_PARAM_VTCSLICE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nSliceHeight; + OMX_U32 nInternalBuffers; + OMX_PTR IonBufhdl[2]; +} OMX_TI_PARAM_VTCSLICE; + + +/** + * nSize is the size of the structure including the length of data field containing + * the histogram data. + * nBins is the number of bins in the histogram. + * eComponentType specifies the type of the histogram bins according to enum. + * It can be selected to generate multiple component types, then the extradata struct + * is repeated for each component type. + */ +typedef struct OMX_TI_HISTOGRAMTYPE { + OMX_U32 nSize; /**< The size of the structure + including the length of data field containing the histogram data */ + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TI_CAMERAVIEWTYPE eCameraView; + OMX_U32 nBins; /**< The number of bins in the histogram */ + OMX_HISTCOMPONENTTYPE eComponentType; /**< Specifies the type of the histogram bins according to enum. + It can be selected to generate multiple component types, + then the extradata struct is repeated for each component type */ + OMX_U8 *data; +} OMX_TI_HISTOGRAMTYPE; + + + +typedef struct OMX_TI_CPCAMDATA { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TI_CAMERAVIEWTYPE eCameraView; + + /* Face Detect */ + OMX_U16 ulFaceCount; // faces detected + OMX_TI_FACERESULT tFacePosition[35]; // 35 is max faces supported by FDIF + + + /**** Ancillary Data ******/ + OMX_U32 nFrameNumber; + OMX_U16 nInputImageHeight; + OMX_U16 nInputImageWidth; + OMX_U16 nOutputImageHeight; + OMX_U16 nOutputImageWidth; + OMX_U16 nDigitalZoomFactor; + OMX_S16 nCropCenterColumn; + OMX_S16 nCropCenterRow; + OMX_U16 nOpticalZoomValue; + OMX_U8 nAFStatus; + OMX_U8 nAWBStatus; + OMX_U8 nAEStatus; + OMX_U32 nExposureTime; + OMX_U16 nEVCompensation; + OMX_U8 nDigitalGainValue; + OMX_U8 nAnalogGainValue; + OMX_U16 nCurrentISO; + OMX_U16 nReferenceISO; + OMX_U8 nApertureValue; + OMX_U8 nPixelRange; + OMX_U8 nCameraShake; + OMX_U8 nNumFacesDetected; + + /* Not Yet Supported */ + OMX_U16 nFocalDistance; + OMX_U16 nShotNumber; + OMX_U8 nFlashStatus; + + + /*** White Balance gains ****/ + /**< White Balance Color Temperature in Kelvins */ + OMX_U16 nColorTemperature; + + /**< Bayer applied R color channel gain in (U13Q9) */ + OMX_U16 nGainR; + + /**< Bayer applied Gr color channel gain in (U13Q9) */ + OMX_U16 nGainGR; + + /**< Bayer applied Gb color channel gain in (U13Q9) */ + OMX_U16 nGainGB; + + /**< Bayer applied B color channel gain in (U13Q9) */ + OMX_U16 nGainB; + + /* BELOW ARE NOT SUPPORTED , Default set to 0 */ + OMX_S16 nOffsetR; /**< Bayer applied R color channel offset */ + OMX_S16 nOffsetGR; /**< Bayer applied Gr color channel offset */ + OMX_S16 nOffsetGB; /**< Bayer applied Gb color channel offset */ + OMX_S16 nOffsetB; /**< Bayer applied B color channel offset */ + + + /* AEWB,AF,HIST data size */ + OMX_U32 nAewbDataSize; + OMX_U32 nAfDataSize; + OMX_U32 nHistSize; + + + + /*** H3A AF-AEW DATA ***/ + OMX_TI_H3aPAXELCFG tAfPaxelWin; + OMX_TI_H3aPAXELCFG tAewbPaxelWin; + OMX_TI_H3AAEWBPAXELDATA *tpPaxel; + OMX_TI_H3AAFDATA tH3A_Af; + /* Histogram */ + OMX_TI_HISTOGRAMTYPE Histogram; + + +} OMX_TI_CPCAMDATA; + +/** +* Start/Stop mechanical misalignment +* +* STRUCT MEMBERS: +* nSize: Size of the structure in bytes +* nVersion: OMX specification version information +* nDelay: Capture frame delay in ms +*/ + typedef struct OMX_TI_CONFIG_MM { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_BOOL bMM; + } OMX_TI_CONFIG_MM; + +/** +* Start/Stop Affine transformation for Mm/Ac +* +* STRUCT MEMBERS: +* nSize: Size of the structure in bytes +* nVersion: OMX specification version information +* bAffine: Enable / Disable +*/ + typedef struct OMX_TI_PARAM_AFFINE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_BOOL bAffine; + } OMX_TI_PARAM_AFFINE; + +/** * A pointer to this struct is passed to the OMX_SetParameter when the extension * index for the 'OMX.google.android.index.enableAndroidNativeBuffers' extension * is given. @@ -2561,91 +3284,329 @@ typedef struct OMX_TI_PARAMNATIVEBUFFERUSAGE { OMX_U32 nUsage; } OMX_TI_PARAMNATIVEBUFFERUSAGE; -/*==========================================================================*/ -/*! -@brief OMX_TI_PARAM_ENHANCEDPORTRECONFIG : Suport added to new port reconfig usage -@param bUsePortReconfigForCrop Enables port reconfig for crop. -@param bUsePortReconfigForPadding Enables port reconfig for padding -*/ -/*==========================================================================*/ - -typedef struct OMX_TI_PARAM_ENHANCEDPORTRECONFIG { - OMX_U32 nSize; - OMX_VERSIONTYPE nVersion; - OMX_U32 nPortIndex; - OMX_BOOL bUsePortReconfigForCrop; - OMX_BOOL bUsePortReconfigForPadding; -} OMX_TI_PARAM_ENHANCEDPORTRECONFIG; +/** + * OMX_TI_ZSL_PRIORITY_TYPE Enumerated Value + */ +typedef enum OMX_TI_ZSL_PRIORITY_TYPE { + OMX_TI_ZSL_PRIORITY_TIME, + OMX_TI_ZSL_PRIORITY_FOCUS, + OMX_TI_ZSL_PRIORITY = 0x7FFFFFFF +} OMX_TI_ZSL_PRIORITY_TYPE; /** -* Define the frames queue len for ZSL +* Define the priority tha twill be used to select ZSL frame * * STRUCT MEMBERS: * nSize: Size of the structure in bytes * nVersion: OMX specification version information -* nHistoryLen: History len in number of frames +* ePriority: Priority */ -typedef struct OMX_TI_PARAM_ZSLHISTORYLENTYPE { - OMX_U32 nSize; +typedef struct OMX_TI_CONFIG_ZSLFRAMESELECTPRIOTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_TI_ZSL_PRIORITY_TYPE ePriority; +} OMX_TI_CONFIG_ZSLFRAMESELECTPRIOTYPE; + +/** +* MIPI, ECC, and CRC counters +* Mipi counter counts the frames from the MIPI receiver (CSI_RX). +* TCMD application will use this test +* to validate the MIPI channel integrity (TX to RX). +* +* STRUCT MEMBERS: +* nSize : Size of the structure in bytes +* nVersion : OMX specification version information +* nPortIndex : Port that this structure applies to +* bResetMIPICounter : if OMX_SetConfig() is called with value True +* for this parameter, the MIPICounter shall be reset to 0, by ducati. +* nMIPICounter : MIPI frame counter +* nECCCounter : ECC counter +* nCRCCounter : CRC counter +*/ +typedef struct OMX_CONFIG_MIPICOUNTERS { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BOOL bResetMIPICounter; + OMX_U32 nMIPICounter; + OMX_U32 nECCCounter; + OMX_U32 nCRCCounter; + OMX_U32 nFifoOvfCounter; + OMX_U32 nOCPCounter; + OMX_U32 nEccCorrCounter; + OMX_U32 SoTErrCnt; + OMX_U32 SoTSyncErrCnt; + OMX_U32 ULPMCnt; + OMX_U32 ULPMExitCnt; + OMX_U32 ULPMEnterCnt; + OMX_U32 ControlErrCnt; + OMX_U32 ErrEscapeCnt; + OMX_U32 CSIRxTimeoutCnt; + OMX_U32 bStopStartCntrs; +} OMX_CONFIG_MIPICOUNTERS; + +/** +* CSI Timing Register +* +* STRUCT MEMBERS: +* nSize : Size of the structure in bytes +* nVersion : OMX specification version information +* nPortIndex : Port that this structure applies to +* nReadWrite : if OMX_SetConfig() is called with value True +* for this parameter, the ISS_CAMERARX_CORE1_REG0 register will be +* written with the supplied values below. +* nThsSettle : +* nThsTerm : +* nHsClkCfg : +*/ +typedef struct OMX_CONFIG_CSITIMINGRW { + OMX_U32 nSize; OMX_VERSIONTYPE nVersion; - OMX_U32 nHistoryLen; -} OMX_TI_PARAM_ZSLHISTORYLENTYPE; + OMX_U32 nPortIndex; + OMX_U8 nReadWrite; + OMX_U8 nThsSettle; + OMX_U8 nThsTerm; + OMX_U8 nHsClkCfg; +} OMX_CONFIG_CSITIMINGRW; /** -* Define the frame delay in ms for ZSL +* CSI Complex IO Data * * STRUCT MEMBERS: -* nSize: Size of the structure in bytes -* nVersion: OMX specification version information -* nDelay: Capture frame delay in ms +* nSize : Size of the structure in bytes +* nVersion : OMX specification version information +* nPortIndex : Port that this structure applies to +* nFrameCount : Recieved Frames on the CSI2Rx +* nLaneCount : Number of active lanes +* nCSISpeed : CSI2Rx speed */ -typedef struct OMX_TI_CONFIG_ZSLDELAYTYPE { - OMX_U32 nSize; +typedef struct OMX_CONFIG_CSICMPXIO { + OMX_U32 nSize; OMX_VERSIONTYPE nVersion; - OMX_S32 nDelay; -} OMX_TI_CONFIG_ZSLDELAYTYPE; + OMX_U32 nPortIndex; + OMX_U32 nFrameCount; + OMX_U32 nLaneCount; + OMX_U32 nCSISpeed; +} OMX_CONFIG_CSICMPXIO; /** - * AlogAreas purpose - * This type specifies the purpose of areas specified in OMX_ALGOAREASTYPE. - * */ -typedef enum OMX_ALGOAREAPURPOSE{ - OMX_AlgoAreaFocus = 0, // Multi region focus - OMX_AlgoAreaExposure, -}OMX_ALGOAREAPURPOSE; + * Auto Focus Score + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * nAutoFocusScore : Auto Focus Score + */ +typedef struct OMX_CONFIG_AUTOFOCUSSCORE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 nAutoFocusScore; +} OMX_CONFIG_AUTOFOCUSSCORE; + +/** + * Color Bar test pattern + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * bEnableColorBars : Enable Color Bars test pattern + */ +typedef struct OMX_CONFIG_COLORBARS { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 bEnableColorBars; +} OMX_CONFIG_COLORBARS; + +/** +* Sensor OTP EEEPROM data +* +* STRUCT MEMBERS: +* nSize : Size of the structure in bytes +* nVersion : OMX specification version information +* nPortIndex : Port that this structure applies to +* pData : pointer to the client's buffer +* nDataSize : size of the EEPROM data in bytes +* nClientDataSize : size of the client's buffer +* SensorIndex : index of the eeprom buffer +*/ +typedef struct OMX_CONFIG_OTPEEPROM { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_PTR pData; + OMX_U32 nDataSize; + OMX_U32 nClientDataSize; + OMX_U8 SensorIndex; +}OMX_CONFIG_OTPEEPROM; -typedef struct OMX_ALGOAREA { - OMX_S32 nLeft; /**< The leftmost coordinate of the area rectangle */ - OMX_S32 nTop; /**< The topmost coordinate of the area rectangle */ - OMX_U32 nWidth; /**< The width of the area rectangle in pixels */ - OMX_U32 nHeight; /**< The height of the area rectangle in pixels */ - OMX_U32 nPriority; /**< Priority - ranges from 1 to 1000 */ -}OMX_ALGOAREA; +/** + * The OMX_ISP_TYPE enumeration is used to define the + * TI ISP & ST ISP types. + */ +typedef enum OMX_ISP_TYPE { + OMX_TIISP = 0, + OMX_STISP= 1, + OMX_ISPUnknown +} OMX_ISP_TYPE; /** - * Algorythm areas type - * This type defines areas for Multi Region Focus, - * or another algorithm region parameters, - * such as Multi Region Auto Exposure. +* ISP Information +* +* STRUCT MEMBERS: +* nSize : Size of the structure in bytes +* nVersion : OMX specification version information +* nPortIndex : Port that this structure applies to +* eIspType : ISP Type (TI ISP/ ST ISP) +* nHardwareVersion : Hardware version of ISP +* nSoftwareVersion : Software version of ISP +*/ +typedef struct OMX_CONFIG_ISPINFO { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_ISP_TYPE eIspType; + OMX_U32 nHardwareVersion; + OMX_U32 nSoftwareVersion; + OMX_S8 cDucatiVersion[32]; +}OMX_CONFIG_ISPINFO; + +typedef enum OMX_TI_PORTTAPPOINTTYPE { + OMX_TI_PortTap_Bayer_SensorOutput, + OMX_TI_PortTap_Bayer_PostLsc, + OMX_TI_PortTap_Bayer_PreBayerToYUVConversion, + OMX_TI_PortTap_YUV_PostBayerToYUVConversion, + OMX_TI_PortTap_YUV_PreJPEGCompression, + OMX_TI_PortTap = 0x7FFFFFFF +} OMX_TI_PORTTAPPOINTTYPE; + +/** + * Define configuration structure for + * tap in/out points for the selected port * * STRUCT MEMBERS: - * nSize : Size of the structure in bytes - * nVersion : OMX specification version information - * nPortIndex : Port index - * tAreaPosition : Area definition - coordinates and purpose - Multi Region Focus, Auto Exposure, etc. - * nNumAreas : Number of areas defined in the array - * nAlgoAreaPurpose : Algo area purpose - eg. Multi Region Focus is OMX_AlgoAreaFocus - */ -typedef struct OMX_ALGOAREASTYPE { - OMX_U32 nSize; + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * eTapPoint : Select the tap in/out point for the port + */ +typedef struct OMX_TI_CONFIG_PORTTAPPOINTTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TI_PORTTAPPOINTTYPE eTapPoint; +} OMX_TI_CONFIG_PORTTAPPOINTTYPE; + +/** + * Available methods to apply vect shot exposure and gain + */ +typedef enum OMX_TI_EXPGAINAPPLYMETHODTYPE { + OMX_TI_EXPGAINAPPLYMETHOD_ABSOLUTE, + OMX_TI_EXPGAINAPPLYMETHOD_RELATIVE, + OMX_TI_EXPGAINAPPLYMETHOD_FORCE_RELATIVE, + OMX_TI_EXPGAINAPPLYMETHOD_FORCE_ABSOLUTE, + OMX_TI_EXPGAINAPPLYMETHOD = 0x7FFFFFFF +} OMX_TI_EXPGAINAPPLYMETHODTYPE; + +/** + * Define configuration structure for + * shot configuration for the selected port + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * nConfigId : A unique config identification number that will be + * put in ancillary data for the corresponding output frame + * nFrames : Number of sequential frames that will use this + * configuration + * nEC : Total exposure compensation value + * nExp : Exposure value for this configuration slot + * nGain : Gain value for this configuration slot + * eExpGainApplyMethod : Selects the method which will be used to apply exposure and gain + * bNoSnapshot : Determinates whether a snapshot image will be send + * on the preview port for this shot config + */ +typedef struct OMX_TI_CONFIG_SHOTCONFIG { + OMX_U32 nConfigId; + OMX_U32 nFrames; + OMX_S32 nEC; + OMX_S32 nExp; + OMX_S32 nGain; + OMX_TI_EXPGAINAPPLYMETHODTYPE eExpGainApplyMethod; + OMX_BOOL bNoSnapshot; +} OMX_TI_CONFIG_SHOTCONFIG; + +/** + * Define configuration structure for + * shot configuration vector for the selected port + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * bFlushQueue : If TRUE: Flush queue and abort processing before enqueing + * new shot configurations + * nNumConfigs : Number of valid configurations in the nShotConfig array + * nShotConfig : Array of shot configurations + * nSlotsAvilable : Return value with number of available slots in the queue + */ +typedef struct OMX_TI_CONFIG_ENQUEUESHOTCONFIGS { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BOOL bFlushQueue; + OMX_U32 nNumConfigs; + OMX_TI_CONFIG_SHOTCONFIG nShotConfig[5]; +} OMX_TI_CONFIG_ENQUEUESHOTCONFIGS; + +/** + * Define configuration structure to + * query available/free shots in shot queue. + * Will be supported only as GetConfig function. + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * nAvailableShots : Number of available shots + */ +typedef struct OMX_TI_CONFIG_QUERYAVAILABLESHOTS { + OMX_U32 nSize; OMX_VERSIONTYPE nVersion; - OMX_U32 nPortIndex; + OMX_U32 nPortIndex; + OMX_U32 nAvailableShots; +} OMX_TI_CONFIG_QUERYAVAILABLESHOTS; - OMX_U32 nNumAreas; - OMX_ALGOAREA tAlgoAreas[MAX_ALGOAREAS]; - OMX_ALGOAREAPURPOSE nAlgoAreaPurpose; -} OMX_ALGOAREASTYPE; +/** + * Available vector shot capture stop methods + */ +typedef enum OMX_TI_VECTSHOTSTOPMETHOD { + OMX_TI_VECTSHOTSTOPMETHOD_GOTO_PREVIEW, + OMX_TI_VECTSHOTSTOPMETHOD_WAIT_IN_CAPTURE, + OMX_TI_VECTSHOTSTOPMETHOD_MAX = 0x7FFFFFFF +} OMX_TI_VECTSHOTSTOPMETHOD; +/** + * Define configuration structure to + * specify the beahvior of vector shot capture + * when the shot queue is empty + * + * STRUCT MEMBERS: + * nSize : Size of the structure in bytes + * nVersion : OMX specification version information + * nPortIndex : Port that this structure applies to + * eStopMethod : Select the stop method + */ +typedef struct OMX_TI_CONFIG_VECTSHOTSTOPMETHODTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_TI_VECTSHOTSTOPMETHOD eStopMethod; +} OMX_TI_CONFIG_VECTSHOTSTOPMETHODTYPE; #ifdef __cplusplus |