libcamera: software_isp: Move isStandardBayerOrder to base class

isStandardBayerOrder is useful to both CPU and GPU debayer logic and
reusable as-is for both.

Move to shared location in base class.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
This commit is contained in:
Bryan O'Donoghue 2025-05-27 16:02:37 +01:00
parent c3a8493a12
commit 8ca941b7b5
4 changed files with 12 additions and 7 deletions

View file

@ -227,4 +227,14 @@ void Debayer::dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *inpu
dmaSyncers.emplace_back(plane.fd, DmaSyncer::SyncType::Write); dmaSyncers.emplace_back(plane.fd, DmaSyncer::SyncType::Write);
} }
/**
* \fn void Debayer::isStandardBayerOrder(BayerFormat::Order order)
* \brief Common method to validate standard Bayer order
*/
bool Debayer::isStandardBayerOrder(BayerFormat::Order order)
{
return order == BayerFormat::BGGR || order == BayerFormat::GBRG ||
order == BayerFormat::GRBG || order == BayerFormat::RGGB;
}
} /* namespace libcamera */ } /* namespace libcamera */

View file

@ -20,6 +20,7 @@
#include <libcamera/geometry.h> #include <libcamera/geometry.h>
#include <libcamera/stream.h> #include <libcamera/stream.h>
#include "libcamera/internal/bayer_format.h"
#include "libcamera/internal/dma_buf_allocator.h" #include "libcamera/internal/dma_buf_allocator.h"
#include "libcamera/internal/software_isp/benchmark.h" #include "libcamera/internal/software_isp/benchmark.h"
#include "libcamera/internal/software_isp/debayer_params.h" #include "libcamera/internal/software_isp/debayer_params.h"
@ -87,6 +88,7 @@ private:
protected: protected:
void setParams(DebayerParams &params); void setParams(DebayerParams &params);
void dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *input, FrameBuffer *output); void dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *input, FrameBuffer *output);
bool isStandardBayerOrder(BayerFormat::Order order);
}; };
} /* namespace libcamera */ } /* namespace libcamera */

View file

@ -282,12 +282,6 @@ void DebayerCpu::debayer10P_RGRG_BGR888(uint8_t *dst, const uint8_t *src[])
} }
} }
static bool isStandardBayerOrder(BayerFormat::Order order)
{
return order == BayerFormat::BGGR || order == BayerFormat::GBRG ||
order == BayerFormat::GRBG || order == BayerFormat::RGGB;
}
/* /*
* Setup the Debayer object according to the passed in parameters. * Setup the Debayer object according to the passed in parameters.
* Return 0 on success, a negative errno value on failure * Return 0 on success, a negative errno value on failure

View file

@ -17,7 +17,6 @@
#include <libcamera/base/object.h> #include <libcamera/base/object.h>
#include "libcamera/internal/bayer_format.h"
#include "libcamera/internal/software_isp/swstats_cpu.h" #include "libcamera/internal/software_isp/swstats_cpu.h"
#include "debayer.h" #include "debayer.h"