Firefly开源社区

打印 上一主题 下一主题

[应用开发] RK3588上运行MPP

158

积分

0

威望

0

贡献

技术小白

积分
158

RK3588上运行MPP

发表于 2022-5-5 15:13:07      浏览:7852 | 回复:8        打印      只看该作者   [复制链接] 楼主
在github拉取MPP源码编译。
运行测试例子的时候没有人格的信息打印出来,本人在RV1126上运行是有信息打印的。请问有人遇到过这种情况嘛?
回复

使用道具 举报

158

积分

0

威望

0

贡献

技术小白

积分
158
发表于 2022-5-5 15:32:36        只看该作者  沙发
我使用的是ROC-RK3588S-PC。但是编码视频(mpi_enc_test)还是可以的,可以正常播放。就是没有相关信息打印
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2022-5-6 10:39:51        只看该作者  板凳
现在打印使用了 os_syslog 接口, 输出在 /var/log/syslog
回复

使用道具 举报

94

积分

0

威望

0

贡献

技术小白

积分
94
发表于 2022-5-11 10:10:45        只看该作者  地板
我也发现了这个问题:
1、用官网上面 的固件默认目录 /usr/lib/aarch64-linux-gnu/ 库目录;
或者 apt install librockchip-mpp-dev 上面安装后更新的都能有信息打印 ;

2、而用源代码编译出来的库,信息打印全无;
回复

使用道具 举报

94

积分

0

威望

0

贡献

技术小白

积分
94
发表于 2022-5-11 11:45:03        只看该作者  5#
已经找到解决办法了,
在用TortoiseGit 查找syslog 可以发现,在3月19日有变更a225238d0c2282c53c0914073acc8222c6cb287c

在osal/linux/os_log.cpp
中的函数 os_log(const char* tag, const char* msg, va_list list)
vsyslog(LOG_INFO, line, list);下面
中加入
vfprintf(stdout, line, list);
函数 void os_err(const char* tag, const char* msg, va_list list)
vsyslog(LOG_ERR, line, list);
下面加入:
vfprintf(stderr, line, list);
问题得以解决,即在 终端中有打印,也在 /var/log/syslog
有打印;

回复

使用道具 举报

25

积分

0

威望

0

贡献

技术小白

积分
25
发表于 2022-5-30 15:11:40        只看该作者  6#
lozenyin 发表于 2022-5-5 15:32
我使用的是ROC-RK3588S-PC。但是编码视频(mpi_enc_test)还是可以的,可以正常播放。就是没有相关信息打印

你好,你使用的是什么固件,版本多少,我使用的固件无法进行解码
回复

使用道具 举报

94

积分

0

威望

0

贡献

技术小白

积分
94
发表于 2022-6-1 15:39:53        只看该作者  7#
使用固件 ITX-3588J_Ubuntu20.04-Gnome-r211_v0.1.0a_220424.img
最新的 mpp 为 :  
https://github.com/HermanChen/mpp.git

在osal/linux/os_log.cpp
中的函数 os_log(const char* tag, const char* msg, va_list list)
vsyslog(LOG_INFO, line, list);下面
中加入
vfprintf(stdout, line, list);
函数 void os_err(const char* tag, const char* msg, va_list list)
vsyslog(LOG_ERR, line, list);
下面加入:
vfprintf(stderr, line, list);
问题得以解决,即在 终端中有打印,也在 /var/log/syslog
有打印。

去掉 -d 0 -x 0
sudo ./mpi_dec_test-i Tennis1080p.h264  -o 1080P_n.yuv -w1920 -h 1080 -t 7

或者用
sudo ./mpi_dec_mt_test-i Tennis1080p.h264  -o 1080P_n.yuv -w1920 -h 1080 -t 7

我这边用
sudo ./mpi_dec_mt_test-i Tennis1080p.h264  -w1920 -h 1080 -t 7 -s 32
只解码不写 yuv文件 ,可以解码 32 路;

回复

使用道具 举报

130

积分

0

威望

0

贡献

技术小白

积分
130
发表于 2022-6-28 11:39:40        只看该作者  8#
Ziven_zhou 发表于 2022-5-11 11:45
已经找到解决办法了,
在用TortoiseGit 查找syslog 可以发现,在3月19日有变更a225238d0c2282c53c0914073a ...

我遇到了同样的问题,按照你的方法解决了打印问题,大赞!
回复

使用道具 举报

3

积分

0

威望

0

贡献

吃瓜的群众

积分
3
发表于 2023-11-14 10:22:22        只看该作者  9#
Ziven_zhou 发表于 2022-5-11 11:45
已经找到解决办法了,
在用TortoiseGit 查找syslog 可以发现,在3月19日有变更a225238d0c2282c53c0914073a ...

这样添加编译rk3588可以正常打印,但在ubuntu18.04编译 x86_64会出现段错误,原因是 sysLog 和vfprintf都使用了 args,解决方法是提前对 args进行一次拷贝,参考:https://bbs.csdn.net/topics/390841785


  1. void os_log_info(const char* tag, const char* msg, va_list list)
  2. {
  3.     va_list vList;
  4.     va_copy(vList, list);                             //拷贝一份到 vList

  5.     char line[LINE_SZ] = {0};
  6.     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
  7.     vsyslog(LOG_INFO, line, list);                    //使用 list进行打印

  8.     vfprintf(stdout, line, vList);                    //使用 vlist进行打印
  9. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表