Skip to content

Tags: raspberrypi/libcamera

Tags

v0.3.2

Toggle v0.3.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
kbingham Kieran Bingham
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: 06e0d85 ("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: 829acb3 ("libcamera: Drop file name from header comment blocks in templates")
 - Documentation: Fix link to introduction on mainpage.dox
   - Fixes: 860a3e3 ("Documentation: Rework docs.rst into introduction.rst")
 - Documentation: Fix links from API references to guides
   - Fixes: e938861 ("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+rpt20240906

Toggle v0.3.1+rpt20240906's commit message
pipeline: rpi: Fix invalid access to CameraData::sensorInfo_

sensorInfo_ currently gets populated in configureIPA(), but is possibly
referenced in platformConfigure() which is called first. Fix this by
populating sensorInfo_ straight after configuring the sensor in
configure(), ensuring the fields are valid in the call to
platformConfigure().

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

v0.3.1+rpt20240829

Toggle v0.3.1+rpt20240829's commit message
RASPBERRYPI ONLY: Use meson from pip when generating orig tarball

v0.3.1

Toggle v0.3.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
kbingham Kieran Bingham
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: 2031e2f ("ipa: rpi: Add accessor function for monoSensor_")
- libcamera: dma_buf_allocator: Create memfd with CLOEXEC
  - Fixes: ea4baaa ("libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf")
- libcamera: dma_buf_allocator: Work around lack of memfd_create() in uClibc
  - Fixes: ea4baaa ("libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf")
- libcamera: dma_buf_allocator: Work around lack of file seals in uClibc
  - Fixes: ea4baaa ("libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf")
- test: ipa: rkisp1: utils: Fix floating and fixed point conversion test
  - Fixes: 9d152e9 ("ipa: rkisp1: Add a helper to convert floating-point to fixed-point")
- ipa: rkisp1: Fix algorithm controls vanish after configure
  - Fixes: 4c51528 ("ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance")
- pipeline: rpi: Don't validate configuration in generateConfiguration()
  - Bug: #138
- ipa: rkisp1: agc: Fix initialization without metering modes
  - Fixes: 3523393 ("ipa: rkisp1: agc: Read histogram weights from tuning file")
- v4l2: v4l2_compat: Fix redirect from `__open(at)64_2()`
  - Fixes: 1023107 ("v4l2: v4l2_compat: Intercept open64, openat64, and mmap64")
- ipa: rkisp1: blc: Drop [[maybe_unused]] attribute
  - Fixes: 50c28e1 ("ipa: rkisp1: blc: Query black levels from camera sensor helper")
- ipa: rkisp1: ccm: Fix ccm metadata output
  - Fixes: cbfdfa4 ("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

Toggle v0.3's commit message
ipa: rpi: pisp: Add '-Wno-address-of-packed-member' to the compiler args

This is needed for when we start using the UAPI kernel headers which
use "__attribute__((packed))" to force structure packing as required by
the kernel. The compiler complains about taking a possibly unaligned
address of a packed structure even though the structure has been hand
packed.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

v0.2

Toggle v0.2's commit message
ipa: rpi: pisp: Add '-Wno-address-of-packed-member' to the compiler args

This is needed for when we start using the UAPI kernel headers which
use "__attribute__((packed))" to force structure packing as required by
the kernel. The compiler complains about taking a possibly unaligned
address of a packed structure even though the structure has been hand
packed.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

v0.3.0+rpt20240617

Toggle v0.3.0+rpt20240617's commit message
RASPBERRYPI ONLY: Update README to follow Raspberry Pi documentation

v0.1

Toggle v0.1's commit message
Alpha release

v0.3.0

Toggle v0.3.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
kbingham Kieran Bingham
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: e0a5106 ("libcamera: formats: Add 14-bits Bayer RAW formats")
 - libcamera: bayer_format: Add Y12 to bayerToFormat
   - Fixes: ec63095 ("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: d17de86 ("utils: ipc: Update mojo")
 - libcamera: formats: Fix planes bounds check
   - Fixes: e83727a ("libcamera: PixelFormatInfo: Add functions stride and frameSize")
 - utils: ipu3: Fix return value check on file output
   - Fixes: 23ac77d ("utils: ipu3: Add IPU3 raw capture unpack utility")
 - ipa: libipa: histogram: Fix documentation of constructor
   - Fixes: 1dc01bc ("ipa: libipa: histogram: Add transform parameter to constructor")
 - gstreamer: Fix string memory leak
   - Fixes: fc9783a ("gstreamer: Provide colorimetry <> ColorSpace mappings")
 - gstreamer: Use copied camera name
   - Fixes: 58feb69 ("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+rpt20240418

Toggle v0.2.0+rpt20240418's commit message
RASPBERRYPI ONLY: Add a Github workflow to generate release tarballs