libcamera: v4l2_videodevice: Clarify V4L2M2MDevice

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@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Jacopo Mondi 2024-11-27 09:08:48 +01:00
parent 493f198e94
commit 562b6335d9

View file

@ -2124,15 +2124,24 @@ V4L2PixelFormat V4L2VideoDevice::toV4L2PixelFormat(const PixelFormat &pixelForma
* \class V4L2M2MDevice
* \brief Memory-to-Memory video device
*
* 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.
*
* The V4L2M2MDevice manages two V4L2VideoDevice instances on the same
* 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.
* Users of this class should create a new instance of the V4L2M2MDevice for
* each 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
* queues represented by the V4L2VideoDevice returned by the output() and
* capture() functions.
*/
/**