DIVP Q&A

Q:创建ChnId为6的DIVP有什么用处?

目前所用分支的DIVP init时默认create chn6,用于VDEC的抓图功能(如抓图功能实现介绍),功能不启用则不占buffer。


抓图功能实现

如上图所示:

  1. APP设置 VDEC Port0 与 DISP 的宽高一致。

  2. 正常播放时,码流数据帧从port 0 口所拿到的frame作为FW解码所用的frame. 解码后SYS传送给DISP输出。

  3. 进行抓图瞬间,创建DIVP chanelID=6的通道,并且创建打开VDEC Port1。

  4. 此时码流数据帧从port 1口所拿到的frame(以原始码流的宽高向MI SYS申请)作为FW解码所用的frame.

  5. 从port1解码后的数据帧分两条路线走,要么给APP抓图拿走,要么从MI DIVP内部抓取给VDEC port0,再通过port0给到MI DISP。如下图

  6. DIVP chanelID=6通道的Input Port及Output Port配置不受APP设置,DIVP Input Port 由DIVP自动从 VDEC Output Port 1的Frame Buffer信息配置; DIVP Output Port由DIVP自动从VDEC Output Port 0的Frame Buffer信息配置。

...