问题现象描述
从日志存放路径(默认为“$HOME/ascend/log”)下获取运行应用程序的日志,日志中的报错示例如下:
buffer size(3110400) is smaller than need buffer size(4147200) when format is 3.
device 0, vpc end address is illegal, check allocated buffer size: configured buffer size: 3110400, current pic: format 3 width_stride 1920 height_stride 1080.
原因分析
虽然使用了正确的DVPP内存申请接口,但:
- 代码中申请的内存大小小于该格式所需的输入或输出内存大小;
- 或者传入接口的内存大小正常,与输入格式也匹配,但是超出了实际申请的内存大小,所以校验出来结束地址非法。
解决措施
1. 进入昇腾文档中心,拖动到“推理”区域,通过API参考进入最新版本的文档(或者可以在左上方选择需要的版本),在媒体数据处理章节,根据DVPP各功能对内存大小的要求,检查代码中对应格式的内存大小是否正确;
2. 在代码中增加打印内存长度的日志,检查传入接口的内存大小是否与实际申请的内存大小一致。