|
|
@ -671,8 +671,8 @@ void SpectraCamera::enqueue_buffer(int i, bool dp) { |
|
|
|
LOGE("failed to wait for sync: %d %d", ret, sync_wait.sync_obj); |
|
|
|
LOGE("failed to wait for sync: %d %d", ret, sync_wait.sync_obj); |
|
|
|
// TODO: handle frame drop cleanly
|
|
|
|
// TODO: handle frame drop cleanly
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
buf.frame_metadata[i].timestamp_end_of_isp = (uint64_t)nanos_since_boot(); |
|
|
|
buf.frame_metadata[i].timestamp_eof = (uint64_t)nanos_since_boot(); // set true eof
|
|
|
|
buf.frame_metadata[i].timestamp_eof = buf.frame_metadata[i].timestamp_sof + sensor->readout_time_ns; |
|
|
|
if (dp) buf.queue(i); |
|
|
|
if (dp) buf.queue(i); |
|
|
|
|
|
|
|
|
|
|
|
// destroy old output fence
|
|
|
|
// destroy old output fence
|
|
|
@ -1083,7 +1083,7 @@ void SpectraCamera::handle_camera_event(const cam_req_mgr_message *event_data) { |
|
|
|
auto &meta_data = buf.frame_metadata[buf_idx]; |
|
|
|
auto &meta_data = buf.frame_metadata[buf_idx]; |
|
|
|
meta_data.frame_id = main_id - idx_offset; |
|
|
|
meta_data.frame_id = main_id - idx_offset; |
|
|
|
meta_data.request_id = real_id; |
|
|
|
meta_data.request_id = real_id; |
|
|
|
meta_data.timestamp_sof = timestamp; |
|
|
|
meta_data.timestamp_sof = timestamp; // this is timestamped in the kernel's SOF IRQ callback
|
|
|
|
|
|
|
|
|
|
|
|
// dispatch
|
|
|
|
// dispatch
|
|
|
|
enqueue_req_multi(real_id + FRAME_BUF_COUNT, 1, 1); |
|
|
|
enqueue_req_multi(real_id + FRAME_BUF_COUNT, 1, 1); |
|
|
|