summaryrefslogtreecommitdiff
path: root/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp')
-rw-r--r--msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp b/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
index 2b6674b..effa433 100644
--- a/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
+++ b/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
@@ -266,6 +266,10 @@ OMX_ERRORTYPE omx_venc::component_init(OMX_STRING role)
m_sIntraRefresh.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
m_sIntraRefresh.eRefreshMode = OMX_VIDEO_IntraRefreshMax;
+ OMX_INIT_STRUCT(&m_sConfigIntraRefresh, OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE);
+ m_sConfigIntraRefresh.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+ m_sConfigIntraRefresh.nRefreshPeriod = 0;
+
if (codec_type == OMX_VIDEO_CodingMPEG4) {
m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_MPEG4ProfileSimple;
m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_MPEG4Level0;
@@ -1850,6 +1854,25 @@ OMX_ERRORTYPE omx_venc::set_config(OMX_IN OMX_HANDLETYPE hComp,
}
break;
}
+ case OMX_IndexConfigAndroidIntraRefresh:
+ {
+ VALIDATE_OMX_PARAM_DATA(configData, OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE);
+ OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE* pParam =
+ (OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE*) configData;
+ if (m_state == OMX_StateLoaded
+ || m_sInPortDef.bEnabled == OMX_FALSE
+ || m_sOutPortDef.bEnabled == OMX_FALSE) {
+ if (!handle->venc_set_config(configData, (OMX_INDEXTYPE)OMX_IndexConfigAndroidIntraRefresh)) {
+ DEBUG_PRINT_ERROR("Failed to set OMX_IndexConfigVideoIntraRefreshType");
+ return OMX_ErrorUnsupportedSetting;
+ }
+ m_sConfigIntraRefresh.nRefreshPeriod = pParam->nRefreshPeriod;
+ } else {
+ DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigAndroidIntraRefresh supported only at start of session");
+ return OMX_ErrorUnsupportedSetting;
+ }
+ break;
+ }
default:
DEBUG_PRINT_ERROR("ERROR: unsupported index %d", (int) configIndex);
break;