|
|
|
@ -2028,24 +2028,28 @@ static void* ops_thread(void* arg) { |
|
|
|
|
assert(err == 0); |
|
|
|
|
|
|
|
|
|
err = zmq_msg_recv(&msg, sockraw, 0); |
|
|
|
|
assert(err >= 0); |
|
|
|
|
|
|
|
|
|
CameraMsg cmsg; |
|
|
|
|
if (zmq_msg_size(&msg) == sizeof(cmsg)) { |
|
|
|
|
memcpy(&cmsg, zmq_msg_data(&msg), zmq_msg_size(&msg)); |
|
|
|
|
|
|
|
|
|
//LOGD("cameraops %d", cmsg.type);
|
|
|
|
|
|
|
|
|
|
if (cmsg.type == CAMERA_MSG_AUTOEXPOSE) { |
|
|
|
|
if (cmsg.camera_num == 0) { |
|
|
|
|
do_autoexposure(&s->rear, cmsg.grey_frac); |
|
|
|
|
do_autofocus(&s->rear); |
|
|
|
|
} else { |
|
|
|
|
do_autoexposure(&s->front, cmsg.grey_frac); |
|
|
|
|
if (err >= 0) { |
|
|
|
|
CameraMsg cmsg; |
|
|
|
|
if (zmq_msg_size(&msg) == sizeof(cmsg)) { |
|
|
|
|
memcpy(&cmsg, zmq_msg_data(&msg), zmq_msg_size(&msg)); |
|
|
|
|
|
|
|
|
|
//LOGD("cameraops %d", cmsg.type);
|
|
|
|
|
|
|
|
|
|
if (cmsg.type == CAMERA_MSG_AUTOEXPOSE) { |
|
|
|
|
if (cmsg.camera_num == 0) { |
|
|
|
|
do_autoexposure(&s->rear, cmsg.grey_frac); |
|
|
|
|
do_autofocus(&s->rear); |
|
|
|
|
} else { |
|
|
|
|
do_autoexposure(&s->front, cmsg.grey_frac); |
|
|
|
|
} |
|
|
|
|
} else if (cmsg.type == -1) { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} else if (cmsg.type == -1) { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// skip if zmq is interrupted by msgq
|
|
|
|
|
int err_no = zmq_errno(); |
|
|
|
|
assert(err_no == EINTR || err_no == EAGAIN); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
zmq_msg_close(&msg); |
|
|
|
|