[libcamera-devel] [PATCH 1/4] libcamera: pipeline_handler: extend documentation for configureStreams()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Feb 22 11:41:38 CET 2019


Hi Niklas,

Thank you for the patch.

On Thu, Feb 21, 2019 at 12:59:36AM +0100, Niklas Söderlund wrote:
> Extend the documentation to explicitly state that the pipeline handler
> implementations are responsible to validate the requested configuration

s/to validate/for validating that/

> can be exactly satisfied by the hardware.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
>  src/libcamera/pipeline_handler.cpp | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
> index 616838fed702fec7..991674b34286ab16 100644
> --- a/src/libcamera/pipeline_handler.cpp
> +++ b/src/libcamera/pipeline_handler.cpp
> @@ -136,6 +136,15 @@ PipelineHandler::~PipelineHandler()
>   * is the Camera class which will receive configuration to apply from the
>   * application.
>   *
> + * Each pipeline handler implementation is responsible to validate that the

s/to validate/for validating/

> + * configuration requested in \a config is exactly the same that is actually
> + * programmed and accepted by the hardware itself. If the format programmed

Maybe s/is exactly.*by the hardware itself/can be achieved exactly/ ?
It's not just the hardware, other components may be involved, and what
matters for applications is not how the configuration is achieved
exactly, but that it is achieved exactly. Similarly I wouldn't mention
"format programmed" for the same reason.

> + * differers from the one requested the pipeline handler shall return the

s/differers+differs/

> + * error -EINVAL. If one streams configuration can't be satisfied by the
> + * hardware the pipeline handler does not need to try and program any other
> + * streams in \a config and the whole operation shall be consider to have
> + * failed.

The result could be

 * Each pipeline handler implementation is responsible for validating
 * that the configuration requested in \a config can be achieved
 * exactly. Any difference in pixel format, frame size or any other
 * parameter shall result in the -EINVAL error being returned, and no
 * change in configuration being applied to the pipeline. If
 * configuration of a subset of the streams can't be satisfied, the
 * whole configuration is considered invalid.

>   * \return 0 on success or a negative error code on error.
>   */
>  

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list