最近在看输出这一块。我使用的是dvrrdk3.0
首先自己理解出一点,link,对于你的应用,你需要初始化的时候,就将整个chain连接起来,包含里面所有的link,也就是将整个数据流的所有分支都包含。
之后,通过开关来切换,选取需要的数据流通道,比如capture set或者display set等等。
回到display link这里,目前的需求是,输出的device有4个,用户可以选择其中一个进行输出,
那么设计的时候就考虑4个输出全部包含到chain里面,这就碰到了一个问题,id的问题
display id为
SYSTEM_LINK_ID_DISPLAY_0
SYSTEM_LINK_ID_DISPLAY_1
SYSTEM_LINK_ID_DISPLAY_2
swms id为
SYSTEM_LINK_ID_SW_MS_MULTI_INST_0
SYSTEM_LINK_ID_SW_MS_MULTI_INST_1
SYSTEM_LINK_ID_SW_MS_MULTI_INST_2
SYSTEM_LINK_ID_SW_MS_MULTI_INST_3
问题1.
我想使用4个输出,但是display ID只有3个,咋办?
问题2:
我的理解,一个swms和一个display应该是一一对应的。但是看sdk的ID,swms是4个,display是3个,为啥不匹配。咋个理解?
忘这里的高手赐教,谢谢了!!!!
bin li2:
回复 Haijun Guo:
谢谢。这个答案果然很精彩。
DISPLAY_LINK_MAX_NUM_INPUT_QUEUES = 2,确实看到了,一个display最大可以支持2个输入queue。
只是你提到如果4个全部打开,应该会看到两个同源的视频,这个,我感觉有点问题啊。翻开vpss的文档sprugx8a.pdf
在394页看到下面一段话:
In the device, the HD_VENC supports either digital (HDMI/DVO1, DVO2) or analogoutput (HDCOMP), but not both.
这么理解,也就是要么是 2HD数字+SD模拟 输出,要么是 1HD模拟+SD模拟 输出。
不会出现4路输出。
Haijun Guo:
回复 bin li2:
In the device, the HD_VENC supports either digital (HDMI/DVO1, DVO2) or analogoutput (HDCOMP), but not both.
结合文档前面所说:There are three high-definition video encoders (HD_VENCs) in the HDVPSS
你列出来的话的意思是,一共有3个HD_VENC,对于每一个HD_VENC而言,要么是数字ENC(ENC_D),要么是模拟ENC(ENC_A),并不能同时“既支持数字又支持模拟”。我觉得强调的是这一点,结合实际,3个HD_VENC中两个是数字的,1个是模拟的。
请注意这里所说的都是HD。SD ENC就是模拟的,不支持数字。