[libcamera-devel] [PATCH v4 21/37] libcamera: IPAManager: Fetch IPAProxy corresponding to pipeline

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Nov 25 20:34:34 CET 2020


Hi Paul,

Thank you for the patch.

On Fri, Nov 06, 2020 at 07:36:51PM +0900, Paul Elder wrote:
> Now that each pipeline handler has its own IPAProxy implementation, make
> the IPAManager fetch the IPAProxy based on the pipeline handler name.
> Also, since the IPAProxy is used regardless of isolation or no
> isolation, remove the isolation check from the proxy selection.
> 
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> 
> ---
> No change in v4
> 
> No change in v3
> 
> No change in v2
> ---
>  src/libcamera/ipa_manager.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
> index ad05b9c9..12cf3b0d 100644
> --- a/src/libcamera/ipa_manager.cpp
> +++ b/src/libcamera/ipa_manager.cpp
> @@ -275,8 +275,8 @@ std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,
>  	 *
>  	 * \todo Implement a better proxy selection
>  	 */
> -	const char *proxyName = self_->isSignatureValid(m)
> -			      ? "IPAProxyThread" : "IPAProxyLinux";
> +	std::string pipeName(pipe->name());
> +	const char *proxyName = pipeName.replace(0, 15, "IPAProxy").c_str();

pipeName.replace() is a temporary object, .c_str() will return a pointer
to memory that is then freed.

>  	IPAProxyFactory *pf = nullptr;
>  
>  	for (IPAProxyFactory *factory : IPAProxyFactory::factories()) {

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list