RK3588 硬件编解码器调试命令

本文介绍了在Android11及以上使用Codec2框架和Android11以下使用OMX框架获取媒体流dump文件的方法,以及如何在不同内核版本下通过设置参数监控编解码时间和使用底层编码库的技巧。
摘要由CSDN通过智能技术生成

DUMP码流

框架层

如果在媒体框架层dump流可以使用如下方法

$ setenforce 0
$ mkdir /data/video/
1)Android 12 及以上的版本使用 Codec2 框架,按以下命令抓取
$ setprop vendor.c2.vdec.debug 0x0f000000
2)Android 11 及之前的版本使用 OMX 框架,按以下命令抓取
// 解码 dec_in*.bin
$ setprop vendor.omx.vdec.debug 0x01000000
$ setprop record_omx_dec_in 1
// 编码enc_in*.bin enc_out*.bin
$ setprop vendor.omx.venc.debug 0x03000000
$ setprop record_omx_enc_in 1
$ setprop record_omx_enc_out 1

以上命令会在 /data/video 目录下生成dump文件

编码库

如果以上方法无法生成文件,则可以使用底层编码库的开关

$ setenforce 0
$ mkdir /data/video/
$ setprop mpp_dump_in /data/video/mpp_dec_in.bin
$ setprop mpp_dump_out /data/video/mpp_dec_out.bin
$ setprop vendor.mpp_dump_in /data/video/mpp_dec_in.bin
$ setprop vendor.mpp_dump_out /data/video/mpp_dec_out.bin
$ setprop mpp_debug 0x600 && setprop vendor.mpp_debug 0x600

打印每帧的编解码时间

vpu

// 内核单帧解码时间
4.19/5.10 内核(Android 10.0及以上版本)
$ echo 0x0100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug
$ cat /proc/kmsg

4.4 内核(Android 7.1到9.0)
$ echo 0x0100 > /sys/module/rk_vcodec/parameters/debug
$ cat /proc/kmsg

框架层

框架层的打印如下,可以在logcat搜索出来

setprop vendor.dump.c2.log 1

 c2_trace("in buffer attr. size %zu timestamp %lld frameindex %lld, flags %x",
             inSize, timestamp, frameIndex, flags);

 c2_trace("get one frame [%d:%d] stride [%d:%d] pts %lld err %d eos %d",
                 width, height, hstride, vstride, pts, err, eos);

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jacen.L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值