[libcamera-devel] [PATCH v6 5/5] libcamera: v4l2_device: Cosmetic update

Jacopo Mondi jacopo at jmondi.org
Fri Mar 1 12:51:39 CET 2019


Cosmetic update of V4L2Device class:
- remove the return type from Doxygen documentation of inline functions
- re-sort methods implementation to reflect the declaration order in the
class definition

Cosmetic update, no functional changes intended.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/libcamera/v4l2_device.cpp | 412 +++++++++++++++++-----------------
 1 file changed, 206 insertions(+), 206 deletions(-)

diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index b19cf9f78029..5f2cf4846c65 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -37,56 +37,56 @@ LOG_DEFINE_CATEGORY(V4L2)
  */
 
 /**
- * \fn const char *V4L2Capability::driver()
+ * \fn V4L2Capability::driver()
  * \brief Retrieve the driver module name
  * \return The string containing the name of the driver module
  */
 
 /**
- * \fn const char *V4L2Capability::card()
+ * \fn V4L2Capability::card()
  * \brief Retrieve the device card name
  * \return The string containing the device name
  */
 
 /**
- * \fn const char *V4L2Capability::bus_info()
+ * \fn V4L2Capability::bus_info()
  * \brief Retrieve the location of the device in the system
  * \return The string containing the device location
  */
 
 /**
- * \fn unsigned int V4L2Capability::device_caps()
+ * \fn V4L2Capability::device_caps()
  * \brief Retrieve the capabilities of the device
  * \return The device specific capabilities if V4L2_CAP_DEVICE_CAPS is set or
  * 	   driver capabilities otherwise
  */
 
 /**
- * \fn bool V4L2Capability::isMultiplanar()
+ * \fn V4L2Capability::isMultiplanar()
  * \brief Identify if the device implements the V4L2 multiplanar APIs
  * \return True if the device supports multiplanar APIs
  */
 
 /**
- * \fn bool V4L2Capability::isCapture()
+ * \fn V4L2Capability::isCapture()
  * \brief Identify if the device captures data
  * \return True if the device can capture data
  */
 
 /**
- * \fn bool V4L2Capability::isOutput()
+ * \fn V4L2Capability::isOutput()
  * \brief Identify if the device outputs data
  * \return True if the device can output data
  */
 
 /**
- * \fn bool V4L2Capability::isVideo()
+ * \fn V4L2Capability::isVideo()
  * \brief Identify if the device captures or outputs images
  * \return True if the device can capture or output images
  */
 
 /**
- * \fn bool V4L2Capability::isMeta()
+ * \fn V4L2Capability::isMeta()
  * \brief Identify if the device captures or outputs image meta-data
  *
  * \todo Add support for META_CAPTURE introduced in Linux v5.0
@@ -95,25 +95,25 @@ LOG_DEFINE_CATEGORY(V4L2)
  */
 
 /**
- * \fn bool V4L2Capability::isVideoCapture()
+ * \fn V4L2Capability::isVideoCapture()
  * \brief Identify if the device captures images
  * \return True if the device can capture images
  */
 
 /**
- * \fn bool V4L2Capability::isVideoOutput()
+ * \fn V4L2Capability::isVideoOutput()
  * \brief Identify if the device outputs images
  * \return True if the device can output images
  */
 
 /**
- * \fn bool V4L2Capability::isMetaCapture()
+ * \fn V4L2Capability::isMetaCapture()
  * \brief Identify if the device captures image meta-data
  * \return True if the device can capture image meta-data
  */
 
 /**
- * \fn bool V4L2Capability::hasStreaming()
+ * \fn V4L2Capability::hasStreaming()
  * \brief Determine if the device can perform Streaming I/O
  * \return True if the device provides Streaming I/O IOCTLs
  */
@@ -371,19 +371,19 @@ void V4L2Device::close()
 }
 
 /**
- * \fn const char *V4L2Device::driverName()
+ * \fn V4L2Device::driverName()
  * \brief Retrieve the name of the V4L2 device driver
  * \return The string containing the driver name
  */
 
 /**
- * \fn const char *V4L2Device::deviceName()
+ * \fn V4L2Device::deviceName()
  * \brief Retrieve the name of the V4L2 device
  * \return The string containing the device name
  */
 
 /**
- * \fn const char *V4L2Device::busName()
+ * \fn V4L2Device::busName()
  * \brief Retrieve the location of the device in the system
  * \return The string containing the device location
  */
@@ -394,11 +394,6 @@ void V4L2Device::close()
  * \return The video device device node path
  */
 
