BDA驱动学习笔记(1):功能拓扑图

 

功能拓扑图(Functional Topology):BAD的目标是不管硬件或者接收信号如何变,它的整体架构可以不做大调整,为此BDA引入功能拓扑图的概念,它把类似DirectShow Filter的结构作为节点(Node),包含在一个receiver filter中,因此一个filter可以做很多工作,这取决于该filter包含了哪些node,以及这些node都具备哪些功能。Functional Topology只是描述了一个结构,具体工作分发给了拓扑图中的各个node。在我们的程序中,外部可见的一个filter:tunner filter,实际上包含了两个node,tuner 和demodulator。拓扑图中的node不是随便什么类型都可以的,只有在BDA Node Category GUIDs列表中列明的node类型,才可以加到图中去,node的各项功能也都是用注册分发例程的方法完成。

BDA Node Category GUIDs

KSNODE_BDA_RF_TUNER

KSNODE_BDA_QAM_DEMODULATOR

KSNODE_BDA_QPSK_DEMODULATOR

KSNODE_BDA_8VSB_DEMODULATOR

KSNODE_BDA_OPENCABLE_POD

KSNODE_BDA_PID_FILTER

KSNODE_BDA_IP_SINK

每种node都有特定的GUID,当network provider filter连上tunner filter时,它会根据GUID寻找相应的node并生成实例。Tunner filter中还使用Template topology 来描述各个PIN 和 NODE的类型以及连接方式等信息。


 

如上图所示,整幅图是一个Functional Topology,tunner node 和 demodualator node是两个node,它们都有特定的GUID,他们都是在network provider filter连上tunner filter时动态生成的。pin1和tunner node相连而不和demodulator相连,tunner node 在 demodulator node之前而不是之后等等信息是Template topology决定好的,整个图的连接也是在network provider filter连上tunner filter时根据Template topology动态完成的。

不过一个filter里包含几个node不是硬性规定的,比如上面这幅图,可以是一个filter里包含两个node,也可以拆分成两个filter,每个filter包含一个node,看自己喜欢。

我们常用的node有Network Provider,Tuner,Demodulator和Capture,Network Provider目前有很多现成的filter可用,可能做DMB的时候需要去修改这部分,大部分时候直接拿来用就可以;tunner 和 demodulator现在是放在同一个filter里,叫tunner filter;capture filter是最核心的部分,负责从硬件读取数据和往后传数据,一般单独做成一个filter。BDA还提供了很多其他的node,帮我们做了很多工作。比如PID Filter NODE 实际上做的是demultiplexer filter的工作,不过目前为止我都不用PID Filter NODE,而是用DirectShow中的demultiplexer filter。

转载于:https://www.cnblogs.com/gussing/archive/2007/06/11/779453.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值