Fix dynamic setting of auto-focus
This commit is contained in:
parent
07a46ee7cc
commit
4e8e74c716
@ -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:
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user