[libcamera-devel] [PATCH v4 21/21] v4l2: v4l2_camera: Fix stream selection for buffer operations

Jacopo Mondi jacopo at jmondi.org
Wed Jul 8 23:44:28 CEST 2020


Hi Paul,

On Wed, Jul 08, 2020 at 10:44:17PM +0900, Paul Elder wrote:
> The buffer operations in V4L2Camera were getting the stream from the
> wrong place. Fix it.

I wonder what is the use case for applications to get the stream list,
instead of going through the configuration. As this patch shows, that
part of the API is slippery...

Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>

Thanks
   j

>
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
>
> ---
> New in v4
> ---
>  src/v4l2/v4l2_camera.cpp | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index 9f81c97..61bca07 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -160,7 +160,7 @@ int V4L2Camera::validateConfiguration(const PixelFormat &pixelFormat,
>
>  int V4L2Camera::allocBuffers(unsigned int count)
>  {
> -	Stream *stream = *camera_->streams().begin();
> +	Stream *stream = config_->at(0).stream();
>
>  	return bufferAllocator_->allocate(stream);
>  }
> @@ -169,13 +169,13 @@ void V4L2Camera::freeBuffers()
>  {
>  	pendingRequests_.clear();
>
> -	Stream *stream = *camera_->streams().begin();
> +	Stream *stream = config_->at(0).stream();
>  	bufferAllocator_->free(stream);
>  }
>
>  FileDescriptor V4L2Camera::getBufferFd(unsigned int index)
>  {
> -	Stream *stream = *camera_->streams().begin();
> +	Stream *stream = config_->at(0).stream();
>  	const std::vector<std::unique_ptr<FrameBuffer>> &buffers =
>  		bufferAllocator_->buffers(stream);
>
> --
> 2.27.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list