@@ -103,6 +103,17 @@ namespace libcamera {
LOG_DEFINE_CATEGORY(Debayer)
+Debayer::Debayer()
+{
+ /* Initialize color lookup tables */
+ for (unsigned int i = 0; i < DebayerParams::kRGBLookupSize; i++) {
+ red_[i] = green_[i] = blue_[i] = i;
+ redCcm_[i] = { static_cast<int16_t>(i), 0, 0 };
+ greenCcm_[i] = { 0, static_cast<int16_t>(i), 0 };
+ blueCcm_[i] = { 0, 0, static_cast<int16_t>(i) };
+ }
+}
+
Debayer::~Debayer()
{
}
@@ -32,6 +32,7 @@ LOG_DECLARE_CATEGORY(Debayer)
class Debayer : public Object
{
public:
+ Debayer();
virtual ~Debayer() = 0;
virtual int configure(const StreamConfiguration &inputCfg,
@@ -51,14 +51,6 @@ DebayerCpu::DebayerCpu(std::unique_ptr<SwStatsCpu> stats)
* future.
*/
enableInputMemcpy_ = true;
-
- /* Initialize color lookup tables */
- for (unsigned int i = 0; i < DebayerParams::kRGBLookupSize; i++) {
- red_[i] = green_[i] = blue_[i] = i;
- redCcm_[i] = { static_cast<int16_t>(i), 0, 0 };
- greenCcm_[i] = { 0, static_cast<int16_t>(i), 0 };
- blueCcm_[i] = { 0, 0, static_cast<int16_t>(i) };
- }
}
DebayerCpu::~DebayerCpu() = default;
Move the initialisation of Bayer params and CCM to a new constructor in the Debayer class. Ensure we call the base class constructor from DebayerCpu's constructor in the expected constructor order Debayer then DebayerCpu. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- src/libcamera/software_isp/debayer.cpp | 11 +++++++++++ src/libcamera/software_isp/debayer.h | 1 + src/libcamera/software_isp/debayer_cpu.cpp | 8 -------- 3 files changed, 12 insertions(+), 8 deletions(-)