DirectShow数据传输协议
2021-02-26
294
0
DirectShow数据传输协议定义
为了进行数据交换,DirectShow的过滤器(filter)必须支持相关的数据传输协议,这个传输的协议叫做transports。
当2个图形过滤器的pin相连接后,它们必须支持相同的transports,除非它们进行数据交换。通常,传输要求其中一个管脚支持特定接口。当过滤器连接时,一个管脚向另一个管脚查询接口。
大多数DirectShow过滤器将媒体数据保存在主内存中,并通过管脚连接将其传递给其他过滤器。这种类型的传输称为本地内存传输。虽然本地内存传输是DirectShow中最常见的传输,但并不是所有的过滤器都使用它。例如,一些过滤器沿着硬件路径发送媒体数据,并且仅使用管脚来传递控制信息。
DirectShow数据传输方法
DirectShow为本地内存传输定义了两种机制:推模型和拉模型。
- 在推送(push)模型中,源过滤器生成数据并将其传递给下游的下一个过滤器。该过滤器被动地接收数据、处理数据并将其发送到下游.push模型使用IMemInputPin接口
- 在拉取(pull)模型中,源过滤器连接到解析器过滤器。解析器过滤器从源过滤器请求数据。源过滤器通过传递数据来响应请求。pull模型使用iasyncreder接口。
推送(PUSH)型比拉取(PULL)模型更常见。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936