android: camera_device: Initialize pixel array properties
Initialize pixel array properties in the Android camera HAL inspecting the camera properties. If the camera does not provide any suitable property, not static metadata is registered to the Android framework. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
8aaa41ee9b
commit
1889cdc2e9
1 changed files with 23 additions and 10 deletions
|
@ -593,6 +593,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
|||
}
|
||||
|
||||
const ControlInfoMap &controlsInfo = camera_->controls();
|
||||
const ControlList &properties = camera_->properties();
|
||||
|
||||
/* Color correction static metadata. */
|
||||
{
|
||||
|
@ -725,17 +726,29 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
|||
staticMetadata_->addEntry(ANDROID_JPEG_MAX_SIZE, &maxJpegBufferSize_, 1);
|
||||
|
||||
/* Sensor static metadata. */
|
||||
int32_t pixelArraySize[] = {
|
||||
2592, 1944,
|
||||
if (properties.contains(properties::PixelArraySize)) {
|
||||
const Size &size =
|
||||
properties.get<Size>(properties::PixelArraySize);
|
||||
std::vector<int32_t> data{
|
||||
static_cast<int32_t>(size.width),
|
||||
static_cast<int32_t>(size.height),
|
||||
};
|
||||
staticMetadata_->addEntry(ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,
|
||||
&pixelArraySize, 2);
|
||||
data.data(), data.size());
|
||||
}
|
||||
|
||||
int32_t sensorSizes[] = {
|
||||
0, 0, 2560, 1920,
|
||||
if (properties.contains(properties::PixelArrayActiveAreas)) {
|
||||
const Span<const Rectangle> &rects =
|
||||
properties.get<Span<const Rectangle>>(properties::PixelArrayActiveAreas);
|
||||
std::vector<int32_t> data{
|
||||
static_cast<int32_t>(rects[0].x),
|
||||
static_cast<int32_t>(rects[0].y),
|
||||
static_cast<int32_t>(rects[0].width),
|
||||
static_cast<int32_t>(rects[0].height),
|
||||
};
|
||||
staticMetadata_->addEntry(ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE,
|
||||
&sensorSizes, 4);
|
||||
data.data(), data.size());
|
||||
}
|
||||
|
||||
int32_t sensitivityRange[] = {
|
||||
32, 2400,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue