aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbolunliu <bolun.liu@intel.com>2014-05-09 13:57:33 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:59 -0700
commit6b334fd4175f234d24739f75330c50549fb6bed0 (patch)
treee23231f64d713f202199d9e7157788eb471a626d
parent3436b963c46096901e9a9a26e27c83a96919437c (diff)
downloadandroid_hardware_intel_common_omx-components-6b334fd4175f234d24739f75330c50549fb6bed0.tar.gz
android_hardware_intel_common_omx-components-6b334fd4175f234d24739f75330c50549fb6bed0.tar.bz2
android_hardware_intel_common_omx-components-6b334fd4175f234d24739f75330c50549fb6bed0.zip
[PORT FROM MAIN]Port VP8 encode middleware to R44c branch.
BZ: 193452 Port VP8 encode OMX IL to R44c branch. Signed-off-by: bolunliu <bolun.liu@intel.com> Change-Id: I04c59a60c5d8c1e50ed452bd91ce6225d4bfc74e
-rw-r--r--videocodec/OMXVideoEncoderBase.cpp24
-rw-r--r--videocodec/OMXVideoEncoderBase.h4
-rw-r--r--videocodec/OMXVideoEncoderVP8.cpp36
-rw-r--r--videocodec/OMXVideoEncoderVP8.h1
4 files changed, 18 insertions, 47 deletions
diff --git a/videocodec/OMXVideoEncoderBase.cpp b/videocodec/OMXVideoEncoderBase.cpp
index 88cc8b7..a2c2a4a 100644
--- a/videocodec/OMXVideoEncoderBase.cpp
+++ b/videocodec/OMXVideoEncoderBase.cpp
@@ -163,7 +163,7 @@ OMX_ERRORTYPE OMXVideoEncoderBase::InitOutputPort(void) {
memset(&mConfigIntelBitrate, 0, sizeof(mConfigIntelBitrate));
SetTypeHeader(&mConfigIntelBitrate, sizeof(mConfigIntelBitrate));
mConfigIntelBitrate.nPortIndex = OUTPORT_INDEX;
- mConfigIntelBitrate.nMaxEncodeBitrate = 4000 * 1024; // Maximum bitrate
+ mConfigIntelBitrate.nMaxEncodeBitrate = 0; // Maximum bitrate
mConfigIntelBitrate.nTargetPercentage = 95; // Target bitrate as percentage of maximum bitrate; e.g. 95 is 95%
mConfigIntelBitrate.nWindowSize = 0; // Window size in milliseconds allowed for bitrate to reach target
mConfigIntelBitrate.nInitialQP = 0; // Initial QP for I frames
@@ -403,7 +403,7 @@ OMX_ERRORTYPE OMXVideoEncoderBase::BuildHandlerList(void) {
AddHandler((OMX_INDEXTYPE)OMX_IndexStoreMetaDataInBuffers, GetStoreMetaDataInBuffers, SetStoreMetaDataInBuffers);
AddHandler((OMX_INDEXTYPE)OMX_IndexExtSyncEncoding, GetSyncEncoding, SetSyncEncoding);
AddHandler((OMX_INDEXTYPE)OMX_IndexExtPrependSPSPPS, GetPrependSPSPPS, SetPrependSPSPPS);
- AddHandler((OMX_INDEXTYPE)OMX_IndexExtNumberOfTemporalLayer, GetTemporalLayerNumber,SetTemporalLayerNumber);
+ AddHandler((OMX_INDEXTYPE)OMX_IndexExtTemporalLayer, GetTemporalLayer,SetTemporalLayer);
AddHandler((OMX_INDEXTYPE)OMX_IndexExtRequestBlackFramePointer, GetBlackFramePointer, GetBlackFramePointer);
return OMX_ErrorNone;
}
@@ -870,36 +870,36 @@ OMX_ERRORTYPE OMXVideoEncoderBase::SetPrependSPSPPS(OMX_PTR pStructure) {
return OMX_ErrorNone;
};
-OMX_ERRORTYPE OMXVideoEncoderBase::GetTemporalLayerNumber(OMX_PTR pStructure) {
+OMX_ERRORTYPE OMXVideoEncoderBase::GetTemporalLayer(OMX_PTR pStructure) {
OMX_ERRORTYPE ret;
OMX_VIDEO_PARAM_INTEL_TEMPORAL_LAYER* p = static_cast<OMX_VIDEO_PARAM_INTEL_TEMPORAL_LAYER*>(pStructure);
CHECK_TYPE_HEADER(p);
CHECK_PORT_INDEX(p, OUTPORT_INDEX);
- memcpy(p, &mNumberOfTemporalLayer, sizeof(*p));
+ memcpy(p, &mTemporalLayer, sizeof(*p));
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoEncoderBase::SetTemporalLayerNumber(OMX_PTR pStructure) {
+OMX_ERRORTYPE OMXVideoEncoderBase::SetTemporalLayer(OMX_PTR pStructure) {
OMX_ERRORTYPE ret;
OMX_VIDEO_PARAM_INTEL_TEMPORAL_LAYER *p = (OMX_VIDEO_PARAM_INTEL_TEMPORAL_LAYER *)pStructure;
- VideoParamsTemporalLayerNumber TemporalLayerNumber;
+ VideoParamsTemporalLayer TemporalLayer;
OMX_U32 i;
CHECK_TYPE_HEADER(p);
CHECK_PORT_INDEX(p, OUTPORT_INDEX);
- LOGE("SetTemporalLayerNumber (enabled = %d)", p->nNumberOfTemporalLayer);
+ LOGE("SetTemporalLayer (enabled = %d)", p->nNumberOfTemporalLayer);
- TemporalLayerNumber.numberOfLayer = p->nNumberOfTemporalLayer;
- TemporalLayerNumber.nPeriodicity = p->nPeriodicity;
+ TemporalLayer.numberOfLayer = p->nNumberOfTemporalLayer;
+ TemporalLayer.nPeriodicity = p->nPeriodicity;
for(i=0;i<p->nPeriodicity;i++)
- TemporalLayerNumber.nLayerID[i] = p->nLayerID[i];
+ TemporalLayer.nLayerID[i] = p->nLayerID[i];
- if (mVideoEncoder->setParameters(&TemporalLayerNumber) != ENCODE_SUCCESS)
+ if (mVideoEncoder->setParameters(&TemporalLayer) != ENCODE_SUCCESS)
return OMX_ErrorNotReady;
- LOGE("SetTemporalLayerNumber success");
+ LOGE("SetTemporalLayer success");
return OMX_ErrorNone;
}
diff --git a/videocodec/OMXVideoEncoderBase.h b/videocodec/OMXVideoEncoderBase.h
index 790e91f..65717c4 100644
--- a/videocodec/OMXVideoEncoderBase.h
+++ b/videocodec/OMXVideoEncoderBase.h
@@ -69,7 +69,7 @@ protected:
DECLARE_HANDLER(OMXVideoEncoderBase, StoreMetaDataInBuffers);
DECLARE_HANDLER(OMXVideoEncoderBase, SyncEncoding);
DECLARE_HANDLER(OMXVideoEncoderBase, PrependSPSPPS);
- DECLARE_HANDLER(OMXVideoEncoderBase, TemporalLayerNumber);
+ DECLARE_HANDLER(OMXVideoEncoderBase, TemporalLayer);
DECLARE_HANDLER(OMXVideoEncoderBase, BlackFramePointer);
protected:
@@ -83,7 +83,7 @@ protected:
OMX_CONFIG_FRAMERATETYPE mConfigFramerate;
OMX_VIDEO_PARAM_INTEL_ADAPTIVE_SLICE_CONTROL mParamIntelAdaptiveSliceControl;
OMX_VIDEO_PARAM_PROFILELEVELTYPE mParamProfileLevel;
- OMX_VIDEO_PARAM_INTEL_TEMPORAL_LAYER mNumberOfTemporalLayer;
+ OMX_VIDEO_PARAM_INTEL_TEMPORAL_LAYER mTemporalLayer;
IVideoEncoder *mVideoEncoder;
VideoParamsCommon *mEncoderParams;
diff --git a/videocodec/OMXVideoEncoderVP8.cpp b/videocodec/OMXVideoEncoderVP8.cpp
index d952913..67bbfb5 100644
--- a/videocodec/OMXVideoEncoderVP8.cpp
+++ b/videocodec/OMXVideoEncoderVP8.cpp
@@ -40,10 +40,10 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::InitOutputPortFormatSpecific(OMX_PARAM_PORTDEF
paramPortDefinitionOutput->format.video.eCompressionFormat = OMX_VIDEO_CodingVP8;
// OMX_VIDEO_PARAM_INTEL_NUMBER_OF_TEMPORAL_LAYER
- memset(&mNumberOfTemporalLayer, 0, sizeof(mNumberOfTemporalLayer));
- SetTypeHeader(&mNumberOfTemporalLayer, sizeof(mNumberOfTemporalLayer));
- mNumberOfTemporalLayer.nPortIndex = OUTPORT_INDEX;
- mNumberOfTemporalLayer.nNumberOfTemporalLayer = 1;//default value is 1
+ memset(&mTemporalLayer, 0, sizeof(mTemporalLayer));
+ SetTypeHeader(&mTemporalLayer, sizeof(mTemporalLayer));
+ mTemporalLayer.nPortIndex = OUTPORT_INDEX;
+ mTemporalLayer.nNumberOfTemporalLayer = 1;//default value is 1
mParamProfileLevel.eProfile = OMX_VIDEO_VP8ProfileMain;
mParamProfileLevel.eLevel = OMX_VIDEO_VP8Level_Version3;
@@ -208,7 +208,6 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::BuildHandlerList(void) {
OMXVideoEncoderBase::BuildHandlerList();
AddHandler((OMX_INDEXTYPE)OMX_IndexParamVideoVp8, GetParamVideoVp8, SetParamVideoVp8);
AddHandler((OMX_INDEXTYPE)OMX_IndexConfigVideoVp8ReferenceFrame, GetConfigVideoVp8ReferenceFrame, SetConfigVideoVp8ReferenceFrame);
- AddHandler((OMX_INDEXTYPE)OMX_IndexExtVP8ForceKFrame, GetConfigVp8ForceKFrame, SetConfigVp8ForceKFrame);
AddHandler((OMX_INDEXTYPE)OMX_IndexExtVP8MaxFrameSizeRatio, GetConfigVp8MaxFrameSizeRatio, SetConfigVp8MaxFrameSizeRatio);
return OMX_ErrorNone;
@@ -270,33 +269,6 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::SetConfigVideoVp8ReferenceFrame(OMX_PTR pStruc
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoEncoderVP8::GetConfigVp8ForceKFrame(OMX_PTR pStructure) {
-
- return OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE OMXVideoEncoderVP8::SetConfigVp8ForceKFrame(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- Encode_Status retStatus = ENCODE_SUCCESS;
- OMX_VIDEO_CONFIG_INTEL_VP8_FORCE_KFRAME *p = (OMX_VIDEO_CONFIG_INTEL_VP8_FORCE_KFRAME*) pStructure;
- CHECK_TYPE_HEADER(p);
- CHECK_PORT_INDEX(p, OUTPORT_INDEX);
-
- CHECK_SET_CONFIG_STATE();
-
- VideoConfigVP8 configVP8;
- configVP8.force_kf = p->bForceKFrame;
- configVP8.refresh_entropy_probs = 0;
- configVP8.value = 0;
- configVP8.sharpness_level = 2;
-
- retStatus = mVideoEncoder->setConfig(&configVP8);
- if(retStatus != ENCODE_SUCCESS) {
- LOGW("Failed to set vp8 force frame");
- }
- return OMX_ErrorNone;
-}
-
OMX_ERRORTYPE OMXVideoEncoderVP8::GetConfigVp8MaxFrameSizeRatio(OMX_PTR pStructure) {
return OMX_ErrorNone;
diff --git a/videocodec/OMXVideoEncoderVP8.h b/videocodec/OMXVideoEncoderVP8.h
index fbb97df..12b006b 100644
--- a/videocodec/OMXVideoEncoderVP8.h
+++ b/videocodec/OMXVideoEncoderVP8.h
@@ -17,7 +17,6 @@ class OMXVideoEncoderVP8 : public OMXVideoEncoderBase {
virtual OMX_ERRORTYPE SetVideoEncoderParam();
DECLARE_HANDLER(OMXVideoEncoderVP8, ParamVideoVp8);
DECLARE_HANDLER(OMXVideoEncoderVP8, ConfigVideoVp8ReferenceFrame);
- DECLARE_HANDLER(OMXVideoEncoderVP8, ConfigVp8ForceKFrame);
DECLARE_HANDLER(OMXVideoEncoderVP8, ConfigVp8MaxFrameSizeRatio);
private:
enum {