summaryrefslogtreecommitdiff
path: root/mm-video-v4l2
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-09-01 09:05:42 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-09-01 09:05:42 -0700
commita6b7c5042810381b227aab3e38df826a0927da95 (patch)
treeb8a0cea9aa3f41fce057c1427e007426d7e1a4f7 /mm-video-v4l2
parentbb651d51497984765c7ad991fe43f96919ea81b6 (diff)
parent6598ae2f69385ca53c59fc7079e6356882ae2185 (diff)
downloadmedia-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.h4
-rw-r--r--mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp57
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();