Merge remote-tracking branch 'upstream/master'
* upstream/master:
utils: libtuning: Correct GBRG Image parsing
apps: common: dng_writer: Support RAW10 and RAW12 format
apps: common: dng_writer: Add thumbnail scanline function for Raw
apps: common: dng_writer: Rename packing functions
apps: common: dng_writer: Support RAW16 formats
libcamera: Fix maybe-uninitialized error
apps: common: dng_writer: Workaround for "Unknown tag 33421" error
meson: Enable warnings to flag missing declarations
test: gstreamer: Include missing sanitizer/asan_interface.h header
test: ipc: unixsocket: Define local function in anonymous namespace
apps: Define local functions in anonymous namespace
v4l2: v4l2_compat: Selectively disable -Wmissing-declarations
v4l2: v4l2_compat: Include missing headers
py: libcamera: Move function declarations to common header
ipa: rpi: Define local functions in anonymous namespace
ipa: ipa_interface: Declare ipaCreate() in libcamera namespace
libcamera: base: log: Declare log categories when defining them
v4l2: v4l2_compat: Move `open*()` flag check into function
v4l2: v4l2_compat: Fix redirect from `__open(at)64_2()`
ipa: libipa: matrix: Fix incorrect symbol namespace
libcamera: yaml_parser: Add support for float types
ipa: rkisp1: agc: Rename frame context update variable to updateMetering
libcamera: debayer_cpu: Add 32bits/aligned output formats
ipa: libipa: pwl: Drop readYaml() function
ipa: rpi: controller: Replace Pwl::readYaml() with YamlObject::get()
ipa: rkisp1: agc: Move AeEnable control to the AGC algorithm
ipa: rkisp1: agc: Correctly clamp maximum shutter speed
ipa: rkisp1: agc: Rename maxShutterSpeed to maxFrameDuration
ipa: rkisp1: agc: Use mode from frame context to calculate new EV
ipa: rkisp1: agc: Simplify predivider calculation
ipa: rkisp1: agc: Don't update histogram parameters unnecessarily
ipa: rkisp1: agc: Make size argument to computeHistogramPredivider const
ipa: rkisp1: Document all AGC parameters in IPAFrameContext
ipa: rkisp1: Document all AGC parameters in IPAActiveState
ipa: libipa: agc_mean_luminance: Include missing header
ipa: libipa: agc_mean_luminance: Fix enumerator names
ipa: rkisp1: agc: Fix initialization without metering modes
ipa: libipa: vector: Add matrix-vector multiplication
ipa: rkisp1: algorithms: Add crosstalk algorithm
ipa: libipa: Add MatrixInterpolator class
ipa: libipa: Add Matrix class
ipa: libipa: pwl: Specialize YamlObject getter
ipa: libipa: pwl: Add a constructor that moves a Point vector
ipa: libipa: pwl: Add a size() function
ipa: libipa: pwl: Make the empty() function inline
ipa: libipa: pwl: Suffix \param with direction
ipa: libipa: vector: Drop readYaml() function
ipa: libipa: vector: Specialize YamlObject getter
libcamera: yaml_parser: Delegate YamlObject::get() to helper structure
libcamera: yaml_parser: Drop std::enable_if_t guards for get() function
utils: tuning: rkisp1: Add skeletal AGC to the rkisp1 tuning script
utils: libtuning: modules: Add skeletal AGC module
ipa: rkisp1: agc: Plumb mode-selection and frame duration controls
ipa: rkisp1: agc: Read histogram weights from tuning file
ipa: rkisp1: cproc: Drop incorrect [[maybe_unused]]
ipa: rkisp1: cproc: Merge identical functions
ipa: rkisp1: cproc: Use anonymous namespace to limit symbol visibility
utils: raspberrypi: ctt: Add a maximum gain parameter for LSC
utils: raspberrypi: ctt: Add option to convert between vc4/pisp targets
utils: raspberrypi: ctt: Update tuning tool for HDR
utils: raspberrypi: ctt: Changed CTT handling of VC4 and PiSP
utils: raspberrypi: ctt: Added CAC support to the CTT
utils: raspberrypi: ctt: Adapt tuning tool for both VC4 and PiSP
pipeline: rpi: Don't validate configuration in generateConfiguration()
libcamera: yaml_parser: Make default value templated in `get()`
libcamera: libipa: camera_sensor: Define AR0521 helper functions inline
libcamera: controls: Add missing period at end of Gamma description
ipa: rkisp1: goc: Avoid use of auto for short type
ipa: rkisp1: goc: Mark default gamma table as static constexpr
ipa: rkisp1: goc: Use copydoc
ipa: rkisp1: goc: Drop incorrect [[maybe_unused]]
ipa: rkisp1: goc: Fix typographical issues in documentation.
ipa: rpi: controller: Use libipa's Pwl class
ipa: libipa: Copy pwl from rpi, and clean it up to match libcamera
ipa: libipa: Add Vector class
pipeline: rkisp1: cproc: Fix default value handling
meson: Group libipa and libipa_includes in a dependency object
libcamera: software_isp: Fix includes ordering in simple.cpp
clang-format: Make Qt includes matching case sensitive
ipa: rkisp1: Add GammaOutCorrection algorithm
ipa: rkisp1: Fix algorithm controls vanish after configure
libcamera: Add gamma control id
test: ipa: rkisp1: utils: Fix floating and fixed point conversion test
libcamera: dma_buf_allocator: Work around lack of file seals in uClibc
libcamera: dma_buf_allocator: Work around lack of memfd_create() in uClibc
libcamera: dma_buf_allocator: Create memfd with CLOEXEC
ipa: rpi: Disable StatsOutputEnable control by default
libcamera: software_isp: Allow using dma-buffers from /dev/udmabuf
libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf
libcamera: Rename DmaHeap class to DmaBufAllocator
libcamera: v4l2_subdevice: Update to the new kernel routing API
include: linux: Update kernel headers to version v6.10-rc1
update-kernel-headers: Add linux/udmabuf.h to headers to sync
test: ipa: rkisp1-utils: Fix coding style for template arguments
pipeline: vimc: Don't hardcode scaling factor with recent kernels
test: v4l2_videodevice: Increase timeout for vimc capture tests
test: fence: Increase timeout for fence test
test: fence: Fix race condition
test: fence: Turn class member variable into local variable
test: camera: Increase timeout for vimc capture tests
libcamera: software_isp: Remove TODO about internal representation
libcamera: software_isp: Remove DebayerParams::kGain10
libcamera: software_isp: Move color mappings out of debayering
libcamera: software_isp: Honor black level in AWB
libcamera: software_isp: Use a specific integer type for black level
utils: checkstyle.py: Show location of coding style issue within line
utils: checkstyle.py: Add a check for hex values
utils: checkstyle.py: Extend IncludeChecker to cover math.h
utils: checkstyle.py: Refactor IncludeChecker
test: ipa: rkisp1-utils: Fix capitalization of hex numbers
ipa: rkisp1: Add a helper to convert floating-point to fixed-point
android: camera_capabilities: Fix GCC 14 warning
ipa: rpi: Make monoSensor() accessor const
libcamera: yaml_parser: Avoid double lookup in `operator[]`
treewide: Query list of cameras just once
libcamera v0.3.0
ipa: rpi: Add accessor function for monoSensor_
ipa: rpi: Add HDR support
libcamera: v4l2_subdevice: Add missing MEDIA_BUS_FMT_xxxx16_1X16 info
libcamera: formats: Add PiSP specific image and config buffer formats
include: linux: Add PiSP specific image and config buffer formats
libcamera: formats: Add RGB48 formats
include: linux: Add RGB48 formats
libcamera: camera_manager: Add environment variable to order pipelines match
libcamera: pipeline: Add a get factory by name helper
libcamera: pipeline: Rename pipelines to a shorter name
gstreamer: Use copied camera name
gstreamer: Fix string memory leak
Documentation: Add option to treat Doxygen warnings as errors
test: gstreamer: Simplify single stream test
ipa: libipa: histogram: Fix documentation of constructor
libcamera: Drop remaining file name from header comment blocks
libcamera: Drop file name from header comment blocks in templates
ipa: rkisp1: agc: Fix histogram construction
ipa: rpi: Fix for incorrectly reported max shutter speed
pipeline: rpi: Avoid duplicating size range for the same pixel format
ipa: libipa: histogram: Add transform parameter to constructor
libcamera: Drop file name from header comment blocks
ipa: rkisp1: Remove bespoke Agc functions
ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance
ipa: ipu3: Remove bespoke AGC functions from IPU3
ipa: ipu3: Derive ipu3::algorithms::Agc from AgcMeanLuminance
ipa: libipa: Add AgcMeanLuminance base class
ipa: libipa: Add ExposureModeHelper
libcamera: controls: Generate enum value-name maps
ipa: libipa: Allow creation of empty Histogram
Revert "meson: Deprecate bitwise operations between different enumeration type"
test: Don't add current build directory to include path
meson: Deprecate bitwise operations between different enumeration type
apps: qcam: Use standard key sequence for quit action
libcamera: shared_mem_object: Fix compilation with uClibc
libcamera: utils: Avoid infinite recursion with strtod()
libcamera: libipa: camera_sensor: Add Sony IMX415 sensor properties
apps: cam: Fix C++20 deprecation warning
libcamera: libipa: camera_sensor: Add Sony IMX335 sensor properties
libcamera: libipa: camera_sensor: Add Sony IMX283 sensor properties
android: camera_device: Always clear descriptors_ in stop()
libcamera: Fix output spelling error
libcamera: device_enumerator: Fix spell error
utils: checkstyle.py: Drop period at end of Doxygen one liners
utils: checkstyle.py: Use r'' strings for regular expressions
Documentation: coding-style: Clean up header guard style
ipu3: Use posix basename
libcamera: software_isp: Apply black level compensation
libcamera: Add "Software ISP benchmarking" documentation
libcamera: debayer_cpu: Add BGR888 output support
libcamera: debayer_cpu: Add support for 8, 10 and 12 bpp unpacked bayer input
libcamera: swstats_cpu: Add support for 8, 10 and 12 bpp unpacked bayer input
libcamera: pipeline: simple: Enable use of Soft ISP and Soft IPA
libcamera: pipeline: simple: Rename converterBuffers_ and related vars
libcamera: Introduce SoftwareIsp
libcamera: ipa: Add Soft IPA
libcamera: software_isp: Add DebayerCpu class
libcamera: software_isp: Add Debayer base class
libcamera: software_isp: Add SwStatsCpu class
libcamera: shared_mem_object: Reorganize the code and document the SharedMemObject class
libcamera: shared_mem_object: Rename SIZE constant to `size'
libcamera: internal: Move SharedMemObject class to a common directory
libcamera: dma_heaps: extend DmaHeap class to support system heap
libcamera: internal: Move dma_heaps.[h, cpp] to common directories
libcamera: pipeline: simple: fix size adjustment in validate()
utils: ipc: Fix async main interface functions with no parameters
utils: ipc: Fix event functions with no parameters
apps: cam: Add support for PPM output format
v4l2: meson: Keep defines sorted alphabetically
v4l2: Unset _TIME_BITS in addition to _FILE_OFFSET_BITS
libcamera: pipeline: Add Mali-C55 ISP pipeline
android: camera_device: Save capture settings unconditionally
apps: lc-compliance: Re-organize source directory
apps: lc-compliance: Fix typo in comment
apps: lc-compliance: Check that requests complete successfully
utils: tuning: readme: Improve names of dependency packages
checkstyle: Work around bug in difflib
libcamera: camera_sensor: Expose the Bayer order
libcamera: camera_sensor: Test for read-only HBLANK with READ_ONLY flag
libcamera: camera_sensor: Reorder functions
libcamera: camera_sensor: Drop updateControlInfo() function
libcamera: camera_sensor: Move related classes to subdirectory
libcamera: v4l2_subdevice: Add V4L2Subdevice::Route structure
libcamera: v4l2_subdevice: Replace Routing::toString() with operator<<()
libcamera: v4l2_subdevice: Add stream support to get/set functions
libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormat::mbus_code to code
libcamera: v4l2_subdevice: Drop V4L2SubdeviceFormat::bitsPerPixel()
libcamera: v4l2_subdevice: Extend MediaBusFormatInfo with metadata formats
libcamera: v4l2_subdevice: Expose media bus format info as internal API
libcamera: v4l2_subdevice: Add code member to MediaBusFormatInfo
libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormatInfo
libcamera: controls: Add policy parameter to ControlList::merge()
libcamera: framebuffer_allocator: Remove entry if allocation fails
libcamera: framebuffer_allocator: Use default destructor
libcamera: framebuffer_allocator: Move from argument in constructor
cam: capture_script: Make parseRectangles work for non-array
utils: checkstyle.py: Fix known_trailers sort order
utils: checkstyle.py: Add Co-developed-by to known_trailers
ipa: rpi: cam_helper: Extend embedded data parsing to RAW14 modes
libcamera: v4l2_subdevice: Add 14-bit Bayer formats
guides: pipeline-handler: Fix controlInfo_ initialization
libcamera: controls: Fix typo on thermal
pipeline: simple: Add support for MediaTek MT8365 platforms
meson_options: Autodetect pycamera support
README.rst: Report py dependencies
utils: ipu3: Fix return value check on file output
libcamera: formats: Fix planes bounds check
utils: rkisp1: gen-csc-table.py: Don't presume python3 location
utils: checkstyle.py: Update LogCategoryChecker regexp
utils: checkstyle.py: Don't presume python3 location
libcamera: formats: Fix typos in PixelFormatInfo documentation
libcamera: Use utils::to_underlying()
libcamera: utils: Add to_underlying() helper function
ipa: rkisp1: Support the i.MX8MP ISP version
include: linux: Add RKISP1_V_IMX8MP version
ipa: rkisp1: Fix histogram weights configuration
ipa: rkisp1: Store hardware parameters in IPA context
ipa: rkisp1: agc: Wrap variable length C arrays in spans
pipeline: rpi: vc4: Use an unpacked format if no packed one is available
utils: mojom: Fix build error caused by the mojom tool update
gstreamer: Map 10/12/14/16 bayer formats supports
gstreamer: Map R8/R16 pixel format
doc: gstreamer: Add missing queues
libcamera: object: Add and use thread-bound assertion
libcamera: object: Document and ensure Object deletion constraints
test: timer-thread: Destroy Object from correct thread context
test: timer-thread: Move timer start from wrong thread to separate test
test: signal-threads: Destroy Object from correct thread context
test: message: Destroy Object from correct thread context
test: message: Remove incorrect slow receiver test
test: event-thread: Destroy Object from correct thread context
libcamera: thread: Ensure deferred deletion of all objects before stopping
test: object-delete: Test deferred delete just before thread stops
libcamera: signal: Replace object.h inclusion with forward declatation
libcamera: object: Fix thread-bound reference in documentation
apps: common: dng_writer: Add a default case for switch-case on a modulo
libcamera: v4l2_subdevice: Explain sort order of formatInfoMap
libcamera: bayer_format: Add Y12 to bayerToFormat
libcamera: formats: Fix sort ordering of R10_CSI2P
libcamera: formats: Add 16-bit mono format
libcamera: Remove empty formats.c
pipeline: rpi: Always initialize the embedded buffer in tryRunPipeline
test: gstreamer: Use env instead of registry edit
gstreamer: Add meson devenv support
utils: ipc: extract-docs: Fix escape characters in regex
Documentation: Update Qt documentation links to Qt 6
libcamera: base: signal: Update Qt documentation link to Qt 6
libcamera: v4l2_subdevice: Enable streams API when supported
include: linux: Update kernel headers to version v6.7
libipa: camera_sensor_helper: Mark createInstance() with override
libcamera v0.2.0
utils: ipc: Update mojo
utils: ipc: generate.py: Disable attributes checker
utils: ipc: generate.py: Add bindings directory to Python path
utils: update-mojo.sh: Commit the mojo update
utils: update-mojo.sh: Reject a dirty libcamera tree
utils: update-mojo.sh: Change to the libcamera source directory
utils: update-mojo.sh: Exit immediately on error
utils: update-mojo.sh: Properly remove old sources
libcamera: geometry: Correct doxygen reference to classes
hooks: pre-push: Disable interpretation of escape sequences
ipa: rpi: vc4: data: Update tuning files for HDR
ipa: rpi: Implement HDR control
libcamera: framebuffer_allocator: Remove unnecessary `clear()`
utils: ipc: mojom_libcamera_generator.py: Fix Python warning
libcamera: device_enumerator: ensure deviceNode is not empty
utils: ipc: Fix deserialization of multiple fd parameters
apps: lc-compliance: Fix source file ordering in meson.build
ipa: rpi: vc4: Add OV64A40 tuning files
libipa: camera_sensor_helper: Add OV64A40 helper
ipa: rpi: Provide a Camera Helper for the OV64A40
libcamera: camera_sensor: Add OV64A40 sensor properties
ipa: vc4: Implement the StatsOutputEnable vendor control
build: controls: Add Raspberry Pi vendor specific controls
utils: raspberrypi: ctt: Improve the Macbeth Chart search reliability
ipa: rpi: awb: Add an initialValues method
ipa: rpi: black_level: Add an initialValues method
ipa: rpi: Allow the mean of an empty histogram interval
Documentation: camera-sensor-model: Support Sphinx < 2.0
gstreamer: Support for pre-1.16 GstEvent
lc-compliance: Set minimum version for gtest dependency
ipa: rpi: Add hardware line rate constraints
pipeline: rpi: Respect provided stride
libcamera: camera: Fix unused variable compiler warning
meson: Replace hack with usage of '@BASENAME@'
README.rst: Add missing libgtest-dev dependency for lc-compliance
test: gstreamer: Remove videoconvert element from pipeline
test: ipc: unixsocket: Increase process exit timeout
test: log: log_process: Increase process exit timeout
test: log: log_process: Improve debugging on process exit failures
test: log: log_process: Fix uninitialized variable on process exit failure
test: log: log_process: Log an error when failing due to incorrect message
meson: Tag all installed files
gstreamer: Implement renegotiation
gstreamer: Add GstLibcameraSrcState::clearRequests method
gstreamer: Move negotiation logic to separate function
test: gstreamer: Fix indentation in comments
meson_options: Sort options alphabetically
README.rst: Document dependencies for the Python bindings
README.rst: Drop indirect dependencies on Qt5 packages
ipa: rpi: cac: Minor code improvements and tidying
ipa: rpi: agc: Fix bug where AeLocked was never getting set
documentation: Document vendor specific controls and properties handling
libcamera: controls: Use vendor tags for draft controls and properties
libcamera: control: Add vendor control id range reservation
build: controls: Rework how controls and properties are generated
controls: Update argument handling for controls generation scripts
controls: Add vendor control/property support to generation scripts
libcamera: pipeline: Fix c++20 compile warning
Documentation: Fix list indentation
README.rst: Use code directive for all code examples
Documentation: contributing: Integrate the code of conduct
Documentation: code-of-conduct: Add contact information
Documentation: code-of-conduct: Add license information
Documentation: code-of-conduct: Convert to reStructuredText
Documentation: Add code of conduct
gstreamer: Fix unused variable error
ipa: rpi: alsc: Do not allow zero colour ratio statistics
gstreamer: Implement element EOS handling
pipeline: rpi: Add some useful logging messages
libcamera: camera_sensor: Only access V4L_CID_HBLANK if existing
pipeline: rpi: vc4: Fix drop frame bug when no ISP streams are configured
pipeline: rpi: Remove unused variable
libcamera: controls: Add controls for HDR
ipa: rpi: agc: Make AGC controls affect all channels
ipa: rpi: agc: Fetch AWB status in the prepare method
ipa: rpi: vc4: Move denoise control handling into the VC4 derived IPA
ipa: rpi: agc: Allow AGC channels to avoid using "fast desaturation"
ipa: rpi: alsc: Do not re-read the alsc.status metadata
ipa: rpi: hdr: Add the ability to alter the LSC table
libcamera: transform: Make the transformFromOrientation() function static
libcamera: transform: Fold transformToOrientation() in its only caller
libcamera: camera_sensor: Cache mounting orientation instead of transform
py: cam: Add option to set stream orientation
apps: cam: Add option to set stream orientation
libcamera: Use CameraConfiguration::orientation
py: libcamera: Define and use Orientation
test: Add unit test for Transform and Orientation
libcamera: transform: Add operations with Orientation
libcamera: transform: Invert operator*() operands
libcamera: transform: Add functions to convert Orientation
libcamera: properties: Make 'Rotation' the mounting rotation
Documentation: Add figures to document Orientation
libcamera: camera: Introduce Orientation
libcamera: camera_sensor: Cache rotationTransform_
apps: qcam: Add support for RGB565
pipeline: rpi: vc4: Allocate more embedded data buffers
utils: update-kernel-headers: Support git worktrees
ipa: rpi: agc: When AGC channels are changed, start with the 1st channel
ipa: rpi: agc: Avoid overwriting caller's statistics pointer
ipa: rpi: denoise: Support different denoise configurations
ipa: rpi: contrast: Allow adaptive contrast enhancement to be disabled
ipa: rpi: agc: Add an AGC stable region
pipeline: rpi: Make color space members in RPiCameraConfiguration public
pipeline: rpi: Move flip handling validation code
build: ipa: Fix bug in building multiple IPA interfaces with the same mojom file
pipeline: rpi: Add SW downscale status to RPi::Stream
ipa: rpi: Add new algorithms for PiSP
ipa: rpi: Prepare AWB for PiSP support
ipa: rpi: Prepare ALSC for PiSP support
ipa: rpi: Add PiSP definitions to the Controller hardware description
ipa: rpi: Add statsInline to the Controller hardware description
ipa: rpi: Add try_lock() to RPiController::Metadata
mojom: pipeline: ipa: rpi: Add fields for PiSP objects
ipa: rpi: Add IpaBase::platformStart() member function
pipeline: rpi: Add SharedMemObject class
pipeline: rpi: Add Recurrent and Needs32bitConv flags to RPi::Stream
pipeline: rpi: Add RequiresMmap flag to RPi::Stream
py: gen-py-controls: Remove SceneFlicker workaround
py: Add the SensorConfiguration class
libcamera: converter: drop unnecessary #include directive
libcamera: converter: A few fixes to ConverterFactoryBase documentation
ipa: rpi: Avoid skipping IPAs on the first frame after the drop frames
libcamera: rpi: Simplify validate() and configure() for YUV/RGB streams
libcamera: rpi: Change default stream formats
libcamera: rpi: Simplify validate() and configure() for RAW streams
libcamera: rpi: Add some helpers to PipelineHandlerBase
libcamera: rpi: Cache rawStreams and outStreams
libcamera: rpi: Make isRaw/isYuv/isRgb static functions
libcamera: rpi: Fix wrong comment indentation
libcamera: rpi: Allow platformValidate() to adjust format strides
libcamera: rpi: Handle SensorConfiguration
libcamera: camera_sensor: Support SensorConfiguration
libcamera: camera: Introduce SensorConfiguration
Documentation: Introduce Camera Sensor Model
pipeline: rpi: Reset the frame lengths queue during configure
ipa: rpi: Fix frame count logic when running algorithms
libcamera: formats: Fix typo in YV444 V4L2PixelFormat listing
Change-Id: I882a312735a555622cd31d076efca85a4ffd3964
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libcamera/+/5669744
Commit-Queue: Hanlin Chen <hanlinchen@google.com>
Tested-by: Harvey Yang <chenghaoyang@chromium.org>
Auto-Submit: Harvey Yang <chenghaoyang@chromium.org>
Reviewed-by: Hanlin Chen <hanlinchen@google.com>