[libcamera-devel] [PATCH v7 11/13] libcamera: ipu3: Set stream configuration
Niklas Söderlund
niklas.soderlund at ragnatech.se
Tue Apr 2 20:27:06 CEST 2019
Hi Jacopo,
Thanks for your work.
On 2019-04-02 19:13:07 +0200, Jacopo Mondi wrote:
> Use the cached sensor maximum resolution and the pixel format
> generated by the ImgU output devices as default stream configuration.
>
> While at it, replace the hardcoded numerical value for the number of
> buffers with a named constexpr.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/libcamera/pipeline/ipu3/ipu3.cpp | 34 ++++++++++++----------------
> 1 file changed, 15 insertions(+), 19 deletions(-)
>
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index f6d08af906da..e4f8f90e2302 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -183,6 +183,8 @@ private:
> Stream stream_;
> };
>
> + static constexpr unsigned int IPU3_BUFFER_COUNT = 4;
> +
> IPU3CameraData *cameraData(const Camera *camera)
> {
> return static_cast<IPU3CameraData *>(
> @@ -215,26 +217,20 @@ std::map<Stream *, StreamConfiguration>
> PipelineHandlerIPU3::streamConfiguration(Camera *camera,
> std::set<Stream *> &streams)
> {
> - IPU3CameraData *data = cameraData(camera);
> std::map<Stream *, StreamConfiguration> configs;
> - V4L2SubdeviceFormat format = {};
> -
> - /*
> - * FIXME: As of now, return the image format reported by the sensor.
> - * In future good defaults should be provided for each stream.
> - */
> - if (data->cio2_.sensor_->getFormat(0, &format)) {
> - LOG(IPU3, Error) << "Failed to create stream configurations";
> - return configs;
> - }
> -
> - StreamConfiguration config = {};
> - config.width = format.width;
> - config.height = format.height;
> - config.pixelFormat = V4L2_PIX_FMT_IPU3_SGRBG10;
> - config.bufferCount = 4;
> -
> - configs[&data->stream_] = config;
> + IPU3CameraData *data = cameraData(camera);
> + StreamConfiguration *config = &configs[&data->stream_];
> + Size *maxSize = &data->.cio2_.maxSize_;
> +
> + config->width = maxSize->width;
> + config->height = maxSize->height;
> + config->pixelFormat = V4L2_PIX_FMT_NV12;
> + config->bufferCount = IPU3_BUFFER_COUNT;
> +
> + LOG(IPU3, Debug)
> + << "Stream format set to " << config->width << "x"
> + << config->height << "-0x" << std::hex << std::setfill('0')
> + << std::setw(8) << config->pixelFormat;
>
> return configs;
> }
> --
> 2.21.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list