[libcamera-devel] [PATCH v2 02/10] libcamera: pipeline: uvcvideo: Report control errors
Jacopo Mondi
jacopo at jmondi.org
Fri Aug 5 15:53:04 CEST 2022
From: Kieran Bingham via libcamera-devel <libcamera-devel at lists.libcamera.org>
Report an error when failing to process controls, but still allow the
request to process and complete where possible.
The Request ControlError flag is raised on the request.
Bug: https://bugs.libcamera.org/show_bug.cgi?id=135
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
index fbe02cdcd520..8ffa27b1337b 100644
--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
@@ -26,6 +26,7 @@
#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/media_device.h"
#include "libcamera/internal/pipeline_handler.h"
+#include "libcamera/internal/request.h"
#include "libcamera/internal/sysfs.h"
#include "libcamera/internal/v4l2_videodevice.h"
@@ -373,8 +374,10 @@ int PipelineHandlerUVC::queueRequestDevice(Camera *camera, Request *request)
}
int ret = processControls(data, request);
- if (ret < 0)
- return ret;
+ if (ret < 0) {
+ LOG(UVC, Error) << "Failed to process controls";
+ request->_d()->setError(Request::ControlError);
+ }
ret = data->video_->queueBuffer(buffer);
if (ret < 0)
--
2.37.1
More information about the libcamera-devel
mailing list