GenTL学习——缓冲区状态流转

paw5zx Lv4

状态图

首先来看一下GenTL官方文档提供的缓冲区状态流转图:

Acquisition chain seen from a buffer’s perspective
Acquisition chain seen from a buffer’s perspective

下面简要概括以下图中节点对应的相关状态

状态 含义
Memory 纯粹的系统内存空间,尚未分配给任何缓冲区管理
Allocated 已分配的内存空间(分配操作由Consumer完成),但尚未注册到GenTL数据流模块
Announce 已注册到数据流模块的缓冲区,可用于后续流程
Queued 已放入输入缓冲池的缓冲区
Pending 已放入输出缓冲队列的缓冲区,可供Consumer消费
Fill 正在被采集引擎填充数据的缓冲区

个人理解

图中处于Announce状态的缓冲区集合不完全等价于GenTL中提到的Announced Buffer Pool中的缓冲区集合。Announced Buffer Pool中的缓冲区包含所有已声明的缓冲区,它们总是处于下述状态之一(下列名词未在GenTL中明确定义,是我自己方便记忆自定义的):

  • Queued:处于输入缓冲池,
  • Filling:从输入缓冲池取出,正在被采集引擎填充
  • Pending:采集引擎填充完毕,放入输出缓冲队列
  • Idle Announced:处于已声明缓冲池中,但不处于上述三种状态,为一种闲置状态
    而上图中的Announce节点代表的是Announced Buffer Pool中未处于输入缓冲池,输出缓冲队列,填充状态的闲置已声明缓冲区的集合,即等价于Idle Announced状态。
  • 标题: GenTL学习——缓冲区状态流转
  • 作者: paw5zx
  • 创建于 : 2025-04-27 16:01:19
  • 更新于 : 2025-05-12 17:02:48
  • 链接: https://paw5zx.github.io/GenTL-learning-01/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
GenTL学习——缓冲区状态流转