[libcamera-devel] [RFC PATCH 02/12] libcamera: pipeline: uvcvideo: Report control errors

Umang Jain umang.jain at ideasonboard.com
Fri Jul 22 17:30:22 CEST 2022


Hi

On 7/21/22 17:43, Kieran Bingham via libcamera-devel wrote:
> 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>
> ---
>   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 53b2f23ab029..1f282f26bec3 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);


I kept wondering why we are processing controls here (in PH) and not in 
IPA, to later realize UVC has no IPA ;-)

> -	if (ret < 0)
> -		return ret;
> +	if (ret < 0) {
> +		LOG(UVC, Error) << "Failed to process controls";
> +		request->_d()->setErrorFlags(Request::ControlError);
> +	}


Makes sense and as per design.

Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

>   
>   	ret = data->video_->queueBuffer(buffer);
>   	if (ret < 0)


More information about the libcamera-devel mailing list