如何在OMX.broadcom.video_decode组件中设置视频帧宽和视频帧高?

时间:2013-06-18 05:21:52

标签: c multimedia openmax

我正在尝试使用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

这是错误的参数错误。为什么会这样?

1 个答案:

答案 0 :(得分:0)

您的错误为OMX_ErrorBadParameter,可能是由于将nCountActuals设置为零造成的。

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

检查硬编码nPortIndex是否设置为正确值(如果出现错误,它应返回0x8000101B OMX_ErrorBadIndex,但我看到实现返回OMX_ErrorBadParameter代替。)

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

相关问题