yqq 发表于 2023-6-12 14:00:18

AIO-3399C mpp解码异常报错

本帖最后由 yqq 于 2023-6-12 14:00 编辑

开发板:AIO-3399C,固件:AIO-3399C_Ubuntu18.04-r240_v2.5.1d_230330.img
功能:使用v4l2采集uvc摄像头视频源,然后传入mpp解码并保存到本地文件;代码是参考了mpi_dec_test demo后移植,遇到以下几个问题:

1、mpp在初始化时报错:[ 9059.292921] rk_vcodec: vpu_service_ioctl:2149: error: unknown vpu service ioctl cmd 40086c01,以下粘贴mpp库mpi_dec_test demo测试结果

root@firefly:~/mppNew# mpi_dec_test -i h264enc.h264 -w 1920 -h 1080 -t 7 a.nv12
mpp: mpi_dec_utils: cmd parse result:
mpp: mpi_dec_utils: inputfile name: h264enc.h264
mpp: mpi_dec_utils: output file name:
mpp: mpi_dec_utils: config file name:
mpp: mpi_dec_utils: width      : 1920
mpp: mpi_dec_utils: height   : 1080
mpp: mpi_dec_utils: type       : 7
mpp: mpi_dec_utils: debug flag : 0
mpp: mpi_dec_utils: max frames : 0
mpp: mpi_dec_test: mpi_dec_test start
mpp: mpi_dec_test: input file size 10786528
mpp: mpp_info: mpp version: 49f29006 author: Jeffy Chen    2021-08-04 : Add mmap flag detection
mpp: mpi_dec_test: 0x55d28259e0 mpi_dec_test decoder test start w 1920 h 1080 type 7
mpp: mpp_rt: NOT found ion allocator
mpp: mpp_rt: found drm allocator
[ 9059.292921] rk_vcodec: vpu_service_ioctl:2149: error: unknown vpu service ioctl cmd 40086c01
mpp: mpi_dec_test: 0x55d28259e0 decode_get_frame get info changed found
mpp: mpi_dec_test: 0x55d28259e0 decoder require buffer w:h stride buf_size 4177920
mpp: mpi_dec_test: 0x55d28259e0 decode get frame 0
mpp: mpi_dec_test: 0x55d28259e0 decode get frame 1
mpp: mpi_dec_test: 0x55d28259e0 decode get frame 2

......

2、从uvc设备采集h264格式的视频源,送入mpp解码(dec_simple模式),报错:“mpp_log: decoder_get_frame get err info:1 discard:0.“ 测试解码多次,这个解码错误在过程中多次出现,但也有时出现解码一切正常一次报错也没;程序中已使能解码器内部分帧处理,这里还有个问题在配置参数时按照mpp开发文档介绍 MPP_DEC_SET_PARSER_SPLIT_MODE 命令是需要在 mpp_init 之前配置,但mpi_dec_test 例程demo中使用 MPP_DEC_SET_CFG 命令配置却是在mpp_init之后,两者有什么区别?除分帧参数外其他所有配置的正确时机时什么时候?

3、从uvc设备采集mjpeg格式的视频源,送入mpp解码(dec_advanced模式),报错:“::-- reg size mismatch wr 636 rd 736",调试发现在每一帧mjpeg解码都会报这个错误





yqq 发表于 2023-6-12 14:07:49

附上:mpi_dec_test例程解码mjpeg格式打印信息
root@firefly:~/mppNew# mpi_dec_test -w 1920 -h 1080 -t 8 -i mjpg_t.mjpg -o raw.nv12
mpp: mpi_dec_utils: cmd parse result:
mpp: mpi_dec_utils: inputfile name: mjpg_t.mjpg
mpp: mpi_dec_utils: output file name: raw.nv12
mpp: mpi_dec_utils: config file name:
mpp: mpi_dec_utils: width      : 1920
mpp: mpi_dec_utils: height   : 1080
mpp: mpi_dec_utils: type       : 8
mpp: mpi_dec_utils: debug flag : 0
mpp: mpi_dec_utils: max frames : 0
mpp: mpi_dec_test: mpi_dec_test start
mpp: mpi_dec_test: input file size 36306885
mpp: mpp_rt: NOT found ion allocator
mpp: mpp_rt: found drm allocator
mpp: mpp_info: mpp version: 49f29006 author: Jeffy Chen    2021-08-04 : Add mmap flag detection
mpp: mpi_dec_test: 0x5588b59700 mpi_dec_test decoder test start w 1920 h 1080 type 8
[ 1877.192324] rk_vcodec: vpu_service_ioctl:2149: error: unknown vpu service ioctl cmd 40086c01
mpp: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0
mpp: vcodec_service: vcodec_service_reg_wr reg size mismatch wr 636 rd 736
mpp: mpi_dec_test: 0x5588b59700 decoded frame 0
mpp: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0
mpp: vcodec_service: vcodec_service_reg_wr reg size mismatch wr 636 rd 736
mpp: mpi_dec_test: 0x5588b59700 decoded frame 1
mpp: HAL_JPEG_VDPU2: jpegd_setup_pp pp_enable 0

板蓝根 发表于 2023-6-13 10:59:14

ioctrl 的错误不关键,看下面 代码已经已经解码接触帧了

yqq 发表于 2023-6-13 11:50:35

板蓝根 发表于 2023-6-13 10:59
ioctrl 的错误不关键,看下面 代码已经已经解码接触帧了

你好,我还有些疑问麻烦帮解答一下,谢谢!
1、那这个VPU的错误对硬件编解码有什么影响?现在是在做项目的前期验证,想要实现的需求是解码再修改视频参数后编码推流出去,这个错误会不会影响编解码的时效性?
2、还有MJPEG和H264解码报的这个错误什么原因导致的?有什么解决的建议?
页: [1]
查看完整版本: AIO-3399C mpp解码异常报错