summaryrefslogtreecommitdiff
path: root/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-09-28 14:31:03 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-09-28 14:31:03 -0700
commite7f19cf293022430c25c60c998bacbf4c6e7949e (patch)
tree11eb7a21575c98c847cffd34995e0e7f37bf4adf /mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
parentd246bcfd7592838976381c2fdcfbd98018bf14e1 (diff)
parent3b25618487f1df8b36c4623dfcb132e046cac225 (diff)
downloadmedia-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.cpp37
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 =