summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-05Force return values of V4L2 controls to be specifickbingham/devKieran Bingham
2021-08-05Log to a local fileKieran Bingham
This should only be done when isolated, otherwise I expect it will interfere with libcamera's logging Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-08-05DNI: Measure FPS between framesKieran Bingham
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-08-04binary_data: Use type-safe file flagsUmang Jain
In commit 91d06ae2fc61("libcamera: file: Use Flags<> class for open flags"), type-safe file mode flags are introduced. Adapt our usage accordingly in BinaryData, which uses the File class from libcamera. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
2021-07-15ipu3: Use updated buffer.h headerKieran Bingham
In libcamera commit 6a31a8d8e274 ("libcamera: buffer: Rename buffer.h to framebuffer.h"), the public header buffer.h was renamed. Update the usage accordingly. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-06-28package: Provide ipu3-ipa ebuildUmang Jain
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28ipu3: Integrate AIQ/AICKieran Bingham
Utilise the AIQ and AIC libraries to handle image control within the IPU3. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28aic: Provide Automatic IPU Configuration supportUmang Jain
Provide a support layer for the AIC abstraction of the IPU configuration layer. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28aic: Import IPU3ISPPipeUmang Jain
Import and construct the IPU3ISPPipe to provide the callback hooks required by the ia_imaging libraries. We need to set 'MACRO_KBL_AIC' for rgbir_2500_config aic config parameter since it's wrapped in #ifdefs directives. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28aic: Add IPU3 parameter encoderKieran Bingham
The Parameter Encoder is imported from the ChromeOS implementation, with some small changes to fit style and support building independantly. The parameter encoders have assertions in them to check that the required input data is valid. ispAwbFrEncode() is currently disabled due to failing assertions around grid widths. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28aiq: Provide initial Intel AIQ Wrapper supportKieran Bingham
The AIQ class is the entry point for running IPA algorithms for the requested frame and handles the statistics being generated. It comprises of wrapping the ia_aiq_*_run() functions and provide helper functions that take in the input parameters and location for their results after the run. These results(AiqResults) can be used for subsequent runs and setting statistics as required. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28stats: Create IPAIPU3Stats and import intel_skycam_statistics_convert()Umang Jain
This is will be used to convert statistics received from kernel to AIQ stats format. Specific 3a conversion functions will be added in IPAIP3Stats in subsequent commits. ipu3_stats_get_3a() will extract, memcpy each of 3A relevant structures. It's is intended just before setting the stats for next frame in AIQ::setStatistics(). It receives ipu3_uapi_stats_3a struct from the kernel. This API will be developed per parameter of ipu3_uapi_stats_3a struct in subsequent commit. IPAIPU3Stats will be responsible to take in the AIQ algorithms results set and hardware statistics as input and generate(and convert) AIQ consumable ia_aiq_statistics_input_param structure. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28stats: Import SharedItemPool for stats' grid buffersUmang Jain
Import the SharedItemPool implementation to managed grid buffers. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28aiq: AiqInputParametersUmang Jain
Import the AiqInputParameters structures to facilitate configuring and managing the algorithms as they run. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28aiq: Provide managed AIQ Results structuresUmang Jain
The AIQ results structures returned from the AIQ library has many complex and deeply nested data structures which must be copied out. This class handles the correct initialisation of a full set of AIQ results, along with the allocations required, and the ability to copy data into those structures correctly. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-06-28aiq: Provide a BinaryData wrapperKieran Bingham
The AIQ class loads data as instances of ia_binary_data. The data for this structure should be loaded from files, and the lifetime of the data is managed by the lifetime of the class. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28include: Link to ia_imaging library and import headersUmang Jain
libia_imaging is provided by the ChromeOS system, however the headers aren't installed at the system's $includedir locations. We need to carry them in-tree, to be able to use them. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28data: Add tuning data filesUmang Jain
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-06-28ipu3: Import the Intel IPA skeleton from libcameraUmang Jain
Import the raw Intel IPU3 IPA from libcamera master at revision b2cc8a2f57333f. Also, copy the build enviroment and adapt the meson.build to build the shared library. The ipu3.cpp is now ready for integration with the Intel IPA library. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-06-28src: Import MappedBuffer class from libcameraUmang Jain
This libcamera internal class, needs to be imported from libcamera code base, in order to have standalone ipu3-ipa build. Other libcamera components required by ipu3-ipa, will be linked through libcamera_platform.so in subsequent commit. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
2021-05-20Intel IPU3 IPAKieran Bingham
Provide an IPA implementation for the Intel IPU3 using the Intel IA Imaging library to handle the image algorithm control and configuration of the IPU3 hardware. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>