Files
external_libcamera/include/libcamera/internal/software_isp/benchmark.h
Hans de Goede bf51f39f3b libcamera: software_isp: Move benchmark code to its own class
Move the code for the builtin benchmark to its own small
Benchmark class.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
[bod: Fixed up some drift in this patch since initial propostion]
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2025-12-12 23:32:50 +00:00

40 lines
824 B
C++

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2024, Red Hat Inc.
*
* Authors:
* Hans de Goede <hdegoede@redhat.com>
*
* Simple builtin benchmark to measure software ISP processing times
*/
#pragma once
#include <stdint.h>
#include <time.h>
#include <libcamera/base/log.h>
#include "libcamera/internal/global_configuration.h"
namespace libcamera {
class Benchmark
{
public:
Benchmark(const GlobalConfiguration &configuration);
~Benchmark();
void startFrame(void);
void finishFrame(void);
private:
timespec frameStartTime_;
bool measure;
/* Skip 30 frames for things to stabilize then measure 30 frames */
unsigned int encounteredFrames_ = 0;
int64_t frameProcessTime_ = 0;
unsigned int skipBeforeMeasure_ = 30;
unsigned int framesToMeasure_ = 30;
};
} /* namespace libcamera */