libcamera: pixel_format: Replace hex with format names
Print format names defined in formats namespace instead of the hex values in toString() as they are easier to comprehend. For this add a property of 'name' in PixelFormatInfo' so as to map the formats with their names. Print fourcc for formats which are not used in libcamera. Signed-off-by: Kaaira Gupta <kgupta@es.iitr.ac.in> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
committed by
Laurent Pinchart
parent
c2bfe003e7
commit
2129117df9
@@ -8,6 +8,8 @@
|
||||
#include <libcamera/formats.h>
|
||||
#include <libcamera/pixel_format.h>
|
||||
|
||||
#include "libcamera/internal/formats.h"
|
||||
|
||||
/**
|
||||
* \file pixel_format.h
|
||||
* \brief libcamera pixel format
|
||||
@@ -104,9 +106,28 @@ bool PixelFormat::operator<(const PixelFormat &other) const
|
||||
*/
|
||||
std::string PixelFormat::toString() const
|
||||
{
|
||||
char str[11];
|
||||
snprintf(str, 11, "0x%08x", fourcc_);
|
||||
return str;
|
||||
const PixelFormatInfo &info = PixelFormatInfo::info(*this);
|
||||
|
||||
if (!info.isValid()) {
|
||||
if (*this == PixelFormat())
|
||||
return "<INVALID>";
|
||||
|
||||
char fourcc[7] = { '<',
|
||||
static_cast<char>(fourcc_),
|
||||
static_cast<char>(fourcc_ >> 8),
|
||||
static_cast<char>(fourcc_ >> 16),
|
||||
static_cast<char>(fourcc_ >> 24),
|
||||
'>' };
|
||||
|
||||
for (unsigned int i = 1; i < 5; i++) {
|
||||
if (!isprint(fourcc[i]))
|
||||
fourcc[i] = '.';
|
||||
}
|
||||
|
||||
return fourcc;
|
||||
}
|
||||
|
||||
return info.name;
|
||||
}
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
||||
Reference in New Issue
Block a user