libcamera v0.3.0
Kieran Bingham
kieran.bingham at ideasonboard.com
Sun May 19 18:14:08 CEST 2024
Hi all,
I'm pleased to share that the libcamera v0.3.0 'Madrid' release has been tagged
and pushed.
I had intended to do this last week, but breaking my laptop while I was away
made it far more difficult to sign a release tag appropriately.
Please note that this contains an ABI breaking change and applications will
need to be recompiled against this new release.
Archives are available from:
- https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.3.0
Highly notable updates since v0.2.0 here include the new Soft ISP feature and
enablement in the simple-pipeline handler for Qualcomm based devices supporting
CamSS and the inclusion of a new Pipeline handler to support the Mali-C55 ISP
which now has open source kernel drivers available.
The i.MX8MP ISP is now officially supported through the existing RKISP1 pipeline
handler, and the Simple Pipeline handler now supports the MediaTek MT8365 platform.
Three additional camera sensors, IMX283, IMX335, and IMX415 are also now supported.
## ABI Compliance
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 )
## Fixes:
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 at 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")
## Integration Overview
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
--
Regards
Kieran Bingham
More information about the libcamera-devel
mailing list