我正在尝试使用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
这是错误的参数错误。为什么会这样?
答案 0 :(得分:0)
您的错误为OMX_ErrorBadParameter
,可能是由于将nCountActuals
设置为零造成的。
如果您的电路板是旧的,那么如果组件支持1280x720,则检查media_profiles.xml是值得的。
检查硬编码nPortIndex
是否设置为正确值(如果出现错误,它应返回0x8000101B OMX_ErrorBadIndex
,但我看到实现返回OMX_ErrorBadParameter
代替。)
131输出端口?如果是这样,您还应设置颜色格式,现在它将设置为OMX_COLOR_FormatUnused
。