[libcamera-devel] [PATCH] pipeline: rpi: Do not return an error from pipeline config file handling

David Plowman david.plowman at raspberrypi.com
Thu Jun 15 13:17:36 CEST 2023


Hi Naush

Thanks for the patch.

On Wed, 14 Jun 2023 at 13:13, Naushir Patuck <naush at raspberrypi.com> wrote:
>
> If a user provided pipeline config file is not present, or if the
> version reported in the file is invalid, do not return with an error
> when creating the pipeline handler. Instead, log a warning message and
> return success with default pipeline config values used.
>
> This now matches the behaviour when the pipeline config file could not
> be parsed correctly, and we revert to default values.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

Yes, I think I prefer this too for our users.

Reviewed-by: David Plowman <david.plowman at raspberrypi.com>

Thanks!
David

> ---
>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> index 1e20fc2d8cb8..df7482920e75 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> @@ -1093,8 +1093,9 @@ int CameraData::loadPipelineConfiguration()
>         File file(filename);
>
>         if (!file.open(File::OpenModeFlag::ReadOnly)) {
> -               LOG(RPI, Error) << "Failed to open configuration file '" << filename << "'";
> -               return -EIO;
> +               LOG(RPI, Warning) << "Failed to open configuration file '" << filename << "'"
> +                                 << ", using defaults";
> +               return 0;
>         }
>
>         LOG(RPI, Info) << "Using configuration file '" << filename << "'";
> @@ -1107,8 +1108,9 @@ int CameraData::loadPipelineConfiguration()
>
>         std::optional<double> ver = (*root)["version"].get<double>();
>         if (!ver || *ver != 1.0) {
> -               LOG(RPI, Error) << "Unexpected configuration file version reported";
> -               return -EINVAL;
> +               LOG(RPI, Warning) << "Unexpected configuration file version reported: "
> +                                 << *ver;
> +               return 0;
>         }
>
>         const YamlObject &phConfig = (*root)["pipeline_handler"];
> --
> 2.34.1
>


More information about the libcamera-devel mailing list