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:
Kaaira Gupta 2020-06-22 16:33:51 +05:30 committed by Laurent Pinchart
parent c2bfe003e7
commit 2129117df9
5 changed files with 125 additions and 5 deletions

51
test/pixel-format.cpp Normal file
View file

@ -0,0 +1,51 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2020, Kaaira Gupta
* libcamera pixel format handling test
*/
#include <iostream>
#include <vector>
#include <libcamera/formats.h>
#include <libcamera/pixel_format.h>
#include "libcamera/internal/utils.h"
#include "test.h"
using namespace std;
using namespace libcamera;
class PixelFormatTest : public Test
{
protected:
int run()
{
std::vector<std::pair<PixelFormat, const char *>> formatsMap{
{ formats::R8, "R8" },
{ formats::SRGGB10_CSI2P, "SRGGB10_CSI2P" },
{ PixelFormat(0, 0), "<INVALID>" },
{ PixelFormat(0x20203843), "<C8 >" }
};
for (const auto &format : formatsMap) {
if ((format.first).toString() != format.second) {
cerr << "Failed to convert PixelFormat "
<< utils::hex(format.first.fourcc()) << " to string"
<< endl;
return TestFail;
}
}
if (PixelFormat().toString() != "<INVALID>") {
cerr << "Failed to convert default PixelFormat to string"
<< endl;
return TestFail;
}
return TestPass;
}
};
TEST_REGISTER(PixelFormatTest)