模塊分析-------Merge

功能介紹:從前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獲取

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章