I did some very rough (output formatting, no average) benchmarking of the camera today.
The results:
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 116
send image process: 117
send image unaccounted time: 1
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 36
mjpeg stream unaccounted time: 36
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 26
mjpeg stream unaccounted time: 26
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_send
acquisition of image: 0
sending of image: 292
send image process: 292
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 121
send image process: 122
send image unaccounted time: 1
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 31
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 219
send image process: 219
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 432
send image process: 432
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 33
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 36
mjpeg stream unaccounted time: 36
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 26
mjpeg stream unaccounted time: 26
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 443
send image process: 443
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 29
mjpeg stream unaccounted time: 29
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 105
send image process: 105
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 38
mjpeg stream unaccounted time: 38
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 24
mjpeg stream unaccounted time: 24
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 447
send image process: 447
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 33
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 29
mjpeg stream unaccounted time: 29
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 1
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_send
acquisition of image: 0
sending of image: 120
send image process: 120
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 36
mjpeg stream store image: 0
mjpeg stream process: 68
mjpeg stream unaccounted time: 104
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 2
mjpeg stream unaccounted time: 2
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 23
mjpeg stream unaccounted time: 23
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 34
mjpeg stream unaccounted time: 34
camera_benchmark_send
acquisition of image: 0
sending of image: 9
send image process: 9
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 28
mjpeg stream unaccounted time: 28
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 33
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 1
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 223
send image process: 223
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 198
send image process: 198
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 38
mjpeg stream unaccounted time: 38
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 25
mjpeg stream unaccounted time: 25
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 1
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 416
send image process: 416
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 33
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 33
mjpeg stream unaccounted time: 34
camera_benchmark_recv
mjpeg stream recv image: 1
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 213
send image process: 213
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 1
sending of image: 0
send image process: 1
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 1
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 340
send image process: 340
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_send
acquisition of image: 0
sending of image: 2
send image process: 2
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 33
mjpeg stream unaccounted time: 34
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 33
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 28
mjpeg stream unaccounted time: 28
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 31
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 1
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 539
send image process: 539
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 37
mjpeg stream unaccounted time: 37
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 25
mjpeg stream unaccounted time: 25
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
cv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 121
send image process: 121
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 57
send image process: 57
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 1
mjpeg stream process: 32
mjpeg stream unaccounted time: 33
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 359
send image process: 359
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 30
mjpeg stream unaccounted time: 30
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 225
send image process: 226
send image unaccounted time: 1
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 38
mjpeg stream unaccounted time: 38
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 25
mjpeg stream unaccounted time: 25
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 32
mjpeg stream unaccounted time: 32
camera_benchmark_send
acquisition of image: 0
sending of image: 198
send image process: 198
send image unaccounted time: 0
camera_benchmark_send
acquisition of image: 0
sending of image: 0
send image process: 0
send image unaccounted time: 0
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
camera_benchmark_recv
mjpeg stream recv image: 0
mjpeg stream store image: 0
mjpeg stream process: 31
mjpeg stream unaccounted time: 31
What it means:
camera_benchmark_recv refers to “reading” the mjpeg stream and copying the image to a buffer.
mjpeg stream recv image:
AxisCamera2010.cpp line 105
while(bytesRead < readLength){
int bytesThisRecv= recv(cameraSocket, &imgBuffer[bytesRead], remaining, 0);
bytesRead += bytesThisRecv;
remaining -= bytesThisRecv;
}
mjpeg stream store image:
getInstance().updateImage(imgBuffer, readLength);
// call to (directly below AxisCamera::mjpegStream)
void AxisCamera::updateImage(char * imgBuffer, int bufLength) {
semTake(m_protectedImageSem, -1);
{
if (NULL != m_protectedImageBuffer) {
delete] m_protectedImageBuffer;
}
m_protectedImageBufferLength = bufLength;
m_protectedImageBuffer = new char[bufLength];
memcpy(m_protectedImageBuffer, imgBuffer, bufLength);
m_freshImage = true;
m_freshBlockingImage = true;
}
semGive(m_protectedImageSem);
}
mjpeg stream process is the entire receiving of the image and mjpeg stream unaccounted time is (obviously) the time spent not doing one of the select operations.
camera_benchmark_send is the sending of the image to the PC via TCP
PCVideoServer.cpp line 190
acquisition of image:
success = AxisCameraGetJpegImageBlocking(&imageData, &numBytes);
// call to AxisCamera2010.cpp line 56 (ultimately)
int AxisCamera::GetJpegImageBlocking(char** imageData, int* numBytes) {
int success = 1;
while (1) {
semTake(m_protectedImageSem, -1);
{
if (!m_protectedImageBuffer)
success = 0;
char* newImageData = new char[m_protectedImageBufferLength];
if (newImageData == NULL)
success = 0;
if (success) {
memcpy(newImageData, m_protectedImageBuffer, m_protectedImageBufferLength);
*imageData = newImageData;
*numBytes = m_protectedImageBufferLength;
if (m_freshBlockingImage) {
semGive(m_protectedImageSem);
return 1;
}
m_freshBlockingImage = false;
}
delete newImageData;
}
semGive(m_protectedImageSem);
if (!success)
return 0;
}
}
sending of image:
int sent = write (newPCSock, imageData, numBytes);
send image process and send image unaccounted time are the same as receiving.
Just looking through the output the majority of the time is spent on sending the image. Last year our team had real-time video using a python dashboard using the user data provided in the dashboard packets. We roughly sent 1 image every 3 packets. That’s ~16 FPS (50 packets per second guaranteed with the driver station last year). Compared to this year where we get about 5 FPS using the stock software.
Are other teams also having trouble with the FPS?
Tested using our own modified (for benchmarking) WPI lib where we just linked our existing code to the modified WPI lib.
I used the following function to get time:
#include <sysLib.h>
#include <tickLib.h>
return ((static_cast<double>(tickGet()) / static_cast<double>(sysClkRateGet()) * 1000.0)