[libcamera-devel] [PATCH v2 1/3] cam: Add option to disallow adjusting of requested formats
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Jul 24 19:56:14 CEST 2020
Hi Niklas,
Thank you for the patch.
On Fri, Jul 24, 2020 at 07:48:25PM +0200, Niklas Söderlund wrote:
> Add a '--strict-formats' option which fails the camera configuration
> step if the format is adjusted,
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> * Changes since v1
> - Fix spelling in comment and log outputs.
> ---
> src/cam/main.cpp | 17 ++++++++++++++++-
> src/cam/main.h | 1 +
> 2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/src/cam/main.cpp b/src/cam/main.cpp
> index 2512fe9da782165b..2009f11b6c336f2c 100644
> --- a/src/cam/main.cpp
> +++ b/src/cam/main.cpp
> @@ -49,12 +49,15 @@ private:
> std::shared_ptr<Camera> camera_;
> std::unique_ptr<libcamera::CameraConfiguration> config_;
> EventLoop *loop_;
> +
> + bool strictFormats_;
> };
>
> CamApp *CamApp::app_ = nullptr;
>
> CamApp::CamApp()
> - : cm_(nullptr), camera_(nullptr), config_(nullptr), loop_(nullptr)
> + : cm_(nullptr), camera_(nullptr), config_(nullptr), loop_(nullptr),
> + strictFormats_(false)
> {
> CamApp::app_ = this;
> }
> @@ -77,6 +80,9 @@ int CamApp::init(int argc, char **argv)
> if (ret < 0)
> return ret;
>
> + if (options_.isSet(OptStrictFormats))
> + strictFormats_ = true;
> +
> cm_ = new CameraManager();
>
> ret = cm_->start();
> @@ -179,6 +185,9 @@ int CamApp::parseOptions(int argc, char *argv[])
> "list-controls");
> parser.addOption(OptListProperties, OptionNone, "List cameras properties",
> "list-properties");
> + parser.addOption(OptStrictFormats, OptionNone,
> + "Do not allow requested stream format(s) to be adjusted",
> + "strict-formats");
>
> options_ = parser.parse(argc, argv);
> if (!options_.valid())
> @@ -214,6 +223,12 @@ int CamApp::prepareConfig()
> case CameraConfiguration::Valid:
> break;
> case CameraConfiguration::Adjusted:
> + if (strictFormats_) {
> + std::cout << "Adjusting camera configuration not allowed"
Maybe "Adjusting camera configuration disallowed by --strict-formats argument" ?
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> + << std::endl;
> + config_.reset();
> + return -EINVAL;
> + }
> std::cout << "Camera configuration adjusted" << std::endl;
> break;
> case CameraConfiguration::Invalid:
> diff --git a/src/cam/main.h b/src/cam/main.h
> index 4a130d8dd2906ad4..6f95add31a6341cf 100644
> --- a/src/cam/main.h
> +++ b/src/cam/main.h
> @@ -17,6 +17,7 @@ enum {
> OptListProperties = 'p',
> OptStream = 's',
> OptListControls = 256,
> + OptStrictFormats = 257,
> };
>
> #endif /* __CAM_MAIN_H__ */
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list