[libcamera-devel] [PATCH 05/13] libcamera: pipeline: rkisp1: Create RkISP1Frames from camera data
Jacopo Mondi
jacopo at jmondi.org
Thu Aug 20 10:42:27 CEST 2020
Hi Niklas,
On Thu, Aug 13, 2020 at 02:52:38AM +0200, Niklas Söderlund wrote:
> Create RkISP1Frames from camera data instead of picking information out
> form it. This is done to prepare for multi stream support where more
> information from the camera data will be needed.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/libcamera/pipeline/rkisp1/rkisp1.cpp | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index a1cda12d244f2d97..9d5a52d352aefabc 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -52,6 +52,7 @@ static const std::array<PixelFormat, 7> RKISP1_RSZ_MP_FORMATS{
>
> class PipelineHandlerRkISP1;
> class RkISP1ActionQueueBuffers;
> +class RkISP1CameraData;
>
> enum RkISP1ActionType {
> SetSensor,
> @@ -77,7 +78,7 @@ class RkISP1Frames
> public:
> RkISP1Frames(PipelineHandler *pipe);
>
> - RkISP1FrameInfo *create(unsigned int frame, Request *request, Stream *stream);
> + RkISP1FrameInfo *create(const RkISP1CameraData *data, Request *request);
Should data be a const & ?
This apart, the patch looks good
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> int destroy(unsigned int frame);
> void clear();
>
> @@ -242,8 +243,10 @@ RkISP1Frames::RkISP1Frames(PipelineHandler *pipe)
> {
> }
>
> -RkISP1FrameInfo *RkISP1Frames::create(unsigned int frame, Request *request, Stream *stream)
> +RkISP1FrameInfo *RkISP1Frames::create(const RkISP1CameraData *data, Request *request)
> {
> + unsigned int frame = data->frame_;
> +
> if (pipe_->availableParamBuffers_.empty()) {
> LOG(RkISP1, Error) << "Parameters buffer underrun";
> return nullptr;
> @@ -256,7 +259,7 @@ RkISP1FrameInfo *RkISP1Frames::create(unsigned int frame, Request *request, Stre
> }
> FrameBuffer *statBuffer = pipe_->availableStatBuffers_.front();
>
> - FrameBuffer *videoBuffer = request->findBuffer(stream);
> + FrameBuffer *videoBuffer = request->findBuffer(&data->stream_);
> if (!videoBuffer) {
> LOG(RkISP1, Error)
> << "Attempt to queue request with invalid stream";
> @@ -880,10 +883,8 @@ void PipelineHandlerRkISP1::stop(Camera *camera)
> int PipelineHandlerRkISP1::queueRequestDevice(Camera *camera, Request *request)
> {
> RkISP1CameraData *data = cameraData(camera);
> - Stream *stream = &data->stream_;
>
> - RkISP1FrameInfo *info = data->frameInfo_.create(data->frame_, request,
> - stream);
> + RkISP1FrameInfo *info = data->frameInfo_.create(data, request);
> if (!info)
> return -ENOENT;
>
> --
> 2.28.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
More information about the libcamera-devel
mailing list