帮忙分析下原因:
条件:前周视6V接入单J5上,摄像头30fps,消费者App通过Pub/Sub Callback机制获取摄像头数据,但是消费者App消费摄像头数据时间 为 ~40ms。
现象:出现摄像头数据丢帧
问题:#1 hw_drop_count是表示PYM硬件能力不够,导致的丢帧吗? 还是PYM Buffer管理或使用不当导致的?
#2 hb_vio_get_data_conditional 耗时远超 33ms 的原因是什么?
#3 如上问题,如何能做到不丢帧?或者如何做到 固定的丢帧(比如只丢奇数帧)?
Log:
#1
==================== S10 info ====================
pym_mode: 4 input_width: 1920 input_height: 1280
Frame running info: alloc capture buffer count 11
[Request 7 Process 0 Complete 0 User 4]
Frame[0] instance 10, status 1
Frame[1] instance 10, status 4
Frame[2] instance 10, status 4
Frame[3] instance 10, status 1
Frame[4] instance 10, status 4
Frame[5] instance 10, status 1
Frame[6] instance 10, status 1
Frame[7] instance 10, status 1
Frame[8] instance 10, status 1
Frame[9] instance 10, status 4
Frame[10] instance 10, status 1
pym_mode: 4 input_width: 1920 input_height: 1280
Total hw drop count: 395, isp drop count 0
sw drop count: 0
Frame running info: alloc capture buffer count 6
[Request 2 Process 0 Complete 0 User 4]
Frame[0] instance 1, status 1
Frame[1] instance 1, status 4
Frame[2] instance 1, status 4
Frame[3] instance 1, status 1
Frame[4] instance 1, status 4
Frame[5] instance 1, status 4
#2
[W][3032][sensor_center][00:43:06:643245][camera.cpp:628][sensor_center] HB_VIO_PYM_DATA_V2 pipeline: 1 hb_vio_get_data_conditional cost: 33136 us!
[E][3032][sensor_center][00:43:06:742709][camera_com.cpp:261][sensor_center] camera_1 data loss!
#3
130|root@journey5:/ # while(true) do cat /sys/devices/platform/soc/47010000.cam_sys/470e0000.pym/fps; sleep 1; done
pym0 pipe 5: input fps 27, output fps 14
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 26, output fps 15
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 28, output fps 17
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 27, output fps 14
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 28, output fps 15
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 27, output fps 17
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 27, output fps 16
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 25, output fps 13
pym0 pipe 10: input fps 30, output fps 30
pym0 pipe 5: input fps 29, output fps 15
pym0 pipe 10: input fps 30, output fps 30
#4 每个摄像的PYM Buffer 为6 。改成 12后,问题仍然存在
