mpp编解码问题

固件类型:官方提供的固件
固件文件名称:ROC-RK3568-PC_Ubuntu20.04-r21156_v1.2.4a_220519
固件下载地址:百度网盘 请输入提取码
Log日志:log.txt

运行ffmpeg_rtsp_mpp demo程序时失败,错误日志如下,请大神指点

tchip_askquestions
log.txt (10.8 KB)

估计 demo 版本太旧了,这你得基于 356x 的去改了
https://gitlab.com/firefly-linux/external/mpp/-/tree/rk356x/firefly

时间的蝴蝶 发表于 2022-8-20 09:36
估计 demo 版本太旧了,这你得基于 356x 的去改了
https://gitlab.com/firefly-linux/external/mpp/-/tree

新版本的也是一样错误,请问vpu功能是默认开启吗?还是需要通过什么方式手动开启?

时间的蝴蝶 发表于 2022-8-20 09:36
估计 demo 版本太旧了,这你得基于 356x 的去改了
https://gitlab.com/firefly-linux/external/mpp/-/tree

请问mpp相关的驱动是如何安装的?

wxl_zyz 发表于 2022-9-1 21:35
请问mpp相关的驱动是如何安装的?

驱动默认编译进内核了,不用安装,https://gitlab.com/firefly-linux/kernel/-/tree/rk356x/firefly/drivers/video/rockchip/mpp

你可以编译这里的库文件和 demo 测试功能
https://gitlab.com/firefly-linux/external/mpp/-/tree/rk356x/firefly

时间的蝴蝶 发表于 2022-9-2 14:26
驱动默认编译进内核了,不用安装,https://gitlab.com/firefly-linux/kernel/-/tree/rk356x/firefly/driv

目前遇到的情况是,调用 ret = mpi->decode_get_frame(ctx, &frame)进行解码时,返回值为0,但是frame为NULL,请教该问题该如何解决?可能由什么原因导致?

时间的蝴蝶 发表于 2022-9-2 14:26
驱动默认编译进内核了,不用安装,https://gitlab.com/firefly-linux/kernel/-/tree/rk356x/firefly/driv

pi@NanoPC-T4:/dev$ dmesg|grep vpu_service
[ 0.245225] iommu: Adding device ff650000.vpu_service to group 0
[ 1.167665] rk-vcodec ff650000.vpu_service: no regulator for vcodec
[ 1.168590] rk-vcodec ff650000.vpu_service: probe device
[ 1.169327] rk-vcodec ff650000.vpu_service: drm allocator with mmu enabled
[ 1.170728] rk-vcodec ff650000.vpu_service: could not find power_model node
[ 1.171350] rk-vcodec ff650000.vpu_service: init success
[45938.683129] rk_vcodec: vpu_service_ioctl:1889: error: unknown vpu service ioctl cmd 40086c01
[46334.929140] rk_vcodec: vpu_service_ioctl:1889: error: unknown vpu service ioctl cmd 40086c01
[121956.720400] rk_vcodec: vpu_service_ioctl:1889: error: unknown vpu service ioctl cmd 40086c01
[123673.379084] rk_vcodec: vpu_service_ioctl:1889: error: unknown vpu service ioctl cmd 40086c01
[123732.616957] rk_vcodec: vpu_service_ioctl:1889: error: unknown vpu service ioctl cmd 40086c01
[123997.311485] rk_vcodec: vpu_service_ioctl:1889: error: unknown vpu service ioctl cmd 40086c01

请问这是否代表驱动有异常?

wxl_zyz 发表于 2022-9-2 22:41
目前遇到的情况是,调用 ret = mpi->decode_get_frame(ctx, &frame)进行解码时,返回值为0,但是frame为N …

正常现象,解码数据需要时间,一开始可能拿不到结果;反复调用几次,或者检查下 decode_put_packet 是否正常

wxl_zyz 发表于 2022-9-2 22:57
pi@NanoPC-T4:/dev$ dmesg|grep vpu_service
[ 0.245225] iommu: Adding device ff650000.vpu_servic …

库版本和内核不匹配

时间的蝴蝶 发表于 2022-9-5 10:30
正常现象,解码数据需要时间,一开始可能拿不到结果;反复调用几次,或者检查下 decode_put_packet 是否 …

decode_put_packet调用后返回0,packet的长度也变为0,根据开发手册里的说法数据应该是被消耗了,但是decode_get_frame后frame还是为NULL

时间的蝴蝶 发表于 2022-9-2 14:26
驱动默认编译进内核了,不用安装,https://gitlab.com/firefly-linux/kernel/-/tree/rk356x/firefly/driv

请问有没有测试可用的关于rtsp视频流mpp解码的demo,https://github.com/MUZLATAN/ffmpeg_rtsp_mpp,这个跑起来始终得不到预期结果,刚购买的3568的板子

wxl_zyz 发表于 2022-9-5 22:49
decode_put_packet调用后返回0,packet的长度也变为0,根据开发手册里的说法数据应该是被消耗了,但是dec …

不太清楚你是什么情况,你还是对照下 demo 的取帧部分吧,external/mpp/test/mpi_dec_test.c

wxl_zyz 发表于 2022-9-5 23:37
请问有没有测试可用的关于rtsp视频流mpp解码的demo,https://github.com/MUZLATAN/ffmpeg_rtsp_mpp,这个

目前没有,或许你可以联系下那个用户

时间的蝴蝶 发表于 2022-9-8 20:16
目前没有,或许你可以联系下那个用户

这个链接是https://github.com/rockchip-linux/mpp/的readme.txt里推荐的,不是你们公司同事吗?

wxl_zyz 发表于 2022-9-8 22:04
这个链接是https://github.com/rockchip-linux/mpp/的readme.txt里推荐的,不是你们公司同事吗?

你好,请问怎么查看mpp底层日志?目前只有我自己调用mpp_log打印的日志,底层应该也会打印日志吧,是否需要调整日志级别才能看到?

wxl_zyz 发表于 2022-9-8 22:04
这个链接是https://github.com/rockchip-linux/mpp/的readme.txt里推荐的,不是你们公司同事吗?

这是 RK 写的 readme;主要是这个 demo 太旧了,肯定没法直接用的

wxl_zyz 发表于 2022-9-10 16:33
你好,请问怎么查看mpp底层日志?目前只有我自己调用mpp_log打印的日志,底层应该也会打印日志吧,是否需 …

写对应值到这个文件,/sys/module/rk_vcodec/parameters/mpp_dev_debug
参考 kernel/drivers/video/rockchip/mpp/mpp_debug.h

wxl_zyz 发表于 2022-9-5 22:49
decode_put_packet调用后返回0,packet的长度也变为0,根据开发手册里的说法数据应该是被消耗了,但是dec …

mpp解码器输入h264数据一次传入一个slice,你传入的数据应该是完整的一帧,一帧数据包含好多slice。