[PATCH v1 0/1] Add environment variable to order pipelines match

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Mar 5 07:45:48 CET 2024


Hi Julien,

Quoting Julien Vuillaumier (2024-03-04 18:18:15)
> 
> Hello,
> 
> There is currently no way to configure the order used by the CameraManager
> to select the pipeline handlers to match devices from the DeviceEnumerator.
> That is a limitation when multiple pipeline are compiled in, capable of
> handling the devices of the platform. In that case, user can not specify
> the pipeline that will bind to the devices and handle the cameras.
> 
> This change adds an environment variable, optionnaly initialized with an
> ordered list of candidate pipelines that CameraManager shall use to match
> the devices. When the variable is not set, CameraManager behavior is
> unchanged: every registered pipeline is selected in turn to attempt device
> matching. 
> 
> Using that variable, user has the option to explicitly select the pipeline
> or the subset of available pipelines that CameraManager shall consider
> for matching.

This indeed is a problem to solve. This looks like a good way to handle
it, I think it's an indication that we need a libcamera configuration
file soon though, which would let these magic environment controls be
set from either a config file or overridden by the environment.

I have also wondered about setting 'prioirities' to pipeline handlers,
such as making the simple pipeline handler a low priority handler, but
that doesn't solve individual cases for instance if that was the
preferred choice, so I think we do need some explicit control from the
users environment.

--
Kieran

 
> Thanks
> 
> 
> Julien Vuillaumier (1):
>   libcamera: camera_manager: Add environment variable to order pipelines
>     match
> 
>  Documentation/environment_variables.rst |  5 +++
>  src/libcamera/camera_manager.cpp        | 51 +++++++++++++++++++++----
>  2 files changed, 48 insertions(+), 8 deletions(-)
> 
> -- 
> 2.34.1
>


More information about the libcamera-devel mailing list