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 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; }