[libcamera-devel] [PATCH 3/4] libcamera: pipeline: vimc: enforce stream configuration
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Feb 22 11:51:12 CET 2019
Hi Niklas,
Thank you for the patch.
On Thu, Feb 21, 2019 at 12:59:38AM +0100, Niklas Söderlund wrote:
> The format requested by configureStreams() should exactly match what
> programmed on the video device it self. If they do not match the call
> should fail as the application in that case will not know what
> configuration actually was programmed.
Same comments as for 2/4, but in any case,
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
for 2/4 and 3/4 (I forgot to add it to my reply to 2/4)
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/libcamera/pipeline/vimc.cpp | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
> index a93a7589643834c6..812777cffbb3e618 100644
> --- a/src/libcamera/pipeline/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc.cpp
> @@ -83,6 +83,7 @@ int PipelineHandlerVimc::configureStreams(Camera *camera,
> std::map<Stream *, StreamConfiguration> &config)
> {
> StreamConfiguration *cfg = &config[&stream_];
> + int ret;
>
> LOG(VIMC, Debug) << "Configure the camera for resolution "
> << cfg->width << "x" << cfg->height;
> @@ -92,7 +93,16 @@ int PipelineHandlerVimc::configureStreams(Camera *camera,
> format.height = cfg->height;
> format.fourcc = cfg->pixelFormat;
>
> - return video_->setFormat(&format);
> + ret = video_->setFormat(&format);
> + if (ret)
> + return ret;
> +
> + if (format.width != cfg->width ||
> + format.height != cfg->height ||
> + format.fourcc != cfg->pixelFormat)
> + return -EINVAL;
> +
> + return 0;
> }
>
> int PipelineHandlerVimc::allocateBuffers(Camera *camera, Stream *stream)
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list