我的链路是
dec
|
V
sclr
|(得到cif图,同时保存原图)
V
ipcFrameOutVpss<---->processLink---->ipcFrameInDsp---->algLink(cif和原图上叠加分析结果)
|
V
dup---->nsf(有可能输出cif图,有可能输出720p原图)---->ipcM3Out---->ipcM3In---->enc---->码流送到a8
|
V
display
现在我在本地读入一路h.264码流,然后拷贝为2份,送到两个通道中,帧间隔为40ms,也就是一秒钟25帧。
此时会发现,decLink解码了12152帧,algLink处理了12147帧,而encLink只处理了11997帧。相差100多帧。
最后跟踪发现,EncLink_codecQueueFramesToChQue函数送入了12149帧,而紧跟着的EncLink_codecSubmitData函数只能得到11997帧。
此时把algLink里面的算法注释掉,则没有丢帧。如果修改成输入的两路图像只有第0路执行dsp算法,第1路不执行,那么解码12076帧,EncLink_codecQueueFramesToChQue函数得到12074帧,而EncLink_codecSubmitData函数只得到了12022帧。
但是我的算法每帧耗时16~18ms,平均下来跑两路应该是没有问题的。而且为什么算法的耗时会影响到EncLink_codecSubmitData函数得到要编码的图片?
目前的丢帧有些多,希望得到帮助。