功能介绍:从前N个link中获取帧信息,并且把这些帧传到一个队列钟,下一个link获取时会把当前队列所有的buffer获取并组成一个数组
位置:links_fw/src/rtos/links_common/merge rtos
links_fw/src/hlos/links_a15/merge hlos
使用示例:
Capture -> Dup -> alg_dsp0 -> merge
Dup -> Merge
Merge -> sync -> Display
一些重要参数及回调:
outBufQue:提供给下一link取帧数据的队列
inQueChNumMap:帧数据号匹配表,用于下一link匹配实际需要的chn使用
linkObj.linkGetFullBuffers = &MergeLink_getFullBuffers; 下一link获取数据
linkObj.linkPutEmptyBuffers = &MergeLink_putEmptyBuffers; 下一link释放buf
linkObj.getLinkInfo = &MergeLink_getLinkInfo; 下一link获取本link信息
重要函数解析
Int32 MergeLink_drvProcessData(MergeLink_Obj * pObj) //merge处理函数
1、for ( pre link in num ) //
pBuf->chNum = pObj->inQueChNumMap[inQue][pBuf->chNum]; //下一link用该参数判断使用哪个通道数据
System_getLinksFullBuffers(pCreateArgs->inQueParams[inQue].prevLinkId,
pCreateArgs->inQueParams[inQue].prevLinkQueId,
&pObj->inBufList); //每个前节点分别放入outBufQue,同一节点内的多数据都放在一个inBufList中2、Utils_bufPutFull //放入outBufQue,供下一link获取