libcamera: /build/libcamera/src/build/include/libcamera/ipa/core_ipa_interface.h Source File

libcamera v0.7.2 Supporting cameras in Linux since 2019

Loading...
Searching...
No Matches
core_ipa_interface.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2020, Google Inc.
4 *
5 * libcamera core definitions for Image Processing Algorithms
6 *
7 * This file is auto-generated. Do not edit.
8 */
9
10#pragma once
11
12
13#include <string>
14#include <type_traits>
15#include <utility>
16#include <vector>
17
18#include <libcamera/controls.h>
19#include <libcamera/framebuffer.h>
20#include <libcamera/geometry.h>
21
22#include <libcamera/ipa/ipa_interface.h>
23
24namespace libcamera {
25
26
27
28
29
30 struct IPACameraSensorInfo
31{
32public:
33#ifndef __DOXYGEN__
34 IPACameraSensorInfo() = default;
35
36 template<
37 typename T1 = std::string,
38 typename T2 = uint32_t,
39 typename T3 = uint32_t,
40 typename T4 = Size,
41 typename T5 = Rectangle,
42 typename T6 = Size,
43 typename T7 = uint64_t,
44 typename T8 = uint32_t,
45 typename T9 = uint32_t,
46 typename T10 = uint32_t,
47 typename T11 = uint32_t,
48 std::enable_if_t<std::is_convertible_v<T1&&, std::string>> * = nullptr,
49 std::enable_if_t<std::is_convertible_v<T2&&, uint32_t>> * = nullptr,
50 std::enable_if_t<std::is_convertible_v<T3&&, uint32_t>> * = nullptr,
51 std::enable_if_t<std::is_convertible_v<T4&&, Size>> * = nullptr,
52 std::enable_if_t<std::is_convertible_v<T5&&, Rectangle>> * = nullptr,
53 std::enable_if_t<std::is_convertible_v<T6&&, Size>> * = nullptr,
54 std::enable_if_t<std::is_convertible_v<T7&&, uint64_t>> * = nullptr,
55 std::enable_if_t<std::is_convertible_v<T8&&, uint32_t>> * = nullptr,
56 std::enable_if_t<std::is_convertible_v<T9&&, uint32_t>> * = nullptr,
57 std::enable_if_t<std::is_convertible_v<T10&&, uint32_t>> * = nullptr,
58 std::enable_if_t<std::is_convertible_v<T11&&, uint32_t>> * = nullptr
59 >
60 IPACameraSensorInfo(T1 &&_model, T2 &&_bitsPerPixel, T3 &&_cfaPattern, T4 &&_activeAreaSize, T5 &&_analogCrop, T6 &&_outputSize, T7 &&_pixelRate, T8 &&_minLineLength, T9 &&_maxLineLength, T10 &&_minFrameLength, T11 &&_maxFrameLength)
61 : model(std::forward<T1>(_model))
62 , bitsPerPixel(std::forward<T2>(_bitsPerPixel))
63 , cfaPattern(std::forward<T3>(_cfaPattern))
64 , activeAreaSize(std::forward<T4>(_activeAreaSize))
65 , analogCrop(std::forward<T5>(_analogCrop))
66 , outputSize(std::forward<T6>(_outputSize))
67 , pixelRate(std::forward<T7>(_pixelRate))
68 , minLineLength(std::forward<T8>(_minLineLength))
69 , maxLineLength(std::forward<T9>(_maxLineLength))
70 , minFrameLength(std::forward<T10>(_minFrameLength))
71 , maxFrameLength(std::forward<T11>(_maxFrameLength))
72 {
73 }
74#endif
75
76
77 std::string model;
78 uint32_t bitsPerPixel{ 0 };
79 uint32_t cfaPattern{ 0 };
80 Size activeAreaSize;
81 Rectangle analogCrop;
82 Size outputSize;
83 uint64_t pixelRate{ 0 };
84 uint32_t minLineLength{ 0 };
85 uint32_t maxLineLength{ 0 };
86 uint32_t minFrameLength{ 0 };
87 uint32_t maxFrameLength{ 0 };
88};
89
90 struct IPABuffer
91{
92public:
93#ifndef __DOXYGEN__
94 IPABuffer() = default;
95
96 template<
97 typename T1 = uint32_t,
98 typename T2 = std::vector<FrameBuffer::Plane>,
99 std::enable_if_t<std::is_convertible_v<T1&&, uint32_t>> * = nullptr,
100 std::enable_if_t<std::is_convertible_v<T2&&, std::vector<FrameBuffer::Plane>>> * = nullptr
101 >
102 IPABuffer(T1 &&_id, T2 &&_planes)
103 : id(std::forward<T1>(_id))
104 , planes(std::forward<T2>(_planes))
105 {
106 }
107#endif
108
109
110 uint32_t id{ 0 };
111 std::vector<FrameBuffer::Plane> planes;
112};
113
114 struct IPASettings
115{
116public:
117#ifndef __DOXYGEN__
118 IPASettings() = default;
119
120 template<
121 typename T1 = std::string,
122 typename T2 = std::string,
123 std::enable_if_t<std::is_convertible_v<T1&&, std::string>> * = nullptr,
124 std::enable_if_t<std::is_convertible_v<T2&&, std::string>> * = nullptr
125 >
126 IPASettings(T1 &&_configurationFile, T2 &&_sensorModel)
127 : configurationFile(std::forward<T1>(_configurationFile))
128 , sensorModel(std::forward<T2>(_sensorModel))
129 {
130 }
131#endif
132
133
134 std::string configurationFile;
135 std::string sensorModel;
136};
137
138 struct IPAStream
139{
140public:
141#ifndef __DOXYGEN__
142 IPAStream() = default;
143
144 template<
145 typename T1 = uint32_t,
146 typename T2 = Size,
147 std::enable_if_t<std::is_convertible_v<T1&&, uint32_t>> * = nullptr,
148 std::enable_if_t<std::is_convertible_v<T2&&, Size>> * = nullptr
149 >
150 IPAStream(T1 &&_pixelFormat, T2 &&_size)
151 : pixelFormat(std::forward<T1>(_pixelFormat))
152 , size(std::forward<T2>(_size))
153 {
154 }
155#endif
156
157
158 uint32_t pixelFormat{ 0 };
159 Size size;
160};
161
162
163} /* namespace libcamera */
libcamera::Rectangle
Describe a rectangle's position and dimensions.
Definition geometry.h:247
libcamera::Size
Describe a two-dimensional size.
Definition geometry.h:51
controls.h
Framework to manage controls related to an object.
framebuffer.h
Frame buffer handling.
geometry.h
Data structures related to geometric objects.
ipa_interface.h
Image Processing Algorithm interface.
libcamera
Top-level libcamera namespace.
Definition backtrace.h:17
libcamera::IPABuffer
Buffer information for the IPA interface.
Definition core_ipa_interface.h:91
libcamera::IPABuffer::planes
std::vector< FrameBuffer::Plane > planes
The buffer planes description.
Definition core_ipa_interface.h:111
libcamera::IPABuffer::id
uint32_t id
The buffer unique ID.
Definition core_ipa_interface.h:110
libcamera::IPACameraSensorInfo
Report the image sensor characteristics.
Definition core_ipa_interface.h:31
libcamera::IPACameraSensorInfo::pixelRate
uint64_t pixelRate
The number of pixels produced in a second.
Definition core_ipa_interface.h:83
libcamera::IPACameraSensorInfo::minLineLength
uint32_t minLineLength
The minimum line length in pixels.
Definition core_ipa_interface.h:84
libcamera::IPACameraSensorInfo::cfaPattern
uint32_t cfaPattern
The arrangement of colour filters on the image sensor.
Definition core_ipa_interface.h:79
libcamera::IPACameraSensorInfo::model
std::string model
The image sensor model name.
Definition core_ipa_interface.h:77
libcamera::IPACameraSensorInfo::bitsPerPixel
uint32_t bitsPerPixel
The number of bits per pixel of the image format produced by the image sensor.
Definition core_ipa_interface.h:78
libcamera::IPACameraSensorInfo::maxLineLength
uint32_t maxLineLength
The maximum line length in pixels.
Definition core_ipa_interface.h:85
libcamera::IPACameraSensorInfo::activeAreaSize
Size activeAreaSize
The size of the pixel array active area of the sensor.
Definition core_ipa_interface.h:80
libcamera::IPACameraSensorInfo::minFrameLength
uint32_t minFrameLength
The minimum allowable frame length in units of lines.
Definition core_ipa_interface.h:86
libcamera::IPACameraSensorInfo::analogCrop
Rectangle analogCrop
The portion of the pixel array active area which is read-out and processed.
Definition core_ipa_interface.h:81
libcamera::IPACameraSensorInfo::maxFrameLength
uint32_t maxFrameLength
The maximum allowable frame length in units of lines.
Definition core_ipa_interface.h:87
libcamera::IPACameraSensorInfo::outputSize
Size outputSize
The size of the images produced by the camera sensor.
Definition core_ipa_interface.h:82
libcamera::IPASettings
IPA interface initialization settings.
Definition core_ipa_interface.h:115
libcamera::IPASettings::sensorModel
std::string sensorModel
The sensor model name.
Definition core_ipa_interface.h:135
libcamera::IPASettings::configurationFile
std::string configurationFile
The name of the IPA configuration file.
Definition core_ipa_interface.h:134
libcamera::IPAStream
Stream configuration for the IPA interface.
Definition core_ipa_interface.h:139
libcamera::IPAStream::size
Size size
The stream size in pixels.
Definition core_ipa_interface.h:159
libcamera::IPAStream::pixelFormat
uint32_t pixelFormat
The stream pixel format.
Definition core_ipa_interface.h:158