diff options
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.cpp | 23 |
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; |