OMX_ERRORTYPE OMXVideoDecoderAVCSecure::GetParamVideoAVCProfileLevel(OMX_PTR pStructure) { OMX_ERRORTYPE ret; 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; return OMX_ErrorNone; }
OMX_ERRORTYPE OMXVideoDecoderBase::GetParamVideoPortFormat(OMX_PTR pStructure) { OMX_ERRORTYPE ret; OMX_VIDEO_PARAM_PORTFORMATTYPE *p = (OMX_VIDEO_PARAM_PORTFORMATTYPE *)pStructure; CHECK_TYPE_HEADER(p); CHECK_PORT_INDEX_RANGE(p); CHECK_ENUMERATION_RANGE(p->nIndex, 1); PortVideo *port = NULL; port = static_cast<PortVideo *>(this->ports[p->nPortIndex]); memcpy(p, port->GetPortVideoParam(), sizeof(*p)); return OMX_ErrorNone; }
OMX_ERRORTYPE OMXVideoDecoderH263::GetParamVideoH263ProfileLevel(OMX_PTR pStructure) { OMX_ERRORTYPE ret; OMX_VIDEO_PARAM_PROFILELEVELTYPE *p = (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)pStructure; CHECK_TYPE_HEADER(p); struct ProfileLevelTable { OMX_U32 profile; OMX_U32 level; } plTable[] = { {OMX_VIDEO_H263ProfileBaseline, OMX_VIDEO_H263Level70} }; 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; }
OMX_ERRORTYPE OMXVideoEncoderBase::GetParamVideoPortFormat(OMX_PTR pStructure) { OMX_ERRORTYPE ret; OMX_U32 index; OMX_VIDEO_PARAM_PORTFORMATTYPE *p = (OMX_VIDEO_PARAM_PORTFORMATTYPE *)pStructure; CHECK_TYPE_HEADER(p); CHECK_PORT_INDEX_RANGE(p); CHECK_ENUMERATION_RANGE(p->nIndex, 2); PortVideo *port = NULL; port = static_cast<PortVideo *>(this->ports[p->nPortIndex]); index = p->nIndex; memcpy(p, port->GetPortVideoParam(), sizeof(*p)); // port supports OMX_COLOR_FormatYUV420SemiPlanar & OMX_COLOR_FormatAndroidOpaque if (index == 1) { p->nIndex = 1; p->eColorFormat = OMX_COLOR_FormatAndroidOpaque; } return OMX_ErrorNone; }
OMX_ERRORTYPE OMXVideoEncoderMPEG4::GetParamVideoProfileLevelQuerySupported(OMX_PTR pStructure) { OMX_ERRORTYPE ret; OMX_VIDEO_PARAM_PROFILELEVELTYPE *p = (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)pStructure; CHECK_TYPE_HEADER(p); CHECK_PORT_INDEX(p, OUTPORT_INDEX); struct ProfileLevelTable { OMX_U32 profile; OMX_U32 level; } plTable[] = { {OMX_VIDEO_MPEG4ProfileSimple, OMX_VIDEO_MPEG4Level5}, }; 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; }
OMX_ERRORTYPE OMXVideoDecoderAVCSecure::GetParamVideoAVCProfileLevel(OMX_PTR pStructure) { OMX_ERRORTYPE ret; OMX_VIDEO_PARAM_PROFILELEVELTYPE *p = (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)pStructure; CHECK_TYPE_HEADER(p); CHECK_PORT_INDEX(p, INPORT_INDEX); 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; }