diff -r ef85d0a8d402 -r 760f846bbee9 Camera/OMX_CameraImageExt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Camera/OMX_CameraImageExt.h Wed Dec 16 17:45:00 2009 +0000 @@ -0,0 +1,341 @@ +/* + OMX_CameraImageExt.h + + Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + All rights reserved. + + This program and the accompanying materials are made available + under the terms of the Eclipse Public License v1.0 which accompanies + this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Initial Contributors: + Nokia Corporation - initial contribution. +*/ + +/** @file +@brief Symbian OpenMAX IL Extension Data Structures in the Image Domain. + +This file contains the extension structures for the Symbian IL extensions that +pertain to imaaging components. + +@publishedDeviceAbstraction +*/ + +#ifndef OMX_CameraImageExt_h +#define OMX_CameraImageExt_h + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Each OMX header must include all required header files to allow the + * header to compile without errors. The includes below are required + * for this header file to compile successfully + */ +#include +#include +#include + +/** + * Enumeration of possible image orientation types + */ + +typedef enum OMX_IMAGE_ORIENTATIONORIGINTYPE +{ + OMX_IMAGE_ORIENTATION_NOT_SPECIFIED =0x0, + OMX_IMAGE_ORIENTATION_ROWTOP_COLUMNLEFT, + OMX_IMAGE_ORIENTATION_ROWTOP_COLUMNRIGHT, + OMX_IMAGE_ORIENTATION_ROWBOTTOM_COLUMNRIGHT, + OMX_IMAGE_ORIENTATION_ROWBOTTOM_COLUMNLEFT, + OMX_IMAGE_ORIENTATION_ROWLEFT_COLUMNTOP, + OMX_IMAGE_ORIENTATION_ROWRIGHT_COLUMNTOP, + OMX_IMAGE_ORIENTATION_ROWRIGHT_COLUMNBOTTOM, + OMX_IMAGE_ORIENTATION_ROWLEFT_COLUMNBOTTOM +} OMX_IMAGE_ORIENTATIONORIGINTYPE; + +/** + * Enumeration of possible focus region types + */ +typedef enum OMX_FOCUSREGIONCONTROL { + OMX_FocusRegionAuto, + OMX_FocusRegionManual, + OMX_FocusRegionFacePriority, + OMX_FocusRegionObjectPriority +} OMX_FOCUSREGIONCONTROL; + +/** + * Enumeration of possible xenon flash status values + */ +typedef enum OMX_XENONFLASHSTATUS +{ + OMX_XENON_FLASH_NONE = 0x00000000, + OMX_XENON_FLASH_DISCHARGED, + OMX_XENON_FLASH_CHARGING, + OMX_XENON_FLASH_READY, + OMX_XENON_FLASH_NOTAVAILABLE +} OMX_XENONFLASHSTATUS; + +/** + * Enumeration of possible capture exposure time values + */ +typedef enum OMX_CAPTUREEXPOSURETIME +{ + OMX_CAPTURE_EXPOSURE_NONE_OR_ONGOING =0x0, + OMX_CAPTURE_EXPOSURE_NORMAL, + OMX_CAPTURE_EXPOSURE_SHORT, + OMX_CAPTURE_EXPOSURE_LONG +} OMX_CAPTUREEXPOSURETIME; + +/** + * Enumeration of possible bracket mode values + */ +typedef enum OMX_BRACKETMODETYPE { + OMX_BracketExposureRelativeInEV, + OMX_BracketExposureAbsoluteMs, + OMX_BracketFocusRelative, + OMX_BracketFocusAbsolute, + OMX_BracketFlashPower, + OMX_BracketAperture, +} OMX_BRACKETMODETYPE; + +/** + * Enumeration of possible levels of RAW processing + */ +typedef enum OMX_RAWPRESETTYPE { + OMX_RawUnprocessed, + OMX_RawProcessed +} OMX_RAWPRESETTYPE; + +/** + * Extension of Focus Control + */ + +enum { + OMX_Image_FocusControlIdle = OMX_IMAGE_FocusControlVendorStartUnused + 0x01, +}; + +/** + * Extension of Flash Control + */ + +enum { + OMX_Image_FlashControlSlowFrontSync = OMX_IMAGE_FlashControlVendorStartUnused + 0x01, + OMX_Image_FlashControlSlowRearSync +}; + + +/** Orientation Configuration. + +The OMX_IMAGE_CONFIG_ORIENTATIONTYPE structure is used to set or query +the orientation of camera sensor relative to captured scene. +The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.Orientation". +*/ + + +typedef struct OMX_IMAGE_CONFIG_ORIENTATIONTYPE { +OMX_U32 nSize; +OMX_VERSIONTYPE nVersion; +OMX_IMAGE_ORIENTATIONORIGINTYPE eOrientation; +} OMX_IMAGE_CONFIG_ORIENTATIONTYPE; + +/** Image Parameters Lock. + +The OMX_IMAGE_CONFIG_LOCKTYPE structure is used to set or query +the freezing of settings during capture. +The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.Lock". +*/ + +typedef struct OMX_IMAGE_CONFIG_LOCKTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BOOL bLock; + OMX_BOOL bAtCapture; +} OMX_IMAGE_CONFIG_LOCKTYPE; + +/** Image Flash Control Config. + +The OMX_IMAGE_CONFIG_FLASHCONTROLTYPE structure is used to set or query +the flash mode to be used during capture. +An extension is needed because flash is a feature that may need changing while +camera is executing, so it is a config. +The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.FlashControl". +*/ + +typedef struct OMX_IMAGE_CONFIG_FLASHCONTROLTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_IMAGE_FLASHCONTROLTYPE eFlashControl; +}OMX_IMAGE_CONFIG_FLASHCONTROLTYPE; + +/** Focus Region Control Config. + +The OMX_IMAGE_CONFIG_FOCUSREGIONTYPE structure is used to set or query +the focus regions to be used. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.FocusRegion". +*/ + +typedef struct OMX_IMAGE_CONFIG_FOCUSREGIONTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_FOCUSREGIONCONTROL eFocusRegionControl; + OMX_RELATIVERECTTYPE sFocusRegion; +} OMX_IMAGE_CONFIG_FOCUSREGIONTYPE; + +/** Image Regions Of Interests ROIs Control Config. + +The OMX_IMAGE_CONFIG_FOCUSREGIONTYPE structure is used to set or query +the regions of interests of image frames. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.ROI". +*/ + +typedef struct OMX_IMAGE_CONFIG_ROITYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_U32 nNumberOfROIs; + OMX_RELATIVERECTTYPE sROIs[OMX_MAX_NUMBER_OF_ROIS]; + OMX_U32 nPriority[OMX_MAX_NUMBER_OF_ROIS]; + OMX_OBJECTTYPE eObjectType; +} OMX_IMAGE_CONFIG_ROITYPE; + +/** Xenon flash status Config. + +The OMX_IMAGE_CONFIG_XENONFLASHSTATUSTYPE structure is used to query +the xenon flash status. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.XenonFlashStatus". +*/ + + +typedef struct OMX_IMAGE_CONFIG_XENONFLASHSTATUSTYPE { +OMX_U32 nSize; +OMX_VERSIONTYPE nVersion; +OMX_U32 nPortIndex; +OMX_XENONFLASHSTATUS eFlashStatus; +} OMX_IMAGE_CONFIG_XENONFLASHSTATUSTYPE; + +/** Capture Exposure Time Config. + +The OMX_IMAGE_CONFIG_CAPTUREEXPOSURETIMETYPE structure is used to set or query +the type of capture exposure time values. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.CaptureExposureTime". +*/ + + +typedef struct OMX_IMAGE_CONFIG_CAPTUREEXPOSURETIMETYPE { +OMX_U32 nSize; +OMX_VERSIONTYPE nVersion; +OMX_U32 nPortIndex; +OMX_CAPTUREEXPOSURETIME eExposureTime; +} OMX_IMAGE_CONFIG_CAPTUREEXPOSURETIMETYPE; + +/** Bracketing Config. + +The OMX_IMAGE_CONFIG_BRACKETINGTYPE structure is used to set or query +the bracketing settings. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.Bracketing". +*/ + +typedef struct OMX_IMAGE_CONFIG_BRACKETINGTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_BRACKETMODETYPE eBracketMode; + OMX_U32 nNbrBracketingValues; + OMX_U32 nBracketValues[5]; +} OMX_IMAGE_CONFIG_BRACKETINGTYPE; + +/** RAW Preset Config. + +The OMX_IMAGE_CONFIG_RAWPRESETTYPE structure is used to set or query +the RAW type of images. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.RawPreset". +*/ + +typedef struct OMX_IMAGE_CONFIG_RAWPRESETTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + OMX_RAWPRESETTYPE ePreset; +} OMX_IMAGE_CONFIG_RAWPRESETTYPE; + +/** GPS Location Config. + +The OMX_IMAGE_CONFIG_GPSLOCATIONTYPE structure is used to set or query +the GPS Location Data for usage when capturing. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Config.Image.GPSLocation". +*/ + +typedef struct OMX_IMAGE_CONFIG_GPSLOCATIONTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U64 nLatitudeDegrees; + OMX_U64 nLatitudeMinutes; + OMX_U64 nLatitudeSeconds; + OMX_U64 nLongitudeDegrees; + OMX_U64 nLongitudeMinutes; + OMX_U64 nLongitudeSeconds; + OMX_U64 nAltitudeMetters; + OMX_BOOL bLatitudeRefNorth; + OMX_BOOL bLongitudeRefEast; + OMX_BOOL bAltitudeRefAboveSea; + OMX_BOOL bLocationKnown; +} OMX_IMAGE_CONFIG_GPSLOCATIONTYPE; + +/** Image Filename Param. + +The OMX_IMAGE_PARAM_IW_FILENAMEFORMAT structure is used to set or query +the GPS Location Data for usage when capturing. The setting can be changed using +the OMX_SetParam() function, and the current state can be queried using +the OMX_GetParam() function. When calling either function, the index +specified for this structure is retrieved using OMX_GetExtensionIndex() +with the extension string "OMX.Index.Param.Image.FilenameFormat". +*/ + +typedef struct OMX_IMAGE_PARAM_IW_FILENAMEFORMAT { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nFileSequenceNumber; + OMX_BOOL bGenerateFileInSequence; +}OMX_IMAGE_PARAM_IW_FILENAMEFORMAT; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* OMX_CameraImageExt_h */