libcamera: formats: Add toString() methods

Add toString() helpers to pretty print out a V4L2Device or V4L2Subdevice
format.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Jacopo Mondi 2019-03-11 16:32:06 +01:00
parent 97e8b3a2eb
commit ee81275238
4 changed files with 40 additions and 0 deletions

View file

@ -100,6 +100,8 @@ public:
uint32_t bpl;
} planes[3];
unsigned int planesCount;
const std::string toString() const;
};
class V4L2Device : protected Loggable

View file

@ -21,6 +21,8 @@ struct V4L2SubdeviceFormat {
uint32_t mbus_code;
uint32_t width;
uint32_t height;
const std::string toString() const;
};
class V4L2Subdevice : protected Loggable

View file

@ -6,6 +6,8 @@
*/
#include <fcntl.h>
#include <iomanip>
#include <sstream>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
@ -223,6 +225,22 @@ LOG_DEFINE_CATEGORY(V4L2)
* \brief The number of valid data planes
*/
/**
* \brief Assemble and return a string describing the format
*
* \return A string describing the V4L2DeviceFormat
*/
const std::string V4L2DeviceFormat::toString() const
{
std::stringstream ss;
ss.fill(0);
ss << width << "x" << height << "-0x" << std::hex
<< std::setw(8) << fourcc;
return ss.str();
}
/**
* \class V4L2Device
* \brief V4L2Device object and API

View file

@ -6,6 +6,8 @@
*/
#include <fcntl.h>
#include <iomanip>
#include <sstream>
#include <string.h>
#include <sys/ioctl.h>
#include <unistd.h>
@ -69,6 +71,22 @@ LOG_DEFINE_CATEGORY(V4L2Subdev)
* \brief The image height in pixels
*/
/**
* \brief Assemble and return a string describing the format
*
* \return A string describing the V4L2SubdeviceFormat
*/
const std::string V4L2SubdeviceFormat::toString() const
{
std::stringstream ss;
ss.fill(0);
ss << width << "x" << height << "-0x" << std::hex
<< std::setw(4) << mbus_code;
return ss.str();
}
/**
* \class V4L2Subdevice
* \brief A V4L2 subdevice as exposed by the Linux kernel