diff options
Diffstat (limited to 'videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp')
-rwxr-xr-x | videocodec/securevideo/moorefield/OMXVideoDecoderAVCSecure.cpp | 17 |
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; } |