Message ID | 20250912142915.53949-7-mzamazal@redhat.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
On Fri, Sep 12, 2025 at 04:29:07PM +0200, Milan Zamazal wrote: > Let's add a configuration file item for the pipelines match list. > > The configuration snippet: > > configuration: > pipelines_match_list: rkisp1,simple There's a YAML native construct for lists. I'll fix that. > Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > Signed-off-by: Milan Zamazal <mzamazal@redhat.com> > --- > src/libcamera/camera_manager.cpp | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp > index 64df62444..c203b08f7 100644 > --- a/src/libcamera/camera_manager.cpp > +++ b/src/libcamera/camera_manager.cpp > @@ -111,14 +111,16 @@ void CameraManager::Private::createPipelineHandlers() > * file and only fallback on environment variable or all handlers, if > * there is no configuration file. > */ > - const char *pipesList = > - utils::secure_getenv("LIBCAMERA_PIPELINES_MATCH_LIST"); > - if (pipesList) { > + const auto pipesList = > + configuration().envListOption("LIBCAMERA_PIPELINES_MATCH_LIST", > + { "pipelines_match_list" }, > + ","); > + if (pipesList.has_value()) { > /* > * When a list of preferred pipelines is defined, iterate > * through the ordered list to match the enumerated devices. > */ > - for (const auto &pipeName : utils::split(pipesList, ",")) { > + for (const auto &pipeName : pipesList.value()) { > const PipelineHandlerFactoryBase *factory; > factory = PipelineHandlerFactoryBase::getFactoryByName(pipeName); > if (!factory)
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp index 64df62444..c203b08f7 100644 --- a/src/libcamera/camera_manager.cpp +++ b/src/libcamera/camera_manager.cpp @@ -111,14 +111,16 @@ void CameraManager::Private::createPipelineHandlers() * file and only fallback on environment variable or all handlers, if * there is no configuration file. */ - const char *pipesList = - utils::secure_getenv("LIBCAMERA_PIPELINES_MATCH_LIST"); - if (pipesList) { + const auto pipesList = + configuration().envListOption("LIBCAMERA_PIPELINES_MATCH_LIST", + { "pipelines_match_list" }, + ","); + if (pipesList.has_value()) { /* * When a list of preferred pipelines is defined, iterate * through the ordered list to match the enumerated devices. */ - for (const auto &pipeName : utils::split(pipesList, ",")) { + for (const auto &pipeName : pipesList.value()) { const PipelineHandlerFactoryBase *factory; factory = PipelineHandlerFactoryBase::getFactoryByName(pipeName); if (!factory)