Message ID | 20211011151154.72856-4-jacopo@jmondi.org |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi Jacopo, Thank you for the patch. On Mon, Oct 11, 2021 at 05:11:41PM +0200, Jacopo Mondi wrote: > Following the previous patch that moved all the ImgU-related contants in > the ImgUDevice class namespace and that aligned their naming scheme to > the 'kNameOfConstant' scheme, apply the same changes to the other > components of the IPU3 pipeline handler. > > Cosmetic change, no functional changes intended. > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> > --- > src/libcamera/pipeline/ipu3/cio2.cpp | 6 +++--- > src/libcamera/pipeline/ipu3/cio2.h | 2 +- > src/libcamera/pipeline/ipu3/ipu3.cpp | 29 ++++++++++++++-------------- > 3 files changed, 18 insertions(+), 19 deletions(-) > > diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp > index dc62ab197acb..59dda56bdd3d 100644 > --- a/src/libcamera/pipeline/ipu3/cio2.cpp > +++ b/src/libcamera/pipeline/ipu3/cio2.cpp > @@ -234,7 +234,7 @@ StreamConfiguration CIO2Device::generateConfiguration(Size size) const > > cfg.size = sensorFormat.size; > cfg.pixelFormat = mbusCodesToPixelFormat.at(sensorFormat.mbus_code); > - cfg.bufferCount = CIO2_BUFFER_COUNT; > + cfg.bufferCount = kBufferCount; > > return cfg; > } > @@ -338,11 +338,11 @@ int CIO2Device::exportBuffers(unsigned int count, > > int CIO2Device::start() > { > - int ret = output_->exportBuffers(CIO2_BUFFER_COUNT, &buffers_); > + int ret = output_->exportBuffers(kBufferCount, &buffers_); > if (ret < 0) > return ret; > > - ret = output_->importBuffers(CIO2_BUFFER_COUNT); > + ret = output_->importBuffers(kBufferCount); > if (ret) > LOG(IPU3, Error) << "Failed to import CIO2 buffers"; > > diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h > index 5fffe921f213..ba8f0052c5b3 100644 > --- a/src/libcamera/pipeline/ipu3/cio2.h > +++ b/src/libcamera/pipeline/ipu3/cio2.h > @@ -30,7 +30,7 @@ struct StreamConfiguration; > class CIO2Device > { > public: > - static constexpr unsigned int CIO2_BUFFER_COUNT = 4; > + static constexpr unsigned int kBufferCount = 4; > > CIO2Device(); > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > index bb3826eee422..6449fa543191 100644 > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > @@ -39,10 +39,6 @@ namespace libcamera { > > LOG_DEFINE_CATEGORY(IPU3) > > -static constexpr unsigned int IPU3_BUFFER_COUNT = 4; > -static constexpr unsigned int IPU3_MAX_STREAMS = 3; > -static constexpr Size IPU3ViewfinderSize(1280, 720); > - > static const ControlInfoMap::Map IPU3Controls = { > { &controls::draft::PipelineDepth, ControlInfo(2, 3) }, > }; > @@ -93,6 +89,9 @@ private: > class IPU3CameraConfiguration : public CameraConfiguration > { > public: > + static constexpr unsigned int kBufferCount = 4; > + static constexpr unsigned int kMaxStreams = 3; > + > IPU3CameraConfiguration(IPU3CameraData *data); > > Status validate() override; > @@ -118,7 +117,8 @@ private: > class PipelineHandlerIPU3 : public PipelineHandler > { > public: > - static constexpr unsigned int V4L2_CID_IPU3_PIPE_MODE = 0x009819c1; > + static constexpr unsigned int kPipeModeCtrl = 0x009819c1; This I would keep as-is, as I think it should be moved to the intel-ipu3.h kernel header. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > + static constexpr Size kViewfinderSize{ 1280, 720 }; > > enum IPU3PipeModes { > IPU3PipeModeVideo = 0, > @@ -218,8 +218,8 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > combinedTransform_ = combined; > > /* Cap the number of entries to the available streams. */ > - if (config_.size() > IPU3_MAX_STREAMS) { > - config_.resize(IPU3_MAX_STREAMS); > + if (config_.size() > kMaxStreams) { > + config_.resize(kMaxStreams); > status = Adjusted; > } > > @@ -355,7 +355,7 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > ImgUDevice::kOutputAlignHeight); > > cfg->pixelFormat = formats::NV12; > - cfg->bufferCount = IPU3_BUFFER_COUNT; > + cfg->bufferCount = kBufferCount; > cfg->stride = info.stride(cfg->size.width, 0, 1); > cfg->frameSize = info.frameSize(cfg->size, 1); > > @@ -444,7 +444,7 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, > size.height = utils::alignDown(size.height - 1, > ImgUDevice::kOutputMarginHeight); > pixelFormat = formats::NV12; > - bufferCount = IPU3_BUFFER_COUNT; > + bufferCount = IPU3CameraConfiguration::kBufferCount; > streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; > > break; > @@ -469,11 +469,11 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, > * capped to the maximum sensor resolution and aligned > * to the ImgU output constraints. > */ > - size = sensorResolution.boundedTo(IPU3ViewfinderSize) > + size = sensorResolution.boundedTo(kViewfinderSize) > .alignedDownTo(ImgUDevice::kOutputAlignWidth, > ImgUDevice::kOutputAlignHeight); > pixelFormat = formats::NV12; > - bufferCount = IPU3_BUFFER_COUNT; > + bufferCount = IPU3CameraConfiguration::kBufferCount; > streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; > > break; > @@ -645,8 +645,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c) > * \todo Figure out what the 'Still Capture' mode is meant for, and use > * it accordingly. > */ > - ctrls.set(V4L2_CID_IPU3_PIPE_MODE, > - static_cast<int32_t>(IPU3PipeModeVideo)); > + ctrls.set(kPipeModeCtrl, static_cast<int32_t>(IPU3PipeModeVideo)); > ret = imgu->imgu_->setControls(&ctrls); > if (ret) { > LOG(IPU3, Error) << "Unable to set pipe_mode control"; > @@ -1005,8 +1004,8 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) > * Either the smallest margin-aligned size larger than the viewfinder > * size or the adjusted sensor resolution. > */ > - minSize = Size(IPU3ViewfinderSize.width + 1, > - IPU3ViewfinderSize.height + 1) > + minSize = Size(kViewfinderSize.width + 1, > + kViewfinderSize.height + 1) > .alignedUpTo(ImgUDevice::kOutputMarginWidth, > ImgUDevice::kOutputMarginHeight) > .boundedTo(minSize);
Quoting Laurent Pinchart (2021-10-13 02:20:08) > Hi Jacopo, > > Thank you for the patch. > > On Mon, Oct 11, 2021 at 05:11:41PM +0200, Jacopo Mondi wrote: > > Following the previous patch that moved all the ImgU-related contants in > > the ImgUDevice class namespace and that aligned their naming scheme to > > the 'kNameOfConstant' scheme, apply the same changes to the other > > components of the IPU3 pipeline handler. > > > > Cosmetic change, no functional changes intended. > > > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> > > --- > > src/libcamera/pipeline/ipu3/cio2.cpp | 6 +++--- > > src/libcamera/pipeline/ipu3/cio2.h | 2 +- > > src/libcamera/pipeline/ipu3/ipu3.cpp | 29 ++++++++++++++-------------- > > 3 files changed, 18 insertions(+), 19 deletions(-) > > > > diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp > > index dc62ab197acb..59dda56bdd3d 100644 > > --- a/src/libcamera/pipeline/ipu3/cio2.cpp > > +++ b/src/libcamera/pipeline/ipu3/cio2.cpp > > @@ -234,7 +234,7 @@ StreamConfiguration CIO2Device::generateConfiguration(Size size) const > > > > cfg.size = sensorFormat.size; > > cfg.pixelFormat = mbusCodesToPixelFormat.at(sensorFormat.mbus_code); > > - cfg.bufferCount = CIO2_BUFFER_COUNT; > > + cfg.bufferCount = kBufferCount; > > > > return cfg; > > } > > @@ -338,11 +338,11 @@ int CIO2Device::exportBuffers(unsigned int count, > > > > int CIO2Device::start() > > { > > - int ret = output_->exportBuffers(CIO2_BUFFER_COUNT, &buffers_); > > + int ret = output_->exportBuffers(kBufferCount, &buffers_); > > if (ret < 0) > > return ret; > > > > - ret = output_->importBuffers(CIO2_BUFFER_COUNT); > > + ret = output_->importBuffers(kBufferCount); > > if (ret) > > LOG(IPU3, Error) << "Failed to import CIO2 buffers"; > > > > diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h > > index 5fffe921f213..ba8f0052c5b3 100644 > > --- a/src/libcamera/pipeline/ipu3/cio2.h > > +++ b/src/libcamera/pipeline/ipu3/cio2.h > > @@ -30,7 +30,7 @@ struct StreamConfiguration; > > class CIO2Device > > { > > public: > > - static constexpr unsigned int CIO2_BUFFER_COUNT = 4; > > + static constexpr unsigned int kBufferCount = 4; > > > > CIO2Device(); > > > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > > index bb3826eee422..6449fa543191 100644 > > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > > @@ -39,10 +39,6 @@ namespace libcamera { > > > > LOG_DEFINE_CATEGORY(IPU3) > > > > -static constexpr unsigned int IPU3_BUFFER_COUNT = 4; > > -static constexpr unsigned int IPU3_MAX_STREAMS = 3; > > -static constexpr Size IPU3ViewfinderSize(1280, 720); > > - > > static const ControlInfoMap::Map IPU3Controls = { > > { &controls::draft::PipelineDepth, ControlInfo(2, 3) }, > > }; > > @@ -93,6 +89,9 @@ private: > > class IPU3CameraConfiguration : public CameraConfiguration > > { > > public: > > + static constexpr unsigned int kBufferCount = 4; I'm all in favour of using constexprs in this series so: Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Only an unrelated question. Will kBufferCount always be constant? I guess it can be as there shouldn't be need for more than 4 buffers between the CIO2 and the IMGU. > > + static constexpr unsigned int kMaxStreams = 3; > > + > > IPU3CameraConfiguration(IPU3CameraData *data); > > > > Status validate() override; > > @@ -118,7 +117,8 @@ private: > > class PipelineHandlerIPU3 : public PipelineHandler > > { > > public: > > - static constexpr unsigned int V4L2_CID_IPU3_PIPE_MODE = 0x009819c1; > > + static constexpr unsigned int kPipeModeCtrl = 0x009819c1; > > This I would keep as-is, as I think it should be moved to the > intel-ipu3.h kernel header. > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > + static constexpr Size kViewfinderSize{ 1280, 720 }; > > > > enum IPU3PipeModes { > > IPU3PipeModeVideo = 0, > > @@ -218,8 +218,8 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > > combinedTransform_ = combined; > > > > /* Cap the number of entries to the available streams. */ > > - if (config_.size() > IPU3_MAX_STREAMS) { > > - config_.resize(IPU3_MAX_STREAMS); > > + if (config_.size() > kMaxStreams) { > > + config_.resize(kMaxStreams); > > status = Adjusted; > > } > > > > @@ -355,7 +355,7 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > > ImgUDevice::kOutputAlignHeight); > > > > cfg->pixelFormat = formats::NV12; > > - cfg->bufferCount = IPU3_BUFFER_COUNT; > > + cfg->bufferCount = kBufferCount; > > cfg->stride = info.stride(cfg->size.width, 0, 1); > > cfg->frameSize = info.frameSize(cfg->size, 1); > > > > @@ -444,7 +444,7 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, > > size.height = utils::alignDown(size.height - 1, > > ImgUDevice::kOutputMarginHeight); > > pixelFormat = formats::NV12; > > - bufferCount = IPU3_BUFFER_COUNT; > > + bufferCount = IPU3CameraConfiguration::kBufferCount; > > streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; > > > > break; > > @@ -469,11 +469,11 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, > > * capped to the maximum sensor resolution and aligned > > * to the ImgU output constraints. > > */ > > - size = sensorResolution.boundedTo(IPU3ViewfinderSize) > > + size = sensorResolution.boundedTo(kViewfinderSize) > > .alignedDownTo(ImgUDevice::kOutputAlignWidth, > > ImgUDevice::kOutputAlignHeight); > > pixelFormat = formats::NV12; > > - bufferCount = IPU3_BUFFER_COUNT; > > + bufferCount = IPU3CameraConfiguration::kBufferCount; > > streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; > > > > break; > > @@ -645,8 +645,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c) > > * \todo Figure out what the 'Still Capture' mode is meant for, and use > > * it accordingly. > > */ > > - ctrls.set(V4L2_CID_IPU3_PIPE_MODE, > > - static_cast<int32_t>(IPU3PipeModeVideo)); > > + ctrls.set(kPipeModeCtrl, static_cast<int32_t>(IPU3PipeModeVideo)); > > ret = imgu->imgu_->setControls(&ctrls); > > if (ret) { > > LOG(IPU3, Error) << "Unable to set pipe_mode control"; > > @@ -1005,8 +1004,8 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) > > * Either the smallest margin-aligned size larger than the viewfinder > > * size or the adjusted sensor resolution. > > */ > > - minSize = Size(IPU3ViewfinderSize.width + 1, > > - IPU3ViewfinderSize.height + 1) > > + minSize = Size(kViewfinderSize.width + 1, > > + kViewfinderSize.height + 1) > > .alignedUpTo(ImgUDevice::kOutputMarginWidth, > > ImgUDevice::kOutputMarginHeight) > > .boundedTo(minSize); > > -- > Regards, > > Laurent Pinchart
Hi Kieran, On Thu, Oct 14, 2021 at 10:02:23AM +0100, Kieran Bingham wrote: > Quoting Laurent Pinchart (2021-10-13 02:20:08) > > Hi Jacopo, > > > > Thank you for the patch. > > > > On Mon, Oct 11, 2021 at 05:11:41PM +0200, Jacopo Mondi wrote: > > > Following the previous patch that moved all the ImgU-related contants in > > > the ImgUDevice class namespace and that aligned their naming scheme to > > > the 'kNameOfConstant' scheme, apply the same changes to the other > > > components of the IPU3 pipeline handler. > > > > > > Cosmetic change, no functional changes intended. > > > > > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> > > > --- > > > src/libcamera/pipeline/ipu3/cio2.cpp | 6 +++--- > > > src/libcamera/pipeline/ipu3/cio2.h | 2 +- > > > src/libcamera/pipeline/ipu3/ipu3.cpp | 29 ++++++++++++++-------------- > > > 3 files changed, 18 insertions(+), 19 deletions(-) > > > > > > diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp > > > index dc62ab197acb..59dda56bdd3d 100644 > > > --- a/src/libcamera/pipeline/ipu3/cio2.cpp > > > +++ b/src/libcamera/pipeline/ipu3/cio2.cpp > > > @@ -234,7 +234,7 @@ StreamConfiguration CIO2Device::generateConfiguration(Size size) const > > > > > > cfg.size = sensorFormat.size; > > > cfg.pixelFormat = mbusCodesToPixelFormat.at(sensorFormat.mbus_code); > > > - cfg.bufferCount = CIO2_BUFFER_COUNT; > > > + cfg.bufferCount = kBufferCount; > > > > > > return cfg; > > > } > > > @@ -338,11 +338,11 @@ int CIO2Device::exportBuffers(unsigned int count, > > > > > > int CIO2Device::start() > > > { > > > - int ret = output_->exportBuffers(CIO2_BUFFER_COUNT, &buffers_); > > > + int ret = output_->exportBuffers(kBufferCount, &buffers_); > > > if (ret < 0) > > > return ret; > > > > > > - ret = output_->importBuffers(CIO2_BUFFER_COUNT); > > > + ret = output_->importBuffers(kBufferCount); > > > if (ret) > > > LOG(IPU3, Error) << "Failed to import CIO2 buffers"; > > > > > > diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h > > > index 5fffe921f213..ba8f0052c5b3 100644 > > > --- a/src/libcamera/pipeline/ipu3/cio2.h > > > +++ b/src/libcamera/pipeline/ipu3/cio2.h > > > @@ -30,7 +30,7 @@ struct StreamConfiguration; > > > class CIO2Device > > > { > > > public: > > > - static constexpr unsigned int CIO2_BUFFER_COUNT = 4; > > > + static constexpr unsigned int kBufferCount = 4; > > > > > > CIO2Device(); > > > > > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > > > index bb3826eee422..6449fa543191 100644 > > > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > > > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > > > @@ -39,10 +39,6 @@ namespace libcamera { > > > > > > LOG_DEFINE_CATEGORY(IPU3) > > > > > > -static constexpr unsigned int IPU3_BUFFER_COUNT = 4; > > > -static constexpr unsigned int IPU3_MAX_STREAMS = 3; > > > -static constexpr Size IPU3ViewfinderSize(1280, 720); > > > - > > > static const ControlInfoMap::Map IPU3Controls = { > > > { &controls::draft::PipelineDepth, ControlInfo(2, 3) }, > > > }; > > > @@ -93,6 +89,9 @@ private: > > > class IPU3CameraConfiguration : public CameraConfiguration > > > { > > > public: > > > + static constexpr unsigned int kBufferCount = 4; > > I'm all in favour of using constexprs in this series so: > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > Only an unrelated question. Will kBufferCount always be constant? I > guess it can be as there shouldn't be need for more than 4 buffers > between the CIO2 and the IMGU. So far a constant number of shared buffers between the CIO2 and the ImgU have been enough. I guess this concur in defining our pipeline depth, as the more buffers we have to keep the CIO2->ImgU machinery going the more we can have requests in-flight ? > > > > > + static constexpr unsigned int kMaxStreams = 3; > > > + > > > IPU3CameraConfiguration(IPU3CameraData *data); > > > > > > Status validate() override; > > > @@ -118,7 +117,8 @@ private: > > > class PipelineHandlerIPU3 : public PipelineHandler > > > { > > > public: > > > - static constexpr unsigned int V4L2_CID_IPU3_PIPE_MODE = 0x009819c1; > > > + static constexpr unsigned int kPipeModeCtrl = 0x009819c1; > > > > This I would keep as-is, as I think it should be moved to the > > intel-ipu3.h kernel header. > > > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > + static constexpr Size kViewfinderSize{ 1280, 720 }; > > > > > > enum IPU3PipeModes { > > > IPU3PipeModeVideo = 0, > > > @@ -218,8 +218,8 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > > > combinedTransform_ = combined; > > > > > > /* Cap the number of entries to the available streams. */ > > > - if (config_.size() > IPU3_MAX_STREAMS) { > > > - config_.resize(IPU3_MAX_STREAMS); > > > + if (config_.size() > kMaxStreams) { > > > + config_.resize(kMaxStreams); > > > status = Adjusted; > > > } > > > > > > @@ -355,7 +355,7 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > > > ImgUDevice::kOutputAlignHeight); > > > > > > cfg->pixelFormat = formats::NV12; > > > - cfg->bufferCount = IPU3_BUFFER_COUNT; > > > + cfg->bufferCount = kBufferCount; > > > cfg->stride = info.stride(cfg->size.width, 0, 1); > > > cfg->frameSize = info.frameSize(cfg->size, 1); > > > > > > @@ -444,7 +444,7 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, > > > size.height = utils::alignDown(size.height - 1, > > > ImgUDevice::kOutputMarginHeight); > > > pixelFormat = formats::NV12; > > > - bufferCount = IPU3_BUFFER_COUNT; > > > + bufferCount = IPU3CameraConfiguration::kBufferCount; > > > streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; > > > > > > break; > > > @@ -469,11 +469,11 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, > > > * capped to the maximum sensor resolution and aligned > > > * to the ImgU output constraints. > > > */ > > > - size = sensorResolution.boundedTo(IPU3ViewfinderSize) > > > + size = sensorResolution.boundedTo(kViewfinderSize) > > > .alignedDownTo(ImgUDevice::kOutputAlignWidth, > > > ImgUDevice::kOutputAlignHeight); > > > pixelFormat = formats::NV12; > > > - bufferCount = IPU3_BUFFER_COUNT; > > > + bufferCount = IPU3CameraConfiguration::kBufferCount; > > > streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; > > > > > > break; > > > @@ -645,8 +645,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c) > > > * \todo Figure out what the 'Still Capture' mode is meant for, and use > > > * it accordingly. > > > */ > > > - ctrls.set(V4L2_CID_IPU3_PIPE_MODE, > > > - static_cast<int32_t>(IPU3PipeModeVideo)); > > > + ctrls.set(kPipeModeCtrl, static_cast<int32_t>(IPU3PipeModeVideo)); > > > ret = imgu->imgu_->setControls(&ctrls); > > > if (ret) { > > > LOG(IPU3, Error) << "Unable to set pipe_mode control"; > > > @@ -1005,8 +1004,8 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) > > > * Either the smallest margin-aligned size larger than the viewfinder > > > * size or the adjusted sensor resolution. > > > */ > > > - minSize = Size(IPU3ViewfinderSize.width + 1, > > > - IPU3ViewfinderSize.height + 1) > > > + minSize = Size(kViewfinderSize.width + 1, > > > + kViewfinderSize.height + 1) > > > .alignedUpTo(ImgUDevice::kOutputMarginWidth, > > > ImgUDevice::kOutputMarginHeight) > > > .boundedTo(minSize); > > > > -- > > Regards, > > > > Laurent Pinchart
diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp index dc62ab197acb..59dda56bdd3d 100644 --- a/src/libcamera/pipeline/ipu3/cio2.cpp +++ b/src/libcamera/pipeline/ipu3/cio2.cpp @@ -234,7 +234,7 @@ StreamConfiguration CIO2Device::generateConfiguration(Size size) const cfg.size = sensorFormat.size; cfg.pixelFormat = mbusCodesToPixelFormat.at(sensorFormat.mbus_code); - cfg.bufferCount = CIO2_BUFFER_COUNT; + cfg.bufferCount = kBufferCount; return cfg; } @@ -338,11 +338,11 @@ int CIO2Device::exportBuffers(unsigned int count, int CIO2Device::start() { - int ret = output_->exportBuffers(CIO2_BUFFER_COUNT, &buffers_); + int ret = output_->exportBuffers(kBufferCount, &buffers_); if (ret < 0) return ret; - ret = output_->importBuffers(CIO2_BUFFER_COUNT); + ret = output_->importBuffers(kBufferCount); if (ret) LOG(IPU3, Error) << "Failed to import CIO2 buffers"; diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h index 5fffe921f213..ba8f0052c5b3 100644 --- a/src/libcamera/pipeline/ipu3/cio2.h +++ b/src/libcamera/pipeline/ipu3/cio2.h @@ -30,7 +30,7 @@ struct StreamConfiguration; class CIO2Device { public: - static constexpr unsigned int CIO2_BUFFER_COUNT = 4; + static constexpr unsigned int kBufferCount = 4; CIO2Device(); diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index bb3826eee422..6449fa543191 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -39,10 +39,6 @@ namespace libcamera { LOG_DEFINE_CATEGORY(IPU3) -static constexpr unsigned int IPU3_BUFFER_COUNT = 4; -static constexpr unsigned int IPU3_MAX_STREAMS = 3; -static constexpr Size IPU3ViewfinderSize(1280, 720); - static const ControlInfoMap::Map IPU3Controls = { { &controls::draft::PipelineDepth, ControlInfo(2, 3) }, }; @@ -93,6 +89,9 @@ private: class IPU3CameraConfiguration : public CameraConfiguration { public: + static constexpr unsigned int kBufferCount = 4; + static constexpr unsigned int kMaxStreams = 3; + IPU3CameraConfiguration(IPU3CameraData *data); Status validate() override; @@ -118,7 +117,8 @@ private: class PipelineHandlerIPU3 : public PipelineHandler { public: - static constexpr unsigned int V4L2_CID_IPU3_PIPE_MODE = 0x009819c1; + static constexpr unsigned int kPipeModeCtrl = 0x009819c1; + static constexpr Size kViewfinderSize{ 1280, 720 }; enum IPU3PipeModes { IPU3PipeModeVideo = 0, @@ -218,8 +218,8 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() combinedTransform_ = combined; /* Cap the number of entries to the available streams. */ - if (config_.size() > IPU3_MAX_STREAMS) { - config_.resize(IPU3_MAX_STREAMS); + if (config_.size() > kMaxStreams) { + config_.resize(kMaxStreams); status = Adjusted; } @@ -355,7 +355,7 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() ImgUDevice::kOutputAlignHeight); cfg->pixelFormat = formats::NV12; - cfg->bufferCount = IPU3_BUFFER_COUNT; + cfg->bufferCount = kBufferCount; cfg->stride = info.stride(cfg->size.width, 0, 1); cfg->frameSize = info.frameSize(cfg->size, 1); @@ -444,7 +444,7 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, size.height = utils::alignDown(size.height - 1, ImgUDevice::kOutputMarginHeight); pixelFormat = formats::NV12; - bufferCount = IPU3_BUFFER_COUNT; + bufferCount = IPU3CameraConfiguration::kBufferCount; streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; break; @@ -469,11 +469,11 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera, * capped to the maximum sensor resolution and aligned * to the ImgU output constraints. */ - size = sensorResolution.boundedTo(IPU3ViewfinderSize) + size = sensorResolution.boundedTo(kViewfinderSize) .alignedDownTo(ImgUDevice::kOutputAlignWidth, ImgUDevice::kOutputAlignHeight); pixelFormat = formats::NV12; - bufferCount = IPU3_BUFFER_COUNT; + bufferCount = IPU3CameraConfiguration::kBufferCount; streamFormats[pixelFormat] = { { ImgUDevice::kOutputMinSize, size } }; break; @@ -645,8 +645,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c) * \todo Figure out what the 'Still Capture' mode is meant for, and use * it accordingly. */ - ctrls.set(V4L2_CID_IPU3_PIPE_MODE, - static_cast<int32_t>(IPU3PipeModeVideo)); + ctrls.set(kPipeModeCtrl, static_cast<int32_t>(IPU3PipeModeVideo)); ret = imgu->imgu_->setControls(&ctrls); if (ret) { LOG(IPU3, Error) << "Unable to set pipe_mode control"; @@ -1005,8 +1004,8 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) * Either the smallest margin-aligned size larger than the viewfinder * size or the adjusted sensor resolution. */ - minSize = Size(IPU3ViewfinderSize.width + 1, - IPU3ViewfinderSize.height + 1) + minSize = Size(kViewfinderSize.width + 1, + kViewfinderSize.height + 1) .alignedUpTo(ImgUDevice::kOutputMarginWidth, ImgUDevice::kOutputMarginHeight) .boundedTo(minSize);
Following the previous patch that moved all the ImgU-related contants in the ImgUDevice class namespace and that aligned their naming scheme to the 'kNameOfConstant' scheme, apply the same changes to the other components of the IPU3 pipeline handler. Cosmetic change, no functional changes intended. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> --- src/libcamera/pipeline/ipu3/cio2.cpp | 6 +++--- src/libcamera/pipeline/ipu3/cio2.h | 2 +- src/libcamera/pipeline/ipu3/ipu3.cpp | 29 ++++++++++++++-------------- 3 files changed, 18 insertions(+), 19 deletions(-)