libcamera: v4l2_videodevice: Expose setSelection()

Expose V4L2Videodevice::setSelection() method and drop
V4L2Videodevice::setCrop() and V4L2Videodevice::setComopse() as wrapping
each target with a single function does not provide any benefit.

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Jacopo Mondi
2020-04-25 17:29:12 +02:00
parent e8d4797ef5
commit b8728b76a6
2 changed files with 7 additions and 21 deletions
+6 -17
View File
@@ -1108,25 +1108,14 @@ std::vector<SizeRange> V4L2VideoDevice::enumSizes(V4L2PixelFormat pixelFormat)
}
/**
* \brief Set a crop rectangle on the V4L2 video device node
* \param[inout] rect The rectangle describing the crop target area
* \brief Set a selection rectangle \a rect for \a target
* \param[in] target The selection target defined by the V4L2_SEL_TGT_* flags
* \param[inout] rect The selection rectangle to be applied
*
* \todo Define a V4L2SelectionTarget enum for the selection target
*
* \return 0 on success or a negative error code otherwise
*/
int V4L2VideoDevice::setCrop(Rectangle *rect)
{
return setSelection(V4L2_SEL_TGT_CROP, rect);
}
/**
* \brief Set a compose rectangle on the V4L2 video device node
* \param[inout] rect The rectangle describing the compose target area
* \return 0 on success or a negative error code otherwise
*/
int V4L2VideoDevice::setCompose(Rectangle *rect)
{
return setSelection(V4L2_SEL_TGT_COMPOSE, rect);
}
int V4L2VideoDevice::setSelection(unsigned int target, Rectangle *rect)
{
struct v4l2_selection sel = {};