[libcamera-devel] [PATCH v3 04/22] v4l2: v4l2_camera_proxy: Free old buffers on reqbufs > 0

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jun 24 00:25:40 CEST 2020


Hi Paul,

Thank you for the patch.

On Wed, Jun 24, 2020 at 04:08:18AM +0900, Paul Elder wrote:
> Free buffers if any were previously allocated, at VIDIOC_REQBUFS with

s/buffers/buffers,/ ?

> count > 0.
> 
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> 
> ---
> New in v3
> - split from... a conglomerate of v4l2-compliance fixes patch
> ---
>  src/v4l2/v4l2_camera_proxy.cpp | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index eb59d49..7262453 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -361,6 +361,15 @@ int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuf
>  		return freeBuffers();
>  	}
>  
> +	if (bufferCount_ > 0) {
> +		int ret = freeBuffers();
> +		if (ret < 0) {
> +			LOG(V4L2Compat, Error)
> +				<< "Failed to free libcamera buffers for re-reqbufs";

			release(file);

?

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> +			return ret;
> +		}
> +	}
> +
>  	Size size(curV4L2Format_.fmt.pix.width, curV4L2Format_.fmt.pix.height);
>  	ret = vcam_->configure(&streamConfig_, size,
>  			       v4l2ToDrm(curV4L2Format_.fmt.pix.pixelformat),

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list