tag name | v0.3.1 (c4e222e3d47fc87935981060de528e3243dc020b) |
tag date | 2024-07-25 14:24:10 +0100 |
tagged by | Kieran Bingham <kieran.bingham@ideasonboard.com> |
tagged object | commit 9c40320763... |
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>
-----BEGIN PGP SIGNATURE-----
iQJUBAABCgA+FiEEkC3XmD+9KP3jctR6oR5GchCkYf0FAmaiUfogHGtpZXJhbi5i
aW5naGFtQGlkZWFzb25ib2FyZC5jb20ACgkQoR5GchCkYf3T0w/8D16XnAW1d3Ht
jDocr7QZ8bXjptG+UI+e0waB1CiLt1O1LsqYQj7fZPnnY+wqFgN0mKf6P/h8dicu
VoKIJ8u0ZfEes0RK2TnKMP5mQbMXMMAvSxt/jUgeuD8XzBMxujDEZj6sRkNepI/g
lGFcUIrMhnR9jYCHK+M3eOa6c/iRMY+UR9ahRFT1Mfhm+5ZvMMp9TCN+QleVVJLd
54pD3tmywV+6Fm+Q+uPl2V3bAn6zu9FTKkby2YyBbrGBFYEwHnQACDNOP/xaCIQ3
OFjq4FB8+n4r9JHNSQbarLgMhE7EY90yFoQ9ZPS/kWB0j++zRR+JuYb9vzfeNSTU
CEoC2fm2T8UboaNenaDhlDqz2EyM6ROz3wGJNXON7RaYGqJ7I3d7nFbFd47h8Rhl
Ijy22OLtN/ANdgiH1PKO4Bz7Uniq+cTdA9PWuZkCgadGxGge+GTUI6KiIiqzgjjJ
eH31PgIZJTJjZcXaeXxAiN7HgC5rPVf8zl8ZHWZMllM59VmQRkBSTvF8FpuaOSnQ
RMHWtk9d7RV8MI6EuQgelH8ab820wtuBz6MVDnZeVc0uL4S25i6UexTFSBCBXtZf
a4cNQzBslNTdGWTocisEzVyOFbt1iMkQhES59GdhErWWt8KEQc43N5qda+fjTvIW
iRnEg17AiitNESe5W67B4AFp+D7ezfU=
=f38E
-----END PGP SIGNATURE-----