Toybrick

标题: mpi_dec_test 无法工作是为什么呢 [打印本页]

作者: forever5714    时间: 2022-1-15 17:37
标题: mpi_dec_test 无法工作是为什么呢
使用toybrick的3568板子运行mpi_dec_test不能正常工作,信息如下:
toybrick@debian10:~/wrl/mpp/mpp_release$ sudo ./mpi_dec_test -i /media/toybrick/sd_card/720p.265 -o /media/toybrick/sd_card/720p.265.yuv -t 16777220 -f 4 -w 1280 -h 720
[sudo] password for toybrick:
mpp[24905]: mpi_dec_utils: input file /media/toybrick/sd_card/720p.265 size 105781364
mpp[24905]: mpi_dec_utils: cmd parse result:
mpp[24905]: mpi_dec_utils: input  file name: /media/toybrick/sd_card/720p.265
mpp[24905]: mpi_dec_utils: output file name: /media/toybrick/sd_card/720p.265.yuv
mpp[24905]: mpi_dec_utils: width      : 1280
mpp[24905]: mpi_dec_utils: height     :  720
mpp[24905]: mpi_dec_utils: type       : 16777220
mpp[24905]: mpi_dec_utils: max frames :    0
mpp[24905]: mpi_dec_test: mpi_dec_test start
mpp[24905]: mpp_info: mpp version: unknown mpp version for missing VCS info
mpp[24905]: mpi_dec_test: 0x37c5a880 mpi_dec_test decoder test start w 1280 h 720 type 16777220
mpp[24905]: mpp_rt: NOT found ion allocator
mpp[24905]: mpp_rt: found drm allocator
mpp[24905]: mpp: command 310202 param 0x37c656e0 ret -1
mpp[24905]: mpi_dec_test: 0x37c5a880 failed to get decoder cfg ret -1
mpp[24905]: mpp_buffer: mpp_buffer_put invalid input: buffer NULL from hal_h265d_release_res
mpp[24905]: hal_bufs: hal_bufs_deinit invalid NULL input
mpp[24905]: mpi_dec_test: test failed ret -1
toybrick@debian10:~/wrl/mpp/mpp_release$ ls /sys/module/rk
rk628_csi/     rk817_battery/ rk817_charger/ rk_vcodec/     rkflash_debug/
toybrick@debian10:~/wrl/mpp/mpp_release$ ls /sys/module/rk
rk628_csi/     rk817_battery/ rk817_charger/ rk_vcodec/     rkflash_debug/
toybrick@debian10:~/wrl/mpp/mpp_release$ ls /sys/module/rk_vcodec/parameters/
mpp_dev_debug
toybrick@debian10:~/wrl/mpp/mpp_release$ sudo echo 0x0100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug
-bash: /sys/module/rk_vcodec/parameters/mpp_dev_debug: Permission denied


按照RK3399Pro入门教程(6)硬件编解码器MPP库的使用的要求,没办法打开debug,因为/sys/module/rk_vcodec/parameters/下面只有mpp_dev_debug,而且使用sudo也没办法echo 0x0100进去。是什么问题呢?
echo 0x0100 > /sys/module/rk_vcodec/parameters/debug
作者: forever5714    时间: 2022-1-15 17:47
另外,这个是从github上面下载的rockchip-linux/mpp源代码交叉编译后,再拷贝到板子上面测试。在板子上面编译报错,没有找到g++,我看了一下板子上面使用cpp编译器的。所以才使用的交叉编译
作者: jefferyzhang    时间: 2022-1-16 22:23
1. 试过了,工作挺正常。建议你直接用apt源里的mpp
2. 另外,g++没有找到直接apt install g++就好了,gcc和g++是两个不同的东西
作者: forever5714    时间: 2022-1-17 11:43
apt源里面的mpp是怎么安装上的?
我用$sudo apt-get install librockchip_mpp-devel报告错误,定位不到这个package
麻烦jeffery大神指点一下

另外我自己编译的mpp是从https://github.com/rockchip-linux/mpp上面得到的
作者: jefferyzhang    时间: 2022-1-17 11:50
先search下名字叫啥,
apt search mpp

Linux基础知识还请先自己学习下。
作者: jefferyzhang    时间: 2022-1-17 12:12
还有我github上mpp也测试过,是没问题的
作者: forever5714    时间: 2022-1-18 09:19
安装apt的测试是可以的,但是github的还是没成功,可能是编译的有问题,我再试一下。
多谢jeffery指导,基础知识也在学习中了
作者: forever5714    时间: 2022-1-18 11:22
jefferyzhang 发表于 2022-1-17 12:12
还有我github上mpp也测试过,是没问题的

jeffery大佬,我测试的720x576的视频是可以编解码的,但是1920*920.264这样的视频却没办法输出?我的理解是可以解的,只是我的参数配置不正确,请求给修改一下作业啊?
因为高度920不是16的整数倍,所以我把输出改成1080,但是没有输出数据。

