首先我们查看返回的错误码——0xa0038003,通过查看《HiMPP V4.0 媒体处理软件开发参考》一书,显示
0xA0038003 HI_ERR_RGN_ILLEGAL_PARAM 参数超出合法范围
然后我们查看调用的函数
HI_MPI_RGN_AttachToChn:将区域叠加到通道上
然后可以看到你输入参数结构体OVERLAY_CHN_ATTR_S 的说明
水平位置 X:[RGN_COVER_MIN_X, RGN_COVER_MAX_X],要求以 2 对
齐。
垂直位置 Y:[RGN_COVER_MIN_Y, RGN_COVER_MAX_Y],要求以 2 对
齐。
宽高取值范围:
宽度: [2, RGN_COVER_MAX_WIDTH],要求以 2 对齐。
高度: [2, RGN_COVER_MAX_HEIGHT],要求以 2 对齐。
【注意事项】
建议用户把 Overlay 的起始位置和宽高限定为 16 对齐。如图 8-3 所示,由于该 Overlay的宽高不是 16 对齐,就会出现一个宏块有两个 QP 的情况, 比如宏块 A 会有 Region块的 Qp 以及编码计算出来的 QP。但是一个宏块只能有一个 QP,编码器会选择Region 的 QP, 如果宏块 A 的 QP(即 Region 的 QP)和它的相邻宏块 B 的 QP 相差较大,会导致 Region 区域周边出现图像质量不一致的现象
解决办法:
将输入的起始点xy坐标都对齐,最好是16对齐。