pipeline: raspberrypi: Set sensor default orientation before configure()

The default sensor orientation must be set early on in match() to ensure
generateConfiguration() and configure() return out the correct Bayer
ordering to the application. This is particularly important for RAW
capture streams.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Naushir Patuck
2020-07-21 10:23:06 +01:00
committed by Kieran Bingham
parent 3bce337fbe
commit 1e8c91b656

View File

@@ -960,6 +960,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
/* Initialize the camera properties. */
data->properties_ = data->sensor_->properties();
/* Configure the H/V flip controls based on the sensor rotation. */
ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());
int32_t rotation = data->properties_.get(properties::Rotation);
ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));
ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));
data->unicam_[Unicam::Image].dev()->setControls(&ctrls);
/*
* List the available output streams.
* Currently cannot do Unicam streams!
@@ -1164,13 +1171,6 @@ int RPiCameraData::configureIPA()
{ V4L2_CID_EXPOSURE, result.data[1] } });
sensorMetadata_ = result.data[2];
}
/* Configure the H/V flip controls based on the sensor rotation. */
ControlList ctrls(unicam_[Unicam::Image].dev()->controls());
int32_t rotation = sensor_->properties().get(properties::Rotation);
ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));
ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));
unicam_[Unicam::Image].dev()->setControls(&ctrls);
}
if (result.operation & RPI_IPA_CONFIG_SENSOR) {