0

我正在尝试使用 openmax 的视频播放器管道,它接受原始 h264 流对其进行解码并将其传递给渲染。在配置端口时,我想将框架宽度和框架高度设置为 1280 * 720。但是在设置参数时出现参数错误。如何在 openmax 组件中设置端口的框架宽度和框架高度,作为这些框架的新手,我的知识有限。在设置宽度和高度之前我还应该设置其他字段吗?

这就是我尝试设置参数的方式

    memset(&portdef,0,sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
    portdef.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
    portdef.nVersion.nVersion = OMX_VERSION;
    portdef.nPortIndex = 131; 


    portdef.format.video.nFrameWidth = 1280;
    portdef.format.video.nFrameHeight = 720; 

    portdef.nBufferSize = portdef.format.video.nFrameWidth * portdef.format.video.nFrameHeight * 3 / 2;

    /* set the video decode properties */
    if((error = OMX_SetParameter(video_decode,OMX_IndexParamPortDefinition,&portdef)) != OMX_ErrorNone)
        printf("set parameter error for decoder %x\n",error); 

我得到的错误是

set parameter error for decoder 80001005

那就是错误的参数错误。为什么会来?

4

1 回答 1

0

您的错误是OMX_ErrorBadParameter,它可能是由设置nCountActuals为零引起的。

如果您的电路板较旧,那么如果组件支持 1280x720,则值得检查 media_profiles.xml。

检查硬编码是否设置为正确的值(如果发生错误,nPortIndex它应该返回 0x8000101B ,但我看到了返回的实现)。OMX_ErrorBadIndexOMX_ErrorBadParameter

是131输出口吗?如果是这样,您还应该设置颜色格式,现在它将设置为OMX_COLOR_FormatUnused.

于 2013-12-20T12:39:37.723 回答