Herman Chen

Results 443 comments of Herman Chen

使用 MPP_ENC_GET_HDR_SYNC 和 MPP_ENC_GET_EXTRA_INFO 两种的接口参数是有不同的,但是效果应该是一样的…… 需要注意的是,这两个接口需要在所有的参数配置都完成之后再调用,才能得到正确的结果。

怀疑问题根本原因是这样的: MPP_ENC_GET_EXTRA_INFO 得到的是内部数据的 packet 结构信息,在编码器配置更新之后,里面的内容也给更新了,再去拷贝数据是正常的。 MPP_ENC_GET_HDR_SYNC 是在接口调用时刻就进行拷贝,把当时参数条件下生成的不正常的头就拷贝出现,等编码器配置完成完成之后,拷贝出来的数据就和真正编码器内部的数据不一致了。

> > 怀疑问题根本原因是这样的: MPP_ENC_GET_EXTRA_INFO 得到的是内部数据的 packet 结构信息,在编码器配置更新之后,里面的内容也给更新了,再去拷贝数据是正常的。 MPP_ENC_GET_HDR_SYNC 是在接口调用时刻就进行拷贝,把当时参数条件下生成的不正常的头就拷贝出现,等编码器配置完成完成之后,拷贝出来的数据就和真正编码器内部的数据不一致了。 > > 您这个说法我有个疑问,因为在`MPP_ENC_HEADER_MODE_EACH_IDR`情况下,每次编码到I帧都需要复制一次SPS PPS吧? 然后好像我mpp库换成github上的是没什么问题的样子 是的,开起来就每次编码都带 SPS/PPS 输出 > 新的mpp库里编码出来一定带有两段SEI,这两段SEI都是完整的 嗯,是用来保存码控信息的

估计是你那这的 drm 分配器打开和 mmap 的 flag 不对,对比下看看

radxa,radxa-cm3-io rockchip,rk3566 这个找到不匹配的 soc 名字,可以更新 下 mpp 看看

https://github.com/rockchip-linux/mpp/blob/02058ce67a244ad50e589104a1fa52e724c303e5/mpp/hal/rkdec/h265d/hal_h265d_com.c#L89 这个 hevc_hor_align 函数里定义了 hevc 在 rkvdec 上的对齐方式

The hardware has performance limit on huffman decoding. So when stream is larger then the decoding time is longer. You can check the hardware timing: echo 0x100 > /sys/modules/rk_vcodec/parameters/mpp_dev_debug

the directory under /sys/modules may be vpu_service or rk_vcodec, please ls and try

264 解码器没有输出格式转换的能力,只有 jpeg 解码才有