Skip to content

Commit ef51b51

Browse files
committed
prevent redundant request re-enqueue after frame ID jump
1 parent 6ff8002 commit ef51b51

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

system/camerad/cameras/spectra.cc

+3-1
Original file line numberDiff line numberDiff line change
@@ -1375,17 +1375,19 @@ bool SpectraCamera::handle_camera_event(const cam_req_mgr_message *event_data) {
13751375

13761376
if (request_id != 0) { // next ready
13771377
// check for skipped_last frames
1378+
bool queue_was_cleared = false;
13781379
if (frame_id_raw > frame_id_raw_last + 1 && !skipped_last) {
13791380
LOGE("camera %d realign", cc.camera_num);
13801381
clear_req_queue();
13811382
enqueue_req_multi(request_id + 1, ife_buf_depth - 1);
13821383
skipped_last = true;
1384+
queue_was_cleared = true;
13831385
} else if (frame_id_raw == frame_id_raw_last + 1) {
13841386
skipped_last = false;
13851387
}
13861388

13871389
// check for dropped requests
1388-
if (request_id > request_id_last + 1) {
1390+
if (request_id > request_id_last + 1 && !queue_was_cleared) {
13891391
LOGE("camera %d dropped requests %ld %ld", cc.camera_num, request_id, request_id_last);
13901392
enqueue_req_multi(request_id_last + 1 + ife_buf_depth, request_id - (request_id_last + 1));
13911393
}

0 commit comments

Comments
 (0)