summaryrefslogtreecommitdiff
path: root/utils/tuning/libtuning/parsers/parser.py
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2024-03-15 12:11:00 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2024-06-12 16:52:18 +0900
commit95fa5c40ba7f0f947e1db3e0fe25134f5175bca7 (patch)
tree7ecca6609cb0f698a18ca907c0b544b5ecc7f73e /utils/tuning/libtuning/parsers/parser.py
parent93438d1aad688703511a8c75c4c70c29ffb3d8da (diff)
ipa: libipa: Copy pwl from rpi, and clean it up to match libcamera
Copy the piecewise linear function code from Raspberry Pi, and clean it up to align it more with the libcamera style. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> Acked-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'utils/tuning/libtuning/parsers/parser.py')
0 files changed, 0 insertions, 0 deletions
an class="hl opt">, size_t dataCapacity); CameraMetadata(const camera_metadata_t *metadata); CameraMetadata(const CameraMetadata &other); ~CameraMetadata(); CameraMetadata &operator=(const CameraMetadata &other); std::tuple<size_t, size_t> usage() const; bool resized() const { return resized_; } bool isValid() const { return valid_; } bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const; template<typename T> bool entryContains(uint32_t tag, T value) const; bool hasEntry(uint32_t tag) const; template<typename T, std::enable_if_t<std::is_arithmetic_v<T> || std::is_enum_v<T>> * = nullptr> bool setEntry(uint32_t tag, const T &data) { if (hasEntry(tag)) return updateEntry(tag, &data, 1, sizeof(T)); else return addEntry(tag, &data, 1, sizeof(T)); } template<typename T, std::enable_if_t<std::is_arithmetic_v<T> || std::is_enum_v<T>> * = nullptr> bool addEntry(uint32_t tag, const T &data) { return addEntry(tag, &data, 1, sizeof(T)); } template<typename T, size_t size> bool addEntry(uint32_t tag, const T (&data)[size]) { return addEntry(tag, data, size, sizeof(T)); } template<typename S, typename T = typename S::value_type> bool addEntry(uint32_t tag, const S &data) { return addEntry(tag, data.data(), data.size(), sizeof(T)); } template<typename T> bool addEntry(uint32_t tag, const T *data, size_t count) { return addEntry(tag, data, count, sizeof(T)); } template<typename T> bool updateEntry(uint32_t tag, const T &data) { return updateEntry(tag, &data, 1, sizeof(T)); } template<typename T, size_t size> bool updateEntry(uint32_t tag, const T (&data)[size]) { return updateEntry(tag, data, size, sizeof(T)); } template<typename S, typename T = typename S::value_type> bool updateEntry(uint32_t tag, const S &data) { return updateEntry(tag, data.data(), data.size(), sizeof(T)); } template<typename T> bool updateEntry(uint32_t tag, const T *data, size_t count) { return updateEntry(tag, data, count, sizeof(T)); } camera_metadata_t *getMetadata(); const camera_metadata_t *getMetadata() const; private: bool resize(size_t count, size_t size); bool addEntry(uint32_t tag, const void *data, size_t count, size_t elementSize); bool updateEntry(uint32_t tag, const void *data, size_t count, size_t elementSize); camera_metadata_t *metadata_; bool valid_; bool resized_; };