@@ -136,7 +136,7 @@ private:
return static_cast<ISICameraData *>(camera->_d());
}
- Pipe *pipeFromStream(Camera *camera, const Stream *stream);
+ Pipe *pipeFromStream(ISICameraData *data, const Stream *stream);
StreamConfiguration generateYUVConfiguration(Camera *camera,
const Size &size);
@@ -865,7 +865,7 @@ int PipelineHandlerISI::configure(Camera *camera, CameraConfiguration *c)
*/
data->enabledStreams_.clear();
for (const auto &config : *c) {
- Pipe *pipe = pipeFromStream(camera, config.stream());
+ Pipe *pipe = pipeFromStream(data, config.stream());
/*
* Configure the ISI sink compose rectangle to downscale the
@@ -915,7 +915,7 @@ int PipelineHandlerISI::exportFrameBuffers(Camera *camera, Stream *stream,
std::vector<std::unique_ptr<FrameBuffer>> *buffers)
{
unsigned int count = stream->configuration().bufferCount;
- Pipe *pipe = pipeFromStream(camera, stream);
+ Pipe *pipe = pipeFromStream(cameraData(camera), stream);
return pipe->capture->exportBuffers(count, buffers);
}
@@ -926,7 +926,7 @@ int PipelineHandlerISI::start(Camera *camera,
ISICameraData *data = cameraData(camera);
for (const auto &stream : data->enabledStreams_) {
- Pipe *pipe = pipeFromStream(camera, stream);
+ Pipe *pipe = pipeFromStream(data, stream);
const StreamConfiguration &config = stream->configuration();
int ret = pipe->capture->importBuffers(config.bufferCount);
@@ -946,7 +946,7 @@ void PipelineHandlerISI::stopDevice(Camera *camera)
ISICameraData *data = cameraData(camera);
for (const auto &stream : data->enabledStreams_) {
- Pipe *pipe = pipeFromStream(camera, stream);
+ Pipe *pipe = pipeFromStream(data, stream);
pipe->capture->streamOff();
pipe->capture->releaseBuffers();
@@ -955,8 +955,10 @@ void PipelineHandlerISI::stopDevice(Camera *camera)
int PipelineHandlerISI::queueRequestDevice(Camera *camera, Request *request)
{
+ ISICameraData *data = cameraData(camera);
+
for (auto &[stream, buffer] : request->buffers()) {
- Pipe *pipe = pipeFromStream(camera, stream);
+ Pipe *pipe = pipeFromStream(data, stream);
int ret = pipe->capture->queueBuffer(buffer);
if (ret)
@@ -1110,10 +1112,9 @@ bool PipelineHandlerISI::match(DeviceEnumerator *enumerator)
return numCameras > 0;
}
-PipelineHandlerISI::Pipe *PipelineHandlerISI::pipeFromStream(Camera *camera,
+PipelineHandlerISI::Pipe *PipelineHandlerISI::pipeFromStream(ISICameraData *data,
const Stream *stream)
{
- ISICameraData *data = cameraData(camera);
unsigned int pipeIndex = data->pipeIndex(stream);
ASSERT(pipeIndex < pipes_.size());
The function actually needs the pipeline handler specific camera data, and in most callers it is already available, so accept that as argument. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)