diff options
Diffstat (limited to 'make/stub_includes/openmax/NVOMX_IndexExtensions.h')
-rwxr-xr-x | make/stub_includes/openmax/NVOMX_IndexExtensions.h | 397 |
1 files changed, 397 insertions, 0 deletions
diff --git a/make/stub_includes/openmax/NVOMX_IndexExtensions.h b/make/stub_includes/openmax/NVOMX_IndexExtensions.h new file mode 100755 index 000000000..5a312f255 --- /dev/null +++ b/make/stub_includes/openmax/NVOMX_IndexExtensions.h @@ -0,0 +1,397 @@ +/* Copyright (c) 2007 NVIDIA Corporation. All rights reserved. + * + * NVIDIA Corporation and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an + * express license agreement from NVIDIA Corporation is strictly prohibited. + */ + +#ifndef _NVOMX_IndexExtensions_h_ +#define _NVOMX_IndexExtensions_h_ + +#include <OMX_Core.h> +#include <OMX_Component.h> + +#include "OMX_Core.h" + +/** representation of timeout values, in milliseconds */ +typedef OMX_U32 NvxTimeMs; +/** maximum timeout value, used to mean never timeout */ +#define NVX_TIMEOUT_NEVER 0xffffffff +/** minimum timeout value */ +#define NVX_TIMEOUT_MIN 0 + +typedef float NVX_F32; + +#define NVX_INDEX_PARAM_FILENAME "OMX.Nvidia.index.param.filename" /**< Filename parameter for source, demux, and sink components that read/write files. */ +typedef struct NVX_PARAM_FILENAME { + OMX_U32 nSize; /**< size of the structure in bytes */ + OMX_VERSIONTYPE nVersion; /**< NVX extensions specification version information (1.0.0.0)*/ + OMX_STRING pFilename; /**< name of file as supported by stdio implementation */ +} NVX_PARAM_FILENAME; + +#define NVX_INDEX_PARAM_DURATION "OMX.Nvidia.index.param.duration" +typedef struct NVX_PARAM_DURATION { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_TICKS nDuration; /** Duration in us */ +} NVX_PARAM_DURATION; + +typedef enum +{ + NvxStreamType_NONE, + NvxStreamType_MPEG4, + NvxStreamType_H264, + NvxStreamType_H263, + NvxStreamType_WMV, + NvxStreamType_JPG, + NvxStreamType_MP3, + NvxStreamType_WAV, + NvxStreamType_AAC, + NvxStreamType_AACSBR, + NvxStreamType_BSAC, + NvxStreamType_WMA, + NvxStreamType_WMAPro, + NvxStreamType_WMALossless, + NvxStreamType_AMRWB, + NvxStreamType_AMRNB, + NvxStreamType_VORBIS +} ENvxStreamType; + +#define NVX_INDEX_PARAM_STREAMTYPE "OMX.Nvidia.index.param.streamtype" +typedef struct NVX_PARAM_STREAMTYPE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPort; + ENvxStreamType eStreamType; +} NVX_PARAM_STREAMTYPE; + +typedef enum +{ + NvxRecordingMode_Enable = 1, + NvxRecordingMode_EnableExclusive, + NvxRecordingMode_Disable, + NvxRecordingMode_Force32 = 0x7FFFFFFF +} ENvxRecordingMode; + +#define NVX_INDEX_PARAM_RECORDINGMODE "OMX.Nvidia.index.param.recordingmode" +typedef struct NVX_PARAM_RECORDINGMODE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + ENvxRecordingMode RecordingMode; +} NVX_PARAM_RECORDINGMODE; + +#define NVX_INDEX_PARAM_CHANNELID "OMX.Nvidia.index.param.channelid" +typedef struct NVX_PARAM_CHANNELID +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 ChannelID; +} NVX_PARAM_CHANNELID; + +#define NVX_INDEX_PARAM_LOWMEMMODE "OMX.Nvidia.index.param.lowmemmode" +typedef struct NVX_PARAM_LOWMEMMODE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_BOOL bLowMemMode; +} NVX_PARAM_LOWMEMMODE; + +typedef enum +{ + NvxMetadata_Artist, + NvxMetadata_Album, + NvxMetadata_Genre, + NvxMetadata_Title, + NvxMetadata_Year, + NvxMetadata_TrackNum, + NvMMetadata_Encoded, + NvxMetadata_Comment, + NvxMetadata_Composer, + NvxMetadata_Publisher, + NvxMetadata_OriginalArtist, + NvxMetadata_AlbumArtist, + NvxMetadata_Copyright, + NvxMetadata_Url, + NvxMetadata_BPM, + NvxMetadata_CoverArt, + NvxMetadata_CoverArtURL, + NvxMetadata_MAX = 0x7FFFFFFF +} ENvxMetadataType; + +/* Charset define to extend OMX_METADATACHARSETTYPE for a U32 type */ +#define NVOMX_MetadataCharsetU32 0x10000000 +#define NVOMX_MetadataFormatJPEG 0x10000001 +#define NVOMX_MetadataFormatPNG 0x10000002 +#define NVOMX_MetadataFormatBMP 0x10000003 +#define NVOMX_MetadataFormatUnknown 0x10000004 + +/* If specified metadata not found, returns empty string. + * or OMX_ErrorInsufficientResources if sValueStr is too small */ +#define NVX_INDEX_CONFIG_QUERYMETADATA "OMX.Nvidia.index.config.querymetadata" +typedef struct NVX_CONFIG_QUERYMETADATA { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + ENvxMetadataType eType; + OMX_STRING sValueStr; + OMX_U32 nValueLen; + OMX_METADATACHARSETTYPE eCharSet; +} NVX_CONFIG_QUERYMETADATA; + +#define NVX_INDEX_CONFIG_KEEPASPECT "OMX.Nvidia.index.config.keepaspect" +typedef struct NVX_CONFIG_KEEPASPECT { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_BOOL bKeepAspect; +} NVX_CONFIG_KEEPASPECT; + +#define NVX_INDEX_CONFIG_ULPMODE "OMX.Nvidia.index.config.ulpmode" +typedef struct NVX_CONFIG_ULPMODE { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_BOOL enableUlpMode; + OMX_U32 kpiMode; +} NVX_CONFIG_ULPMODE; + +#define NVX_INDEX_CONFIG_AUDIO_OUTPUT "OMX.Nvidia.index.config.audio.output" +typedef enum NVX_AUDIO_OUTPUTTYPE { + NVX_AUDIO_OutputI2S = 0, + NVX_AUDIO_OutputHdmi, + NVX_AUDIO_Force32 = 0x7FFFFFFF +} NVX_AUDIO_OUTPUTTYPE; + +typedef struct NVX_CONFIG_AUDIOOUTPUT { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + NVX_AUDIO_OUTPUTTYPE eOutputType; +} NVX_CONFIG_AUDIOOUTPUT; + +#define NVX_INDEX_CONFIG_WHITEBALANCEOVERRIDE "OMX.Nvidia.index.config.whitebalanceoverride" +typedef struct NVX_CONFIG_WHITEBALANCEOVERRIDE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_S32 wbIlluminantOverride; + OMX_S32 wbGainAndColorCorrectionOverride[13]; +} NVX_CONFIG_WHITEBALANCEOVERRIDE; + +#define NVX_INDEX_CONFIG_PREVIEWENABLE "OMX.Nvidia.index.config.previewenable" + +#define NVX_INDEX_CONFIG_CAPTUREPAUSE "OMX.Nvidia.index.config.capturepause" + +#define NVX_INDEX_CONFIG_CONVERGEANDLOCK "OMX.Nvidia.index.config.convergeandlock" +typedef struct NVX_CONFIG_CONVERGEANDLOCK +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_BOOL bUnlock; + OMX_BOOL bAutoFocus; + OMX_BOOL bAutoExposure; + OMX_BOOL bAutoWhiteBalance; + OMX_U32 nTimeOutMS; +} NVX_CONFIG_CONVERGEANDLOCK; + +#define NVX_INDEX_CONFIG_PRECAPTURECONVERGE "OMX.Nvidia.index.config.precaptureconverge" +typedef struct NVX_CONFIG_PRECAPTURECONVERGE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_BOOL bPrecaptureConverge; + OMX_BOOL bContinueDuringCapture; + OMX_U32 nTimeOutMS; +} NVX_CONFIG_PRECAPTURECONVERGE; + +#define NVX_INDEX_CONFIG_AUTOFRAMERATE "OMX.Nvidia.index.config.autoframerate" +typedef struct NVX_CONFIG_AUTOFRAMERATE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_BOOL bEnabled; + OMX_S32 low; + OMX_S32 high; +} NVX_CONFIG_AUTOFRAMERATE; + +#define NVX_INDEX_CONFIG_CAMERARAWCAPTURE "OMX.Nvidia.index.config.camera.rawcapture" +typedef struct NVX_CONFIG_CAMERARAWCAPTURE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_U32 nCaptureCount; + OMX_STRING Filename; +} NVX_CONFIG_CAMERARAWCAPTURE; + +typedef enum +{ + NvxFlicker_Off, + NvxFlicker_Auto, + NvxFlicker_50HZ, + NvxFlicker_60HZ +} ENvxFlickerType; +#define NVX_INDEX_CONFIG_FLICKER "OMX.Nvidia.index.config.flicker" +typedef struct NVX_CONFIG_FLICKER +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + ENvxFlickerType eFlicker; +} NVX_CONFIG_FLICKER; + +// this is used for isp data dump +#define NVX_INDEX_CONFIG_ISPDATA "OMX.Nvidia.index.config.ispdata" +typedef struct NVX_CONFIG_ISPDATA +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + NVX_F32 ilData; + NVX_F32 ilData2; +} NVX_CONFIG_ISPDATA; + +#define NVX_INDEX_PARAM_VIDEO_ENCODE_PROPERTY "OMX.Nvidia.index.param.video.encode.prop" +typedef enum NVX_VIDEO_ERROR_RESILIENCY_LEVEL_TYPE { + NVX_VIDEO_ErrorResiliency_None = 0, + NVX_VIDEO_ErrorResiliency_Low, + NVX_VIDEO_ErrorResiliency_High, + NVX_VIDEO_ErrorResiliency_Invalid = 0x7FFFFFFF +} NVX_VIDEO_ERROR_RESILIENCY_LEVEL_TYPE; + +typedef enum NVX_VIDEO_APPLICATION_TYPE { + NVX_VIDEO_Application_Camcorder = 0, + NVX_VIDEO_Application_VideoTelephony, + NVX_VIDEO_Application_Invalid = 0x7FFFFFFF +} NVX_VIDEO_APPLICATION_TYPE; + +/*new parameter to fine tune video encoder configuration*/ +typedef struct NVX_PARAM_VIDENCPROPERTY +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + NVX_VIDEO_APPLICATION_TYPE eApplicationType; + NVX_VIDEO_ERROR_RESILIENCY_LEVEL_TYPE eErrorResiliencyLevel; +} NVX_PARAM_VIDENCPROPERTY; + +#define NVX_INDEX_PARAM_VIDEO_ENCODE_STRINGENTBITRATE "OMX.Nvidia.index.param.video.encode.stringentbitrate" + +#define NVX_INDEX_PARAM_OTHER_3GPMUX_BUFFERCONFIG "OMX.Nvidia.index.param.other.3gpmux.bufferconfig" +typedef struct NVX_PARAM_OTHER_3GPMUX_BUFFERCONFIG +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_BOOL bUseCache; + OMX_U32 nBufferSize; + OMX_U32 nPageSize; +} NVX_PARAM_OTHER_3GPMUX_BUFFERCONFIG; + +#define NVX_INDEX_CONFIG_THUMBNAIL "OMX.Nvidia.index.config.thumbnail" +typedef struct NVX_CONFIG_THUMBNAIL +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_BOOL bEnabled; + OMX_U32 nWidth; + OMX_U32 nHeight; +} NVX_CONFIG_THUMBNAIL; + +#define NVX_INDEX_CONFIG_PROFILE "OMX.Nvidia.index.config.profile" +typedef struct NVX_CONFIG_PROFILE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + OMX_BOOL bProfile; + OMX_BOOL bVerbose; + OMX_BOOL bStubOutput; + OMX_U32 nForceLocale; // 0 - no, 1 -cpu, 2 - avp + OMX_U32 nNvMMProfile; + OMX_BOOL bNoAVSync; + OMX_BOOL enableUlpMode; + OMX_U32 ulpkpiMode; + OMX_S32 nAVSyncOffset; + OMX_BOOL bFlip; + OMX_U32 nFrameDrop; + + OMX_BOOL bSanity; + OMX_U32 nAvgFPS; + OMX_U32 nTotFrameDrops; + + // for camera + OMX_U64 nTSPreviewStart; + OMX_U64 nTSCaptureStart; + OMX_U64 nTSCaptureEnd; + OMX_U64 nTSPreviewEnd; + OMX_U32 nPreviewStartFrameCount; + OMX_U32 nPreviewEndFrameCount; + OMX_U32 nCaptureStartFrameCount; + OMX_U32 nCaptureEndFrameCount; + +} NVX_CONFIG_PROFILE; + + +// put event extension here for now; +typedef enum NVX_EVENTTYPE_ENUM { + NVX_EventVendorStartUnused = 0x70000000, + + NVX_EventCameraStart = (NVX_EventVendorStartUnused | 0xD00000), + NVX_EventCamera_AlgorithmsLocked = NVX_EventCameraStart, + NVX_EventCamera_AutoFocusAchieved, + NVX_EventCamera_AutoExposureAchieved, + NVX_EventCamera_AutoWhiteBalanceAchieved, + NVX_EventCamera_AutoFocusTimedOut, + NVX_EventCamera_AutoExposureTimedOut, + NVX_EventCamera_AutoWhiteBalanceTimedOut, + NVX_EventCamera_CaptureAborted, + NVX_EventCamera_CaptureStarted, + + NVX_EventCamera_StillCaptureReady, + + NVX_EventMax = OMX_EventMax, +} NVX_EVENTTYPE; + + +// Allow manual override on WinA to permit power optimizations from client side +typedef enum +{ + NvxWindow_A = 0, + NvxWindow_MAX = 0x7FFFFFFF +} ENvxWindowType; + +typedef enum +{ + NvxWindowAction_TurnOn = 0, + NvxWindowAction_TurnOff, + NvxWindowAction_MAX = 0x7FFFFFFF +} ENvxWindowDispActionType; + +#define NVX_INDEX_CONFIG_WINDOW_DISP_OVERRIDE "OMX.Nvidia.index.config.windisp" +typedef struct NVX_CONFIG_WINDOWOVERRIDE +{ + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_U32 nPortIndex; + + ENvxWindowType eWindow; + ENvxWindowDispActionType eAction; +} NVX_CONFIG_WINDOWOVERRIDE; + +#endif + |