Age | Commit message (Collapse) | Author |
|
Regions of the image where the statistics are not trusted should not
be put in the zones_ list.
This also means that the AWB may fail to run initially, so
async_results_ needs to be initialised to some kind of default.
Finally, the RGB zone structures can be zero-initialised safely now,
the previous value of -1 would seem unusual.
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Some more code from pre-libcamera versions is removed. There is no
functional change.
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Applying the manual_r_ and manual_b_ values is entirely removed from
the asynchronous thread where their use constituted a race hazard. The
main thread now deals with them entirely, involving the following
changes.
1. SetManualGains() applies the new values directly to the
"sync_results", meaning that Prepare() will jump to the n/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2021, Google Inc.
*
* camera_buffer.h - Frame buffer handling interface definition
*/
#pragma once
#include <hardware/camera3.h>
#include <libcamera/base/class.h>
#include <libcamera/base/span.h>
#include <libcamera/geometry.h>
#include <libcamera/pixel_format.h>
class CameraBuffer final : public libcamera::Extensible
{
LIBCAMERA_DECLARE_PRIVATE()
public:
CameraBuffer(buffer_handle_t camera3Buffer,
libcamera::PixelFormat pixelFormat,
const libcamera::Size &size, intipa: raspberrypi: Add a DenoiseAlgorithm class to the Controller | Naushir Patuck |
|
This denoise algorithm class will be used to pass in the user requested
denoise operating mode to the controller. The existing Denoise
controller will derive from this new DenoiseAlgorithm class.
Add a denoise mode field in the denoise status metadata object for the
IPA to use when configuring the ISP.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
This change is in anticipation of the addition of a DenoiseAlgorithm
base class which the SDN class will derive from. We want to match the
metadata object name with the base class algorithm name.
This renames:
- SdnStatus metadata object to DenoiseStatus
- "sdn.status" metadata string key to "denoise.status"
- sdn_status.h header file to denoise_status.h
Signed-off-by: Naushir Patuck <na
unsigned int size(unsigned int plane) const;
size_t jpegBufferSize(size_t maxJpegBufferSize) const;
};
#define PUBLIC_CAMERA_BUFFER_IMPLEMENTATION \
CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, \
libcamera::PixelFormat pixelFormat, \
const libcamera::Size &size, int flags) \
: Extensible(std::make_unique<Private>(this, camera3Buffer, \
pixelFormat, size, \
flags)) \
{ \
} \
CameraBuffer::~CameraBuffer() \
{ \
} \
bool CameraBuffer::isValid() const \
{ \
return _d()->isValid(); \
} \
unsigned int CameraBuffer::numPlanes() const \
{ \
return _d()->numPlanes(); \
} \
Span<const uint8_t> CameraBuffer::plane(unsigned int plane) const \
{ \
return const_cast<Private *>(_d())->plane(plane); \
} \
Span<uint8_t> CameraBuffer::plane(unsigned int plane) \
{ \
return _d()->plane(plane); \
} \
unsigned int CameraBuffer::stride(unsigned int plane) const \
{ \
return _d()->stride(plane); \
} \
unsigned int CameraBuffer::offset(unsigned int plane) const \
{ \
return _d()->offset(plane); \
} \
unsigned int CameraBuffer::size(unsigned int plane) const \
{ \
return _d()->size(plane); \
} \
size_t CameraBuffer::jpegBufferSize(size_t maxJpegBufferSize) const \
{ \
return _d()->jpegBufferSize(maxJpegBufferSize); \
}
|