进行多路解码时,送帧间隔设置太短,导致发帧过快,出现OOM现象,解码卡住。
Device日志示例如下:
OOM_NOTIFIER: oom type 2
EP模式下,运行解码进程后,登录Host,在有读、写、执行权限的目录下执行msnpureport -a命令,可导出Device的日志信息。
RC模式下,登录板端环境,执行cat /proc/umap/vdec命令,可导出解码相关信息。
每送一帧数据都需要申请一个输出buffer,当送帧间隔设置太短时,远远超过解码帧率时,则需申请大量的输出buffer,占用大量的内存,导致产生OOM。
参见《AscendCL应用开发指南 (C&C++)》中的“AscendCL API参考>媒体数据处理V1”或“AscendCL API参考>媒体数据处理V2”章节下的VDEC性能指标数据,自行调整送帧间隔。