DM385 A8接收码流线程IpcBitsInLink_periodicTaskFxn(mcfw/src_linux/links/ipcbitsin/ipcBitsInLink_tsk.c )理论上每隔8毫秒去轮询一次通知其他线程去接收从片数据,但设备运行十来分钟后某一时刻会出现睡眠3秒多才返回,导致从片编码队列满视频丢帧。典型错误打印如下
[m3video] ==================== EncLink_PrintDetails ====================
[m3video] 81946: HDVICP-ID:0
[m3video] totalAcquire2wait in msec:74865391
[m3video] totalWait2Isr in msec: 64431
[m3video] totalIsr2Done in msec: 48
[m3video] totalWait2Done in msec: 64479
[m3video] totalDone2Release in msec: 0
[m3video] totalAcquire2Release in msec: 0
[m3video] totalAcq2acqDelay in msec: 0
[m3video] totalElapsedTime in msec: 0
[m3video] numAccessCnt: 0
[m3video] IVA-FPS : 0
[m3video] ====> Nov 20 2014 14:34:09
[m3video]
[m3video] *** ENCODE Statistics ***
[m3video]
[m3video] Elasped Time : 24 secs
[m3video]
[m3video]
[m3video] CH | In Recv In Skip In User Out Latency
[m3video] Num | FPS FPS Skip FPS FPS Min / Max
[m3video] --------------------------------------------
[m3video] 0 | 30 4 4 21 62 / 245
[m3video] 1 | 30 0 30 0 255 / 0
[m3video] 2 | 30 0 30 0 255 / 0
[m3video]
[m3video] Multi Channel Encode Average Submit Batch Size
[m3video] Max Submit Batch Size : 24
[m3video] IVAHD_0 Average Batch Size : 1
[m3video] IVAHD_0 Max achieved Batch Size : 1
[m3video] =================================================================
而正常情况打印信息如下
[m3video] ==================== EncLink_PrintDetails ====================
[m3video] 398940: HDVICP-ID:0
[m3video] totalAcquire2wait in msec:1946482584
[m3video] totalWait2Isr in msec: 367995
[m3video] totalIsr2Done in msec: 281
[m3video] totalWait2Done in msec: 368276
[m3video] totalDone2Release in msec: 0
[m3video] totalAcquire2Release in msec: 0
[m3video] totalAcq2acqDelay in msec: 0
[m3video] totalElapsedTime in msec: 0
[m3video] numAccessCnt: 0
[m3video] IVA-FPS : 0
[m3video] ====> Nov 20 2014 14:34:09
[m3video]
[m3video] *** ENCODE Statistics ***
[m3video]
[m3video] Elasped Time : 21 secs
[m3video]
[m3video]
[m3video] CH | In Recv In Skip In User Out Latency
[m3video] Num | FPS FPS Skip FPS FPS Min / Max
[m3video] --------------------------------------------
[m3video] 0 | 30 0 5 25 177 / 242
[m3video] 1 | 30 0 30 0 255 / 0
[m3video] 2 | 30 0 30 0 255 / 0
[m3video]
[m3video] Multi Channel Encode Average Submit Batch Size
[m3video] Max Submit Batch Size : 24
[m3video] IVAHD_0 Average Batch Size : 1
[m3video] IVAHD_0 Max achieved Batch Size : 1
[m3video] =================================================================
同时我把该优先级提到最大都无济于事,每次出错必然是该线程中OSA_getCurTimeInMsec()函数会阻塞3000多毫秒(理论应该是IPC_BITS_IN_PROCESS_PERIOD_MS = 8毫秒)
同一套SDK同一个应用在DM8127平台上则不会出现以上打印信息。
能否帮我分析一下是什么原因引起上述问题?
执行DEMO同样会出现上述问题(./bin/ipnc_rdk_mcfw.out TRISTREAM TRIPLE_H264 APPRO2A AEWB 3MP_D1 HIGH_SPEED1 HIGH_SPEED2 MJPEG 80 &)