内存被提前释放,导致解码数据花屏
现象描述
原始H264/H265每一帧视频流正常,解码过程无异常(无异常日志),仅输出图片有异常。
可能原因
解码过程无异常,说明送入的码流非异常码流,仅输出被破坏,可能由于:
1. 输出内存被别人复用,被踩或者被提前释放;
2. 解码需要的输出内存比实际申请的内存大。
处理步骤
- 对于DVPP内存申请接口,增加日志打印内存大小及地址,检查VDEC输出内存,检查申请的内存大小是否与实际使用的一致,比如典型的错误场景,VDEC解码输出格式预期是RGB,实际仍按照YUV420sp申请内存。
- 在DVPP内存释放接口处、以及hi_mpi_vdec_get_frame/aclvdecCallback/acldvppJpegDecodeAsync接口处,增加内存大小及地址的打印日志,确认内存释放时序,是否存在内存地址解码完成前被提前释放的情况。
父主题: JPEGD图片解码/VDEC视频解码