[libcamera-devel,4/5] libcamera: pipeline: simple: Store sensor resolution in configuration
diff mbox series

Message ID 20220504132154.9681-5-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • libcamera: pipeline: simple: Support scaling on the camea sensor
Related show

Commit Message

Laurent Pinchart May 4, 2022, 1:21 p.m. UTC
When enumerating the supported configurations, store the corresponding
sensor resolution in the SimpleCameraData::Configuration structure and
use it when configuring the camera, instead of hardcoding the sensor
full resolution. This prepares for support of downscaling in the camera
sensor.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/pipeline/simple/simple.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 19deb9447c96..e7fda239d6b5 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -225,6 +225,7 @@  public:
 
 	struct Configuration {
 		uint32_t code;
+		Size sensorSize;
 		PixelFormat captureFormat;
 		Size captureSize;
 		std::vector<PixelFormat> outputFormats;
@@ -534,6 +535,7 @@  void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
 
 		Configuration config;
 		config.code = code;
+		config.sensorSize = size;
 		config.captureFormat = pixelFormat;
 		config.captureSize = format.size;
 
@@ -935,7 +937,7 @@  int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
 	const SimpleCameraData::Configuration *pipeConfig = config->pipeConfig();
 	V4L2SubdeviceFormat format{};
 	format.mbus_code = pipeConfig->code;
-	format.size = data->sensor_->resolution();
+	format.size = pipeConfig->sensorSize;
 
 	ret = data->setupFormats(&format, V4L2Subdevice::ActiveFormat);
 	if (ret < 0)