sigmarstar 在sdk丰富,功能强大,但也比较繁杂。本文针对IPC的应用场景以做说明。
ipc中通用视频流程包括:sensor视频采集->isp处理->缩放->编码
在sigmarstar中对应的模块为:sensor->vif->isp->scl->venc, 模块之间通过MI_SYS_BindChnPort2 绑定在一起,类似gstreamer的思想。要弄清楚sigmarstar的流程,必须要理解它的各个bind关系。以下图例简单示范了模块间的绑定情况。
其中最小单位是port,像编码通道最后都映射到Venc模块的port0,port1.....
chn is short for channel,一般chn并不等价于一般意义中nvr/ipc中的channel,而是比一般的channel更大一级的逻辑单位。
dev is short for device,一般代表了特定的硬件资源。
sigmarstar开发主要内容就是参数配置+端口绑定,这两步弄对了,基本上业务流程没啥大问题。不同的功能使用的dev/chn/port可能不同,一般用的是dev0,chn0,port0,port1..., 下图为2个sensor,采集编码的绑定关系。
src(6-0-0-0): vif模块-dev0-chn0-port0 dst(33-0-0-0): isp-dev0-chn0-port0 表示vif模块绑定到isp模块使用的相应参数
src(6-8-0-0): vif模块-dev8-chn0-port0 dst(33-0-1-0): isp-dev0-chn1-port0 表示vif的dev8绑定到isp的dev0的chn1
src(33-0-0-0) dst(34-0-0-0) isp绑定到scl(缩放)模块的dev0
src(33-0-1-0) dst(34-0-1-0) isp绑定到scl(缩放)模块的dev1
src(34-0-0-0) dst(2-0-0-0) scl dev0 port0 绑定到venc dev0 chn0, 注:此模块的channel与ipc中的channel是对应关系。
src(34-0-0-1) dst(2-0-1-0) scl dev0 port1 绑定到venc dev0 chn1
src(34-0-0-2) dst(2-0-2-0) scl dev0 port1 绑定到venc dev0 chn2
后面类似,不再赘述。
另外,还有双sensor融合模式下的绑定关系图如下
需要注意的是此模式下用的是scl(34) dev1而不是dev0
dst(2-8-8-0)代表的是抓图通道