3 CamX中DRQ是什么

在CamX中,关于DRQ有如下疑问

1. DRQ是什么,有什么作用

2. DRQ在什么时候创建

请先 登录 后评论

1 个回答

凡乐

DRQ的全称是DeferredRequestQueue,意思是需要被延迟处理的Request队列,通常是因为有其他dependency未满足条件,无法马上运行。

1. DRQ有什么作用

Pipeline XML中定义了Node间的连接顺序,但并未定义Node的执行时机。

a.当一个Node有多个输出时,先执行后续的哪个Node?

b.当一个Pipeline中有多个Node实例时(比如多个OPE),先执行哪个?

这些问题由DRQ来解决,DRQ维护了ready,defered两个队列来管理Node的执行顺序。

2. DRQ在什么时候创建

CamX Session中有一个成员变量m_pDeferredRequestQueue,在初始化Session时会为该成员变量赋值。

也就是说,每个Session都会有一个DRQ实例。
CHISession::Initialize
|---->Session::Initialize
|-------->m_pDeferredRequestQueue = DeferredRequestQueue::Create(&deferredCreateData)
请先 登录 后评论