summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/rkisp1/rkisp1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/pipeline/rkisp1/rkisp1.cpp')
-rw-r--r--src/libcamera/pipeline/rkisp1/rkisp1.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 78c4a6dd..91a3c607 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -162,6 +162,8 @@ public:
bool match(DeviceEnumerator *enumerator) override;
private:
+ static constexpr Size kRkISP1PreviewSize = { 1920, 1080 };
+
RkISP1CameraData *cameraData(Camera *camera)
{
return static_cast<RkISP1CameraData *>(camera->_d());
@@ -633,12 +635,15 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
bool mainPathAvailable = true;
for (const StreamRole role : roles) {
+ Size size;
switch (role) {
case StreamRole::StillCapture:
/* JPEG encoders typically expect sYCC. */
if (!colorSpace)
colorSpace = ColorSpace::Sycc;
+
+ size = data->sensor_->resolution();
break;
case StreamRole::Viewfinder:
@@ -648,12 +653,16 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
*/
if (!colorSpace)
colorSpace = ColorSpace::Sycc;
+
+ size = kRkISP1PreviewSize;
break;
case StreamRole::VideoRecording:
/* Rec. 709 is a good default for HD video recording. */
if (!colorSpace)
colorSpace = ColorSpace::Rec709;
+
+ size = kRkISP1PreviewSize;
break;
case StreamRole::Raw:
@@ -664,6 +673,7 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
}
colorSpace = ColorSpace::Raw;
+ size = data->sensor_->resolution();
break;
default:
@@ -690,7 +700,7 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
}
StreamConfiguration cfg =
- path->generateConfiguration(data->sensor_.get(), role);
+ path->generateConfiguration(data->sensor_.get(), size, role);
if (!cfg.pixelFormat.isValid())
return nullptr;