Fix dynamic setting of auto-focus

This commit is contained in:
Kamil Trzcinski 2022-07-07 11:37:36 +02:00
parent 07a46ee7cc
commit 4e8e74c716
2 changed files with 4 additions and 0 deletions

View File

@ -77,10 +77,12 @@ int libcamera_buffer_enqueue(buffer_t *buf, const char *who)
auto const &camera = buf->buf_list->dev->libcamera->camera; auto const &camera = buf->buf_list->dev->libcamera->camera;
request->reuse(libcamera::Request::ReuseBuffers); request->reuse(libcamera::Request::ReuseBuffers);
request->controls() = std::move(buf->buf_list->dev->libcamera->controls);
if (camera->queueRequest(buf->libcamera->request.get()) < 0) { if (camera->queueRequest(buf->libcamera->request.get()) < 0) {
LOG_ERROR(buf, "Can't queue buffer."); LOG_ERROR(buf, "Can't queue buffer.");
} }
buf->buf_list->dev->libcamera->controls.clear();
return 0; return 0;
error: error:

View File

@ -127,6 +127,8 @@ int libcamera_buffer_list_set_stream(buffer_list_t *buf_list, bool do_on)
if (buf_list->dev->libcamera->camera->start(&buf_list->dev->libcamera->controls) < 0) { if (buf_list->dev->libcamera->camera->start(&buf_list->dev->libcamera->controls) < 0) {
LOG_ERROR(buf_list, "Failed to start camera."); LOG_ERROR(buf_list, "Failed to start camera.");
} }
buf_list->dev->libcamera->controls.clear();
} else { } else {
buf_list->dev->libcamera->camera->requestCompleted.disconnect( buf_list->dev->libcamera->camera->requestCompleted.disconnect(
buf_list->libcamera, &buffer_list_libcamera_t::libcamera_buffer_list_dequeued); buf_list->libcamera, &buffer_list_libcamera_t::libcamera_buffer_list_dequeued);