[PATCH] libcamera: v4l2_videodevice: Clarify V4L2M2MDevice

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Nov 28 11:53:58 CET 2024


Quoting Jacopo Mondi (2024-11-27 08:12:11)
> The documentation seems to suggest that to create a new M2M
> execution context it is expected users to call V4L2M2MDevice::open()
> multiple times on the same video device path.
> 
> It is instead expected that multiple instances of the class are
> created, one for each required execution context.
> 
> Clarify it in the documentation of the V4L2M2MDevice class.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> ---
>  src/libcamera/v4l2_videodevice.cpp | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
> index 14eba0561d6a..156601d08d0c 100644
> --- a/src/libcamera/v4l2_videodevice.cpp
> +++ b/src/libcamera/v4l2_videodevice.cpp
> @@ -2128,11 +2128,16 @@ V4L2PixelFormat V4L2VideoDevice::toV4L2PixelFormat(const PixelFormat &pixelForma
>   * deviceNode which operate together using two queues to implement the V4L2
>   * Memory to Memory API.
>   *
> - * The two devices should be opened by calling open() on the V4L2M2MDevice, and
> - * can be closed by calling close on the V4L2M2MDevice.

I would open this paragraph with a statement that it's possible to use
multiple contexts. I don't think that itself is clear...

"""
Memory to Memory devices in the kernel using the V4L2 M2M API can
operate with multiple contexts for parallel operations on a single
device. Each instance of a V4L2M2MDevice represents a single context.
"""

Then continue with your text with one small typo:

> + * User of this class should create a new instance of the V4L2M2MDevice for each

s/User/Users/

> + * desired execution context and then open it by calling open() on the
> + * V4L2M2MDevice and close it by calling close() on the V4L2M2MDevice.
>   *
>   * Calling V4L2VideoDevice::open() and V4L2VideoDevice::close() on the capture
>   * or output V4L2VideoDevice is not permitted.
> + *
> + * Once the M2M device is open users can operate on the output and capture queue
> + * represented by the V4L2VideoDevice returned by the output() and capture()
> + * functions.
>   */


Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

>  
>  /**
> -- 
> 2.47.0
>


More information about the libcamera-devel mailing list