Skip to content
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>