aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/OMXVideoEncoderBase.h
diff options
context:
space:
mode:
authorShuduo Sang <shuduo.sang@intel.com>2011-09-13 17:41:41 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:44 -0700
commit19b2ab9f325bdbf3afe530e943fa5a0c0020b308 (patch)
treed831e71b57586df696aa0d6d13763b7a6b6a9008 /videocodec/OMXVideoEncoderBase.h
parent5a87cdf2139ee15c61aaae2988bbea3ae49e6235 (diff)
downloadandroid_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.h56
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_ */