toybrick@debian10:~/wrl/mpp$ sudo /usr/bin/mpi_dec_test -i ./1920x920.264 -o ./test.yuv -w 1920 -h 1080 -t 7 -n 1
mpp[15837]: mpi_dec_utils: cmd parse result:
mpp[15837]: mpi_dec_utils: input  file name: ./1920x920.264
mpp[15837]: mpi_dec_utils: output file name: ./test.yuv
mpp[15837]: mpi_dec_utils: config file name:
mpp[15837]: mpi_dec_utils: width      : 1920
mpp[15837]: mpi_dec_utils: height     : 1080
mpp[15837]: mpi_dec_utils: type       : 7
mpp[15837]: mpi_dec_utils: debug flag : 0
mpp[15837]: mpi_dec_utils: max frames : 1
mpp[15837]: mpi_dec_test: mpi_dec_test start
mpp[15837]: mpi_dec_test: input file size 8206777
mpp[15837]: mpp_info: mpp version: unknown mpp version for missing VCS info
mpp[15837]: mpi_dec_test: 0x55c0c9c7c0 mpi_dec_test decoder test start w 1920 h 1080 type 7
mpp[15837]: mpp_rt: NOT found ion allocator
mpp[15837]: mpp_rt: found drm allocator
mpp[15837]: mpi_dec_test: 0x55c0c9c7c0 found last packet
mpp[15837]: mpi_dec_test: 0x55c0c9c7c0 decode get frame 0 err 0 discard 1
mpp[15837]: mpi_dec_test: 0x55c0c9c7c0 found last packet
mpp[15837]: mpi_dec_test: 0x55c0c9c7c0 reach max frame number 1
mpp[15837]: mpi_dec_test: 0x55c0c9c7c0 input 2004 pkt output 1 frm decode 0 frames
mpp[15837]: mpp_buffer: mpp_buffer_put invalid input: buffer NULL from vdpu34x_h264d_deinit
mpp[15837]: hal_bufs: hal_bufs_deinit invalid NULL input
mpp[15837]: mpi_dec_test: test success max memory 0.00 MB


作者: jefferyzhang    时间: 2022-1-18 12:12
forever5714 发表于 2022-1-18 11:22
jeffery大佬,我测试的720x576的视频是可以编解码的,但是1920*920.264这样的视频却没办法输出?我的理解 ...

-h 1080  ?????
作者: forever5714    时间: 2022-1-18 13:41
本帖最后由 forever5714 于 2022-1-18 13:48 编辑
jefferyzhang 发表于 2022-1-18 12:12
-h 1080  ?????

您看一下这个输出信息呢,是不是我说的不清楚
toybrick@debian10:~/wrl/mpp$ sudo /usr/bin/mpi_dec_test -i 1920x920.265 -o 1920x920.yuv -w 1920 -h 920 -t 16777220 -f 4
[sudo] password for toybrick:
mpp[14051]: mpi_dec_utils: cmd parse result:
mpp[14051]: mpi_dec_utils: input  file name: 1920x920.265
mpp[14051]: mpi_dec_utils: output file name: 1920x920.yuv
mpp[14051]: mpi_dec_utils: config file name:
mpp[14051]: mpi_dec_utils: width      : 1920
mpp[14051]: mpi_dec_utils: height     :  920
mpp[14051]: mpi_dec_utils: type       : 16777220
mpp[14051]: mpi_dec_utils: debug flag : 0
mpp[14051]: mpi_dec_utils: max frames : 0
mpp[14051]: mpi_dec_test: mpi_dec_test start
mpp[14051]: mpi_dec_test: input file size 5291494
mpp[14051]: mpp_info: mpp version: unknown mpp version for missing VCS info
mpp[14051]: mpi_dec_test: 0x55be1407c0 mpi_dec_test decoder test start w 1920 h 920 type 16777220
mpp[14051]: mpp_rt: NOT found ion allocator
mpp[14051]: mpp_rt: found drm allocator
mpp[14051]: mpi_dec_test: 0x55be1407c0 found last packet
Segmentation fault

最下面输出Segmentation fault就结束了,如果我把视频文件换成1280x720.265的话,就会卡在前一句found last packet一直不结束,而且也没有输出数据

作者: jefferyzhang    时间: 2022-1-18 14:25
forever5714 发表于 2022-1-18 13:41
您看一下这个输出信息呢,是不是我说的不清楚
toybrick@debian10:~/wrl/mpp$ sudo /usr/bin/mpi_dec_test  ...

出现段错误就用gdb跟踪看下堆栈呀。。。
作者: forever5714    时间: 2022-1-18 14:27
本帖最后由 forever5714 于 2022-1-18 14:29 编辑

是不是因为视频格式的问题啊,视频格式在H265外面还有一层Matroska
E:\PersonalProfile\509\Zync\509-zynq\application_20220115\mpsoc_soft\src\23.jpg




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3