[libcamera-devel] [PATCH v2 1/4] libcamera: rkisp1: Generate config using main path
Paul Elder
paul.elder at ideasonboard.com
Fri Mar 3 09:31:51 CET 2023
On Wed, Feb 22, 2023 at 04:19:14PM +0100, Jacopo Mondi via libcamera-devel wrote:
> The generateConfiguration() implementation in the Rockchip RkISP1
> pipeline handler uses by default the self path (if available) for
> the Viewfinder and VideoRecording StreamRoles.
>
> The validate() implementation, at the contrary, prefers using the main
> path, when available, for all streams.
>
> As the self-path is limited in output resolution to 1920x1920,
> generating a configuration using the self path limits the maximum
> stream size to 1920x1920, while higher resolutions can be obtained by
> using the main path.
>
> Align the generateConfiguration() implementation to the validate() one
> by using the main path by default if available.
>
> Bug: https://bugs.libcamera.org/show_bug.cgi?id=180
> Reported-by: libcamera at luigi311.com
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> src/libcamera/pipeline/rkisp1/rkisp1.cpp | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 8a30fe061d04..569fb8ecb629 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -630,23 +630,19 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
> * first stream and use it for all streams.
> */
> std::optional<ColorSpace> colorSpace;
> -
> bool mainPathAvailable = true;
> - bool selfPathAvailable = data->selfPath_;
>
> for (const StreamRole role : roles) {
> - bool useMainPath;
> + bool useMainPath = mainPathAvailable;
>
> switch (role) {
> case StreamRole::StillCapture:
> - useMainPath = mainPathAvailable;
> /* JPEG encoders typically expect sYCC. */
> if (!colorSpace)
> colorSpace = ColorSpace::Sycc;
> break;
>
> case StreamRole::Viewfinder:
> - useMainPath = !selfPathAvailable;
> /*
> * sYCC is the YCbCr encoding of sRGB, which is commonly
> * used by displays.
> @@ -656,7 +652,6 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
> break;
>
> case StreamRole::VideoRecording:
> - useMainPath = !selfPathAvailable;
> /* Rec. 709 is a good default for HD video recording. */
> if (!colorSpace)
> colorSpace = ColorSpace::Rec709;
> @@ -669,7 +664,6 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
> return nullptr;
> }
>
> - useMainPath = true;
> colorSpace = ColorSpace::Raw;
> break;
>
> @@ -686,7 +680,6 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera,
> mainPathAvailable = false;
> } else {
> path = data->selfPath_;
> - selfPathAvailable = false;
> }
>
> StreamConfiguration cfg =
> --
> 2.39.0
>
More information about the libcamera-devel
mailing list