diff options
author | Shuduo Sang <shuduo.sang@intel.com> | 2011-09-13 17:41:41 +0800 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:44 -0700 |
commit | 19b2ab9f325bdbf3afe530e943fa5a0c0020b308 (patch) | |
tree | d831e71b57586df696aa0d6d13763b7a6b6a9008 /videocodec/OMXVideoEncoderBase.h | |
parent | 5a87cdf2139ee15c61aaae2988bbea3ae49e6235 (diff) | |
download | android_hardware_intel_common_omx-components-19b2ab9f325bdbf3afe530e943fa5a0c0020b308.tar.gz android_hardware_intel_common_omx-components-19b2ab9f325bdbf3afe530e943fa5a0c0020b308.tar.bz2 android_hardware_intel_common_omx-components-19b2ab9f325bdbf3afe530e943fa5a0c0020b308.zip |
[PORT FROM R1][omx-components] New OMX IL wrapper based on new encoder library
BZ: 5809
New OMX IL wrapper based on new encoder library
Change-Id: Idd5c9d30eca102d9516504f8be52bbbb8e664ddb
Orig-Change-Id: I7edf2ff47fb27ad0a63586328b765110ef32ddba
Signed-off-by: Weian Chen <weian.chen@intel.com>
Reviewed-on: http://android.intel.com:8080/18324
Tested-by: Sang, Shuduo <shuduo.sang@intel.com>
Reviewed-by: Monnier, OlivierX <olivierx.monnier@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'videocodec/OMXVideoEncoderBase.h')
-rw-r--r-- | videocodec/OMXVideoEncoderBase.h | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/videocodec/OMXVideoEncoderBase.h b/videocodec/OMXVideoEncoderBase.h index 341bb44..705b339 100644 --- a/videocodec/OMXVideoEncoderBase.h +++ b/videocodec/OMXVideoEncoderBase.h @@ -19,14 +19,17 @@ #ifndef OMX_VIDEO_ENCODER_BASE_H_ #define OMX_VIDEO_ENCODER_BASE_H_ - #include "OMXComponentCodecBase.h" #include <IntelBufferSharing.h> -//#include "VideoEncoderInterface.h" +#include <va/va_tpi.h> +#include <va/va_android.h> +#include<VideoEncoderHost.h> using android::sp; using android::BufferShareRegistry; +#define SHARED_BUFFER_CNT 7 + class OMXVideoEncoderBase : public OMXComponentCodecBase { public: OMXVideoEncoderBase(); @@ -57,7 +60,6 @@ protected: DECLARE_HANDLER(OMXVideoEncoderBase, IntelPrivateInfo); DECLARE_HANDLER(OMXVideoEncoderBase, ParamIntelBitrate); DECLARE_HANDLER(OMXVideoEncoderBase, ConfigIntelBitrate); - DECLARE_HANDLER(OMXVideoEncoderBase, ConfigIntelSliceNumbers); DECLARE_HANDLER(OMXVideoEncoderBase, ConfigIntelAIR); DECLARE_HANDLER(OMXVideoEncoderBase, ConfigVideoFramerate); DECLARE_HANDLER(OMXVideoEncoderBase, ConfigVideoIntraVOPRefresh); @@ -65,46 +67,60 @@ protected: DECLARE_HANDLER(OMXVideoEncoderBase, ParamVideoProfileLevelQuerySupported); protected: - virtual OMX_ERRORTYPE EnableBufferSharing(void); - virtual OMX_ERRORTYPE DisableBufferSharing(void); + virtual OMX_ERRORTYPE InitBSMode(void); + virtual OMX_ERRORTYPE DeinitBSMode(void); virtual OMX_ERRORTYPE StartBufferSharing(void); virtual OMX_ERRORTYPE StopBufferSharing(void); - - + virtual OMX_ERRORTYPE SetVideoEncoderParam(); +private: + OMX_ERRORTYPE CheckAndEnableBSMode(); + OMX_ERRORTYPE AllocateSharedBuffers(int width, int height); + OMX_ERRORTYPE UploadSharedBuffers(); + OMX_ERRORTYPE SetBSInfoToPort(); + OMX_ERRORTYPE TriggerBSMode(); protected: - //IVideoEncoder *mVideoEncoder; OMX_VIDEO_PARAM_BITRATETYPE mParamBitrate; OMX_VIDEO_CONFIG_PRI_INFOTYPE mConfigPriInfo; OMX_VIDEO_PARAM_INTEL_BITRATETYPE mParamIntelBitrate; OMX_VIDEO_CONFIG_INTEL_BITRATETYPE mConfigIntelBitrate; - OMX_VIDEO_CONFIG_INTEL_SLICE_NUMBERS mConfigIntelSliceNumbers; OMX_VIDEO_CONFIG_INTEL_AIR mConfigIntelAir; OMX_CONFIG_FRAMERATETYPE mConfigFramerate; -// OMX_VIDEO_PARAM_INTEL_ADAPTIVE_SLICE_CONTROL mParamIntelAdaptiveSliceControl; + OMX_VIDEO_PARAM_INTEL_ADAPTIVE_SLICE_CONTROL mParamIntelAdaptiveSliceControl; OMX_VIDEO_PARAM_PROFILELEVELTYPE mParamProfileLevel; + IVideoEncoder *mVideoEncoder; + VideoParamsCommon *mEncoderParams; + OMX_U32 mFrameInputCount; + OMX_U32 mFrameOutputCount; + OMX_BOOL mFirstFrame; + OMX_BOOL mFrameRetrieved; + + enum { + BS_STATE_INVALID, + BS_STATE_LOADED, + BS_STATE_EXECUTING + } mBsState; + + SharedBufferType *mSharedBufArray; + private: + enum { // OMX_PARAM_PORTDEFINITIONTYPE INPORT_MIN_BUFFER_COUNT = 1, - INPORT_ACTUAL_BUFFER_COUNT = 5, + INPORT_ACTUAL_BUFFER_COUNT = 2, INPORT_BUFFER_SIZE = 1382400, - // OMX_PARAM_PORTDEFINITIONTYPE + // OMX_PARAM_PORTDEFINITIONTYPE OUTPORT_MIN_BUFFER_COUNT = 1, OUTPORT_ACTUAL_BUFFER_COUNT = 2, OUTPORT_BUFFER_SIZE = 1382400, }; - sp<BufferShareRegistry> mBufferSharingLib; - int mBufferSharingCount; - SharedBufferType* mBufferSharingInfo; + sp<BufferShareRegistry> mBsInstance; + OMX_U32 mSharedBufCnt; + OMX_U32 mPFrames; - enum { - BUFFER_SHARING_INVALID, - BUFFER_SHARING_LOADED, - BUFFER_SHARING_EXECUTING - } mBufferSharingState; }; #endif /* OMX_VIDEO_ENCODER_BASE_H_ */ |