【问题标题】:How to set video frame width and video frame height in OMX.broadcom.video_decode component?如何在 OMX.broadcom.video_decode 组件中设置视频帧宽和视频帧高?
【发布时间】:2013-06-18 05:21:51
【问题描述】:

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

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

【问题讨论】:

    标签: c multimedia openmax


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 1970-01-01
      • 2015-10-25
      • 2018-05-08
      • 2013-03-29
      • 2011-12-19
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多