diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-09-28 14:31:03 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-09-28 14:31:03 -0700 |
commit | e7f19cf293022430c25c60c998bacbf4c6e7949e (patch) | |
tree | 11eb7a21575c98c847cffd34995e0e7f37bf4adf /mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp | |
parent | d246bcfd7592838976381c2fdcfbd98018bf14e1 (diff) | |
parent | 3b25618487f1df8b36c4623dfcb132e046cac225 (diff) | |
download | media-e7f19cf293022430c25c60c998bacbf4c6e7949e.tar.gz |
Merge "mm-video-v4l2: Implement set parameter for new QP interface."
Diffstat (limited to 'mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp')
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp index b9febfa6..0f6e5b8c 100644 --- a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp +++ b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp @@ -1029,6 +1029,43 @@ OMX_ERRORTYPE omx_venc::set_parameter break; } + case OMX_QcomIndexParamVideoIPBQPRange: + { + DEBUG_PRINT_LOW("set_parameter: OMX_QcomIndexParamVideoIPBQPRange"); + OMX_QCOM_VIDEO_PARAM_IPB_QPRANGETYPE *session_qp_range = (OMX_QCOM_VIDEO_PARAM_IPB_QPRANGETYPE*) paramData; + if (session_qp_range->nPortIndex == PORT_INDEX_OUT) + { + Prop.id = SWVENC_PROPERTY_ID_QP_RANGE; + Prop.info.qp_range.min_qp_packed = ((session_qp_range->minBQP << 16) | + (session_qp_range->minPQP << 8) | + (session_qp_range->minIQP << 0)); + Prop.info.qp_range.max_qp_packed = ((session_qp_range->maxBQP << 16) | + (session_qp_range->maxPQP << 8) | + (session_qp_range->maxIQP << 0)); + + Ret = swvenc_setproperty(m_hSwVenc, &Prop); + if (Ret != SWVENC_S_SUCCESS) + { + DEBUG_PRINT_ERROR("%s, swvenc_setproperty failed (%d)", + __FUNCTION__, Ret); + RETURN(OMX_ErrorUnsupportedSetting); + } + + m_sSessionQPRange.minIQP = session_qp_range->minIQP; + m_sSessionQPRange.maxIQP = session_qp_range->maxIQP; + m_sSessionQPRange.minPQP = session_qp_range->minPQP; + m_sSessionQPRange.maxPQP = session_qp_range->maxPQP; + m_sSessionQPRange.minBQP = session_qp_range->minBQP; + m_sSessionQPRange.maxBQP = session_qp_range->maxBQP; + } + else + { + DEBUG_PRINT_ERROR("ERROR: Unsupported port Index for Session QP range setting"); + eRet = OMX_ErrorBadPortIndex; + } + break; + } + case OMX_QcomIndexPortDefn: { OMX_QCOM_PARAM_PORTDEFINITIONTYPE* pParam = |