aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp')
-rwxr-xr-xvideocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp b/videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp
index 1cee46c..f976e0b 100755
--- a/videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp
+++ b/videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp
@@ -497,10 +497,21 @@ OMX_ERRORTYPE OMXVideoDecoderAVCSecure::GetParamVideoAVCProfileLevel(OMX_PTR pSt
OMX_VIDEO_PARAM_PROFILELEVELTYPE *p = (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)pStructure;
CHECK_TYPE_HEADER(p);
CHECK_PORT_INDEX(p, INPORT_INDEX);
- CHECK_ENUMERATION_RANGE(p->nProfileIndex,1);
- p->eProfile = mParamAvc.eProfile;
- p->eLevel = mParamAvc.eLevel;
+ struct ProfileLevelTable {
+ OMX_U32 profile;
+ OMX_U32 level;
+ } plTable[] = {
+ {OMX_VIDEO_AVCProfileBaseline, OMX_VIDEO_AVCLevel42},
+ {OMX_VIDEO_AVCProfileMain, OMX_VIDEO_AVCLevel42},
+ {OMX_VIDEO_AVCProfileHigh, OMX_VIDEO_AVCLevel42}
+ };
+
+ OMX_U32 count = sizeof(plTable)/sizeof(ProfileLevelTable);
+ CHECK_ENUMERATION_RANGE(p->nProfileIndex,count);
+
+ p->eProfile = plTable[p->nProfileIndex].profile;
+ p->eLevel = plTable[p->nProfileIndex].level;
return OMX_ErrorNone;
}