在DVRRDK4.0中视频采集decoder芯片驱动分成了两个部分,
一个部分在dvr_rdk\mcfw\src_linux\devices里面,另一部分在ti_tools\hdvpss\dvr_rdk_hdvpss\packages\ti\psp\devices里。
这两部分程序,第一个是在A8中运行,另一部分是在M3中执行。以tvp5158为例,
这两部分实现的代码功能基本一致,基本上是重复实现,所以我猜测这两部分代码应该只调用了一个。
在ti_vcap.c中有两个函数,分别为Vcap_detectVideoInfo和Vcap_detectVideo。
第一个是调用的dvr_rdk\mcfw\src_linux\devices\tvp5158\src的程序,
第二个是通过System_linkControl发送消息,最后应该调用到了M3里面的tvp5158程序,
所以这里有三个疑问:
1、为什么decoder驱动会有A8和M3两个部分的程序,而且实现功能相似。
2、采集中这两部分调用情况怎样的,同时使用还是仅调用某一个,两个同时调用应该会有I2C的冲突。
3、如果添加新的decoder设备,需要同时实现这两部分(A8和M3)的程序吗?
Eason Wang:
Hi,
1. A8 部分,请参考RDK的PSP部分文档TI81XX_PSP_VIDEO_CAPTURE_Driver_User_Guide.pdf; M3是因为视频采集口是一个IP模块,直接受M3控制而不是A8。
2. I2C应该是A8/M3其中一个去调, 不同RDK版本有差异的。
3. 是的。 在mcfw架构下参考目前已有的decoder代码改出来即可