@@ -32,6 +32,7 @@  public:
 	};
 
 	bool isValid() const { return format.isValid(); }
+	bool isRaw() const { return colourEncoding == ColourEncodingRAW; }
 
 	static const PixelFormatInfo &info(const PixelFormat &format);
 	static const PixelFormatInfo &info(const V4L2PixelFormat &format);
@@ -993,6 +993,12 @@  const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{
  * \return True if the pixel format info is valid, false otherwise
  */
 
+/**
+ * \fn bool PixelFormatInfo::isRaw() const
+ * \brief Check if the colour encoding is raw
+ * \return True if the colour encoding is raw, false otherwise
+ */
+
 /**
  * \brief Retrieve information about a pixel format
  * \param[in] format The pixel format
@@ -1222,8 +1228,7 @@  unsigned int PixelFormatInfo::numPlanes() const
  */
 bool isFormatRaw(const libcamera::PixelFormat &pixFmt)
 {
-	return libcamera::PixelFormatInfo::info(pixFmt).colourEncoding ==
-	       libcamera::PixelFormatInfo::ColourEncodingRAW;
+	return libcamera::PixelFormatInfo::info(pixFmt).isRaw();
 }
 
 } /* namespace libcamera */
@@ -452,9 +452,8 @@  ISICameraConfiguration::validateYuv(std::set<Stream *> &availableStreams,
 
 		/* If the stream is RAW or not supported default it to YUYV. */
 		const PixelFormatInfo &cfgInfo = PixelFormatInfo::info(cfg.pixelFormat);
-		if (cfgInfo.colourEncoding == PixelFormatInfo::ColourEncodingRAW ||
-		    !formatsMap_.count(cfg.pixelFormat)) {
 
+		if (cfgInfo.isRaw() || !formatsMap_.count(cfg.pixelFormat)) {
 			LOG(ISI, Debug) << "Stream " << i << " format: "
 					<< cfg.pixelFormat << " adjusted to YUYV";
 
@@ -523,7 +522,7 @@  CameraConfiguration::Status ISICameraConfiguration::validate()
 	const PixelFormatInfo info = PixelFormatInfo::info(config_[0].pixelFormat);
 
 	Status validationStatus;
-	if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)
+	if (info.isRaw())
 		validationStatus = validateRaw(availableStreams, maxResolution);
 	else
 		validationStatus = validateYuv(availableStreams, maxResolution);
@@ -651,7 +650,7 @@  StreamConfiguration PipelineHandlerISI::generateYUVConfiguration(Camera *camera,
 
 	for (const auto &[pixFmt, pipeFmt] : ISICameraConfiguration::formatsMap_) {
 		const PixelFormatInfo &info = PixelFormatInfo::info(pixFmt);
-		if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)
+		if (info.isRaw())
 			continue;
 
 		streamFormats[pixFmt] = { { kMinISISize, sensorSize } };
@@ -218,7 +218,7 @@  CameraConfiguration::Status IPU3CameraConfiguration::validate()
 	for (const StreamConfiguration &cfg : config_) {
 		const PixelFormatInfo &info = PixelFormatInfo::info(cfg.pixelFormat);
 
-		if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW) {
+		if (info.isRaw()) {
 			rawCount++;
 			rawSize = std::max(rawSize, cfg.size);
 		} else {
@@ -286,7 +286,7 @@  CameraConfiguration::Status IPU3CameraConfiguration::validate()
 
 		LOG(IPU3, Debug) << "Validating stream: " << config_[i].toString();
 
-		if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW) {
+		if (info.isRaw()) {
 			/* Initialize the RAW stream with the CIO2 configuration. */
 			cfg->size = cio2Configuration_.size;
 			cfg->pixelFormat = cio2Configuration_.pixelFormat;
@@ -651,7 +651,7 @@  CameraConfiguration::Status RkISP1CameraConfiguration::validate()
 
 	for (const StreamConfiguration &cfg : config_) {
 		const PixelFormatInfo &info = PixelFormatInfo::info(cfg.pixelFormat);
-		if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)
+		if (info.isRaw())
 			rawFormat = cfg.pixelFormat;
 
 		maxSize = std::max(maxSize, cfg.size);
@@ -842,7 +842,7 @@  int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 	Rectangle outputCrop = inputCrop;
 	const PixelFormat &streamFormat = config->at(0).pixelFormat;
 	const PixelFormatInfo &info = PixelFormatInfo::info(streamFormat);
-	isRaw_ = info.colourEncoding == PixelFormatInfo::ColourEncodingRAW;
+	isRaw_ = info.isRaw();
 	useDewarper_ = dewarper_ && !isRaw_;
 
 	/* YUYV8_2X8 is required on the ISP source path pad for YUV output. */
@@ -188,7 +188,7 @@  RkISP1Path::generateConfiguration(const CameraSensor *sensor, const Size &size,
 		const PixelFormatInfo &info = PixelFormatInfo::info(format);
 
 		/* Populate stream formats for non-RAW configurations. */
-		if (info.colourEncoding != PixelFormatInfo::ColourEncodingRAW) {
+		if (!info.isRaw()) {
 			if (role == StreamRole::Raw)
 				continue;
 
@@ -279,7 +279,7 @@  RkISP1Path::validate(const CameraSensor *sensor,
 	for (const auto &format : streamFormats_) {
 		const PixelFormatInfo &info = PixelFormatInfo::info(format);
 
-		if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW) {
+		if (info.isRaw()) {
 			/* Skip raw formats not supported by the sensor. */
 			uint32_t mbusCode = formatToMediaBus.at(format);
 			if (std::find(mbusCodes.begin(), mbusCodes.end(), mbusCode) ==
@@ -310,8 +310,7 @@  RkISP1Path::validate(const CameraSensor *sensor,
 	if (sensorConfig && !rawFormat.isValid())
 		return CameraConfiguration::Invalid;
 
-	bool isRaw = PixelFormatInfo::info(cfg->pixelFormat).colourEncoding ==
-		     PixelFormatInfo::ColourEncodingRAW;
+	bool isRaw = PixelFormatInfo::info(cfg->pixelFormat).isRaw();
 
 	/*
 	 * If no raw format supported by the sensor has been found, use a
 
  
There is another common pattern checking for raw colour encoding, present in multiple places: pixelFormatInfo.colourEncoding == PixelFormatInfo::ColourEncodingRAW Let's extract it into a helper too. Signed-off-by: Milan Zamazal <mzamazal@redhat.com> --- include/libcamera/internal/formats.h | 1 + src/libcamera/formats.cpp | 9 +++++++-- src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 7 +++---- src/libcamera/pipeline/ipu3/ipu3.cpp | 4 ++-- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 4 ++-- src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 7 +++---- 6 files changed, 18 insertions(+), 14 deletions(-)