mirror of
https://github.com/Evolution-X-Devices/hardware_samsung_slsi-linaro_openmax
synced 2026-01-27 15:45:39 +00:00
1299 lines
56 KiB
C
1299 lines
56 KiB
C
|
|
/*
|
||
|
|
*
|
||
|
|
* Copyright 2012 Samsung Electronics S.LSI Co. LTD
|
||
|
|
*
|
||
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
|
* you may not use this file except in compliance with the License.
|
||
|
|
* You may obtain a copy of the License at
|
||
|
|
*
|
||
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
*
|
||
|
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
* See the License for the specific language governing permissions and
|
||
|
|
* limitations under the License.
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
* @file Exynos_OMX_Def.h
|
||
|
|
* @brief Exynos_OMX specific define
|
||
|
|
* @author SeungBeom Kim (sbcrux.kim@samsung.com)
|
||
|
|
* @version 2.0.0
|
||
|
|
* @history
|
||
|
|
* 2012.02.20 : Create
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef EXYNOS_OMX_DEF
|
||
|
|
#define EXYNOS_OMX_DEF
|
||
|
|
|
||
|
|
//#define PERFORMANCE_DEBUG
|
||
|
|
|
||
|
|
#include "OMX_Types.h"
|
||
|
|
#include "OMX_IVCommon.h"
|
||
|
|
#include "OMX_Video.h"
|
||
|
|
#include "OMX_VideoExt.h"
|
||
|
|
#include "OMX_IndexExt.h"
|
||
|
|
#include "OMX_Component.h"
|
||
|
|
|
||
|
|
#define VERSIONMAJOR_NUMBER 1
|
||
|
|
#define VERSIONMINOR_NUMBER 1
|
||
|
|
#define REVISION_NUMBER 2
|
||
|
|
#define STEP_NUMBER 0
|
||
|
|
|
||
|
|
#ifdef MAX_COMPONENT_NUM
|
||
|
|
#define RESOURCE_VIDEO_DEC MAX_COMPONENT_NUM
|
||
|
|
#define RESOURCE_VIDEO_ENC MAX_COMPONENT_NUM
|
||
|
|
#else
|
||
|
|
#define RESOURCE_VIDEO_DEC 16
|
||
|
|
#define RESOURCE_VIDEO_ENC 16
|
||
|
|
#endif
|
||
|
|
#define RESOURCE_AUDIO_DEC 10
|
||
|
|
|
||
|
|
#define MAX_OMX_COMPONENT_NUM 40
|
||
|
|
#define MAX_OMX_COMPONENT_ROLE_NUM 10
|
||
|
|
#define MAX_OMX_COMPONENT_NAME_SIZE OMX_MAX_STRINGNAME_SIZE
|
||
|
|
#define MAX_OMX_COMPONENT_ROLE_SIZE OMX_MAX_STRINGNAME_SIZE
|
||
|
|
#define MAX_OMX_COMPONENT_LIBNAME_SIZE OMX_MAX_STRINGNAME_SIZE * 2
|
||
|
|
#define MAX_OMX_MIMETYPE_SIZE OMX_MAX_STRINGNAME_SIZE
|
||
|
|
|
||
|
|
#define MAX_BUFFER_REF 40
|
||
|
|
#define MAX_TIMESTAMP MAX_BUFFER_REF
|
||
|
|
#define MAX_FLAGS MAX_BUFFER_REF
|
||
|
|
|
||
|
|
#define MAX_BUFFER_PLANE 3
|
||
|
|
|
||
|
|
#define INDEX_AFTER_EOS 0xE05
|
||
|
|
#define INDEX_AFTER_DRC 0xD5C
|
||
|
|
#define INDEX_HEADER_DATA 0xC5D
|
||
|
|
|
||
|
|
#define DEFAULT_TIMESTAMP_VAL (-1010101010)
|
||
|
|
#define RESET_TIMESTAMP_VAL (-1001001001)
|
||
|
|
|
||
|
|
// The largest metadata buffer size advertised
|
||
|
|
// when metadata buffer mode is used
|
||
|
|
#define MAX_METADATA_BUFFER_SIZE (64)
|
||
|
|
|
||
|
|
#define MAX_VENDOR_EXT_NUM (32)
|
||
|
|
|
||
|
|
#define PREFIX_COMPONENT_NAME "OMX.Exynos."
|
||
|
|
#define IS_CUSTOM_COMPONENT(name) (((char)(name[((int)sizeof(PREFIX_COMPONENT_NAME))-1]) >= 0x61)? OMX_TRUE:OMX_FALSE)
|
||
|
|
|
||
|
|
#define IS_64BIT_OS (((sizeof(int) != sizeof(void *))? OMX_TRUE:OMX_FALSE))
|
||
|
|
|
||
|
|
/* for image converter(MSRND) */
|
||
|
|
#define OMX_BUFFERFLAG_CONVERTEDIMAGE 0x00000100
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_CODEC_TYPE
|
||
|
|
{
|
||
|
|
SW_CODEC,
|
||
|
|
HW_VIDEO_DEC_CODEC,
|
||
|
|
HW_VIDEO_ENC_CODEC,
|
||
|
|
HW_VIDEO_DEC_SECURE_CODEC,
|
||
|
|
HW_VIDEO_ENC_SECURE_CODEC,
|
||
|
|
HW_AUDIO_DEC_CODEC,
|
||
|
|
HW_AUDIO_ENC_CODEC
|
||
|
|
} EXYNOS_CODEC_TYPE;
|
||
|
|
|
||
|
|
#define PLANE_MAX_NUM 3
|
||
|
|
typedef enum _PLANE_TYPE {
|
||
|
|
PLANE_MULTIPLE = 0x00,
|
||
|
|
PLANE_SINGLE = 0x11,
|
||
|
|
PLANE_SINGLE_USER = 0x12,
|
||
|
|
} PLANE_TYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_INDEXTYPE
|
||
|
|
{
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_INTRAPERIOD "OMX.SEC.index.VideoIntraPeriod"
|
||
|
|
OMX_IndexConfigVideoIntraPeriod = 0x7F000002,
|
||
|
|
#ifdef USE_S3D_SUPPORT
|
||
|
|
#define EXYNOS_INDEX_PARAM_GET_S3D "OMX.SEC.index.S3DMode"
|
||
|
|
OMX_IndexVendorS3DMode = 0x7F000003,
|
||
|
|
#endif
|
||
|
|
#define EXYNOS_INDEX_PARAM_NEED_CONTIG_MEMORY "OMX.SEC.index.NeedContigMemory" /* for HDCP */
|
||
|
|
OMX_IndexVendorNeedContigMemory = 0x7F000004,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_GET_BUFFER_FD "OMX.SEC.index.GetBufferFD" /* for HDCP */
|
||
|
|
OMX_IndexVendorGetBufferFD = 0x7F000005,
|
||
|
|
#define EXYNOS_INDEX_PARAM_SET_DTS_MODE "OMX.SEC.index.SetDTSMode" /* for decoding DTS contents */
|
||
|
|
OMX_IndexVendorSetDTSMode = 0x7F000006,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ENABLE_THUMBNAIL "OMX.SEC.index.enableThumbnailMode"
|
||
|
|
OMX_IndexParamEnableThumbnailMode = 0x7F000007,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_QPRANGE_TYPE "OMX.SEC.indexParam.VideoQPRange"
|
||
|
|
OMX_IndexParamVideoQPRange = 0x7F000008,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_QPRANGE_TYPE "OMX.SEC.indexConfig.VideoQPRange"
|
||
|
|
OMX_IndexConfigVideoQPRange = 0x7F000009,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_TEMPORALSVC "OMX.SEC.index.TemporalSVC"
|
||
|
|
OMX_IndexConfigVideoTemporalSVC = 0x7F000010,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_AVC_ENABLE_TEMPORALSVC "OMX.SEC.index.AVC.enableTemporalSVC"
|
||
|
|
OMX_IndexParamVideoAVCEnableTemporalSVC = 0x7F000011,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ENABLE_BLUR_FILTER "OMX.SEC.indexParam.enableBlurFilter"
|
||
|
|
OMX_IndexParamEnableBlurFilter = 0x7F000014,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_BLUR_INFO "OMX.SEC.indexConfig.BlurInfo"
|
||
|
|
OMX_IndexConfigBlurInfo = 0x7F000015,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_HEVC_ENABLE_TEMPORALSVC "OMX.SEC.index.Hevc.enableTemporalSVC"
|
||
|
|
OMX_IndexParamVideoHevcEnableTemporalSVC = 0x7F000016,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_ROIINFO "OMX.SEC.index.RoiInfo"
|
||
|
|
OMX_IndexConfigVideoRoiInfo = 0x7F000017,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_ENABLE_ROIINFO "OMX.SEC.index.enableRoiInfo"
|
||
|
|
OMX_IndexParamVideoEnableRoiInfo = 0x7F000018,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ROATION_INFO "OMX.SEC.indexParam.RotationInfo"
|
||
|
|
OMX_IndexParamRotationInfo = 0x7F000019,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ENABLE_PVC "OMX.SEC.indexParam.enablePVC"
|
||
|
|
OMX_IndexParamVideoEnablePVC = 0x7F000020,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_BLACK_BAR_CROP_INFO "OMX.SEC.index.BlackBarCrop"
|
||
|
|
OMX_IndexConfigBlackBarCrop = 0x7F000021,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_SEARCH_BLACK_BAR "OMX.SEC.index.SearchBlackBar"
|
||
|
|
OMX_IndexConfigSearchBlackBar = 0x7F000022,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_REORDER_MODE "OMX.SEC.CUSTOM.index.ReorderMode"
|
||
|
|
OMX_IndexExynosParamReorderMode = 0x7F000023,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_IFRAME_RATIO "OMX.SEC.index.IFrameRatio"
|
||
|
|
OMX_IndexConfigIFrameRatio = 0x7F000024,
|
||
|
|
#define EXYNOS_INDEX_PARAM_REF_NUM_PFRAMES "OMX.SEC.index.NumberRefPframes"
|
||
|
|
OMX_IndexParamNumberRefPframes = 0x7F000025,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_ENABLE_GPB "OMX.SEC.index.enableGPB"
|
||
|
|
OMX_IndexParamVideoEnableGPB = 0x7F000026,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_DROP_CONTROL "OMX.SEC.index.enableDropControl"
|
||
|
|
OMX_IndexParamVideoDropControl = 0x7F000027,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_COMP_COLOR_FORMAT "OMX.SEC.index.setCompressedColorFormat"
|
||
|
|
OMX_IndexParamVideoCompressedColorFormat = 0x7F000028,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_DISABLE_DFR "OMX.SEC.index.disableDFR"
|
||
|
|
OMX_IndexParamVideoDisableDFR = 0x7F000029,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_CHROMA_QP "OMX.SEC.index.chromaQP"
|
||
|
|
OMX_IndexParamVideoChromaQP = 0x7F000030,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_DISABLE_HBENCODING "OMX.SEC.index.disableHBEncoding"
|
||
|
|
OMX_IndexParamVideoDisableHBEncoding = 0x7F000031,
|
||
|
|
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
// for extension codec spec
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
OMX_IndexExtensionStartUnused = 0x7F020000,
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_HEVC_TYPE "OMX.SEC.index.VideoHevcType"
|
||
|
|
OMX_IndexParamVideoHevc = 0x7F020000,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_VP9_TYPE "OMX.SEC.index.VideoVp9Type"
|
||
|
|
OMX_IndexParamVideoVp9 = 0x7F020001,
|
||
|
|
#endif
|
||
|
|
#ifndef USE_KHRONOS_OMX_1_2
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_VC1_TYPE "OMX.SEC.index.VideoVc1Type"
|
||
|
|
OMX_IndexParamVideoVC1 = 0x7F021000,
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
// for android platform
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
OMX_IndexAndroidStartUnused = 0x7F030000,
|
||
|
|
/* query using get_extension_index */
|
||
|
|
#define EXYNOS_INDEX_PARAM_USE_ANB "OMX.google.android.index.useAndroidNativeBuffer" /* no more used */
|
||
|
|
OMX_IndexParamUseAndroidNativeBuffer = 0x7F030001,
|
||
|
|
#define EXYNOS_INDEX_PARAM_USE_ANB2 "OMX.google.android.index.useAndroidNativeBuffer2" /* no more used */
|
||
|
|
OMX_IndexParamUseAndroidNativeBuffer2 = 0x7F030002,
|
||
|
|
#define EXYNOS_INDEX_PARAM_GET_ANB "OMX.google.android.index.getAndroidNativeBufferUsage"
|
||
|
|
OMX_IndexParamGetAndroidNativeBuffer = 0x7F030003,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ENABLE_ANB "OMX.google.android.index.enableAndroidNativeBuffers"
|
||
|
|
OMX_IndexParamEnableAndroidBuffers = 0x7F030004,
|
||
|
|
#define EXYNOS_INDEX_PARAM_STORE_METADATA_BUFFER "OMX.google.android.index.storeMetaDataInBuffers"
|
||
|
|
OMX_IndexParamStoreMetaDataBuffer = 0x7F030005,
|
||
|
|
#define EXYNOS_INDEX_PARAM_PREPEND_SPSPPS_TO_IDR "OMX.google.android.index.prependSPSPPSToIDRFrames"
|
||
|
|
OMX_IndexParamPrependSPSPPSToIDR = 0x7F030006,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ALLOCATE_NATIVE_HANDLE "OMX.google.android.index.allocateNativeHandle"
|
||
|
|
OMX_IndexParamAllocateNativeHandle = 0x7F030007,
|
||
|
|
#define EXYNOS_INDEX_PARAM_DESCRIBE_COLOR_FORMAT "OMX.google.android.index.describeColorFormat"
|
||
|
|
OMX_IndexParamDescribeColorFormat = 0x7F030008,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_HDR_STATIC_INFO "OMX.google.android.index.describeHDRStaticInfo"
|
||
|
|
OMX_IndexConfigVideoHdrStaticInfo = 0x7F030009,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_COLOR_ASPECTS_INFO "OMX.google.android.index.describeColorAspects"
|
||
|
|
OMX_IndexConfigVideoColorAspects = 0x7F030010,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_VIDEO_HDR10_PLUS_INFO "OMX.google.android.index.describeHDR10PlusInfo"
|
||
|
|
OMX_IndexConfigVideoHdr10PlusInfo = 0x7F030011,
|
||
|
|
#define EXYNOS_INDEX_PARAM_SET_ANB_CONSUMER_USAGE "OMX.google.android.index.AndroidNativeBufferConsumerUsage"
|
||
|
|
OMX_IndexParamAndroidNatvieBufferConsumerUsage = 0x7F030012,
|
||
|
|
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
/* not query, just uses index */
|
||
|
|
#define EXYNOS_INDEX_CONFIG_ANDROID_VENDOR_EXT "OMX.google.android.index.androidVendorExtension"
|
||
|
|
OMX_IndexConfigAndroidVendorExtension = 0x7F031001,
|
||
|
|
|
||
|
|
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_ANDROID_VP8_ENCODER "OMX.SEC.index.VideoAndroidVP8Encoder"
|
||
|
|
OMX_IndexParamVideoAndroidVp8Encoder = 0x7F032001,
|
||
|
|
#define EXYNOS_INDEX_PARAM_SLICE_SEGMENTS "OMX.SEC.index.SliceSegments" /* not supported yet */
|
||
|
|
OMX_IndexParamSliceSegments = 0x7F032002,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_ANDROID_INTRA_REFRESH "OMX.SEC.index.AndroidIntraRefresh" /* not supported yet */
|
||
|
|
OMX_IndexConfigAndroidIntraRefresh = 0x7F032003,
|
||
|
|
#define EXYNOS_INDEX_PARAM_ANDROID_VIDEO_TEMPORAL "OMX.SEC.index.param.TemporalLayering"
|
||
|
|
OMX_IndexParamAndroidVideoTemporalLayering = 0x7F032004,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_ANDROID_VIDEO_TEMPORAL "OMX.SEC.index.config.TemporalLayering"
|
||
|
|
OMX_IndexConfigAndroidVideoTemporalLayering = 0x7F032005,
|
||
|
|
#define EXYNOS_INDEX_PARAM_MAX_FRAME_DURATION "OMX.SEC.index.maxDurationForBitratecontrol" /* not supported yet */
|
||
|
|
OMX_IndexParamMaxFrameDurationForBitrateControl = 0x7F032006,
|
||
|
|
#define EXYNOS_INDEX_PARAM_VIDEO_ANDROID_VP9_ENCODER "OMX.SEC.index.VideoAndroidVp9Encoder" /* not supported yet */
|
||
|
|
OMX_IndexParamVideoAndroidVp9Encoder = 0x7F032007,
|
||
|
|
|
||
|
|
|
||
|
|
#define EXYNOS_INDEX_CONFIG_OPERATING_RATE "OMX.SEC.index.OperatingRate"
|
||
|
|
OMX_IndexConfigOperatingRate = 0x7F033001,
|
||
|
|
#define EXYNOS_INDEX_PARAM_CONSUMER_USAGE_BITS "OMX.SEC.index.ConsumerUsageBits"
|
||
|
|
OMX_IndexParamConsumerUsageBits = 0x7F033002,
|
||
|
|
#define EXYNOS_INDEX_CONFIG_PRIORTIY "OMX.SEC.index.Priority"
|
||
|
|
OMX_IndexConfigPriority = 0x7F033003,
|
||
|
|
#endif // USE_KHRONOS_OMX_HEADER
|
||
|
|
|
||
|
|
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
// for linux platform
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
OMX_IndexLinuxStartUnused = 0x7F040000,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_IMAGE_CROP "OMX.SEC.CUSTOM.index.ImageCrop"
|
||
|
|
OMX_IndexExynosParamImageCrop = 0x7F040002,
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
// for custom component
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
OMX_IndexCustomStartUnused = 0x7F050000,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_CONFIG_PTS_MODE "OMX.SEC.CUSTOM.index.PTSMode"
|
||
|
|
OMX_IndexExynosConfigPTSMode = 0x7F050001,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_CONFIG_DISPLAY_DELAY "OMX.SEC.CUSTOM.index.DisplayDelay"
|
||
|
|
OMX_IndexExynosConfigDisplayDelay = 0x7F050002,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_CORRUPTEDHEADER "OMX.SEC.CUSTOM.index.CorruptedHeader"
|
||
|
|
OMX_IndexExynosParamCorruptedHeader = 0x7F050003,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_DISPLAY_DELAY "OMX.SEC.CUSTOM.index.DisplayDelay2" /* Compatibility with OMX.SEC.CUSTOM.index.DisplayDelay */
|
||
|
|
OMX_IndexExynosParamDisplayDelay = 0x7F050004,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_USE_BUFFERCOPY "OMX.SEC.CUSTOM.index.BufferCopy"
|
||
|
|
OMX_IndexExynosParamBufferCopy = 0x7F050005,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_USE_IMG_CONV "OMX.SEC.CUSTOM.index.ImageConvert"
|
||
|
|
OMX_IndexExynosParamImageConvert = 0x7F050006,
|
||
|
|
#define EXYNOS_CUSTOM_INDEX_PARAM_USE_IMG_CONV_MODE "OMX.SEC.CUSTOM.index.ImageConvertMode"
|
||
|
|
OMX_IndexExynosParamImageConvertMode = 0x7F050007,
|
||
|
|
|
||
|
|
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
// for Skype HD
|
||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
OMX_IndexSkypeStartUnused = 0x7F060000,
|
||
|
|
#define OMX_MS_SKYPE_PARAM_DRIVERVER "OMX.microsoft.skype.index.driverversion"
|
||
|
|
OMX_IndexSkypeParamDriverVersion = 0x7F060001,
|
||
|
|
#if 0
|
||
|
|
#define OMX_MS_SKYPE_PARAM_DECODERSETTING "OMX.microsoft.skype.index.decodersetting"
|
||
|
|
OMX_IndexSkypeParamDecoderSetting = 0x7F060002,
|
||
|
|
#define OMX_MS_SKYPE_PARAM_DECODERCAP "OMX.microsoft.skype.index.decodercapability"
|
||
|
|
OMX_IndexSkypeParamDecoderCapability = 0x7F060003,
|
||
|
|
#define OMX_MS_SKYPE_PARAM_ENCODERSETTING "OMX.microsoft.skype.index.encodersetting"
|
||
|
|
OMX_IndexSkypeParamEncoderSetting = 0x7F060004,
|
||
|
|
#define OMX_MS_SKYPE_PARAM_ENCODERCAP "OMX.microsoft.skype.index.encodercapability"
|
||
|
|
OMX_IndexSkypeParamEncoderCapability = 0x7F060005,
|
||
|
|
#endif
|
||
|
|
#define OMX_MS_SKYPE_CONFIG_MARKLTRFRAME "OMX.microsoft.skype.index.markltrframe"
|
||
|
|
OMX_IndexSkypeConfigMarkLTRFrame = 0x7F060006,
|
||
|
|
#define OMX_MS_SKYPE_CONFIG_USELTRFRAME "OMX.microsoft.skype.index.useltrframe"
|
||
|
|
OMX_IndexSkypeConfigUseLTRFrame = 0x7F060007,
|
||
|
|
#define OMX_MS_SKYPE_CONFIG_QP "OMX.microsoft.skype.index.qp"
|
||
|
|
OMX_IndexSkypeConfigQP = 0x7F060008,
|
||
|
|
#if 0
|
||
|
|
#define OMX_MS_SKYPE_CONFIG_TEMPORALLAYERCOUNT "OMX.microsoft.skype.index.temporallayercount"
|
||
|
|
OMX_IndexSkypeConfigTemporalLayerCount = 0x7F060009,
|
||
|
|
#endif
|
||
|
|
#define OMX_MS_SKYPE_CONFIG_BASELAYERPID "OMX.microsoft.skype.index.basepid"
|
||
|
|
OMX_IndexSkypeConfigBasePid = 0x7F06000a,
|
||
|
|
|
||
|
|
/* common */
|
||
|
|
OMX_IndexSkypeParamLowLatency = 0x7F060010,
|
||
|
|
|
||
|
|
/* encoder */
|
||
|
|
OMX_IndexSkypeParamEncoderMaxTemporalLayerCount = 0x7F061000,
|
||
|
|
OMX_IndexSkypeParamEncoderMaxLTR = 0x7F061001,
|
||
|
|
OMX_IndexSkypeParamEncoderLTR = 0x7F061002,
|
||
|
|
OMX_IndexSkypeParamEncoderPreprocess = 0x7F061003,
|
||
|
|
OMX_IndexSkypeParamEncoderSar = 0x7F061004,
|
||
|
|
OMX_IndexSkypeParamEncoderInputControl = 0x7F061005,
|
||
|
|
OMX_IndexSkypeConfigEncoderLTR = 0x7F061006,
|
||
|
|
OMX_IndexSkypeConfigEncoderInputTrigger = 0x7F061007,
|
||
|
|
OMX_IndexSkypeParamVideoBitrate = 0x7F061008,
|
||
|
|
|
||
|
|
OMX_IndexExynosEndUnused = 0x7F05FFFF,
|
||
|
|
} EXYNOS_OMX_INDEXTYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_ERRORTYPE
|
||
|
|
{
|
||
|
|
OMX_ErrorNoEOF = (OMX_S32) 0x90000001,
|
||
|
|
OMX_ErrorInputDataDecodeYet = (OMX_S32) 0x90000002,
|
||
|
|
OMX_ErrorInputDataEncodeYet = (OMX_S32) 0x90000003,
|
||
|
|
OMX_ErrorCodecInit = (OMX_S32) 0x90000004,
|
||
|
|
OMX_ErrorCodecDecode = (OMX_S32) 0x90000005,
|
||
|
|
OMX_ErrorCodecEncode = (OMX_S32) 0x90000006,
|
||
|
|
OMX_ErrorCodecFlush = (OMX_S32) 0x90000007,
|
||
|
|
OMX_ErrorOutputBufferUseYet = (OMX_S32) 0x90000008,
|
||
|
|
OMX_ErrorCorruptedFrame = (OMX_S32) 0x90000009,
|
||
|
|
OMX_ErrorNeedNextHeaderInfo = (OMX_S32) 0x90000010,
|
||
|
|
OMX_ErrorNoneSrcSetupFinish = (OMX_S32) 0x90000011,
|
||
|
|
OMX_ErrorCorruptedHeader = (OMX_S32) OMX_ErrorStreamCorrupt, /* 0x90000012, */
|
||
|
|
OMX_ErrorNoneExpiration = (OMX_S32) 0x90000013,
|
||
|
|
OMX_ErrorNoneReuseBuffer = (OMX_S32) 0x90000014,
|
||
|
|
} EXYNOS_OMX_ERRORTYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_COMMANDTYPE
|
||
|
|
{
|
||
|
|
EXYNOS_OMX_CommandComponentDeInit = 0x7F000001,
|
||
|
|
EXYNOS_OMX_CommandEmptyBuffer,
|
||
|
|
EXYNOS_OMX_CommandFillBuffer,
|
||
|
|
EXYNOS_OMX_CommandFakeBuffer,
|
||
|
|
Exynos_OMX_CommandSendEvent,
|
||
|
|
} EXYNOS_OMX_COMMANDTYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_TRANS_STATETYPE {
|
||
|
|
EXYNOS_OMX_TransStateInvalid,
|
||
|
|
EXYNOS_OMX_TransStateLoadedToIdle,
|
||
|
|
EXYNOS_OMX_TransStateIdleToExecuting,
|
||
|
|
EXYNOS_OMX_TransStateExecutingToIdle,
|
||
|
|
EXYNOS_OMX_TransStateIdleToLoaded,
|
||
|
|
EXYNOS_OMX_TransStateMax = 0X7FFFFFFF
|
||
|
|
} EXYNOS_OMX_TRANS_STATETYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_PORT_STATETYPE {
|
||
|
|
EXYNOS_OMX_PortStateInvalid,
|
||
|
|
EXYNOS_OMX_PortStateFlushing,
|
||
|
|
EXYNOS_OMX_PortStateFlushingForDisable,
|
||
|
|
EXYNOS_OMX_PortStateDisabling,
|
||
|
|
EXYNOS_OMX_PortStateEnabling,
|
||
|
|
EXYNOS_OMX_PortStateIdle,
|
||
|
|
EXYNOS_OMX_PortStateLoaded,
|
||
|
|
EXYNOS_OMX_PortStateMax = 0X7FFFFFFF
|
||
|
|
} EXYNOS_OMX_PORT_STATETYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_COLOR_FORMATTYPE {
|
||
|
|
OMX_SEC_COLOR_FormatNV12TPhysicalAddress = 0x7F000001, /* unused */
|
||
|
|
OMX_SEC_COLOR_FormatNV12LPhysicalAddress = 0x7F000002, /* unused */
|
||
|
|
OMX_SEC_COLOR_FormatNV12LVirtualAddress = 0x7F000003, /* unused */
|
||
|
|
|
||
|
|
OMX_SEC_COLOR_FormatNV21LPhysicalAddress = 0x7F000010, /* unused */
|
||
|
|
OMX_SEC_COLOR_FormatNV21Linear = 0x7F000011,
|
||
|
|
OMX_SEC_COLOR_FormatYVU420Planar = 0x7F000012,
|
||
|
|
OMX_SEC_COLOR_Format32bitABGR8888 = 0x7F000013, /* unused */
|
||
|
|
OMX_SEC_COLOR_FormatYUV420SemiPlanarInterlace = 0x7F000014, /* unused */
|
||
|
|
OMX_SEC_COLOR_Format10bitYUV420SemiPlanar = 0x7F000015, /* unused */
|
||
|
|
OMX_SEC_COLOR_FormatS10bitYUV420SemiPlanar = 0x7F000016, /* S10B : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_Format10bitYVU420SemiPlanar = 0x7F000017, /* unused */
|
||
|
|
OMX_SEC_COLOR_FormatS10bitYVU420SemiPlanar = 0x7F000018, /* S10B : Y/CrCb */
|
||
|
|
OMX_SEC_COLOR_FormatYUV420SemiPlanarSBWC = 0x7F000019, /* SBWC : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_FormatYVU420SemiPlanarSBWC = 0x7F000020, /* SBWC : Y/CrCb */
|
||
|
|
OMX_SEC_COLOR_Format10bitYUV420SemiPlanarSBWC = 0x7F000021, /* SBWC 10B : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_Format10bitYVU420SemiPlanarSBWC = 0x7F000022, /* SBWC 10B : Y/CrCb */
|
||
|
|
OMX_SEC_COLOR_FormatYUV420SemiPlanarSBWC_L50 = 0x7F000023, /* SBWC L50 : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_FormatYUV420SemiPlanarSBWC_L75 = 0x7F000024, /* SBWC L75 : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_Format10bitYUV420SemiPlanarSBWC_L40 = 0x7F000025, /* SBWC 10B L40 : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_Format10bitYUV420SemiPlanarSBWC_L60 = 0x7F000026, /* SBWC 10B L60 : Y/CbCr */
|
||
|
|
OMX_SEC_COLOR_Format10bitYUV420SemiPlanarSBWC_L80 = 0x7F000027, /* SBWC 10B L80 : Y/CbCr */
|
||
|
|
|
||
|
|
/* to copy a encoded data for drm component using gsc or fimc */
|
||
|
|
OMX_SEC_COLOR_FormatEncodedData = OMX_COLOR_FormatYCbYCr,
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
|
||
|
|
OMX_COLOR_Format32BitRGBA8888 = 0x7F00A000,
|
||
|
|
OMX_SEC_COLOR_FormatNV12Tiled = 0x7FC00002, /* unused */
|
||
|
|
OMX_COLOR_FormatYUV420Flexible = 0x7F420888,
|
||
|
|
|
||
|
|
// 10-bit or 12-bit YUV format, LSB-justified (0's on higher bits)
|
||
|
|
OMX_COLOR_FormatYUV420Planar16 = 0x7F42016B, /* P010 */
|
||
|
|
#endif
|
||
|
|
}EXYNOS_OMX_COLOR_FORMATTYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_SUPPORTFORMAT_TYPE
|
||
|
|
{
|
||
|
|
supportFormat_0 = 0x00,
|
||
|
|
supportFormat_1,
|
||
|
|
supportFormat_2,
|
||
|
|
supportFormat_3,
|
||
|
|
supportFormat_4,
|
||
|
|
supportFormat_5,
|
||
|
|
supportFormat_6,
|
||
|
|
supportFormat_7,
|
||
|
|
} EXYNOS_OMX_SUPPORTFORMAT_TYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_BUFFERPROCESS_TYPE
|
||
|
|
{
|
||
|
|
BUFFER_DEFAULT = 0x00,
|
||
|
|
BUFFER_COPY = 0x01,
|
||
|
|
BUFFER_SHARE = 0x02,
|
||
|
|
BUFFER_COPY_FORCE = 0x10,
|
||
|
|
} EXYNOS_OMX_BUFFERPROCESS_TYPE;
|
||
|
|
|
||
|
|
#ifdef USE_S3D_SUPPORT
|
||
|
|
typedef enum _EXYNOS_OMX_FPARGMT_TYPE
|
||
|
|
{
|
||
|
|
OMX_SEC_FPARGMT_INVALID = -1,
|
||
|
|
OMX_SEC_FPARGMT_CHECKERBRD_INTERL = 0x00,
|
||
|
|
OMX_SEC_FPARGMT_COLUMN_INTERL = 0x01,
|
||
|
|
OMX_SEC_FPARGMT_ROW_INTERL = 0x02,
|
||
|
|
OMX_SEC_FPARGMT_SIDE_BY_SIDE = 0x03,
|
||
|
|
OMX_SEC_FPARGMT_TOP_BOTTOM = 0x04,
|
||
|
|
OMX_SEC_FPARGMT_TEMPORAL_INTERL = 0x05,
|
||
|
|
OMX_SEC_FPARGMT_NONE = 0x0A
|
||
|
|
} EXYNOS_OMX_FPARGMT_TYPE;
|
||
|
|
#endif
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_EVENTTYPE
|
||
|
|
{
|
||
|
|
OMX_EventVendorStart = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
OMX_EventDataSpaceChanged,
|
||
|
|
#endif
|
||
|
|
#ifdef USE_S3D_SUPPORT
|
||
|
|
OMX_EventS3DInformation,
|
||
|
|
#endif
|
||
|
|
} EXYNOS_OMX_EVENTTYPE;
|
||
|
|
|
||
|
|
typedef enum __EVENT_COMMAD_TYPE {
|
||
|
|
EVENT_CMD_STATE_TO_LOAD_STATE,
|
||
|
|
EVENT_CMD_STATE_TO_IDLE_STATE,
|
||
|
|
EVENT_CMD_ENABLE_INPUT_PORT,
|
||
|
|
EVENT_CMD_ENABLE_OUTPUT_PORT,
|
||
|
|
EVENT_CMD_DISABLE_INPUT_PORT,
|
||
|
|
EVENT_CMD_DISABLE_OUTPUT_PORT,
|
||
|
|
} EVENT_COMMAD_TYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_METADATA_TYPE {
|
||
|
|
METADATA_TYPE_DISABLED = 0x0000, /* 1. data buffer(ex: yuv, rgb) */
|
||
|
|
METADATA_TYPE_DATA = 0x0001, /* 2. uses meta struct(type, [fd|handle|id]) */
|
||
|
|
METADATA_TYPE_HANDLE = 0x0002, /* 3. naitve handle(fd) */
|
||
|
|
|
||
|
|
METADATA_TYPE_BUFFER_LOCK = 0x0100, /* need to lock to get va */
|
||
|
|
METADATA_TYPE_BUFFER_ID = 0x1000, /* need to get fd from id */
|
||
|
|
|
||
|
|
METADATA_TYPE_GRAPHIC = (METADATA_TYPE_DATA | METADATA_TYPE_BUFFER_LOCK), /* 4. uses meta struct(type, handle) */
|
||
|
|
METADATA_TYPE_GRAPHIC_HANDLE = (METADATA_TYPE_HANDLE | METADATA_TYPE_BUFFER_LOCK), /* 5. graphic buffer handle(fd) */
|
||
|
|
METADATA_TYPE_UBM_BUFFER = (METADATA_TYPE_DATA | METADATA_TYPE_BUFFER_LOCK | METADATA_TYPE_BUFFER_ID), /* 6. uses meta struct(type, id) */
|
||
|
|
} EXYNOS_METADATA_TYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_VIDEO_CONTROLRATETYPE {
|
||
|
|
OMX_Video_ControlRateVendorStart = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_Video_ControlRateConstantVTCall = 0x7F000001,
|
||
|
|
} EXYNOS_OMX_VIDEO_CONTROLRATETYPE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_PRIORITYMGMTTYPE
|
||
|
|
{
|
||
|
|
OMX_U32 nGroupPriority; /* the value 0 represents the highest priority */
|
||
|
|
/* for a group of components */
|
||
|
|
OMX_U32 nGroupID;
|
||
|
|
} EXYNOS_OMX_PRIORITYMGMTTYPE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PROFILELEVEL
|
||
|
|
{
|
||
|
|
OMX_S32 profile;
|
||
|
|
OMX_S32 level;
|
||
|
|
} EXYNOS_OMX_VIDEO_PROFILELEVEL;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_LOCK_RANGE
|
||
|
|
{
|
||
|
|
OMX_U32 nWidth;
|
||
|
|
OMX_U32 nHeight;
|
||
|
|
OMX_COLOR_FORMATTYPE eColorFormat;
|
||
|
|
} EXYNOS_OMX_LOCK_RANGE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_PORTMEMTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bNeedContigMem;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_PORTMEMTYPE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_CONFIG_BUFFERINFO {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_PTR OMX_IN pVirAddr;
|
||
|
|
OMX_S32 OMX_OUT fd;
|
||
|
|
} EXYNOS_OMX_VIDEO_CONFIG_BUFFERINFO;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_DTSMODE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_BOOL bDTSMode;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_DTSMODE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_THUMBNAILMODE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bEnable;
|
||
|
|
} EXYNOS_OMX_VIDEO_THUMBNAILMODE;
|
||
|
|
|
||
|
|
typedef struct _OMX_VIDEO_QPRANGE {
|
||
|
|
OMX_U32 nMinQP;
|
||
|
|
OMX_U32 nMaxQP;
|
||
|
|
} OMX_VIDEO_QPRANGE;
|
||
|
|
|
||
|
|
typedef struct _OMX_VIDEO_QPRANGETYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_VIDEO_QPRANGE qpRangeI;
|
||
|
|
OMX_VIDEO_QPRANGE qpRangeP;
|
||
|
|
OMX_VIDEO_QPRANGE qpRangeB; /* H.264, HEVC, MPEG4 */
|
||
|
|
} OMX_VIDEO_QPRANGETYPE;
|
||
|
|
|
||
|
|
typedef struct __OMX_VIDEO_PARAM_CHROMA_QP_OFFSET { /* H.264, HEVC */
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_S32 nCr;
|
||
|
|
OMX_S32 nCb;
|
||
|
|
} OMX_VIDEO_PARAM_CHROMA_QP_OFFSET;
|
||
|
|
|
||
|
|
/* Temporal SVC */
|
||
|
|
/* Maximum number of temporal layers */
|
||
|
|
#define OMX_VIDEO_MAX_TEMPORAL_LAYERS 7
|
||
|
|
#define OMX_VIDEO_MAX_TEMPORAL_LAYERS_WITH_LTR 3
|
||
|
|
#define OMX_VIDEO_MAX_AVC_TEMPORAL_LAYERS 7
|
||
|
|
#define OMX_VIDEO_MAX_AVC_TEMPORAL_LAYERS_FOR_B (OMX_VIDEO_MAX_AVC_TEMPORAL_LAYERS - 1)
|
||
|
|
#define OMX_VIDEO_MAX_HEVC_TEMPORAL_LAYERS 7
|
||
|
|
#define OMX_VIDEO_MAX_HEVC_TEMPORAL_LAYERS_FOR_B (OMX_VIDEO_MAX_HEVC_TEMPORAL_LAYERS - 1)
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_HIERARCHICAL_CODING_TYPE
|
||
|
|
{
|
||
|
|
EXYNOS_OMX_Hierarchical_P = 0x00,
|
||
|
|
EXYNOS_OMX_Hierarchical_B,
|
||
|
|
} EXYNOS_OMX_HIERARCHICAL_CODING_TYPE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_ENABLE_TEMPORALSVC {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bEnableTemporalSVC;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_ENABLE_TEMPORALSVC;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_CONFIG_TEMPORALSVC {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nKeyFrameInterval;
|
||
|
|
OMX_U32 nTemporalLayerCount;
|
||
|
|
OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_MAX_TEMPORAL_LAYERS];
|
||
|
|
OMX_U32 nMinQuantizer;
|
||
|
|
OMX_U32 nMaxQuantizer;
|
||
|
|
} EXYNOS_OMX_VIDEO_CONFIG_TEMPORALSVC;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_BLUR_MODE
|
||
|
|
{
|
||
|
|
BLUR_MODE_NONE = 0x00,
|
||
|
|
BLUR_MODE_DOWNUP = 0x01,
|
||
|
|
BLUR_MODE_COEFFICIENT = 0x02,
|
||
|
|
} EXYNOS_OMX_BLUR_MODE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_BLUR_RESOL
|
||
|
|
{
|
||
|
|
BLUR_RESOL_240 = 426 * 240, /* 426 x 240 */
|
||
|
|
BLUR_RESOL_480 = 854 * 480, /* 854 x 480 */
|
||
|
|
BLUR_RESOL_720 = 1280 * 720, /* 1280 x 720 */
|
||
|
|
BLUR_RESOL_960 = 1920 * 960, /* 1920 x 960 */
|
||
|
|
BLUR_RESOL_1080 = 1920 * 1080, /* 1920 x 1080 */
|
||
|
|
} EXYNOS_OMX_BLUR_RESOL;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_ENABLE_BLURFILTER {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bUseBlurFilter;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_ENABLE_BLURFILTER;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_CONFIG_BLURINFO {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
EXYNOS_OMX_BLUR_MODE eBlurMode;
|
||
|
|
EXYNOS_OMX_BLUR_RESOL eTargetResol;
|
||
|
|
} EXYNOS_OMX_VIDEO_CONFIG_BLURINFO;
|
||
|
|
/* ROI Information */
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_CONFIG_ROIINFO {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_S32 nUpperQpOffset;
|
||
|
|
OMX_S32 nLowerQpOffset;
|
||
|
|
OMX_BOOL bUseRoiInfo;
|
||
|
|
OMX_S32 nRoiMBInfoSize;
|
||
|
|
OMX_PTR pRoiMBInfo;
|
||
|
|
} EXYNOS_OMX_VIDEO_CONFIG_ROIINFO;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_ENABLE_ROIINFO {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bEnableRoiInfo;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_ENABLE_ROIINFO;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_ROTATION_TYPE
|
||
|
|
{
|
||
|
|
ROTATE_0 = 0,
|
||
|
|
ROTATE_90 = 90,
|
||
|
|
ROTATE_180 = 180,
|
||
|
|
ROTATE_270 = 270,
|
||
|
|
} EXYNOS_OMX_ROTATION_TYPE;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_ROTATION_INFO {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
EXYNOS_OMX_ROTATION_TYPE eRotationType;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_ROTATION_INFO;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_REORDERMODE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_BOOL bReorderMode;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_REORDERMODE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_IMG_CROP_PORT
|
||
|
|
{
|
||
|
|
IMG_CROP_INPUT_PORT = 0x00, //OMX_IndexConfigCommonInputCrop
|
||
|
|
IMG_CROP_OUTPUT_PORT, //OMX_IndexConfigCommonOutputCrop
|
||
|
|
IMG_CROP_PORT_MAX,
|
||
|
|
} EXYNOS_OMX_IMG_CROP_PORT;
|
||
|
|
|
||
|
|
/* EXYNOS_OMX_IMG_INFO */
|
||
|
|
/* nStride
|
||
|
|
* ------------------------------------
|
||
|
|
* | nImageWidth | padding |
|
||
|
|
* | | xxxxxxx |
|
||
|
|
* | (top.left)---------| xxxxxxx |
|
||
|
|
* | | width | xxxxxxx |
|
||
|
|
* nImageHeight | | cccccc | xxxxxxx |
|
||
|
|
* | height | cccccc | xxxxxxx | nSliceHeight
|
||
|
|
* | | cccccc | xxxxxxx |
|
||
|
|
* | ---------| xxxxxxx |
|
||
|
|
* --|--------------------| xxxxxxx |
|
||
|
|
* | xxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
||
|
|
* ----------------------------------
|
||
|
|
*/
|
||
|
|
typedef struct __EXYNOS_OMX_IMG_INFO {
|
||
|
|
OMX_S32 nStride;
|
||
|
|
OMX_S32 nSliceHeight;
|
||
|
|
OMX_S32 nImageWidth;
|
||
|
|
OMX_S32 nImageHeight;
|
||
|
|
|
||
|
|
/* crop */
|
||
|
|
OMX_S32 nLeft;
|
||
|
|
OMX_S32 nTop;
|
||
|
|
OMX_S32 nWidth;
|
||
|
|
OMX_S32 nHeight;
|
||
|
|
} EXYNOS_OMX_IMG_INFO;
|
||
|
|
|
||
|
|
typedef OMX_CONFIG_BOOLEANTYPE EXYNOS_OMX_VIDEO_PARAM_IMAGE_CROP;
|
||
|
|
|
||
|
|
// codec specific
|
||
|
|
typedef enum _EXYNOS_OMX_VIDEO_CODINGTYPE {
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
OMX_VIDEO_CodingVP9 = OMX_VIDEO_CodingVP8 + 1, /**< Google VP9 */
|
||
|
|
OMX_VIDEO_CodingHEVC, /**< ITU H.265/HEVC */
|
||
|
|
#endif
|
||
|
|
OMX_VIDEO_VendorCodingMAX = 0x7FFFFFFF,
|
||
|
|
} EXYNOS_OMX_VIDEO_CODINGTYPE;
|
||
|
|
|
||
|
|
/* for AVC */
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
typedef enum _EXYNOS_OMX_VIDEO_AVCPROFILETYPE {
|
||
|
|
OMX_VIDEO_AVCProfileConstrainedBaseline = 0x10000,
|
||
|
|
OMX_VIDEO_AVCProfileConstrainedHigh = 0x80000,
|
||
|
|
} OMX_VIDEO_AVCPROFILEEXTTYPE;
|
||
|
|
|
||
|
|
typedef enum _EXYNOS_OMX_VIDEO_AVCLEVELTYPE {
|
||
|
|
OMX_VIDEO_AVCLevel52 = 0x10000, /**< Level 5.2 */
|
||
|
|
} EXYNOS_OMX_VIDEO_AVCLEVELTYPE;
|
||
|
|
#endif
|
||
|
|
// AVC end
|
||
|
|
|
||
|
|
/* for Mpeg4 */
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
typedef enum _EXYNOS_OMX_VIDEO_MPEG4LEVELTYPE {
|
||
|
|
OMX_VIDEO_MPEG4Level3b = 0x18, /**< Level 3a */
|
||
|
|
OMX_VIDEO_MPEG4Level6 = 0x100, /**< Level 6 */
|
||
|
|
} EXYNOS_OMX_VIDEO_MPEG4LEVELTYPE;
|
||
|
|
#endif
|
||
|
|
// Mpeg4 end
|
||
|
|
|
||
|
|
/* for Mpeg2 */
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
typedef enum _EXYNOS_OMX_VIDEO_MPEG2LEVELTYPE {
|
||
|
|
OMX_VIDEO_MPEG2LevelHP = OMX_VIDEO_MPEG2LevelHL + 1, /**< HighP Level */
|
||
|
|
} EXYNOS_OMX_VIDEO_MPEG2LEVELTYPE;
|
||
|
|
#endif
|
||
|
|
// Mpeg2 end
|
||
|
|
|
||
|
|
/* for HEVC */
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
typedef enum _OMX_VIDEO_HEVCPROFILETYPE {
|
||
|
|
OMX_VIDEO_HEVCProfileUnknown = 0x0,
|
||
|
|
OMX_VIDEO_HEVCProfileMain = 0x1, /**< Main profile */
|
||
|
|
OMX_VIDEO_HEVCProfileMain10 = 0x2, /**< Main 10 profile */
|
||
|
|
OMX_VIDEO_HEVCProfileMainStillPicture = 0x4, /**< Main Still Picture */
|
||
|
|
// Main10 profile with HDR SEI support.
|
||
|
|
OMX_VIDEO_HEVCProfileMain10HDR10 = 0x1000, /**< Main10 profile with HDR SEI support */
|
||
|
|
OMX_VIDEO_HEVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_HEVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_VIDEO_HEVCProfileMax = 0x7FFFFFFF
|
||
|
|
} OMX_VIDEO_HEVCPROFILETYPE;
|
||
|
|
|
||
|
|
/** HEVC Level enum type */
|
||
|
|
typedef enum _OMX_VIDEO_HEVCLEVELTYPE {
|
||
|
|
OMX_VIDEO_HEVCLevelUnknown = 0x00000000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel1 = 0x00000001, /**< Level 1 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel1 = 0x00000002,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel2 = 0x00000004, /**< Level 2 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel2 = 0x00000008,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel21 = 0x00000010, /**< Level 2.1 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel21 = 0x00000020,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel3 = 0x00000040, /**< Level 3 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel3 = 0x00000080,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel31 = 0x00000100, /**< Level 3.1 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel31 = 0x00000200,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel4 = 0x00000400, /**< Level 4 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel4 = 0x00000800,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel41 = 0x00001000, /**< Level 4.1 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel41 = 0x00002000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel5 = 0x00004000, /**< Level 5 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel5 = 0x00008000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel51 = 0x00010000, /**< Level 5.1 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel51 = 0x00020000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel52 = 0x00040000, /**< Level 5.2 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel52 = 0x00080000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel6 = 0x00100000, /**< Level 6 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel6 = 0x00200000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel61 = 0x00400000, /**< Level 6.1 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel61 = 0x00800000,
|
||
|
|
OMX_VIDEO_HEVCMainTierLevel62 = 0x01000000, /**< Level 6.2 */
|
||
|
|
OMX_VIDEO_HEVCHighTierLevel62 = 0x02000000,
|
||
|
|
OMX_VIDEO_HEVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_HEVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_VIDEO_HEVCHighMAX = 0x7FFFFFFF
|
||
|
|
} OMX_VIDEO_HEVCLEVELTYPE;
|
||
|
|
|
||
|
|
/** Structure for controlling HEVC video encoding and decoding */
|
||
|
|
typedef struct _OMX_VIDEO_PARAM_HEVCTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_VIDEO_HEVCPROFILETYPE eProfile;
|
||
|
|
OMX_VIDEO_HEVCLEVELTYPE eLevel;
|
||
|
|
OMX_U32 nKeyFrameInterval; // distance between consecutive I-frames (including one
|
||
|
|
// of the I frames). 0 means interval is unspecified and
|
||
|
|
// can be freely chosen by the codec. 1 means a stream of
|
||
|
|
// only I frames.
|
||
|
|
} OMX_VIDEO_PARAM_HEVCTYPE;
|
||
|
|
#endif // hevc end
|
||
|
|
|
||
|
|
/* for VP9 */
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
typedef enum _OMX_VIDEO_VP9PROFILETYPE {
|
||
|
|
OMX_VIDEO_VP9Profile0 = 0x0,
|
||
|
|
OMX_VIDEO_VP9Profile1 = 0x1,
|
||
|
|
OMX_VIDEO_VP9Profile2 = 0x2,
|
||
|
|
OMX_VIDEO_VP9Profile3 = 0x4,
|
||
|
|
// HDR profiles also support passing HDR metadata
|
||
|
|
OMX_VIDEO_VP9Profile2HDR = 0x1000,
|
||
|
|
OMX_VIDEO_VP9Profile3HDR = 0x2000,
|
||
|
|
OMX_VIDEO_VP9Profile2HDR10Plus = 0x4000,
|
||
|
|
OMX_VIDEO_VP9Profile3HDR10Plus = 0x8000,
|
||
|
|
OMX_VIDEO_VP9ProfileUnknown = 0x6EFFFFFF,
|
||
|
|
OMX_VIDEO_VP9ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_VP9ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_VIDEO_VP9ProfileMax = 0x7FFFFFFF
|
||
|
|
} OMX_VIDEO_VP9PROFILETYPE;
|
||
|
|
|
||
|
|
/* VP9 levels */
|
||
|
|
typedef enum _OMX_VIDEO_VP9LEVELTYPE {
|
||
|
|
OMX_VIDEO_VP9Level1 = 0x0,
|
||
|
|
OMX_VIDEO_VP9Level11 = 0x1,
|
||
|
|
OMX_VIDEO_VP9Level2 = 0x2,
|
||
|
|
OMX_VIDEO_VP9Level21 = 0x4,
|
||
|
|
OMX_VIDEO_VP9Level3 = 0x8,
|
||
|
|
OMX_VIDEO_VP9Level31 = 0x10,
|
||
|
|
OMX_VIDEO_VP9Level4 = 0x20,
|
||
|
|
OMX_VIDEO_VP9Level41 = 0x40,
|
||
|
|
OMX_VIDEO_VP9Level5 = 0x80,
|
||
|
|
OMX_VIDEO_VP9Level51 = 0x100,
|
||
|
|
OMX_VIDEO_VP9Level52 = 0x200,
|
||
|
|
OMX_VIDEO_VP9Level6 = 0x400,
|
||
|
|
OMX_VIDEO_VP9Level61 = 0x800,
|
||
|
|
OMX_VIDEO_VP9Level62 = 0x1000,
|
||
|
|
OMX_VIDEO_VP9LevelUnknown = 0x6EFFFFFF,
|
||
|
|
OMX_VIDEO_VP9LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_VP9LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_VIDEO_VP9LevelMax = 0x7FFFFFFF
|
||
|
|
} OMX_VIDEO_VP9LEVELTYPE;
|
||
|
|
|
||
|
|
typedef struct _OMX_VIDEO_PARAM_VP9TYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_VIDEO_VP9PROFILETYPE eProfile;
|
||
|
|
OMX_VIDEO_VP9LEVELTYPE eLevel;
|
||
|
|
OMX_BOOL bErrorResilientMode;
|
||
|
|
} OMX_VIDEO_PARAM_VP9TYPE;
|
||
|
|
#endif // vp9 end
|
||
|
|
#ifndef USE_KHRONOS_OMX_1_2
|
||
|
|
/* WMV codec */
|
||
|
|
/** WMV Profile enum type */
|
||
|
|
typedef enum _OMX_VIDEO_WMVPROFILETYPE {
|
||
|
|
OMX_VIDEO_WMVProfileSimple = 0,
|
||
|
|
OMX_VIDEO_WMVProfileMain,
|
||
|
|
OMX_VIDEO_WMVProfileAdvanced,
|
||
|
|
OMX_VIDEO_WMVProfileUnknown = 0x6EFFFFFF,
|
||
|
|
OMX_VIDEO_WMVProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_WMVProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
} OMX_VIDEO_WMVPROFILETYPE;
|
||
|
|
|
||
|
|
/** WMV Level enum type */
|
||
|
|
typedef enum _OMX_VIDEO_WMVLEVELTYPE {
|
||
|
|
OMX_VIDEO_WMVLevelLow = 0,
|
||
|
|
OMX_VIDEO_WMVLevelMedium,
|
||
|
|
OMX_VIDEO_WMVLevelHigh,
|
||
|
|
OMX_VIDEO_WMVLevelL0,
|
||
|
|
OMX_VIDEO_WMVLevelL1,
|
||
|
|
OMX_VIDEO_WMVLevelL2,
|
||
|
|
OMX_VIDEO_WMVLevelL3,
|
||
|
|
OMX_VIDEO_WMVLevelL4,
|
||
|
|
OMX_VIDEO_WMVLevelUnknown = 0x6EFFFFFF,
|
||
|
|
OMX_VIDEO_WMVLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_WMVLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
} OMX_VIDEO_WMVLEVELTYPE;
|
||
|
|
|
||
|
|
/* VC1 codec */
|
||
|
|
/** VC1 Profile enum type */
|
||
|
|
typedef enum _OMX_VIDEO_VC1PROFILETYPE {
|
||
|
|
OMX_VIDEO_VC1ProfileUnused = 0,
|
||
|
|
OMX_VIDEO_VC1ProfileSimple,
|
||
|
|
OMX_VIDEO_VC1ProfileMain,
|
||
|
|
OMX_VIDEO_VC1ProfileAdvanced,
|
||
|
|
OMX_VIDEO_VC1ProfileUnknown = 0x6EFFFFFF,
|
||
|
|
OMX_VIDEO_VC1ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_VC1ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_VIDEO_VC1ProfileMax
|
||
|
|
} OMX_VIDEO_VC1PROFILETYPE;
|
||
|
|
|
||
|
|
/** VC1 Level enum type */
|
||
|
|
typedef enum _OMX_VIDEO_VC1LEVELTYPE {
|
||
|
|
OMX_VIDEO_VC1LevelUnused = 0,
|
||
|
|
OMX_VIDEO_VC1LevelLow,
|
||
|
|
OMX_VIDEO_VC1LevelMedium,
|
||
|
|
OMX_VIDEO_VC1LevelHigh,
|
||
|
|
OMX_VIDEO_VC1Level0,
|
||
|
|
OMX_VIDEO_VC1Level1,
|
||
|
|
OMX_VIDEO_VC1Level2,
|
||
|
|
OMX_VIDEO_VC1Level3,
|
||
|
|
OMX_VIDEO_VC1Level4,
|
||
|
|
OMX_VIDEO_VC1LevelUnknown = 0x6EFFFFFF,
|
||
|
|
OMX_VIDEO_VC1LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
|
||
|
|
OMX_VIDEO_VC1LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
|
||
|
|
OMX_VIDEO_VC1LevelMax
|
||
|
|
} OMX_VIDEO_VC1LEVELTYPE;
|
||
|
|
|
||
|
|
/** Structure for controlling VC1 video encoding and decoding */
|
||
|
|
typedef struct _OMX_VIDEO_PARAM_VC1TYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_VIDEO_VC1PROFILETYPE eProfile;
|
||
|
|
OMX_VIDEO_VC1LEVELTYPE eLevel;
|
||
|
|
} OMX_VIDEO_PARAM_VC1TYPE;
|
||
|
|
#endif // USE_KHRONOS_OMX_1_2
|
||
|
|
// codec specific end
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// for android
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PRIMARIES {
|
||
|
|
OMX_U16 x;
|
||
|
|
OMX_U16 y;
|
||
|
|
} EXYNOS_OMX_VIDEO_PRIMARIES;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_HDRSTATICINFO {
|
||
|
|
OMX_U32 nMaxPicAverageLight;
|
||
|
|
OMX_U32 nMaxContentLight;
|
||
|
|
OMX_U32 nMaxDisplayLuminance;
|
||
|
|
OMX_U32 nMinDisplayLuminance;
|
||
|
|
|
||
|
|
EXYNOS_OMX_VIDEO_PRIMARIES red;
|
||
|
|
EXYNOS_OMX_VIDEO_PRIMARIES green;
|
||
|
|
EXYNOS_OMX_VIDEO_PRIMARIES blue;
|
||
|
|
EXYNOS_OMX_VIDEO_PRIMARIES white;
|
||
|
|
} EXYNOS_OMX_VIDEO_HDRSTATICINFO;
|
||
|
|
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_COLORASPECTS {
|
||
|
|
OMX_U32 nRangeType;
|
||
|
|
OMX_U32 nPrimaryType;
|
||
|
|
OMX_U32 nTransferType;
|
||
|
|
OMX_U32 nCoeffType;
|
||
|
|
OMX_U32 nDataSpace;
|
||
|
|
} EXYNOS_OMX_VIDEO_COLORASPECTS;
|
||
|
|
|
||
|
|
#define MAX_HDR10PLUS_SIZE 1024
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_HDR10PLUS_INFO {
|
||
|
|
OMX_BOOL bOccupied;
|
||
|
|
OMX_U32 nTag;
|
||
|
|
OMX_PTR pHDR10PlusInfo;
|
||
|
|
} EXYNOS_OMX_VIDEO_HDR10PLUS_INFO;
|
||
|
|
|
||
|
|
#ifdef USE_KHRONOS_OMX_HEADER
|
||
|
|
/**
|
||
|
|
* Structure for configuring video compression intra refresh period
|
||
|
|
*
|
||
|
|
* STRUCT MEMBERS:
|
||
|
|
* nSize : Size of the structure in bytes
|
||
|
|
* nVersion : OMX specification version information
|
||
|
|
* nPortIndex : Port that this structure applies to
|
||
|
|
* nRefreshPeriod : Intra refreh period in frames. Value 0 means disable intra refresh
|
||
|
|
*/
|
||
|
|
typedef struct _OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nRefreshPeriod;
|
||
|
|
} OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE;
|
||
|
|
|
||
|
|
/** Maximum number of VP8 temporal layers */
|
||
|
|
#define OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS 3
|
||
|
|
|
||
|
|
/** VP8 temporal layer patterns */
|
||
|
|
typedef enum _OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE {
|
||
|
|
OMX_VIDEO_VPXTemporalLayerPatternNone = 0,
|
||
|
|
OMX_VIDEO_VPXTemporalLayerPatternWebRTC = 1,
|
||
|
|
OMX_VIDEO_VPXTemporalLayerPatternMax = 0x7FFFFFFF
|
||
|
|
} OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Android specific VP8/VP9 encoder params
|
||
|
|
*
|
||
|
|
* STRUCT MEMBERS:
|
||
|
|
* nSize : Size of the structure in bytes
|
||
|
|
* nVersion : OMX specification version information
|
||
|
|
* nPortIndex : Port that this structure applies to
|
||
|
|
* nKeyFrameInterval : Key frame interval in frames
|
||
|
|
* eTemporalPattern : Type of temporal layer pattern
|
||
|
|
* nTemporalLayerCount : Number of temporal coding layers
|
||
|
|
* nTemporalLayerBitrateRatio : Bitrate ratio allocation between temporal
|
||
|
|
* streams in percentage
|
||
|
|
* nMinQuantizer : Minimum (best quality) quantizer
|
||
|
|
* nMaxQuantizer : Maximum (worst quality) quantizer
|
||
|
|
*/
|
||
|
|
typedef struct _OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nKeyFrameInterval; // distance between consecutive key_frames (including one
|
||
|
|
// of the key_frames). 0 means interval is unspecified and
|
||
|
|
// can be freely chosen by the codec. 1 means a stream of
|
||
|
|
// only key_frames.
|
||
|
|
OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE eTemporalPattern;
|
||
|
|
OMX_U32 nTemporalLayerCount;
|
||
|
|
OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS];
|
||
|
|
OMX_U32 nMinQuantizer;
|
||
|
|
OMX_U32 nMaxQuantizer;
|
||
|
|
} OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE;
|
||
|
|
|
||
|
|
/** Structure to define if dependent slice segments should be used */
|
||
|
|
typedef struct _OMX_VIDEO_SLICESEGMENTSTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bDepedentSegments;
|
||
|
|
OMX_BOOL bEnableLoopFilterAcrossSlices;
|
||
|
|
} OMX_VIDEO_SLICESEGMENTSTYPE;
|
||
|
|
|
||
|
|
#define OMX_MAX_STRINGVALUE_SIZE OMX_MAX_STRINGNAME_SIZE
|
||
|
|
#define OMX_MAX_ANDROID_VENDOR_PARAMCOUNT 32
|
||
|
|
|
||
|
|
typedef enum _OMX_ANDROID_VENDOR_VALUETYPE {
|
||
|
|
OMX_AndroidVendorValueInt32 = 0, /*<< int32_t value */
|
||
|
|
OMX_AndroidVendorValueInt64, /*<< int64_t value */
|
||
|
|
OMX_AndroidVendorValueString, /*<< string value */
|
||
|
|
OMX_AndroidVendorValueEndUnused,
|
||
|
|
} OMX_ANDROID_VENDOR_VALUETYPE;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Structure describing a single value of an Android vendor extension.
|
||
|
|
*
|
||
|
|
* STRUCTURE MEMBERS:
|
||
|
|
* cKey : parameter value name.
|
||
|
|
* eValueType : parameter value type
|
||
|
|
* bSet : if false, the parameter is not set (for OMX_GetConfig) or is unset (OMX_SetConfig)
|
||
|
|
* if true, the parameter is set to the corresponding value below
|
||
|
|
* nInt64 : int64 value
|
||
|
|
* cString : string value
|
||
|
|
*/
|
||
|
|
typedef struct _OMX_CONFIG_ANDROID_VENDOR_PARAMTYPE {
|
||
|
|
OMX_U8 cKey[OMX_MAX_STRINGNAME_SIZE];
|
||
|
|
OMX_ANDROID_VENDOR_VALUETYPE eValueType;
|
||
|
|
OMX_BOOL bSet;
|
||
|
|
union {
|
||
|
|
OMX_S32 nInt32;
|
||
|
|
OMX_S64 nInt64;
|
||
|
|
OMX_U8 cString[OMX_MAX_STRINGVALUE_SIZE];
|
||
|
|
};
|
||
|
|
} OMX_CONFIG_ANDROID_VENDOR_PARAMTYPE;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* OMX_CONFIG_ANDROID_VENDOR_EXTENSIONTYPE is the structure for an Android vendor extension
|
||
|
|
* supported by the component. This structure enumerates the various extension parameters and their
|
||
|
|
* values.
|
||
|
|
*
|
||
|
|
* Android vendor extensions have a name and one or more parameter values - each with a string key -
|
||
|
|
* that are set together. The values are exposed to Android applications via a string key that is
|
||
|
|
* the concatenation of 'vendor', the extension name and the parameter key, each separated by dot
|
||
|
|
* (.), with any trailing '.value' suffix(es) removed (though optionally allowed).
|
||
|
|
*
|
||
|
|
* Extension names and parameter keys are subject to the following rules:
|
||
|
|
* - Each SHALL contain a set of lowercase alphanumeric (underscore allowed) tags separated by
|
||
|
|
* dot (.) or dash (-).
|
||
|
|
* - The first character of the first tag, and any tag following a dot SHALL not start with a
|
||
|
|
* digit.
|
||
|
|
* - Tags 'value', 'vendor', 'omx' and 'android' (even if trailed and/or followed by any number
|
||
|
|
* of underscores) are prohibited in the extension name.
|
||
|
|
* - Tags 'vendor', 'omx' and 'android' (even if trailed and/or followed by any number
|
||
|
|
* of underscores) are prohibited in parameter keys.
|
||
|
|
* - The tag 'value' (even if trailed and/or followed by any number
|
||
|
|
* of underscores) is prohibited in parameter keys with the following exception:
|
||
|
|
* the parameter key may be exactly 'value'
|
||
|
|
* - The parameter key for extensions with a single parameter value SHALL be 'value'
|
||
|
|
* - No two extensions SHALL have the same name
|
||
|
|
* - No extension's name SHALL start with another extension's NAME followed by a dot (.)
|
||
|
|
* - No two parameters of an extension SHALL have the same key
|
||
|
|
*
|
||
|
|
* This config can be used with both OMX_GetConfig and OMX_SetConfig. In the OMX_GetConfig
|
||
|
|
* case, the caller specifies nIndex and nParamSizeUsed. The component fills in cName,
|
||
|
|
* eDir and nParamCount. Additionally, if nParamSizeUsed is not less than nParamCount, the
|
||
|
|
* component fills out the parameter values (nParam) with the current values for each parameter
|
||
|
|
* of the vendor extension.
|
||
|
|
*
|
||
|
|
* The value of nIndex goes from 0 to N-1, where N is the number of Android vendor extensions
|
||
|
|
* supported by the component. The component does not need to report N as the caller can determine
|
||
|
|
* N by enumerating all extensions supported by the component. The component may not support any
|
||
|
|
* extensions. If there are no more extensions, OMX_GetParameter returns OMX_ErrorNoMore. The
|
||
|
|
* component supplies extensions in the order it wants clients to set them.
|
||
|
|
*
|
||
|
|
* The component SHALL return OMX_ErrorNone for all cases where nIndex is less than N (specifically
|
||
|
|
* even in the case of where nParamCount is greater than nParamSizeUsed).
|
||
|
|
*
|
||
|
|
* In the OMX_SetConfig case the field nIndex is ignored. If the component supports an Android
|
||
|
|
* vendor extension with the name in cName, it SHALL configure the parameter values for that
|
||
|
|
* extension according to the parameters in nParam. nParamCount is the number of valid parameters
|
||
|
|
* in the nParam array, and nParamSizeUsed is the size of the nParam array. (nParamSizeUsed
|
||
|
|
* SHALL be at least nParamCount) Parameters that are part of a vendor extension but are not
|
||
|
|
* in the nParam array are assumed to be unset (this is different from not changed).
|
||
|
|
* All parameter values SHALL have distinct keys in nParam (the component can assume that this
|
||
|
|
* is the case. Otherwise, the actual value for the parameters that are multiply defined can
|
||
|
|
* be any of the set values.)
|
||
|
|
*
|
||
|
|
* Return values in case of OMX_SetConfig:
|
||
|
|
* OMX_ErrorUnsupportedIndex: the component does not support the extension specified by cName
|
||
|
|
* OMX_ErrorUnsupportedSetting: the component does not support some or any of the parameters
|
||
|
|
* (names) specified in nParam
|
||
|
|
* OMX_ErrorBadParameter: the parameter is invalid (e.g. nParamCount is greater than
|
||
|
|
* nParamSizeUsed, or some parameter value has invalid type)
|
||
|
|
*
|
||
|
|
* STRUCTURE MEMBERS:
|
||
|
|
* nSize : size of the structure in bytes
|
||
|
|
* nVersion : OMX specification version information
|
||
|
|
* cName : name of vendor extension
|
||
|
|
* nParamCount : the number of parameter values that are part of this vendor extension
|
||
|
|
* nParamSizeUsed : the size of nParam
|
||
|
|
* (must be at least 1 and at most OMX_MAX_ANDROID_VENDOR_PARAMCOUNT)
|
||
|
|
* param : the parameter values
|
||
|
|
*/
|
||
|
|
typedef struct _OMX_CONFIG_ANDROID_VENDOR_EXTENSIONTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nIndex;
|
||
|
|
OMX_U8 cName[OMX_MAX_STRINGNAME_SIZE];
|
||
|
|
OMX_DIRTYPE eDir;
|
||
|
|
OMX_U32 nParamCount;
|
||
|
|
OMX_U32 nParamSizeUsed;
|
||
|
|
OMX_CONFIG_ANDROID_VENDOR_PARAMTYPE param[1];
|
||
|
|
} OMX_CONFIG_ANDROID_VENDOR_EXTENSIONTYPE;
|
||
|
|
|
||
|
|
/** Maximum number of temporal layers supported by AVC/HEVC */
|
||
|
|
#define OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS 8
|
||
|
|
|
||
|
|
/** temporal layer patterns */
|
||
|
|
typedef enum OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE {
|
||
|
|
OMX_VIDEO_AndroidTemporalLayeringPatternNone = 0,
|
||
|
|
// pattern as defined by WebRTC
|
||
|
|
OMX_VIDEO_AndroidTemporalLayeringPatternWebRTC = 1 << 0,
|
||
|
|
// pattern where frames in any layer other than the base layer only depend on at most the very
|
||
|
|
// last frame from each preceding layer (other than the base layer.)
|
||
|
|
OMX_VIDEO_AndroidTemporalLayeringPatternAndroid = 1 << 1,
|
||
|
|
} OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Android specific param for configuration of temporal layering.
|
||
|
|
* Android only supports temporal layering where successive layers each double the
|
||
|
|
* previous layer's framerate.
|
||
|
|
* NOTE: Reading this parameter at run-time SHALL return actual run-time values.
|
||
|
|
*
|
||
|
|
* nSize : Size of the structure in bytes
|
||
|
|
* nVersion : OMX specification version information
|
||
|
|
* nPortIndex : Port that this structure applies to (output port for encoders)
|
||
|
|
* eSupportedPatterns : A bitmask of supported layering patterns
|
||
|
|
* nLayerCountMax : Max number of temporal coding layers supported
|
||
|
|
* by the encoder (must be at least 1, 1 meaning temporal layering
|
||
|
|
* is NOT supported)
|
||
|
|
* nBLayerCountMax : Max number of layers that can contain B frames
|
||
|
|
* (0) to (nLayerCountMax - 1)
|
||
|
|
* ePattern : Layering pattern.
|
||
|
|
* nPLayerCountActual : Number of temporal layers to be coded with non-B frames,
|
||
|
|
* starting from and including the base-layer.
|
||
|
|
* (1 to nLayerCountMax - nBLayerCountActual)
|
||
|
|
* If nPLayerCountActual is 1 and nBLayerCountActual is 0, temporal
|
||
|
|
* layering is disabled. Otherwise, it is enabled.
|
||
|
|
* nBLayerCountActual : Number of temporal layers to be coded with B frames,
|
||
|
|
* starting after non-B layers.
|
||
|
|
* (0 to nBLayerCountMax)
|
||
|
|
* bBitrateRatiosSpecified : Flag to indicate if layer-wise bitrate
|
||
|
|
* distribution is specified.
|
||
|
|
* nBitrateRatios : Bitrate ratio (100 based) per layer (index 0 is base layer).
|
||
|
|
* Honored if bBitrateRatiosSpecified is set.
|
||
|
|
* i.e for 4 layers with desired distribution (25% 25% 25% 25%),
|
||
|
|
* nBitrateRatio = {25, 50, 75, 100, ... }
|
||
|
|
* Values in indices not less than 'the actual number of layers
|
||
|
|
* minus 1' MAY be ignored and assumed to be 100.
|
||
|
|
*/
|
||
|
|
typedef struct OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE eSupportedPatterns;
|
||
|
|
OMX_U32 nLayerCountMax;
|
||
|
|
OMX_U32 nBLayerCountMax;
|
||
|
|
OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE ePattern;
|
||
|
|
OMX_U32 nPLayerCountActual;
|
||
|
|
OMX_U32 nBLayerCountActual;
|
||
|
|
OMX_BOOL bBitrateRatiosSpecified;
|
||
|
|
OMX_U32 nBitrateRatios[OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS];
|
||
|
|
} OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Android specific config for changing the temporal-layer count or
|
||
|
|
* bitrate-distribution at run-time.
|
||
|
|
*
|
||
|
|
* nSize : Size of the structure in bytes
|
||
|
|
* nVersion : OMX specification version information
|
||
|
|
* nPortIndex : Port that this structure applies to (output port for encoders)
|
||
|
|
* ePattern : Layering pattern.
|
||
|
|
* nPLayerCountActual : Number of temporal layers to be coded with non-B frames.
|
||
|
|
* (same OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE limits apply.)
|
||
|
|
* nBLayerCountActual : Number of temporal layers to be coded with B frames.
|
||
|
|
* (same OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE limits apply.)
|
||
|
|
* bBitrateRatiosSpecified : Flag to indicate if layer-wise bitrate
|
||
|
|
* distribution is specified.
|
||
|
|
* nBitrateRatios : Bitrate ratio (100 based, Q16 values) per layer (0 is base layer).
|
||
|
|
* Honored if bBitrateRatiosSpecified is set.
|
||
|
|
* (same OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE limits apply.)
|
||
|
|
*/
|
||
|
|
typedef struct OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE ePattern;
|
||
|
|
OMX_U32 nPLayerCountActual;
|
||
|
|
OMX_U32 nBLayerCountActual;
|
||
|
|
OMX_BOOL bBitrateRatiosSpecified;
|
||
|
|
OMX_U32 nBitrateRatios[OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS];
|
||
|
|
} OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE;
|
||
|
|
|
||
|
|
#endif
|
||
|
|
// android end
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// for custom component
|
||
|
|
typedef struct _EXYNOS_OMX_VIDEO_PARAM_CORRUPTEDHEADER {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_BOOL bDiscardEvent;
|
||
|
|
} EXYNOS_OMX_VIDEO_PARAM_CORRUPTEDHEADER;
|
||
|
|
|
||
|
|
typedef struct _OMX_VIDEO_PARAM_IMG_CONV {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_BOOL bEnable;
|
||
|
|
OMX_U32 nWidth;
|
||
|
|
OMX_U32 nHeight;
|
||
|
|
} OMX_VIDEO_PARAM_IMG_CONV;
|
||
|
|
|
||
|
|
// custom component end
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// for Skype HD
|
||
|
|
typedef struct OMX_VIDEO_PARAM_DRIVERVER {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U64 nDriverVersion;
|
||
|
|
} OMX_VIDEO_PARAM_DRIVERVER;
|
||
|
|
|
||
|
|
typedef struct OMX_VIDEO_CONFIG_MARKLTRFRAME {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nLongTermFrmIdx;
|
||
|
|
} OMX_VIDEO_CONFIG_MARKLTRFRAME;
|
||
|
|
|
||
|
|
typedef struct OMX_VIDEO_CONFIG_USELTRFRAME {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U16 nUsedLTRFrameBM;
|
||
|
|
} OMX_VIDEO_CONFIG_USELTRFRAME;
|
||
|
|
|
||
|
|
typedef struct OMX_VIDEO_CONFIG_QP {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nQP;
|
||
|
|
} OMX_VIDEO_CONFIG_QP;
|
||
|
|
|
||
|
|
typedef struct OMX_VIDEO_CONFIG_BASELAYERPID{
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nPID;
|
||
|
|
} OMX_VIDEO_CONFIG_BASELAYERPID;
|
||
|
|
|
||
|
|
typedef struct __OMX_PARAM_ENC_MAX_TEMPORALLAYER_COUNT {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nMaxCountP;
|
||
|
|
OMX_U32 nMaxCountB;
|
||
|
|
} OMX_PARAM_ENC_MAX_TEMPORALLAYER_COUNT;
|
||
|
|
|
||
|
|
typedef struct __OMX_PARAM_ENC_PREPROCESS {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nResize;
|
||
|
|
OMX_U32 nRotation;
|
||
|
|
} OMX_PARAM_ENC_PREPROCESS;
|
||
|
|
|
||
|
|
typedef struct __OMX_PARAM_ENC_SAR {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_U32 nWidth;
|
||
|
|
OMX_U32 nHeight;
|
||
|
|
} OMX_PARAM_ENC_SAR;
|
||
|
|
|
||
|
|
typedef struct __OMX_CONFIG_ENC_TRIGGER_TS {
|
||
|
|
OMX_U32 nSize;
|
||
|
|
OMX_VERSIONTYPE nVersion;
|
||
|
|
OMX_U32 nPortIndex;
|
||
|
|
OMX_S64 nTimestamp;
|
||
|
|
} OMX_CONFIG_ENC_TRIGGER_TS;
|
||
|
|
|
||
|
|
#ifndef __OMX_EXPORTS
|
||
|
|
#define __OMX_EXPORTS
|
||
|
|
#define EXYNOS_EXPORT_REF __attribute__((visibility("default")))
|
||
|
|
#define EXYNOS_IMPORT_REF __attribute__((visibility("default")))
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|