-
v0.4.0 protected35ed4b91 · ·
libcamera v0.4.0 The abi-compliance-checker reports that there is both ABI and API breakage in this release. Binary compatibility: 91.2% Source compatibility: 98.9% Total binary compatibility problems: 69, warnings: 0 Total source compatibility problems: 9, warnings: 0 This is not too surprising as this was the reason for the extra delay holding up this release, and as such this release bumps the SONAME to 0.4 accordingly. The majority of the ABI breakages are around the public API for Control handling and definitions, which have caused underlying identifiers to be changed, and the reuqired storage for controls has increased. I hope that grouping the expected ABI and API breakages and delaying this release will allow a longer stability on the 0.4 series but as we are developing rapidly this can not be guaranteed, though we aim to minimise disruption to distributions and applications whereever possible. This release brings in 253 commits, with substantial development on image control and tuning features for IPA and Pipeline handlers supporting libipa, as well as integrating libipa support for IPA handling on the ARM Mali-C55 ISP. A new 'Virtual Pipeline Handler' has been introduced to support more testing in CI and virtual environments. Gstreamer has had some interesting development to rework expressing the full control set from libcamera using auto generation from the full control descriptors. A key and notable change in this release too is that the softISP is now moving towards utilising the libipa implementaitons which will enable future tuning and image control capabilities, and should also support future development on a GPU-ISP implementation for GPU-accelerated handling. I do believe this work may have introduced an oscillation regression in the AEGC which will need to be investigated and fixed in the near future, but I don't want to hold up progressing the ABI updates at this stage. The i.MX8MP can now make full use of the DW100 Dewarp Engine for full rotation and digital zoom capabilities. Raspberry Pi systems now have improved support for the OV7251, IMX462, and IMX327 Sensors, and libipa platforms can now make use of the GalaxyCore gc05a2 and gc08a3 Image sensors. The following commits in this release relate to either a bug fix or an improvement to an existing commit. - ipa: rpi: Use std::abs() - Reported-by: Maarten Lankhorst <dev@lankhorst.se> - libcamera: rkisp1: Clamp stream configuration to ISP limit on raw path - Fixes: 761545407c76 ("pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline") - libcamera: rkisp1: Rectify SensorConfiguration check - Fixes: 047d647452c4 ("libcamera: rkisp1: Integrate SensorConfiguration support") - libcamera: controls: Add missing size to control_type<Point> - Fixes: 200d535ca85f ("libcamera: controls: Add ControlTypePoint") - pycamera: Add missing code for ControlTypePoint - Fixes: 200d535ca85f ("libcamera: controls: Add ControlTypePoint") - libcamera: software_isp: Clear IPA context on configure and stop - Fixes: 04d171e6b299 ("libcamera: software_isp: Call Algorithm::queueRequest") - utils: checkstyle.py: Centralize dependency handling for checkers - Fixes: 8ffaf376bb53 ("utils: checkstyle: Add a python formatter") - test: py: Fix log level restore in SimpleTestMethods() - Fixes: 06cb7130c4fa ("py: Add unittests.py") - v4l2: v4l2_camera_proxy: Fix VIDIOC_[GS]_PARM support - Fixes: 5456e02d3f5b ("v4l2: Support setting frame rate in the V4L2 Adaptation layer") - gstreamer: Remove auto-focus-mode property from device provider - Fixes: 5a142438b025 ("gstreamer: Add enable_auto_focus option to the GStreamer plugin") - libcamera: software_isp: Clean up pending requests on stop - Bug: https://bugs.libcamera.org/show_bug.cgi?id=234 - ipa: rpi: awb: Disable CT search bias for Grey World AWB - Fixes: ea8fd63d936f ("ipa: rpi: awb: Add a bias to the AWB search") - meson: Don't unnecessarily fallback to libyuv wrap - Fixes: eeaa7de21b8c ("libcamera: pipeline: Add test pattern for VirtualPipelineHandler") - libcamera: Don't copy `StreamConfiguration` when iterating - Fixes: 4217c9f1aa86 ("libcamera: camera: Zero streams before validate()") - libcamera: software_isp: Actually apply black level from tuning data - Fixes: 41e3d61c7451 ("libcamera: software_isp: Clear IPA context on configure and stop") - gstreamer: keep same transfer with that in negotiated caps - Bug: https://bugs.libcamera.org/show_bug.cgi?id=150 - pipeline: rkisp1: Fix scope of dewarper stop() exit action - Fixes: 12b553d691d4 ("libcamera: rkisp1: Plumb the dw100 dewarper as V4L2M2M converter") - pipeline: rkisp1: Limit sensor size to max resolution - Fixes: 761545407c76 ("pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline") And the following updates have been made in this release, grouped by category: core: - utils: abi-compat: Disable python build - utils: abi-compat: sort meson options - libcamera: controls: Add enum names and values map to ControlId - libcamera: controls: Add array information to ControlId - libcamera: v4l2_videodevice: Add getSelection() function - libcamera: controls: Handle enum values without a cast - libcamera: Replace usage of lroundf() with std::lround() - libcamera: Replace last users of math.h - libcamera: geometry: Clarify Rectangle's top-left corner - libcamera: geometry: Add two-point Rectangle constructor - libcamera: controls: Add ControlTypePoint - libcamera: control_ids_draft: Add face detection controls - libcamera: android: Add face detection control support - libcamera: yaml_parser: Take string keys in `std::string_view` - libcamera: camera: Fix CameraConfiguration spelling error - libcamera: MappedFrameBuffer: Fix typo in comment formatting - libcamera: controls: Add missing size to control_type<Point> - libcamera: tracepoints: Fix copyright year for reproducible builds - libcamera: controls: Add vendor information to ControlId - libcamera: converter: Add interface for feature flags - libcamera: converter: Add interface to support cropping capability - libcamera: formats: Change bytesPerGroup of RGB565 and RGB565_BE from 3 to 2 - utils: checkstyle.py: Factor out common code to new CheckerBase class - utils: checkstyle.py: Turn check() into a class method for all checkers - utils: checkstyle.py: Print issues using __str__ - utils: checkstyle.py: Centralize dependency handling for checkers - libcamera: camera_sensor: Introduce CameraSensorFactory - libcamera: camera_sensor: Create abstract base class - libcamera: camera_sensor: Sort factories by priority - libcamera: pipeline_handler: Provide cancelRequest - libcamera: simple: Track requests in conversionQueue_ - libcamera: Rationalize IPA and handlers names - libcamera: Add debug control space - libcamera: Add a DebugMetadata helper - utils: Add script to generate control_ids_debug.yaml - libcamera: yaml_parser: Use std::from_chars() - libcamera: add DmaBufAllocator::exportBuffers() - libcamera: Remove PipelineHandler Fatal check of non-empty MediaDevices - libcamera: virtual: Add VirtualPipelineHandler - libcamera: virtual: Add ImageFrameGenerator - libcamera: virtual: Read config and register cameras based on the config - meson: Don't unnecessarily fallback to libyuv wrap - libcamera: Rename "shutter speed" to "exposure time" - libcamera: camera_sensor_properties: Add sensor control delays - libcamera: pipelines: Draw control delays from CameraSensor properties - libcamera: Don't copy `StreamConfiguration` when iterating - treewide: Avoid some copies in range-based for loops - libcamera: v4l2_videodevice: Clarify V4L2M2MDevice - libcamera: Extend u32 control type - libcamera: Extend u16 control type - libcamera: add method to set thread affinity - libcamera: Copy Matrix class from libipa to libcamera - libcamera: internal: Move Matrix class into libcamera namespace - libcamera: internal: matrix: Replace vector with array in constructor - libcamera: internal: Add Matrix class to build - libcamera: mali-c55: Limit max size to sensor resolution - libcamera: mali-c55: Limit ISP input size - libcamera: mali-c55: Init camera properties - libcamera: mali-c55: Simplify bufferReady() - libcamera: mali-c55: Remove MaliC55CameraData::mbusCodes() - libcamera: mali-c55: Add stride and size to rawConfig - libcamera: v4l2-subdevice: Add Mali C55 media bus formats - libcamera: bayer_format: Add 20-bit bayer formats - libcamera: mali-c55: Propagate CSI-2 format to ISP - libcamera: mali-c55: Correct input/output format representation - libcamera: mali-c55: Enable links between resizer and video node - libcamera: mali-c55: Enable usage of scaler - libcamera: mali-c55: implement support for ScalerCrop - libcamera: yaml_parser: Output more details when parsing fails - libcamera: yaml_parser: Include stdlib.h instead of cstdlib - libcamera: utils: StringSplitter: Inline some trivial methods - libcamera: utils: StringSplitter: Add `operator==` - libcamera: stream: Add operator<<(StreamConfiguration) - libcamera: yaml_parser: Improve efficiency of string empty check - libcamera: geometry: Add Rectangle::transformedBetween() - libcamera: converter_v4l2_m2m: Add missing override specifier - libcamera: converter_v4l2_m2m: Refactor get crop bounds code - libcamera: converter: Add function to query crop bounds - libcamera: converter: Add function to check if a stream was configured - libcamera: converter: Add functions to adjust config - libcamera: camera: Add a const version of the pipe() function - libcamera: camera_sensor: Add parameter to limit returned sensor size - libcamera: camera_sensor_properties: Add ov7251 and ov9281 - libcamera: rpi: Draw sensor delays from CameraSensorProperties - include: linux: Add mali-c55-config.h - include: linux: Add Mali-C55 Stats and Params V4L2 format - libcamera: mali-c55: Acquire and plumb in 3a params and stats - libcamera: controls: Populate direction field in control definitions - utils: codegen: controls.py: Parse direction information - libcamera: controls: Add support for querying direction information - libcamera: controls: Update the ColourTemperature control to be writable - utils: gen-debug-controls: Output direction flag - hooks: pre-push: Verify that co-authors have a SoB line - gitignore: Add venv directory to gitignore - CameraManager: Ensure we cleanup on failure - Add .editorconfig file - DmaBufAllocator: Add Dma Buffer synchronization function & helper class apps: - apps: cam: Print control enum values more nicely - py: Add bindings for ControlId enum name - apps: cam: Print control array sizes - apps: Replace HAVE_DNG with HAVE_TIFF - apps: cam: Print an error when outputting DNG and DNG support is missing - pycamera: Add missing code for ControlTypePoint - apps: cam: Print control vendor information when listing controls - py: Add bindings for ControlId vendor information - qcam: Automatically select the camera if only one is available - gstreamer: Implement caps negotiation for video/x-bayer - v4l2: v4l2_camera_proxy: Fix VIDIOC_[GS]_PARM support - gstreamer: Remove auto-focus-mode property from device provider - gstreamer: Remove auto-focus-mode property from libcamerasrc - gstreamer: Generate controls from control_ids_*.yaml files - py: Add bindings for ControlId array information - qcam: Use pointer when choosing camera - gstreamer: keep same transfer with that in negotiated caps - apps: cam: Print control direction information pipeline: - libcamera: software_isp: Remove superfluous includes - libcamera: software_isp: Move BlackLevel to libcamera::ipa::soft - libcamera: software_isp: Define skeletons for IPA refactoring - libcamera: software_isp: Let IPASoftSimple inherit Module - libcamera: software_isp: Make stats frame and buffer aware - libcamera: software_isp: Remove final dots in debayer.cpp docstrings - libcamera: software_isp: Track and pass frame ids - libcamera: software_isp: Create algorithms - libcamera: software_isp: Call Algorithm::configure - libcamera: software_isp: Call Algorithm::queueRequest - libcamera: software_isp: Call Algorithm::prepare - libcamera: software_isp: Call Algorithm::process - libcamera: software_isp: Move black level to an algorithm module - libcamera: software_isp: Move color handling to an algorithm module - libcamera: software_isp: Use floating point for color parameters - libcamera: software_isp: Use DelayedControls - libcamera: software_isp: Move exposure+gain to an algorithm module - libcamera: software_isp: Update black level only on exposure changes - pipeline: simple: Increase buffer count to four - libcamera: rkisp1: Eliminate hard-coded resizer limits - pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline - libcamera: software_isp: Improve wording in a comment - libcamera: rkisp1: Integrate SensorConfiguration support - libcamera: rkisp1: Clamp stream configuration to ISP limit on raw path - libcamera: rkisp1: Use const reference for sensor configuration - libcamera: rkisp1: Rectify SensorConfiguration check - libcamera: rkisp1: Maintain alphabetical order of forward declarations - libcamera: software_isp: Clear IPA context on configure and stop - libcamera: software_isp: Get black level from the camera helper - libcamera: software_isp: Black level from tuning file - libcamera: pipeline: rkisp1: Fix typo in todo task - libcamera: rkisp1: Prepare for additional camera controls - libcamera: rkisp1: Plumb the dw100 dewarper as V4L2M2M converter - pipeline: rpi: Remove CameraData::scalerCrop_ - pipeline: rpi: Pass crop rectangle as a parameter to platformSetIspCrop() - pipeline: rpi: Introduce CameraData::CropParams - pipeline: rpi: Track which ISP output is configured for a stream - pipeline: rpi: Pass ISP output index into platformSetIspCrop() - pipeline: rpi: Handler controls::rpi::ScalerCrops - libcamera: rkisp1: Create main buffer pool out of if(!isRaw) - libcamera: software_isp: Clean up pending requests on stop - libcamera: pipeline: Add test pattern for VirtualPipelineHandler - libcamera: software_isp: Refactor SoftwareIsp to use DmaBufAllocator::exportBuffers - libcamera: software_isp: Initialize exposure+gain before agc calculations - libcamera: software_isp: Remove unused IPAActiveState fields - libcamera: software_isp: Actually apply black level from tuning data - rkisp1: Use Matrix class from libcamera - libcamera: software_isp: Add support for contrast control - libcamera: software_isp: Add contrast control - pipeline: rkisp1: Fix scope of dewarper stop() exit action - pipeline: rkisp1: Keep aspect ratio on imx8mp - pipeline: rkisp1: Split inputCrop and outputCrop - pipeline: rkisp1: Reorder sensorInfo collection code - pipeline: rkisp1: Query dewarper crop bounds if no stream configured - pipeline: rkisp1: Fix ScalerCrop to be in sensor coordinates - pipeline: rkisp1: Add ScalerMaximumCrop property - pipeline: rkisp1: Refactor path validation - pipeline: rkisp1: Enable the dewarper unconditionally - pipeline: rkisp1: make RkISP1CameraConfiguration a friend of the pipeline handler - pipeline: rkisp1: Fix config validation when dewarper is used - pipeline: rkisp1: Limit sensor size to max resolution - debayer_cpu: Replace syncing DMABUFs with DmaSyncer - include: media-bus-formats: Add Mali-C55 mbus codes - mali-c55: Plumb the IPA module in ipa: - ipa: rpi: Use std::abs() - ipa: rpi: Replace last users of math.h - ipa: rpi: awb: Add a const for the default colour temperature - ipa: rpi: awb: Add a bias to the AWB search - ipa: rkisp1: algorithms: agc: Check for correct stats type - ipa: rkisp1: algorithms: awb: Check for correct stats type - ipa: rpi: Add tuning files for OV7251 - ipa: libipa: Fix ExposureModeHelper function name in documentation - ipa: rkisp1: Add constructor to the ipa context - ipa: rkisp1: Add debug metadata support to the rkisp1 - ipa: libipa: Add data accessor to Histogram - ipa: libipa: Add colour helpers - ipa: ipu3: Use centralised libipa helpers - ipa: rkisp1: Use centralised libipa helpers - ipa: rpi: Use centralised libipa helpers - ipa: rpi: awb: Disable CT search bias for Grey World AWB - libipa: FCQueue: Make sure FrameContext#0 is initialized - libcamera: libipa: camera_sensor: Provide helper and properties for Sony IMX462 - ipa: rpi: cam_helper: Add Sony IMX327 - ipa: raspberrypi: Add tuning file for IMX462 sensor - ipa: raspberrypi: Add tuning file for IMX327 sensor - libcamera: libipa: camera_sensor_helper: add IMX290 black level - ipa: libipa: vector: Add mutable x(), y() and z() accessors - ipa: libipa: vector: Add r(), g() and b() accessors - ipa: libipa: vector: Add scalar constructor - ipa: libipa: vector: Rename the dot product operator*() to dot() - ipa: libipa: vector: Generalize arithmetic operators - ipa: libipa: vector: Add missing binary arithemtic operators - ipa: libipa: vector: Add compound assignment operators - ipa: libipa: vector: Add element-wise min() and max() functions - ipa: libipa: vector: Add sum() function - ipa: ipu3: awb: Replace Awb::RGB class with ipa::RGB - ipa: libipa: colour: Use the RGB class to model RGB values - ipa: libipa: colour: Use Vector and Matrix for linear algebra - ipa: rkisp1: awb: Use RGB class to store colour gains - ipa: rkisp1: awb: Use Vector and Matrix for linear algebra - ipa: rkisp1: awb: Expand comment - libcamera: libipa: camera_sensor: Add GalaxyCore gc05a2 sensor properties - libcamera: libipa: camera_sensor: Add GalaxyCore gc08a3 sensor properties - ipa: rpi: Rename Matrix to Matrix3x3 - ipa: rpi: ccm: Replace local matrix implementation with the libcamera one - libipa: Use Matrix class from libcamera - libipa: Drop Matrix class - libipa: agc_mean_luminance: Rename yaml key from exposure-time to exposureTime - ipa: software_isp: Add constructor to the IPA context - ipa: ipu3: Add constructor to the IPA context - libcamera: libipa: camera_sensor_helper: Use `variant` instead of `union` - ipa: rpi: Fix wrong frame integration difference value for OV9281 - ipa: rpi: cam_helper: imx708: Correct the frame integration diff value - libipa: Centralise Fixed / Floating point convertors - ipa: mali-c55: Add Mali-C55 ISP IPA module - ipa: mali-c55: Add Agc algorithm - ipa: mali-c55: Add BLC Algorithm - ipa: mali-c55: Add AWB Algorithm - ipa: mali-c55: Add Lens Shading Correction algorithm - ipa: mali-c55: Add IMX415 tuning data file - ipa: rkisp1: awb: Load white balance gains from tuning file - ipa: rkisp1: awb: Implement ColourTemperature control - ipa: rpi: awb: Make it possible to set the colour temperature directly - ipa: libipa: Add Lux helper - ipa: rkisp1: Add Lux algorithm module - controls: rpi: Add a vendor rpi::ScalerCrops control documentation: - Documentation: guides: Fix FileSink source link test: - test: py: Fix log level restore in SimpleTestMethods() - test: py: Replace environment array with environment object - test: py: LD_PRELOAD the C++ standard library when using ASan - test: libipa: Add Vector class test - test: span: Use intended variable tuning: - utils: tuning: libtuning: Fix tuning for non RGGB RAWs - libtuning: Use logging framework in ctt_awb.awb() - libtuning: Remove the Cam object from ctt_awb.awb() - libtuning: Fix access to color member in ctt_awb.awb() - libtuning: Add initial AWB module - utils: tuning: rkisp1: Replace static AWB with new AWB module Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.3.2 protected8bcec687 · ·
libcamera v0.3.2 abi-compliance-checker reports 100% binary and source compatibility, so this release does not change the SONAME. Binary compatibility: 100% Source compatibility: 100% Total binary compatibility problems: 0, warnings: 0 Total source compatibility problems: 0, warnings: 0 bugs: The following commits in this release relate to either a bug fix or improvement to existing commit. - meson: Enable simple pipeline handler on all platforms by default - Fixes: 06e0d8508e5c ("libcamera: pipeline: simple: Enable intel-ipu6 with Soft ISP") - libcamera: udev: Catch udev notification errors - Bug: https://bugs.libcamera.org/show_bug.cgi?id=230 - libcamera: Drop remaining file names from header comment blocks - Fixes: 829acb3ab0b1 ("libcamera: Drop file name from header comment blocks in templates") - Documentation: Fix link to introduction on mainpage.dox - Fixes: 860a3e30319c ("Documentation: Rework docs.rst into introduction.rst") - Documentation: Fix links from API references to guides - Fixes: e93886178106 ("Documentation: Improve doxygen main page") - pipeline: uvcvideo: Implement acquireDevice() + releaseDevice() - Bug: https://bugs.libcamera.org/show_bug.cgi?id=168 And the following updates have been made in this release, grouped by category: core: - libcamera: Avoid variable-length arrays - meson: Enable simple pipeline handler on all platforms by default - libcamera: base: Add MemFd helper class - libcamera: base: memfd: Handle uClibc compatibility with function wrapper - libcamera: shared_mem_object: Prevent memfd from shrinking or growing - libcamera: simple: Log a missing sensor in a better way - libcamera: ipa_proxy: Unify configurationFile argument name - libcamera: ipa_proxy: Report a missing configuration as a warning - libcamera: Remove spaces at end of lines - meson: Drop gcc 8 support - utils: checkstyle.py: Warn when no valid Signed-off-by line is found - libcamera: Drop path prefix from Doxygen file directive - libcamera: Make all internal headers visible to Doxygen - libcamera: Unify Doxygen file directive prefix for formats.h - libcamera: Mark internal parts of public classes with \internal - libcamera: Hide *::Private classes with __DOXYGEN_PUBLIC__ - libcamera: Split public and internal source arrays - libcamera: Add version.h to public headers - libcamera: Drop libcamera_generated_ipa_headers from sources - libcamera: Move IPA headers to the libcamera_private dependency - libcamera: Consolidate all IPA headers in libcamera_ipa_headers - libcamera: Add missing headers to libcamera_internal_headers - libcamera: Consolidate tracepoint header in libcamera_internal_headers - libcamera: Don't add libcamera_public_headers to libcamera_public_sources - utils: checkstyle.py: Add author property to Commit class - utils: checkstyle.py: Validate SoB trailer against author - utils: checkstyle.py: Fix trailer parsing for commits with changelogs - libcamera: ipa_manager: Remove singleton requirement - libcamera: udev: Catch udev notification errors - libcamera: Add missing <stdint.h> include to base/file.h - libcamera: Add missing <stdint.h> include to internal/yaml_parser.h - libcamera: Fix header grouping - libcamera: formats: Adding Support for Y12P - utils: checkstyle.py: Rework commit message parsing - utils: checkstyle.py: Skip title and trailers checkers for pre-commit - utils: checkstyle.py: Add __repr__ method to Commit class - libcamera: simple: Fix a typo in a doc string - libcamera: camera: Hide Camera::create() from the public API - meson: Store controls and properties YAML files in variables - meson: Fix mismatch in controls and properties generated file names - libcamera: Drop remaining file names from header comment blocks - meson: Move all code generation scripts to utils/codegen/ - meson: utils: Provide environment for Python scripts - utils: codegen: gen-header.sh: Generate libcamera.h based on meson.build - utils: codegen: gen-controls.py: Convert to jinja2 templates - utils: codegen: gen-controls.py: Move helper classes to separate file - libcamera: controls: Improve formatting of control descriptions in YAML - libcamera: pipeline_handler: Fix unlocking media devices too early - libcamera: pipeline_handler: Call releaseDevice() before unlocking media devices - libcamera: controls: Fix example for ExposureValue - utils: update-kernel-headers: Support relative path to kernel git tree - include: linux: Update headers for rkisp1 extensible parameters - libcamera: camera: Use invokeMethod() for pipe_->acquire() and pipe_->release() - libcamera: uvcvideo: Fix includes - libcamera: v4l2: Remove unused includes - libcamera: v4l2: Fix an include placement - libcamera: v4l2: Fix indirect include - libcamera: libcamera: Remove unused includes - libcamera: libcamera: Add missing includes - libcamera: libcamera: Formatting improvements - libcamera: includes: Add missing includes - libcamera: includes: Remove unused includes - libcamera: includes: Formatting improvements - utils: checkstyle: Add a python formatter - utils: checkstyle: Remove style checker for python pep8 - libcamera: utils: Add ScopeExitActions class - libcamera: v4l2_videodevice: Improve readability - libcamera: media_object: Add MediaPad string representations - libcamera: media_object: Add MediaLink string representations - libcamera: media_device: Use MediaLink string helper - libcamera: yaml-parser: Add additional tests - libcamera: yaml-parser: Add failing test for unexpected behavior - libcamera: yaml-parser: Differentiate between empty and empty string - Document additional environmental variables pipeline: - libcamera: software_isp: Remove file seal TODO item - libcamera: software_isp: Replace malloc() with std::vector<> - pipeline: rkisp1: Use the extensible parameters format - pipeline_handler: Add acquireDevice() function to mirror releaseDevice() - pipeline: uvcvideo: Implement acquireDevice() + releaseDevice() - libcamera: ipu3: Remove unused includes - libcamera: ipu3: Replace wrong include - libcamera: ipu3: Formatting improvements - libcamera: rkisp1: Remove unused includes - libcamera: rkisp1: Formatting improvements - pipeline: rkisp1: Use ScopeExitActions to simplify error handling in start - libcamera: pipeline: simple: Fix typos in match routing comment - pipeline: simple: Remove media member variable - libcamera: pipeline: simple: Use MediaLink string helper - libcamera: debayer_cpu: Sync DMABUFs ipa: - ipa: libipa: camera_sensor_helper: Reference blackLevel() in documentation - ipa: libipa: Add missing CameraSensorHelper fn label in docs - ipa: rkisp1: Pass parameters buffer format to IPA module - ipa: rkisp1: Pass parameters buffer size to pipeline handler - ipa: rkisp1: Add ISP parameters abstraction class - ipa: rkisp1: Use the new ISP parameters abstraction - ipa: rkisp1: params: Add companding blocks - ipa: rkisp1: Add compand feature flag to ipa context - ipa: rkisp1: blc: Add support for BLS in compand - libcamera: libipa: Remove unused includes - libcamera: ipa: Remove unused includes - utils: ipc: Include <string> in generated headers where needed - libcamera: ipa: Drop unneded includes from ipa_interface.h - ipa: rpi: agc: Ignore stable region when exposure/gain set manually - ipa: rpi: Adding IMX283 support - libcamera: libipa: camera_sensor: Add IMX283 black level - ipa: libipa: Add generic Interpolator class - ipa: rkisp1: Use generic Interpolator class - ipa: rkisp1: Remove MatrixInterpolator - ipa: rkisp1: Use interpolator in lsc - ipa: rkisp1: Move loader functions into helper class - ipa: libipa: Add lsc polynomial class - ipa: rkisp1: Add sensor info to context - ipa: rkisp1: Add polynomial LSC loader - libcamera: libipa: camera_sensor: Add Sony IMX214 sensor properties apps: - gstreamer: Fix width and height range handling - apps: qcam: Disable -Wextra-semi - gstreamer: Fix missing "greater than" symbol in author string - py: cam: Convert to PyQt6 - py: gen-py-controls: Use Control class - py: gen-py-controls: Convert to jinja2 templates - v4l2: Support setting frame rate in the V4L2 Adaptation layer - qcam: Decrease minimum width of selector dialog - qcam: Drop Qt version checks - qcam: viewfinder_qt: Draw the letterbox background black - qcam: viewfinder_gl: Fix binding of vertex buffer and shader program - qcam: viewfinder_gl: Drop duplicate glClearColor() - qcam: viewfinder_gl: Render image centered in letterbox documentation: - Documentation: Add Thread safety page - Documentation: Split doxygen_input in public and internal inputs - Documentation: Split public/private documentation - Documentation: Improve doxygen main page - Documentation: Add documentation-contents.rst - Documentation: Alphabetise the Documentation toctree - Documentation: Synchronise camera stack details - Documentation: Breakout docs.rst - Documentation: Remove libcamera architecture from introduction.rst - Documentation: Rework docs.rst into introduction.rst - Documentation: Rework index.rst - Documentation: Add internal-api-html placeholder - Documentation: Reformat documentation_contents.rst - Documentation: Rename "API" section to "API Reference" - Documentation: Drop local table of contents from introduction - Documentation: Rename "Documentation" section to "Introduction" - Documentation: Fix link to introduction on mainpage.dox - Documentation: Fix links from API references to guides tuning: - utils: tuning: rkisp1: Clean up tuner construction - utils: tuning: Change Tuner.add() to accept a list of modules test: - tests: Add a missing iostream include - test: ipa: libipa: Add tets for Interpolator Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.3.1 protected9c403207 · ·
libcamera v0.3.1 The abi-compliance checker reports 100% binary and source compatibility, so this release does not change the SONAME. Binary compatibility: 100% Source compatibility: 100% Total binary compatibility problems: 0, warnings: 0 Total source compatibility problems: 0, warnings: 0 The following commits in this release relate to either a bug fix or improvement to existing commit. - ipa: rpi: Make monoSensor() accessor const - Fixes: 2031e2f29014 ("ipa: rpi: Add accessor function for monoSensor_") - libcamera: dma_buf_allocator: Create memfd with CLOEXEC - Fixes: ea4baaacc325 ("libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf") - libcamera: dma_buf_allocator: Work around lack of memfd_create() in uClibc - Fixes: ea4baaacc325 ("libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf") - libcamera: dma_buf_allocator: Work around lack of file seals in uClibc - Fixes: ea4baaacc325 ("libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf") - test: ipa: rkisp1: utils: Fix floating and fixed point conversion test - Fixes: 9d152e9c66c1 ("ipa: rkisp1: Add a helper to convert floating-point to fixed-point") - ipa: rkisp1: Fix algorithm controls vanish after configure - Fixes: 4c5152843a2a ("ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance") - pipeline: rpi: Don't validate configuration in generateConfiguration() - Bug: https://github.com/raspberrypi/libcamera/issues/138 - ipa: rkisp1: agc: Fix initialization without metering modes - Fixes: 35233938ee5d ("ipa: rkisp1: agc: Read histogram weights from tuning file") - v4l2: v4l2_compat: Fix redirect from `__open(at)64_2()` - Fixes: 1023107b6405 ("v4l2: v4l2_compat: Intercept open64, openat64, and mmap64") - ipa: rkisp1: blc: Drop [[maybe_unused]] attribute - Fixes: 50c28e135100 ("ipa: rkisp1: blc: Query black levels from camera sensor helper") - ipa: rkisp1: ccm: Fix ccm metadata output - Fixes: cbfdfa42cacc ("ipa: rkisp1: algorithms: Add crosstalk algorithm") - gstreamer: pool: Replace GstAtomicQueue with deque and mutex - Bug: https://bugs.libcamera.org/show_bug.cgi?id=201 - gstreamer: allocator: Ensure camera manager stay alive - Bug: https://bugs.libcamera.org/show_bug.cgi?id=211 And the following updates have been made in this release, grouped by category: core: - treewide: Query list of cameras just once - libcamera: yaml_parser: Avoid double lookup in `operator[]` - utils: checkstyle.py: Refactor IncludeChecker - utils: checkstyle.py: Extend IncludeChecker to cover math.h - utils: checkstyle.py: Add a check for hex values - utils: checkstyle.py: Show location of coding style issue within line - update-kernel-headers: Add linux/udmabuf.h to headers to sync - include: linux: Update kernel headers to version v6.10-rc1 - libcamera: v4l2_subdevice: Update to the new kernel routing API - libcamera: Rename DmaHeap class to DmaBufAllocator - libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf - libcamera: dma_buf_allocator: Create memfd with CLOEXEC - libcamera: dma_buf_allocator: Work around lack of memfd_create() in uClibc - libcamera: dma_buf_allocator: Work around lack of file seals in uClibc - libcamera: Add gamma control id - clang-format: Make Qt includes matching case sensitive - meson: Group libipa and libipa_includes in a dependency object - libcamera: controls: Add missing period at end of Gamma description - libcamera: yaml_parser: Make default value templated in `get()` - libcamera: yaml_parser: Drop std::enable_if_t guards for get() function - libcamera: yaml_parser: Delegate YamlObject::get() to helper structure - libcamera: yaml_parser: Add support for float types - libcamera: base: log: Declare log categories when defining them - meson: Enable warnings to flag missing declarations - libcamera: Fix maybe-uninitialized error - converter: converter_v4l2_m2m: Rectify streams sanity check - converter: converter_v4l2_m2m: Rename private Stream class - libcamera: converter: Replace usage of stream index by Stream pointer - libcamera: base: utils: Implement hex() for 8-bit and 16-bit values - libcamera: v4l2_videodevice: Use bufferType_ in [get|try|set]Format() - utils: gen-version: Use posix compliant date ----------------------------------------------------------------------------- ipa: - ipa: rpi: Make monoSensor() accessor const - ipa: rkisp1: Add a helper to convert floating-point to fixed-point - ipa: rpi: Disable StatsOutputEnable control by default - ipa: rkisp1: Fix algorithm controls vanish after configure - ipa: rkisp1: Add GammaOutCorrection algorithm - ipa: libipa: Add Vector class - ipa: libipa: Copy pwl from rpi, and clean it up to match libcamera - ipa: rpi: controller: Use libipa's Pwl class - ipa: rkisp1: goc: Fix typographical issues in documentation. - ipa: rkisp1: goc: Drop incorrect [[maybe_unused]] - ipa: rkisp1: goc: Use copydoc - ipa: rkisp1: goc: Mark default gamma table as static constexpr - ipa: rkisp1: goc: Avoid use of auto for short type - libcamera: libipa: camera_sensor: Define AR0521 helper functions inline - ipa: rkisp1: cproc: Use anonymous namespace to limit symbol visibility - ipa: rkisp1: cproc: Merge identical functions - ipa: rkisp1: cproc: Drop incorrect [[maybe_unused]] - ipa: rkisp1: agc: Read histogram weights from tuning file - ipa: rkisp1: agc: Plumb mode-selection and frame duration controls - ipa: libipa: vector: Specialize YamlObject getter - ipa: libipa: vector: Drop readYaml() function - ipa: libipa: pwl: Suffix \param with direction - ipa: libipa: pwl: Make the empty() function inline - ipa: libipa: pwl: Add a size() function - ipa: libipa: pwl: Add a constructor that moves a Point vector - ipa: libipa: pwl: Specialize YamlObject getter - ipa: libipa: Add Matrix class - ipa: libipa: Add MatrixInterpolator class - ipa: rkisp1: algorithms: Add crosstalk algorithm - ipa: libipa: vector: Add matrix-vector multiplication - ipa: rkisp1: agc: Fix initialization without metering modes - ipa: libipa: agc_mean_luminance: Fix enumerator names - ipa: libipa: agc_mean_luminance: Include missing header - ipa: rkisp1: Document all AGC parameters in IPAActiveState - ipa: rkisp1: Document all AGC parameters in IPAFrameContext - ipa: rkisp1: agc: Make size argument to computeHistogramPredivider const - ipa: rkisp1: agc: Don't update histogram parameters unnecessarily - ipa: rkisp1: agc: Simplify predivider calculation - ipa: rkisp1: agc: Use mode from frame context to calculate new EV - ipa: rkisp1: agc: Rename maxShutterSpeed to maxFrameDuration - ipa: rkisp1: agc: Correctly clamp maximum shutter speed - ipa: rkisp1: agc: Move AeEnable control to the AGC algorithm - ipa: rpi: controller: Replace Pwl::readYaml() with YamlObject::get() - ipa: libipa: pwl: Drop readYaml() function - ipa: rkisp1: agc: Rename frame context update variable to updateMetering - ipa: libipa: matrix: Fix incorrect symbol namespace - ipa: ipa_interface: Declare ipaCreate() in libcamera namespace - ipa: rpi: Define local functions in anonymous namespace - ipa: libipa: Add black levels to camera sensor helper - ipa: rkisp1: Move camHelper into IPAContext - ipa: rkisp1: blc: Query black levels from camera sensor helper - ipa: rkisp1: blc: Report sensor black levels in metadata - ipa: rkisp1: data: Update tuning files for imx219 and imx258 - ipa: rkisp1: Move ov4689 and ov5640 black levels into sensor helpers - ipa: rkisp1: blc: Drop [[maybe_unused]] attribute - ipa: rkisp1: Install all tuning files - libipa: camera_sensor_helper: Add OV5675 black level - ipa: rkisp1: awb: Clamp gains to machine limits - ipa: rkisp1: awb: Unconditionally fill metadata - ipa: rkisp1: ccm: Fix ccm metadata output - ipa: rkisp1: ccm: Ensure metadata contains valid ccm - libcamera: libipa: camera_sensor: Add onsemi AR0144 sensor properties - ipa rkisp1: Remove temperatureK from FrameContext ----------------------------------------------------------------------------- apps: - android: camera_capabilities: Fix GCC 14 warning - v4l2: v4l2_compat: Fix redirect from `__open(at)64_2()` - v4l2: v4l2_compat: Move `open*()` flag check into function - py: libcamera: Move function declarations to common header - v4l2: v4l2_compat: Include missing headers - v4l2: v4l2_compat: Selectively disable -Wmissing-declarations - apps: Define local functions in anonymous namespace - apps: common: dng_writer: Workaround for "Unknown tag 33421" error - apps: common: dng_writer: Support RAW16 formats - apps: common: dng_writer: Rename packing functions - apps: common: dng_writer: Add thumbnail scanline function for Raw - apps: common: dng_writer: Support RAW10 and RAW12 format - apps: common: dng_writer: Fix thumbnail generation on BE machines - apps: common: dng_writer: Fix RAW10 and RAW12 packing on BE machines - qcam: viewfinder_qt: Maintain aspect ratio - apps: qcam: Port to Qt 6 - gstreamer: pool: Replace GstAtomicQueue with deque and mutex - gstreamer: allocator: Ensure camera manager stay alive - v4l2: v4l2_compat: Fix ioctl() prototype with musl C library - gst: Add child proxy support to libcamerasrc - gst: Document libcamerasrc multi stream usage ----------------------------------------------------------------------------- test: - test: ipa: rkisp1-utils: Fix capitalization of hex numbers - test: camera: Increase timeout for vimc capture tests - test: fence: Turn class member variable into local variable - test: fence: Fix race condition - test: fence: Increase timeout for fence test - test: v4l2_videodevice: Increase timeout for vimc capture tests - test: ipa: rkisp1-utils: Fix coding style for template arguments - test: ipa: rkisp1: utils: Fix floating and fixed point conversion test - test: ipc: unixsocket: Define local function in anonymous namespace - test: gstreamer: Include missing sanitizer/asan_interface.h header - test: utils: Extend utils::hex() test to 8-bit and 16-bit values - test: gstreamer: Test memory lifetime ----------------------------------------------------------------------------- pipeline: - libcamera: software_isp: Use a specific integer type for black level - libcamera: software_isp: Honor black level in AWB - libcamera: software_isp: Move color mappings out of debayering - libcamera: software_isp: Remove DebayerParams::kGain10 - libcamera: software_isp: Remove TODO about internal representation - pipeline: vimc: Don't hardcode scaling factor with recent kernels - libcamera: software_isp: Allow using dma-buffers from /dev/udmabuf - libcamera: software_isp: Fix includes ordering in simple.cpp - pipeline: rkisp1: cproc: Fix default value handling - pipeline: rpi: Don't validate configuration in generateConfiguration() - libcamera: debayer_cpu: Add 32bits/aligned output formats - libcamera: software_isp: Drop unnecessary sanity check - libcamera: pipeline: simple: Enable intel-ipu6 with Soft ISP - libcamera: pipeline: simple: Enable Soft ISP for TI CSI-RX ----------------------------------------------------------------------------- tuning: - utils: raspberrypi: ctt: Adapt tuning tool for both VC4 and PiSP - utils: raspberrypi: ctt: Added CAC support to the CTT - utils: raspberrypi: ctt: Changed CTT handling of VC4 and PiSP - utils: raspberrypi: ctt: Update tuning tool for HDR - utils: raspberrypi: ctt: Add option to convert between vc4/pisp targets - utils: raspberrypi: ctt: Add a maximum gain parameter for LSC - utils: libtuning: modules: Add skeletal AGC module - utils: tuning: rkisp1: Add skeletal AGC to the rkisp1 tuning script - utils: libtuning: Correct GBRG Image parsing - libtuning: Backport improvements in MacBeth search reliability - libtuning: Fix reference image - libtuning: Copy files from raspberrypi - libtuning: Copy visualize_macbeth_chart from raspberry pi - utils: tuning: Add requirements file and update readme - libtuning: Fix imports - libtuning: Migrate prints to python logging framework - libtuning: Fix visualize_macbeth_chart() - libtuning: Improve filename parsing - libtuning: Implement a minimal yaml parser - libtuning: Reactivate macbeth locator - libtuning: Be a bit more verbose - libtuning: lsc: rkisp1: Clip lsc values to valid range - libtuning: Use the color member of the Image class - libtuning: Remove need for Cam object from ccm - libtuning: modules: Add initial CCM module - libtuning: Handle cases, where no lsc tuning images are present - libtuning: Only warn if processing returns None - libtuning: Add static module - tuning: rkisp1: Add some static modules - libtuning: lsc: rkisp1: Do not calculate ratios to green - libtuning: lsc: Prevent negative values - libtuning: agc: rkisp1: Increase y-target Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.3.0 protectedaee16c06 · ·
libcamera v0.3.0 abi-compliance checker reports 99.7% binary compatibility and 99.9% source compatibility between v0.2.0 and v0.3.0. The SONAME has been updated accordingly and applications must be relinked against this version of libcamera. Total binary compatibility problems: 2, warnings: 0 Total source compatibility problems: 2, warnings: 0 Specifically, the symbol - ControlList::merge(struct ControlList const& source ) has been replaced with the new symbol: - ControlList::merge ( struct ControlList const& source, enum ControlList::MergePolicy policy ) The following commits in this release relate to either a bug fix or improvement to existing commit. - utils: ipc: extract-docs: Fix escape characters in regex - Reported-by: Nicolas Dufresne <nicolas@ndufresne.ca> - libcamera: Remove empty formats.c - Fixes: e0a51061bc69 ("libcamera: formats: Add 14-bits Bayer RAW formats") - libcamera: bayer_format: Add Y12 to bayerToFormat - Fixes: ec6309571654 ("libcamera: bayer_format: Add unpacked mono 12-bit format to the conversion table") - apps: common: dng_writer: Add a default case for switch-case on a modulo - Bug: https://bugs.libcamera.org/show_bug.cgi?id=207 - utils: mojom: Fix build error caused by the mojom tool update - Fixes: d17de86904f0 ("utils: ipc: Update mojo") - libcamera: formats: Fix planes bounds check - Fixes: e83727a194b5 ("libcamera: PixelFormatInfo: Add functions stride and frameSize") - utils: ipu3: Fix return value check on file output - Fixes: 23ac77dc4a09 ("utils: ipu3: Add IPU3 raw capture unpack utility") - ipa: libipa: histogram: Fix documentation of constructor - Fixes: 1dc01bc9e6c3 ("ipa: libipa: histogram: Add transform parameter to constructor") - gstreamer: Fix string memory leak - Fixes: fc9783acc6083a ("gstreamer: Provide colorimetry <> ColorSpace mappings") - gstreamer: Use copied camera name - Fixes: 58feb69f852289 ("gst: libcamerasrc: Implement selection and acquisition") core: - include: linux: Update kernel headers to version v6.7 - libcamera: v4l2_subdevice: Enable streams API when supported - libcamera: base: signal: Update Qt documentation link to Qt 6 - Documentation: Update Qt documentation links to Qt 6 - test: gstreamer: Use env instead of registry edit - libcamera: Remove empty formats.c - libcamera: formats: Add 16-bit mono format - libcamera: formats: Fix sort ordering of R10_CSI2P - libcamera: bayer_format: Add Y12 to bayerToFormat - libcamera: v4l2_subdevice: Explain sort order of formatInfoMap - libcamera: object: Fix thread-bound reference in documentation - libcamera: signal: Replace object.h inclusion with forward declatation - test: object-delete: Test deferred delete just before thread stops - libcamera: thread: Ensure deferred deletion of all objects before stopping - test: event-thread: Destroy Object from correct thread context - test: message: Remove incorrect slow receiver test - test: message: Destroy Object from correct thread context - test: signal-threads: Destroy Object from correct thread context - test: timer-thread: Move timer start from wrong thread to separate test - test: timer-thread: Destroy Object from correct thread context - libcamera: object: Document and ensure Object deletion constraints - libcamera: object: Add and use thread-bound assertion - utils: mojom: Fix build error caused by the mojom tool update - include: linux: Add RKISP1_V_IMX8MP version - libcamera: utils: Add to_underlying() helper function - libcamera: Use utils::to_underlying() - libcamera: formats: Fix typos in PixelFormatInfo documentation - utils: checkstyle.py: Don't presume python3 location - utils: checkstyle.py: Update LogCategoryChecker regexp - utils: rkisp1: gen-csc-table.py: Don't presume python3 location - libcamera: formats: Fix planes bounds check - utils: ipu3: Fix return value check on file output - README.rst: Report py dependencies - meson_options: Autodetect pycamera support - libcamera: controls: Fix typo on thermal - guides: pipeline-handler: Fix controlInfo_ initialization - libcamera: v4l2_subdevice: Add 14-bit Bayer formats - utils: checkstyle.py: Add Co-developed-by to known_trailers - utils: checkstyle.py: Fix known_trailers sort order - libcamera: framebuffer_allocator: Move from argument in constructor - libcamera: framebuffer_allocator: Use default destructor - libcamera: framebuffer_allocator: Remove entry if allocation fails - libcamera: controls: Add policy parameter to ControlList::merge() - libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormatInfo - libcamera: v4l2_subdevice: Add code member to MediaBusFormatInfo - libcamera: v4l2_subdevice: Expose media bus format info as internal API - libcamera: v4l2_subdevice: Extend MediaBusFormatInfo with metadata formats - libcamera: v4l2_subdevice: Drop V4L2SubdeviceFormat::bitsPerPixel() - libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormat::mbus_code to code - libcamera: v4l2_subdevice: Add stream support to get/set functions - libcamera: v4l2_subdevice: Replace Routing::toString() with operator<<() - libcamera: v4l2_subdevice: Add V4L2Subdevice::Route structure - libcamera: camera_sensor: Move related classes to subdirectory - libcamera: camera_sensor: Drop updateControlInfo() function - libcamera: camera_sensor: Reorder functions - libcamera: camera_sensor: Test for read-only HBLANK with READ_ONLY flag - libcamera: camera_sensor: Expose the Bayer order - checkstyle: Work around bug in difflib - utils: tuning: readme: Improve names of dependency packages - libcamera: internal: Move dma_heaps.[h, cpp] to common directories - libcamera: dma_heaps: extend DmaHeap class to support system heap - libcamera: internal: Move SharedMemObject class to a common directory - libcamera: shared_mem_object: Rename SIZE constant to `size' - libcamera: shared_mem_object: Reorganize the code and document the SharedMemObject class - libcamera: software_isp: Add SwStatsCpu class - libcamera: software_isp: Add Debayer base class - libcamera: software_isp: Add DebayerCpu class - libcamera: Introduce SoftwareIsp - libcamera: swstats_cpu: Add support for 8, 10 and 12 bpp unpacked bayer input - libcamera: debayer_cpu: Add support for 8, 10 and 12 bpp unpacked bayer input - libcamera: debayer_cpu: Add BGR888 output support - libcamera: Add "Software ISP benchmarking" documentation - libcamera: software_isp: Apply black level compensation - Documentation: coding-style: Clean up header guard style - utils: checkstyle.py: Use r'' strings for regular expressions - utils: checkstyle.py: Drop period at end of Doxygen one liners - libcamera: device_enumerator: Fix spell error - libcamera: Fix output spelling error - libcamera: utils: Avoid infinite recursion with strtod() - libcamera: shared_mem_object: Fix compilation with uClibc - meson: Deprecate bitwise operations between different enumeration type - Revert "meson: Deprecate bitwise operations between different enumeration type" - test: Don't add current build directory to include path - libcamera: controls: Generate enum value-name maps - libcamera: Drop file name from header comment blocks - libcamera: Drop file name from header comment blocks in templates - libcamera: Drop remaining file name from header comment blocks - test: gstreamer: Simplify single stream test - Documentation: Add option to treat Doxygen warnings as errors - libcamera: camera_manager: Add environment variable to order pipelines match - include: linux: Add RGB48 formats - libcamera: formats: Add RGB48 formats - include: linux: Add PiSP specific image and config buffer formats - libcamera: formats: Add PiSP specific image and config buffer formats - libcamera: v4l2_subdevice: Add missing MEDIA_BUS_FMT_xxxx16_1X16 info pipeline: - pipeline: rpi: Always initialize the embedded buffer in tryRunPipeline - pipeline: rpi: vc4: Use an unpacked format if no packed one is available - pipeline: simple: Add support for MediaTek MT8365 platforms - libcamera: pipeline: Add Mali-C55 ISP pipeline - libcamera: pipeline: simple: fix size adjustment in validate() - libcamera: pipeline: simple: Rename converterBuffers_ and related vars - libcamera: pipeline: simple: Enable use of Soft ISP and Soft IPA - ipu3: Use posix basename - pipeline: rpi: Avoid duplicating size range for the same pixel format - libcamera: pipeline: Rename pipelines to a shorter name - libcamera: pipeline: Add a get factory by name helper ipa: - libipa: camera_sensor_helper: Mark createInstance() with override - utils: ipc: extract-docs: Fix escape characters in regex - ipa: rkisp1: agc: Wrap variable length C arrays in spans - ipa: rkisp1: Store hardware parameters in IPA context - ipa: rkisp1: Fix histogram weights configuration - ipa: rkisp1: Support the i.MX8MP ISP version - ipa: rpi: cam_helper: Extend embedded data parsing to RAW14 modes - utils: ipc: Fix event functions with no parameters - utils: ipc: Fix async main interface functions with no parameters - libcamera: ipa: Add Soft IPA - libcamera: libipa: camera_sensor: Add Sony IMX283 sensor properties - libcamera: libipa: camera_sensor: Add Sony IMX335 sensor properties - libcamera: libipa: camera_sensor: Add Sony IMX415 sensor properties - ipa: libipa: Allow creation of empty Histogram - ipa: libipa: Add ExposureModeHelper - ipa: libipa: Add AgcMeanLuminance base class - ipa: ipu3: Derive ipu3::algorithms::Agc from AgcMeanLuminance - ipa: ipu3: Remove bespoke AGC functions from IPU3 - ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance - ipa: rkisp1: Remove bespoke Agc functions - ipa: libipa: histogram: Add transform parameter to constructor - ipa: rpi: Fix for incorrectly reported max shutter speed - ipa: rkisp1: agc: Fix histogram construction - ipa: libipa: histogram: Fix documentation of constructor - ipa: rpi: Add HDR support - ipa: rpi: Add accessor function for monoSensor_ apps: - gstreamer: Add meson devenv support - apps: common: dng_writer: Add a default case for switch-case on a modulo - doc: gstreamer: Add missing queues - gstreamer: Map R8/R16 pixel format - gstreamer: Map 10/12/14/16 bayer formats supports - cam: capture_script: Make parseRectangles work for non-array - apps: lc-compliance: Check that requests complete successfully - apps: lc-compliance: Fix typo in comment - apps: lc-compliance: Re-organize source directory - android: camera_device: Save capture settings unconditionally - v4l2: Unset _TIME_BITS in addition to _FILE_OFFSET_BITS - v4l2: meson: Keep defines sorted alphabetically - apps: cam: Add support for PPM output format - android: camera_device: Always clear descriptors_ in stop() - apps: cam: Fix C++20 deprecation warning - apps: qcam: Use standard key sequence for quit action - gstreamer: Fix string memory leak - gstreamer: Use copied camera name Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.2.0 protected89227a42 · ·
libcamera v0.2.0 ABI Compliance: abi-compliance-checker reports 94.6% binary compatibilty and 97.6% source compatibility between 0.1.0 and 0.2.0. The SONAME has been updated accordingly and applications must be relinked against this version of libcamera. - Binary compatibility: 94.6% - Source compatibility: 97.6% - Total binary compatibility problems: 5, warnings: 2 - Total source compatibility problems: 3, warnings: 3 The key ABI/API differences here are: - AeFlicker The control "SceneFlicker" has been removed and replaced by AeFlickerMode, AeFlickerDetected and AeFlickerPeriod. - struct CameraConfiguration Field transform has been removed from the middle position of this structural type. Field orientation has been added at the middle position of this structural type. Field sensorConfig has been added at the middle position of this structural type. Size of this type has been changed from 40 bytes to 96 bytes. Bugs: The following bugs are resolved with this release: https://bugs.libcamera.org: - Bug 91 - libcamerasrc is missing EOS handling - Bug 199 - Install error on Ubuntu for Orange Pi 5 - Bug 205 - ipa_proxy_worker.cpp fails to compile if an interface function has two arguments of SharedFD type - Bug 206 - Fails to build with Python 3.12 https://github.com/raspberrypi/libcamera/issues: - Assertion '!this->empty()' failed in libcamera::utils::Duration - libcamera-tools 0.0.5-1 #64 Integration overview: core: - utils: checkstyle.py: Treat Malformed trailers as a CommitIssue - utils: checkstyle.py: Initialise staged trailers - utils: checkstyle.py: Derive Amendment from Commit - utils: checkstyle.py: Check trailers for Amendment commits - libcamera: controls: Add controls for AEC/AGC flicker avoidance - libcamera: yaml: Increase the YAML parser limit - utils: checkstyle.py: Extract title and trailers with one command - meson: Correctly locate libc++ - Documentation: theme: Fix compilation with Sphinx >= 7.0.0 - libcamera: Remove duplicated SortIncludes in `.clang-format` - libcamera: stream: Document stride will be 0 for compressed formats - README.rst: Drop recommendation to install meson using pip3 - meson: Don't set _FORTIFY_SOURCE for ChromeOS - meson: Simplify check for _FORTIFY_SOURCE - libcamera: formats: Fix typo in YV444 V4L2PixelFormat listing - Documentation: Introduce Camera Sensor Model - libcamera: camera: Introduce SensorConfiguration - libcamera: camera_sensor: Support SensorConfiguration - libcamera: converter: A few fixes to ConverterFactoryBase documentation - libcamera: converter: drop unnecessary #include directive - utils: update-kernel-headers: Support git worktrees - libcamera: camera_sensor: Cache rotationTransform_ - libcamera: camera: Introduce Orientation - Documentation: Add figures to document Orientation - libcamera: properties: Make 'Rotation' the mounting rotation - libcamera: transform: Add functions to convert Orientation - libcamera: transform: Invert operator*() operands - libcamera: transform: Add operations with Orientation - test: Add unit test for Transform and Orientation - libcamera: Use CameraConfiguration::orientation - libcamera: camera_sensor: Cache mounting orientation instead of transform - libcamera: transform: Fold transformToOrientation() in its only caller - libcamera: transform: Make the transformFromOrientation() function static - libcamera: controls: Add controls for HDR - libcamera: camera_sensor: Only access V4L_CID_HBLANK if existing - Documentation: Add code of conduct - Documentation: code-of-conduct: Convert to reStructuredText - Documentation: code-of-conduct: Add license information - Documentation: code-of-conduct: Add contact information - Documentation: contributing: Integrate the code of conduct - README.rst: Use code directive for all code examples - Documentation: Fix list indentation - controls: Add vendor control/property support to generation scripts - controls: Update argument handling for controls generation scripts - build: controls: Rework how controls and properties are generated - libcamera: control: Add vendor control id range reservation - libcamera: controls: Use vendor tags for draft controls and properties - documentation: Document vendor specific controls and properties handling - README.rst: Drop indirect dependencies on Qt5 packages - README.rst: Document dependencies for the Python bindings - meson_options: Sort options alphabetically - meson: Tag all installed files - test: log: log_process: Log an error when failing due to incorrect message - test: log: log_process: Fix uninitialized variable on process exit failure - test: log: log_process: Improve debugging on process exit failures - test: log: log_process: Increase process exit timeout - test: ipc: unixsocket: Increase process exit timeout - test: gstreamer: Remove videoconvert element from pipeline - README.rst: Add missing libgtest-dev dependency for lc-compliance - meson: Replace hack with usage of '@BASENAME@' - libcamera: camera: Fix unused variable compiler warning - Documentation: camera-sensor-model: Support Sphinx < 2.0 - libcamera: camera_sensor: Add OV64A40 sensor properties - utils: ipc: Fix deserialization of multiple fd parameters - libcamera: device_enumerator: ensure deviceNode is not empty - utils: ipc: mojom_libcamera_generator.py: Fix Python warning - libcamera: framebuffer_allocator: Remove unnecessary `clear()` - hooks: pre-push: Disable interpretation of escape sequences - libcamera: geometry: Correct doxygen reference to classes - utils: update-mojo.sh: Properly remove old sources - utils: update-mojo.sh: Exit immediately on error - utils: update-mojo.sh: Change to the libcamera source directory - utils: update-mojo.sh: Reject a dirty libcamera tree - utils: update-mojo.sh: Commit the mojo update - utils: ipc: generate.py: Add bindings directory to Python path - utils: ipc: generate.py: Disable attributes checker - utils: ipc: Update mojo pipeline: - libcamera: rpi: pipeline_base: Remove populateSensorFormats() - libcamera: rpi: pipeline_base: Move findBestFormat to CameraData - libcamera: rpi: pipeline_base: Cache sensor format - pipeline: rpi: Don't call toV4L2DeviceFormat() from validate() - pipeline: rpi: Increase buffer import count to 32 - pipeline: rpi: Remove additional external dma buf handling logic - pipeline: rpi: Rename RPi::Stream::setExternalBuffer() - pipeline: rpi: Simplify buffer id generation - pipeline: rpi: Reset the frame lengths queue during configure - libcamera: rpi: Handle SensorConfiguration - libcamera: rpi: Allow platformValidate() to adjust format strides - libcamera: rpi: Fix wrong comment indentation - libcamera: rpi: Make isRaw/isYuv/isRgb static functions - libcamera: rpi: Cache rawStreams and outStreams - libcamera: rpi: Add some helpers to PipelineHandlerBase - libcamera: rpi: Simplify validate() and configure() for RAW streams - libcamera: rpi: Change default stream formats - libcamera: rpi: Simplify validate() and configure() for YUV/RGB streams - pipeline: rpi: Add RequiresMmap flag to RPi::Stream - pipeline: rpi: Add Recurrent and Needs32bitConv flags to RPi::Stream - pipeline: rpi: Add SharedMemObject class - pipeline: rpi: Add SW downscale status to RPi::Stream - pipeline: rpi: Move flip handling validation code - pipeline: rpi: Make color space members in RPiCameraConfiguration public - pipeline: rpi: vc4: Allocate more embedded data buffers - pipeline: rpi: Remove unused variable - pipeline: rpi: vc4: Fix drop frame bug when no ISP streams are configured - pipeline: rpi: Add some useful logging messages - libcamera: pipeline: Fix c++20 compile warning - pipeline: rpi: Respect provided stride ipa: - ipa: rpi: common: Handle AEC/AGC flicker controls - utils: raspberrypi: ctt: Improved color matrix fitting - ipa: rpi: vc4: data: Updated color matrices for RPi Cameras - utils: raspberrypi: ctt: Code tidying - ipa: rpi: Fix the reporting of Focus FoMs - ipa: rpi: imx290: Hide one frame on startup - ipa: rpi: agc: Fetch AWB status in process method, not prepare - ipa: rpi: agc: Filter exposures before dealing with digital gain - ipa: rpi: agc: Split AgcStatus into AgcStatus and AgcPrepareStatus - ipa: rpi: vc4: Make the StatisticsPtr construction clearer - ipa: rpi: histogram: Add interBinMean() - ipa: rpi: agc: Reorganise code for multi-channel AGC - ipa: rpi: agc: Implementation of multi-channel AGC - ipa: rpi: agc: Add AgcChannelConstraint class - ipa: rpi: agc: Use channel constraints in the AGC algorithm - ipa: rpi: Fix segfault when parsing invalid json file - ipa: rpi: Fix frame count logic when running algorithms - ipa: rpi: Avoid skipping IPAs on the first frame after the drop frames - ipa: rpi: Add IpaBase::platformStart() member function - mojom: pipeline: ipa: rpi: Add fields for PiSP objects - ipa: rpi: Add try_lock() to RPiController::Metadata - ipa: rpi: Add statsInline to the Controller hardware description - ipa: rpi: Add PiSP definitions to the Controller hardware description - ipa: rpi: Prepare ALSC for PiSP support - ipa: rpi: Prepare AWB for PiSP support - ipa: rpi: Add new algorithms for PiSP - build: ipa: Fix bug in building multiple IPA interfaces with the same mojom file - ipa: rpi: agc: Add an AGC stable region - ipa: rpi: contrast: Allow adaptive contrast enhancement to be disabled - ipa: rpi: denoise: Support different denoise configurations - ipa: rpi: agc: Avoid overwriting caller's statistics pointer - ipa: rpi: agc: When AGC channels are changed, start with the 1st channel - ipa: rpi: hdr: Add the ability to alter the LSC table - ipa: rpi: alsc: Do not re-read the alsc.status metadata - ipa: rpi: agc: Allow AGC channels to avoid using "fast desaturation" - ipa: rpi: vc4: Move denoise control handling into the VC4 derived IPA - ipa: rpi: agc: Fetch AWB status in the prepare method - ipa: rpi: agc: Make AGC controls affect all channels - ipa: rpi: alsc: Do not allow zero colour ratio statistics - ipa: rpi: agc: Fix bug where AeLocked was never getting set - ipa: rpi: cac: Minor code improvements and tidying - ipa: rpi: Add hardware line rate constraints - ipa: rpi: Allow the mean of an empty histogram interval - ipa: rpi: black_level: Add an initialValues method - ipa: rpi: awb: Add an initialValues method - utils: raspberrypi: ctt: Improve the Macbeth Chart search reliability - build: controls: Add Raspberry Pi vendor specific controls - ipa: vc4: Implement the StatsOutputEnable vendor control - ipa: rpi: Provide a Camera Helper for the OV64A40 - libipa: camera_sensor_helper: Add OV64A40 helper - ipa: rpi: vc4: Add OV64A40 tuning files - ipa: rpi: Implement HDR control - ipa: rpi: vc4: data: Update tuning files for HDR apps: - android: camera_device: Fix requestedStream handling - py: Add the SensorConfiguration class - py: gen-py-controls: Remove SceneFlicker workaround - apps: qcam: Add support for RGB565 - py: libcamera: Define and use Orientation - apps: cam: Add option to set stream orientation - py: cam: Add option to set stream orientation - gstreamer: Implement element EOS handling - gstreamer: Fix unused variable error - test: gstreamer: Fix indentation in comments - gstreamer: Move negotiation logic to separate function - gstreamer: Add GstLibcameraSrcState::clearRequests method - gstreamer: Implement renegotiation - lc-compliance: Set minimum version for gtest dependency - gstreamer: Support for pre-1.16 GstEvent - apps: lc-compliance: Fix source file ordering in meson.build Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.1.0 protected668a5e67 · ·
libcamera v0.1.0 ABI Compliance: abi-compliance-checker reports 99% binary compatibility and 81.4% source compatibilty between version 0.0.5 and 0.1. - Binary compatibility: 99% - Source compatibility: 81.4% - Total binary compatibility problems: 4, warnings: 2 - Total source compatibility problems: 165, warnings: 7 Now that we have funtional ABI validation, the soname has been updated from libcamera.so.0.0.5 to libcamera.so.0.1. Future releases will now maintain the same soname until an ABI breakage is detected to reduce the repackaging and rebuilding of other components that may use libcamera. The abi-compatibility report can now be generated with the new utility './utils/abi-compat.sh'. Key differences here are due to preventing the installation of internal and private headers in the packaging process, and most of this API compatibility should not be visible to applications with the exception of: - Camera::generateConfiguration ( StreamRoles const& roles ) The StreamRoles type definition has been removed. This is now handled as a Span<StreamRole> to prevent unnecessary allocations and copies. - CameraManager::addCamera ( std::shared_ptr<struct Camera> camera, std::vector<unsigned long>const& devnums ) - CameraManager::get ( dev_t devnum ) - CameraManager::removeCamera ( std::shared_ptr<struct Camera> camera ) These functions of the CameraManager were for use exclusively by the V4L2 adaptation layer, and not intended for use by applications. This has now been reworked to use the new SystemDevices and the redundant functions removed. The ABI/API breakages have been introduced by: 5ca0c9276f28 ("libcamera: CameraManager: Remove ::get(dev_t)") 26a4b83d1b94 ("libcamera: Remove `StreamRoles` alias") 63966ae587d7 ("libcamera: base: Do not install private headers") Core: - libcamera: v4l2_videodevice: Use O_CLOEXEC when exporting DMA buffers - libcamera: ipa_manager: Allow IPA loading in nested subdirs - meson: Fix usage of overwritten pipeline variable - subprojects: Drop leftovers of pybind11 - camera_sensor: ipa: core: Add CFA pattern to IPACameraSensorInfo - libcamera: controls: Define a default lens position behaviour - libcamera: internal: request: convert to pragma once - libcamera: camera_manager: Move private implementation to internal - libcamera: camera_manager: Move {add,remove}Camera to internal - libcamera: properties: Provide a Devices camera property - libcamera: pipeline: Register device numbers with camera - libcamera: camera_sensor: Adjust properties::Rotation - libcamera: meson: Allow PH to change libcamera_deps - libcamera: base: Move thread_annotations to private - libcamera: base: Do not install private headers - utils: ABI Compatibility checker - meson: Use x.y soname versioning - libcamera: camera: Take span of StreamRole instead of vector - libcamera: Remove `StreamRoles` alias - utils: ipu3-capture.sh: Fix the script to work with recent media-ctl versions - Documentation: Add predefined macros from config.h to Doxyfile - utils: checkstyle: Add __repr__ method to CommitFile class - utils: checkstyle: Support running checkers selectively - utils: checkstyle: Don't include commit ID in commit title - utils: checkstyle: Add trailers checker - tests: gstreamer: Test cameras' enumeration from GstDeviceProvider - meson: Fix space around colon issues - libcamera: Add option to configure udev support - libcamera: CameraManager: Remove ::get(dev_t) - tests: gstreamer: Fix compiler error with gcc 8.4.0 ipa: - meson: ipa: Add mapping for pipeline handler to mojom interface file - libcamera: ipa: Remove character restriction on the IPA name - ipa: meson: Allow nested IPA directory structures - ipa: raspberrypi: Introduce IpaBase class - ipa: raspberrypi: agc: Move weights out of AGC - ipa: rkisp1: agc: drop hard-coded analogue gain range - libipa: camera_sensor_helper: Add IMX327 helper - pipeline: rpi: ipa_base: Parse config files after platformRegister() - libcamera: camera_sensor: Add Sony IMX327 sensor properties - ipa: rpi: imx296: Small refinements to the IMX296 mono sensor tuning - ipa: rpi: Handle controls for mono variant sensors - libcamera: controls: Drop reference to IPA in controls documentation - libipa: camera_sensor_helper: Restore alphabetical order - ipa: ipu3: agc: Drop hard-codec analogue gain max - ipa: rkisp1: agc: Restore minimum analogue gain limit - pipeline: ipa: rpi: Return lens controls from ipa->configure() - ipa: rpi: Set lens position to hyperfocal on startup - ipa: rpi: tunings: Add missing short and long exposure profiles - ipa: rpi: agc: Use std::string instead of char arrays - ipa: rpi: agc: Gracefully handle missing agc modes - ipa: rpi: agc: Do not switch to a default if a mode is unavailable - ipa: rpi: imx708: Fix mode switch drop frame count - ipa: rpi: imx296_mono: Disable all colour shading pipeline: - libcamera: pipeline: simple: Add support for ST's DCMIPP - pipeline: meson: Allow nested pipeline handler directory structures - pipeline: ipa: raspberrypi: Refactor and move the Raspberry Pi code - pipeline: raspberrypi: rpi_stream: Set invalid buffer to id == 0 - pipeline: ipa: raspberrypi: Restructure the IPA mojom interface - pipeline: raspberrypi: Make RPi::Stream::name() return const std::string & - pipeline: raspberrypi: Introduce PipelineHandlerBase class - pipeline: raspberrypi: Add stream flags to RPi::Stream - libcamera: rkisp1: Generate config using main path - libcamera: rkisp1: Crop on ISP before downscaling - libcamera: rkisp1: Assign sizes to roles - libcamera: rkisp1: Fix enumeration of RAW formats - pipeline: rpi: Do not return an error from pipeline config file handling - libcamera: pipeline: simple: Support TI CSI-RX - pipeline: rpi: Account for Bayer packing when validating format apps: - apps: qcam: Remove redundant check - v4l2: Move the v4l2 compat layer to libexec/libcamera - android: mm: generic: use GRALLOC_HARDWARE_MODULE_ID - android: mm: Stub libhardware for build tests - py: Fix CameraManager.version property - py: Move ColorSpace and Transform classes to separate files - py: Use exceptions instead of returning error codes - py: unittests.py: Add weakref helpers and use del - py: Move to mainline pybind11 version - py: Fix code formatting - py: unittests.py: Fix type checker warnings - gstreamer: Add enable_auto_focus option to the GStreamer plugin - gstreamer: Drop libcamera_private dependency - apps: Add ipa-verify application - v4l2: v4l2_camera_proxy: Prevent ioctl sign-extensions - v4l2: Use SystemDevices properties to identify cameras Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.0.5 protectedfb44403f · ·
libcamera v0.0.5 Bugfixes: - meson: Ignore -Wredundant-move with gcc-13 and newer - cam: file_sink: Workaround gcc-13 dangling-reference false positive - libcamera: Open files with O_CLOEXEC - meson: Fix git version parsing - libcamera: camera_manager: Stop exponential explosive calls to createPipelineHandlers - py: cam: Fix demosaic overflow issue - libcamera: base: Make the registration of log categories atomic Core: - test: controls: control_info_map: Test default constructor - controls: guard ControlInfoMap against nullptr idmap_ - device_enumerator_udev: Use std::string_view - formats: Add 14-bits Bayer RAW formats - device_enumerator_udev: Remove devnum from dependency map - meson: libcamera: Report IPA signature method - meson: Align handling of build metadata - converter: Check converter validity - Keep using syslog for isolated IPA modules - utils: ipc: Update parser.py - utils: checkstyle.py: Don't run commit title checker on staged commits - framebuffer: Allow inheritance of FrameBuffer - Remove transform from V4L2SubdeviceFormat - libcamera: camera_sensor: Add tryFormat() - camera_sensor: Fix typo in comment - camera_sensor: Demote flip support message to Debug - internal: tracepoints: Use correct include directive - libcamera: camera: Ensure queued requests are invalid ipa: - doc: Clarify IPA acronym in its namespace description - rkisp1: Add tuning files for PinephonePro sensors - rkisp1: Add tuning files for Google DRU "Scarlet" sensors - rkisp1: lsc: Fix integer division error - libipa: Add OV2685 Camera Sensor Helper - libipa: Add OV5647 Camera Sensor Helper - raspberrypi: agc: Add "shadows" constraint mode - raspberrypi: generalise algorithms - raspberrypi: Fix default frame durations calculation - raspberrypi: Ensure shutter speed and gain are clipped in the AGC - raspberrypi: Use the new sensor limits fields in CameraMode - raspberrypi: Add sensor mode limits to CameraMode - raspberrypi: Fix crash under LTO - raspberrypi: imx296: Minor tuning updates - raspberrypi: agc: Fix overflow in Y value calculation - raspberrypi: Better heuristics for calculating Unicam timeout - raspberrypi: Generalise statistics - raspberrypi: Change Unicam timeout handling pipeline: - simple: Validate transform - imx8-isi: Remove mbusCode from formatsMap_ - imx8-isi: Automatically select media bus code - imx8-isi: Split Bayer/YUV config generation - imx8-isi: Break out RAW/YUV format selection - raspberrypi: Iterate over all Unicam instances in match() - raspberrypi: Add a Unicam timeout override config options - raspberrypi: Always use ColorSpace::Raw for raw streams - raspberrypi: Drop unused code - ipu3: Drop unused code apps: - cam: kms_sink: Drop unique_ptr<> from DRM::AtomicRequest - cam Return std::optional<> from StreamKeyValueParser::parseRole() - android: jpeg: Add JEA implementation ABI Compliance: * abi-compliance-checker reports 98.6% ABI and 100% API compatibility with with v0.0.4 Total binary compatibility problems: 1, warnings: 1 Total source compatibility problems: 0, warnings: 0 - First virtual method ~__dt ( ) has been added to this class. 1) The layout of type structure has been shifted by 8 bytes by the added v-table pointer. 2) Size of class has been increased by 8 bytes. affected symbols: 6 (1.4%) FrameBuffer::releaseFence ( ) FrameBuffer::setCookie ( uint64_t cookie ) FrameBuffer::cookie ( ) FrameBuffer::planes ( ) FrameBuffer::request ( ) FrameBuffer::metadata ( ) This ABI breakage was introduced by: 4843bfa66dc1 ("libcamera: framebuffer: Allow inheritance of FrameBuffer") Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.0.4 protected6cf637eb · ·
libcamera v0.0.4 Bugfixes: * libcamera: yaml_parser: Use C locale * libcamera: base: utils: Support C libraries lacking locale support * py: cam.py: Fix duplicate metadata output if more than one stream * libcamera: camera: Fix validateColorSpaces to choose main colour space * pipeline: raspberrypi: Fix handling of colour spaces Core: * test: Fix/Enable testing with ASan * test: Remove redundant pipeline tests * meson: Only build pipeline handlers needed in host architecture * meson: Add 'all' choice to pipelines option * utils: checkstyle.py: Add commit title checker * libcamera: ipa_module: Relax ipaModuleInfo symbol size check * pipeline: Support configuration file paths ipa: * camera_sensor: Improve h/v flip handling * camera_sensor: Add AR0521 Sensor support * camera_sensor: Add OV4689 Sensor support * camera_sensor: Add support for OmniVision OV8858 * raspberrypi: Support Autofocus with PDAF * raspberrypi: Support for the Sony IMX708 sensor * rkisp1: Raise maximum analogue gain pipeline: * raspberrypi: Support parameters from a configuration file * raspberrypi: Add a parameter to disable startup drop frames * libcamera: rkisp1: Add support for Transform apps: * gstreamer: Add bayer8 support to libcamerasrc * qcam: Show string representation of pixel format ABI Compliance: * abi-compliance-checker reports 100% ABI and API compatibility with with v0.0.3 Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.0.3 protectedf66a5c44 · ·
libcamera v0.0.3 Key bug fixes: * Segfault in the ContolInfo() constructor for an empty V4L2 menu Bug: https://bugs.libcamera.org/show_bug.cgi?id=167 Fix: libcamera: v4l2_device: Workaround faulty control menus This resolves and prevents crashes that have occured in Pipewire when users connect poorly implemented UVC devices. ABI Compliance: abi-compliance-checker reports 100% ABI and API compatibility with with v0.0.2, however 81e7689bb168 ("libcamera: stream: Turn StreamRole into scoped enumeration") modifies an enum into a class enum. This may need minor updates to applications, and didn't appear to be picked up by abi-compliance-checker. - See https://git.libcamera.org/libcamera/libcamera.git/commit/?id=81e7689bb168a for more details. Highlights: Core: * Fix tracing when built as a subproject * Avoid double map lookups in framebuffer_allocator * Workaround faulty control menus * controls: Change LensPosition units to dioptres * camera_sensor: Add IMX519 sensor properties * Documentation: contributing: Add commit message guidelines * Declare generic converter interface utils: * Add libtuning * Add initial libtuning script support for rkisp1 and raspberrypi. * checkstyle.py: Check new header file on new and renamed meson.build files ipa: * Move IPA sensor controls validation to CameraSensor (IPU3/RKISP1) rkisp1: * Support FrameDurationLimits control for FrameRate management * Support raw capture (IPA, configuration, and runtime) * Add support for manual gain and exposure * Fix stream size validation * Add additional default values to controls imx8-isi: * Enumerate supported stream formats * Set SensorTimestamp metadata Raspberry Pi: * Remove generic "pause" mechanism from Algorithm - Remove enum BuffferMask from the mojom interface - Fix digital gain calculations for manual mode - Fix bug in IPA frame drop logic - imx477: Update tuning file for the latest camera modules - Add a "scientific" tuning for the IMX477 Apps: - cam: kms: Avoid 'unused-parameter' warnings - cam: Support parsing array controls in capture scripts - gstreamer: Improve control id lookups - lc-compliance: simple_capture: Free Requests properly python: - Support controls that use an array of Rectangles - Expose the Request Sequence Number in Python Bindings test: - Validate CameraSensor Ancillary Devices (focusLens) - controls: control_info: Test default def() values Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.0.2 protected2b1e1cd1 · ·
libcamera v0.0.2 This release contains all the work merged to libcamera over the last 5 weeks, including the following summary highlights: Highlights: Core: * New pipeline handler for the IMX ISI * Fixed memory leak in the logging infrastructure * Fixed meson support for 0.56 * Additional Thread Safety annotations added throughout * Add a release method to pipeline handlers to support freeing resources when a camera is released, but not deleted. * Group test applications under src/apps * Make libdl optional to support Android builds Application layers: * Added DNG File output to cam * Fixes for building against Android * gstreamer framerate control and negotiation IPA: * Support setting metadata directly from (libipa) algorithms * Set AGC and AWB metadata for both RKISP1 and IPU3. * Support for enum serialization and Flags * Support multiple lens shading tables for different colour temperatures on RKISP1/i.MX8MP. Raspberry Pi IPA: * Full line length control * Better HBLANK synchronisation and full line length control * Support ov9281 as ov9281_mono * Update colour temperature whenever manual gains change abi-compliance-checker tells me that this release is 100% abi compatible with v0.0.1. Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
v0.0.1 protecteda83aed77 · ·
libcamera v0.0.1 This patch release commences the package release procedures for the project. Initial releases will include a bump to the patch (0.0.x) version number, as well as a corresponding increment to the soname. Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>