diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-09-01 09:05:42 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-09-01 09:05:42 -0700 |
commit | a6b7c5042810381b227aab3e38df826a0927da95 (patch) | |
tree | b8a0cea9aa3f41fce057c1427e007426d7e1a4f7 /mm-video-v4l2 | |
parent | bb651d51497984765c7ad991fe43f96919ea81b6 (diff) | |
parent | 6598ae2f69385ca53c59fc7079e6356882ae2185 (diff) | |
download | media-a6b7c5042810381b227aab3e38df826a0927da95.tar.gz |
Merge "mm-video-v4l2: Return supported profile/level"
Diffstat (limited to 'mm-video-v4l2')
-rw-r--r-- | mm-video-v4l2/vidc/venc/inc/omx_swvenc_mpeg4.h | 4 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp | 57 |
2 files changed, 58 insertions, 3 deletions
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_swvenc_mpeg4.h b/mm-video-v4l2/vidc/venc/inc/omx_swvenc_mpeg4.h index f3f72b61..2a62c245 100644 --- a/mm-video-v4l2/vidc/venc/inc/omx_swvenc_mpeg4.h +++ b/mm-video-v4l2/vidc/venc/inc/omx_swvenc_mpeg4.h @@ -141,9 +141,7 @@ class omx_venc: public omx_video OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE */*SupportedPattern*/) { return false; } - OMX_ERRORTYPE dev_get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE */*profileLevelType*/) { - return OMX_ErrorNone; - } + OMX_ERRORTYPE dev_get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE */*profileLevelType*/); bool dev_is_video_session_supported(OMX_U32 width, OMX_U32 height); bool dev_color_align(OMX_BUFFERHEADERTYPE *buffer, OMX_U32 width, OMX_U32 height); 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 dd1e51fb..e5667f8c 100644 --- a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp +++ b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp @@ -2060,6 +2060,63 @@ bool omx_venc::dev_get_batch_size(OMX_U32 *size) RETURN(false); } +OMX_ERRORTYPE omx_venc::dev_get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType) +{ + ENTER_FUNC(); + OMX_ERRORTYPE eRet = OMX_ErrorNone; + if (profileLevelType->nPortIndex == 1) { + if (profileLevelType == NULL) + { + DEBUG_PRINT_ERROR("p_profilelevel = NULL"); + return OMX_ErrorBadParameter; + } + if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingH263) + { + if (profileLevelType->nProfileIndex == 0) + { + profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline; + profileLevelType->eLevel = OMX_VIDEO_H263Level40; + + DEBUG_PRINT_HIGH("H.263 baseline profile, level 40"); + } + else + { + DEBUG_PRINT_LOW("dev_get_supported_profile_level:nProfileIndex ret NoMore %u", + (unsigned int)profileLevelType->nProfileIndex); + eRet = OMX_ErrorNoMore; + } + } + else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingMPEG4) + { + if (profileLevelType->nProfileIndex == 0) + { + profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple; + profileLevelType->eLevel = OMX_VIDEO_MPEG4Level5; + + DEBUG_PRINT_LOW("MPEG-4 simple profile, level 5"); + } + else + { + DEBUG_PRINT_LOW("dev_get_supported_profile_level:nProfileIndex ret NoMore %u", + (unsigned int)profileLevelType->nProfileIndex); + eRet = OMX_ErrorNoMore; + } + } + else + { + DEBUG_PRINT_ERROR("get_parameter: dev_get_supported_profile_level ret NoMore"); + eRet = OMX_ErrorNoMore; + } + } + else + { + DEBUG_PRINT_ERROR("get_parameter: dev_get_supported_profile_level should be queried on Input port only %u", + (unsigned int)profileLevelType->nPortIndex); + eRet = OMX_ErrorBadPortIndex; + } + return eRet; +} + bool omx_venc::dev_loaded_start() { ENTER_FUNC(); |