-std::string V4L2Device::logPrefix() const
-{
-	return deviceNode_;
-}
-
 /**
  * \brief Retrieve the image format set on the V4L2 device
  * \param[out] format The image format applied on the device
@@ -426,155 +421,6 @@ int V4L2Device::setFormat(V4L2DeviceFormat *format)
 				       setFormatSingleplane(format);
 }
 
-int V4L2Device::getFormatSingleplane(V4L2DeviceFormat *format)
-{
-	struct v4l2_format v4l2Format = {};
-	struct v4l2_pix_format *pix = &v4l2Format.fmt.pix;
-	int ret;
-
-	v4l2Format.type = bufferType_;
-	ret = ioctl(fd_, VIDIOC_G_FMT, &v4l2Format);
-	if (ret) {
-		ret = -errno;
-		LOG(V4L2, Error) << "Unable to get format: " << strerror(-ret);
-		return ret;
-	}
-
-	format->width = pix->width;
-	format->height = pix->height;
-	format->fourcc = pix->pixelformat;
-	format->planesCount = 1;
-	format->planes[0].bpl = pix->bytesperline;
-	format->planes[0].size = pix->sizeimage;
-
-	return 0;
-}
-
-int V4L2Device::setFormatSingleplane(V4L2DeviceFormat *format)
-{
-	struct v4l2_format v4l2Format = {};
-	struct v4l2_pix_format *pix = &v4l2Format.fmt.pix;
-	int ret;
-
-	v4l2Format.type = bufferType_;
-	pix->width = format->width;
-	pix->height = format->height;
-	pix->pixelformat = format->fourcc;
-	pix->bytesperline = format->planes[0].bpl;
-	pix->field = V4L2_FIELD_NONE;
-
-	ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format);
-	if (ret) {
-		ret = -errno;
-		LOG(V4L2, Error) << "Unable to set format: " << strerror(-ret);
-		return ret;
-	}
-
-	/*
-	 * Return to caller the format actually applied on the device,
-	 * which might differ from the requested one.
-	 */
-	format->width = pix->width;
-	format->height = pix->height;
-	format->fourcc = pix->pixelformat;
-	format->planesCount = 1;
-	format->planes[0].bpl = pix->bytesperline;
-	format->planes[0].size = pix->sizeimage;
-
-	return 0;
-}
-
-int V4L2Device::getFormatMultiplane(V4L2DeviceFormat *format)
-{
-	struct v4l2_format v4l2Format = {};
-	struct v4l2_pix_format_mplane *pix = &v4l2Format.fmt.pix_mp;
-	int ret;
-
-	v4l2Format.type = bufferType_;
-	ret = ioctl(fd_, VIDIOC_G_FMT, &v4l2Format);
-	if (ret) {
-		ret = -errno;
-		LOG(V4L2, Error) << "Unable to get format: " << strerror(-ret);
-		return ret;
-	}
-
-	format->width = pix->width;
-	format->height = pix->height;
-	format->fourcc = pix->pixelformat;
-	format->planesCount = pix->num_planes;
-
-	for (unsigned int i = 0; i < format->planesCount; ++i) {
-		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
-		format->planes[i].size = pix->plane_fmt[i].sizeimage;
-	}
-
-	return 0;
-}
-
-int V4L2Device::setFormatMultiplane(V4L2DeviceFormat *format)
-{
-	struct v4l2_format v4l2Format = {};
-	struct v4l2_pix_format_mplane *pix = &v4l2Format.fmt.pix_mp;
-	int ret;
-
-	v4l2Format.type = bufferType_;
-	pix->width = format->width;
-	pix->height = format->height;
-	pix->pixelformat = format->fourcc;
-	pix->num_planes = format->planesCount;
-	pix->field = V4L2_FIELD_NONE;
-
-	for (unsigned int i = 0; i < pix->num_planes; ++i) {
-		pix->plane_fmt[i].bytesperline = format->planes[i].bpl;
-		pix->plane_fmt[i].sizeimage = format->planes[i].size;
-	}
-
-	ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format);
-	if (ret) {
-		ret = -errno;
-		LOG(V4L2, Error) << "Unable to set format: " << strerror(-ret);
-		return ret;
-	}
-
-	/*
-	 * Return to caller the format actually applied on the device,
-	 * which might differ from the requested one.
-	 */
-	format->width = pix->width;
-	format->height = pix->height;
-	format->fourcc = pix->pixelformat;
-	format->planesCount = pix->num_planes;
-	for (unsigned int i = 0; i < format->planesCount; ++i) {
-		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
-		format->planes[i].size = pix->plane_fmt[i].sizeimage;
-	}
-
-	return 0;
-}
-
-int V4L2Device::requestBuffers(unsigned int count)
-{
-	struct v4l2_requestbuffers rb = {};
-	int ret;
-
-	rb.count = count;
-	rb.type = bufferType_;
-	rb.memory = memoryType_;
-
-	ret = ioctl(fd_, VIDIOC_REQBUFS, &rb);
-	if (ret < 0) {
-		ret = -errno;
-		LOG(V4L2, Error)
-			<< "Unable to request " << count << " buffers: "
-			<< strerror(-ret);
-		return ret;
-	}
-
-	LOG(V4L2, Debug) << rb.count << " buffers requested.";
-
-	return rb.count;
-}
-
 /**
  * \brief Request buffers to be allocated from the device and stored in the
  *  buffer pool provided.
@@ -649,37 +495,6 @@ int V4L2Device::exportBuffers(BufferPool *pool)
 	return 0;
 }
 
-int V4L2Device::createPlane(Buffer *buffer, unsigned int planeIndex,
-			    unsigned int length)
-{
-	struct v4l2_exportbuffer expbuf = {};
-	int ret;
-
-	LOG(V4L2, Debug)
-		<< "Buffer " << buffer->index()
-		<< " plane " << planeIndex
-		<< ": length=" << length;
-
-	expbuf.type = bufferType_;
-	expbuf.index = buffer->index();
-	expbuf.plane = planeIndex;
-	expbuf.flags = O_RDWR;
-
-	ret = ioctl(fd_, VIDIOC_EXPBUF, &expbuf);
-	if (ret < 0) {
-		ret = -errno;
-		LOG(V4L2, Error)
-			<< "Failed to export buffer: " << strerror(-ret);
-		return ret;
-	}
-
-	buffer->planes().emplace_back();
-	Plane &plane = buffer->planes().back();
-	plane.setDmabuf(expbuf.fd, length);
-
-	return 0;
-}
-
 /**
  * \brief Import the externally allocated \a pool of buffers
  * \param[in] pool BufferPool of buffers to import
@@ -790,6 +605,11 @@ int V4L2Device::queueBuffer(Buffer *buffer)
 	return 0;
 }
 
+/**
+ * \var V4L2Device::bufferReady
+ * \brief A Signal emitted when a buffer completes
+ */
+
 /**
  * \brief Dequeue the next available buffer from the device
  *
@@ -860,11 +680,6 @@ void V4L2Device::bufferAvailable(EventNotifier *notifier)
 	buffer->completed.emit(buffer);
 }
 
-/**
- * \var V4L2Device::bufferReady
- * \brief A Signal emitted when a buffer completes
- */
-
 /**
  * \brief Start the video stream
  *
@@ -910,4 +725,189 @@ int V4L2Device::streamOff()
 	return 0;
 }
 
+std::string V4L2Device::logPrefix() const
+{
+	return deviceNode_;
+}
+
+int V4L2Device::getFormatSingleplane(V4L2DeviceFormat *format)
+{
+	struct v4l2_format v4l2Format = {};
+	struct v4l2_pix_format *pix = &v4l2Format.fmt.pix;
+	int ret;
+
+	v4l2Format.type = bufferType_;
+	ret = ioctl(fd_, VIDIOC_G_FMT, &v4l2Format);
+	if (ret) {
+		ret = -errno;
+		LOG(V4L2, Error) << "Unable to get format: " << strerror(-ret);
+		return ret;
+	}
+
+	format->width = pix->width;
+	format->height = pix->height;
+	format->fourcc = pix->pixelformat;
+	format->planesCount = 1;
+	format->planes[0].bpl = pix->bytesperline;
+	format->planes[0].size = pix->sizeimage;
+
+	return 0;
+}
+
+int V4L2Device::setFormatSingleplane(V4L2DeviceFormat *format)
+{
+	struct v4l2_format v4l2Format = {};
+	struct v4l2_pix_format *pix = &v4l2Format.fmt.pix;
+	int ret;
+
+	v4l2Format.type = bufferType_;
+	pix->width = format->width;
+	pix->height = format->height;
+	pix->pixelformat = format->fourcc;
+	pix->bytesperline = format->planes[0].bpl;
+	pix->field = V4L2_FIELD_NONE;
+
+	ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format);
+	if (ret) {
+		ret = -errno;
+		LOG(V4L2, Error) << "Unable to set format: " << strerror(-ret);
+		return ret;
+	}
+
+	/*
+	 * Return to caller the format actually applied on the device,
+	 * which might differ from the requested one.
+	 */
+	format->width = pix->width;
+	format->height = pix->height;
+	format->fourcc = pix->pixelformat;
+	format->planesCount = 1;
+	format->planes[0].bpl = pix->bytesperline;
+	format->planes[0].size = pix->sizeimage;
+
+	return 0;
+}
+
+int V4L2Device::getFormatMultiplane(V4L2DeviceFormat *format)
+{
+	struct v4l2_format v4l2Format = {};
+	struct v4l2_pix_format_mplane *pix = &v4l2Format.fmt.pix_mp;
+	int ret;
+
+	v4l2Format.type = bufferType_;
+	ret = ioctl(fd_, VIDIOC_G_FMT, &v4l2Format);
+	if (ret) {
+		ret = -errno;
+		LOG(V4L2, Error) << "Unable to get format: " << strerror(-ret);
+		return ret;
+	}
+
+	format->width = pix->width;
+	format->height = pix->height;
+	format->fourcc = pix->pixelformat;
+	format->planesCount = pix->num_planes;
+
+	for (unsigned int i = 0; i < format->planesCount; ++i) {
+		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
+		format->planes[i].size = pix->plane_fmt[i].sizeimage;
+	}
+
+	return 0;
+}
+
+int V4L2Device::setFormatMultiplane(V4L2DeviceFormat *format)
+{
+	struct v4l2_format v4l2Format = {};
+	struct v4l2_pix_format_mplane *pix = &v4l2Format.fmt.pix_mp;
+	int ret;
+
+	v4l2Format.type = bufferType_;
+	pix->width = format->width;
+	pix->height = format->height;
+	pix->pixelformat = format->fourcc;
+	pix->num_planes = format->planesCount;
+	pix->field = V4L2_FIELD_NONE;
+
+	for (unsigned int i = 0; i < pix->num_planes; ++i) {
+		pix->plane_fmt[i].bytesperline = format->planes[i].bpl;
+		pix->plane_fmt[i].sizeimage = format->planes[i].size;
+	}
+
+	ret = ioctl(fd_, VIDIOC_S_FMT, &v4l2Format);
+	if (ret) {
+		ret = -errno;
+		LOG(V4L2, Error) << "Unable to set format: " << strerror(-ret);
+		return ret;
+	}
+
+	/*
+	 * Return to caller the format actually applied on the device,
+	 * which might differ from the requested one.
+	 */
+	format->width = pix->width;
+	format->height = pix->height;
+	format->fourcc = pix->pixelformat;
+	format->planesCount = pix->num_planes;
+	for (unsigned int i = 0; i < format->planesCount; ++i) {
+		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
+		format->planes[i].size = pix->plane_fmt[i].sizeimage;
+	}
+
+	return 0;
+}
+
+int V4L2Device::requestBuffers(unsigned int count)
+{
+	struct v4l2_requestbuffers rb = {};
+	int ret;
+
+	rb.count = count;
+	rb.type = bufferType_;
+	rb.memory = memoryType_;
+
+	ret = ioctl(fd_, VIDIOC_REQBUFS, &rb);
+	if (ret < 0) {
+		ret = -errno;
+		LOG(V4L2, Error)
+			<< "Unable to request " << count << " buffers: "
+			<< strerror(-ret);
+		return ret;
+	}
+
+	LOG(V4L2, Debug) << rb.count << " buffers requested.";
+
+	return rb.count;
+}
+
+int V4L2Device::createPlane(Buffer *buffer, unsigned int planeIndex,
+			    unsigned int length)
+{
+	struct v4l2_exportbuffer expbuf = {};
+	int ret;
+
+	LOG(V4L2, Debug)
+		<< "Buffer " << buffer->index()
+		<< " plane " << planeIndex
+		<< ": length=" << length;
+
+	expbuf.type = bufferType_;
+	expbuf.index = buffer->index();
+	expbuf.plane = planeIndex;
+	expbuf.flags = O_RDWR;
+
+	ret = ioctl(fd_, VIDIOC_EXPBUF, &expbuf);
+	if (ret < 0) {
+		ret = -errno;
+		LOG(V4L2, Error)
+			<< "Failed to export buffer: " << strerror(-ret);
+		return ret;
+	}
+
+	buffer->planes().emplace_back();
+	Plane &plane = buffer->planes().back();
+	plane.setDmabuf(expbuf.fd, length);
+
+	return 0;
+}
+
 } /* namespace libcamera */
-- 
2.20.1



More information about the libcamera-devel mailing list