TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8127-V3.8版本,issdrv_captureApi.c文件中的bufSwitchFull()函数请教

1.首先bufSwitchFull()的功能作用?没太真正理解。

2.我们目前在压力测试下(如间隔2秒抓拍一次,一次抓拍3帧),就会出现丢帧严重,bufSwitchFull()函数里一直打印出,

Stream ID 0:Input queue empty condition.

 Stream ID 1:Input queue empty condition.

请问这种情况是队列满了,堆不进去的原因吗?怎么能缓解这种情况呢?

还请不吝赐教,谢谢。

Da mi:

你好 请问 你的3.8的版本从哪里下载的啊

Chris Meng:

你好,

我理解是没有可用的buffer了,原因可能是抓拍编码还没有把buffer换回队列里。你们在抓拍的时候,视频编码是否也是同时进行的?

user4697019:

回复 Chris Meng:

1.是的,视频编码,抓拍编码都在做。那这种属于处理不过来了,有没有优化方法?
2.另外有个奇怪的问题,我们仅遇到过一次,视频流画面停住,视频上的时间叠加正常,其他也正常。这种现象我也模拟出来了,如何产生的。还是issdrv_captureApi.c文件,在Issdrv_IspIsifVdInt()函数里,进行 修改, 注释掉bufSwitchFull(),并且给status 赋值失败。如下
//status = bufSwitchFull(streamId, &yaddr[streamId]);status =-1;
该问题原因是bufSwitchFull不更新数据,且把以后的数据都丢掉,这样画面就会停止(即循环播放buffer里的数据帧)。问题虽然模拟出来,但是该bug,一般会是什么原因导致,如何解决呢?

Chris Meng:

回复 user4697019:

你好,

系统优化问题比较复杂,我这里简单讲几点,供参考。

1. 请问你使用的DM8127是否为频率最高等级的芯片? 如果不是,可以使用最快的DM8127。如果已经使用最快的DM8127,确认频率是否设置为spec支持的最高。

2. 请检查DDR的参数设置是否按照你们使用的DDR来配置的,是否使用的是最严谨的时序(不是宽松的时序),来保证DDR运行最优。

3. 请参考下面论坛里附的文档

4. 尽量减少系统里的DDR访问,例如,buffer复制改为指针传递。

关于视频停住的问题,请问问题出现的时候ISP的采集中断是否还正常?如果采集中断没有了,采集数据没有更新是否有会有类似的现象?

user4697019:

回复 Chris Meng:

谢谢啊,我们再好好看一下系统怎么优化。
关于视频停住的问题。
这个问题只出现一次,当时的情况也无法得知了。我们目前也没有复现过,只是模拟出类似的现象。我模拟出的情况是,不进行Bufferswitchfull处理,ISP采集正常,后续采集的数据都丢掉了,这样视频循环显示固定的几帧,就像停住了。

dg q:

回复 Chris Meng:

你好,请问jpg编码过程有相关的文档吗?

dg q:

回复 dg q:

dm8107

赞(0)
未经允许不得转载:TI中文支持网 » DM8127-V3.8版本,issdrv_captureApi.c文件中的bufSwitchFull()函数请教
分享到: 更多 (0)