summaryrefslogtreecommitdiff
path: root/src/apps/qcam/assets/shader
diff options
context:
space:
mode:
authorAndrey Konovalov <andrey.konovalov@linaro.org>2024-04-16 11:13:49 +0200
committerKieran Bingham <kieran.bingham@ideasonboard.com>2024-04-16 13:00:21 +0100
commitc50065c9eb7c8152f6b54d17ec73504d12bf096b (patch)
treeae9f6894565a1bd8b7b0420985007719ce7262a6 /src/apps/qcam/assets/shader
parent4095a8184bcb7a96fdaf2316ec7c5ce60e9bb04f (diff)
libcamera: pipeline: simple: Enable use of Soft ISP and Soft IPA
To enable the Simple Soft ISP and Soft IPA for simple pipeline handler configure the build with: -Dpipelines=simple -Dipas=simple Also using the Soft ISP for the particular hardware platform must be enabled in the supportedDevices[] table. It is currently enabled for and only for qcom-camss. If the pipeline uses Converter, Soft ISP and Soft IPA aren't available. Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # sc8280xp Lenovo x13s Tested-by: Pavel Machek <pavel@ucw.cz> Reviewed-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/apps/qcam/assets/shader')
0 files changed, 0 insertions, 0 deletions
an class="hl kwa">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_; };