This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何用DM8168&TVP5158采集16路信号并分别处理?

Other Parts Discussed in Thread: TVP5158

本人刚接触8168平台小菜鸟一枚,求大神支招。

平台:DM8168 DVRSDK 4.1.0.2

芯片:4片TVP5158

硬件电路:每片TVP5158 DVO_A分别输出到8168的VIN0 AB/VIN1 AB

目的:实现16路D1信号采集并分别进行编码~

个人理解:(应该是错误的,求指正)采用Vcapture到OutVpss再到InHost,然后从Inhost中获取到每片TVP5158每帧数据,然后通过解析帧头带的通道信息等来进行4个通道的每帧数据剥离。然后再一帧帧送到编码~

问题:

1.单纯的只是采用usecase里的Vcapture、OutVpss、Inhost进行Link起来,是不是如果采集到数据,Inhost的cbFxn是不是就有相关触发?

2.如何区分16个通道采集的信息?

3.capture驱动里的相关PutEmptyFrames以及GetFullFrames这些东西是需要自己调用还是在capturelinkcreat以及start就已经它帮忙处理了?然后我只需要在Inhost里进行相关类似的Frames操作就可以?

  • mlone 说:
    个人理解:(应该是错误的,求指正)采用Vcapture到OutVpss再到InHost,然后从Inhost中获取到每片TVP5158每帧数据,然后通过解析帧头带的通道信息等来进行4个通道的每帧数据剥离。然后再一帧帧送到编码~

    你好;

            应当是 capture --> ipcoutvpss --> ipcinvideo --> encode --> ipcbitoutvideo ---> ipcbitinhost  这样的一个流程

           通道的数据提取在capture link 里面就已经完成了;

           关于多路复用采集,你可以参考下面的图进行理解:

          

  • mlone 说:

    问题:

    1.单纯的只是采用usecase里的Vcapture、OutVpss、Inhost进行Link起来,是不是如果采集到数据,Inhost的cbFxn是不是就有相关触发?

    2.如何区分16个通道采集的信息?

    link 直接有 notify 的机制和 nonotify,看你在程序里面怎么配置了,可以在arm端去等待接受数据;

    在link里面每个通道有对应的信息,相互独立;

    如果有不理解的继续提出来;

  • 你好,

    感谢您的指导,

    我们的实际应用中,每一步的操作,capture、dei、encode这些我们每一步都是需要每次进arm(host)进行单独处理的。

    后续的缩放以及编码过程,已经有现成的代码,之前采集没用过多通道,因此只用v4l2就够了,所以对capturelink的用法不清楚。

    多通道数据的提取既然在capturelink里已经完成了,那我在ipcframesInhost后按照一帧帧采集的数据,是指一个通道的,还是4个通道的(1片5158)还是16通道(4片5158)的数据呢?怎么做具体区分呢?

  • mlone 说:
    多通道数据的提取既然在capturelink里已经完成了,那我在ipcframesInhost后按照一帧帧采集的数据,是指一个通道的,还是4个通道的(1片5158)还是16通道(4片5158)的数据呢?怎么做具体区分呢?

    提取是在capture link 的后面,当然是16通道了,怎么去区分是哪一个通道,在 VIDFrame_Buf 中有一个参数 channelNum ;

    你可以通过channelNum 来分辨是哪个通道的数据;

  • 关于 IPC 的数据传送的原理和机制 ,你可以看一下 ti_tools/ipc/ipc_1_24_03_32/docs/IPC_Users_Guide.pdf

  • 好的,现在对这个流程大致清晰了~十分感谢!