| Message ID | 20260618122245.946138-10-bryan.odonoghue@linaro.org |
|---|---|
| State | RFC |
| Headers | show |
| Series |
|
| Related | show |
Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes: > Class member window_ is only used in one method now so make it a local to > that method instead. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by: Milan Zamazal <mzamazal@redhat.com> > --- > .../software_isp/software_isp_pipeline_gpu.cpp | 16 +++++++++------- > .../software_isp/software_isp_pipeline_gpu.h | 1 - > 2 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp b/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp > index 6f329cf40..7de77319d 100644 > --- a/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp > +++ b/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp > @@ -122,6 +122,8 @@ int SoftwareIspPipelineGpu::configure(const StreamConfiguration &inputCfg, > const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs, > [[maybe_unused]] bool ccmEnabled) > { > + Rectangle window; > + > if (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0) > return -EINVAL; > > @@ -165,21 +167,21 @@ int SoftwareIspPipelineGpu::configure(const StreamConfiguration &inputCfg, > outputPixelFormat_ = outputCfg.pixelFormat; > outputSize_ = outputCfg.size; > > - window_.x = ((inputCfg.size.width - outputCfg.size.width) / 2) & > + window.x = ((inputCfg.size.width - outputCfg.size.width) / 2) & > ~(inputConfig_.patternSize.width - 1); > - window_.y = ((inputCfg.size.height - outputCfg.size.height) / 2) & > + window.y = ((inputCfg.size.height - outputCfg.size.height) / 2) & > ~(inputConfig_.patternSize.height - 1); > - window_.width = outputCfg.size.width; > - window_.height = outputCfg.size.height; > + window.width = outputCfg.size.width; > + window.height = outputCfg.size.height; > > /* > - * Don't pass x,y from window_ since process() already adjusts for it. > + * Don't pass x,y from window since process() already adjusts for it. > * But crop the window to 2/3 of its width and height for speedup. > */ > - stats_->setWindow(Rectangle(window_.size())); > + stats_->setWindow(Rectangle(window.size())); > > /* Configure for one pass */ > - PassConfig rawSensorIn = { inputCfg.size, inputConfig_.stride, inputPixelFormat_, window_ }; > + PassConfig rawSensorIn = { inputCfg.size, inputConfig_.stride, inputPixelFormat_, window }; > PassConfig rgbaOut = { outputCfg.size, outputConfig_.stride, outputPixelFormat_, Rectangle(outputSize_) }; > > gpuIspShaderPassDemosiac_.configure(rawSensorIn, rgbaOut); > diff --git a/src/libcamera/software_isp/software_isp_pipeline_gpu.h b/src/libcamera/software_isp/software_isp_pipeline_gpu.h > index 6bd8adc8f..1b77bc71d 100644 > --- a/src/libcamera/software_isp/software_isp_pipeline_gpu.h > +++ b/src/libcamera/software_isp/software_isp_pipeline_gpu.h > @@ -67,7 +67,6 @@ private: > std::unique_ptr<eGLImage> eglImageBayerIn_; > std::unique_ptr<eGLImage> eglImageRGBAOut_; > > - Rectangle window_; > std::unique_ptr<SwStatsCpu> stats_; > eGL egl_; > uint32_t width_;
diff --git a/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp b/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp index 6f329cf40..7de77319d 100644 --- a/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp +++ b/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp @@ -122,6 +122,8 @@ int SoftwareIspPipelineGpu::configure(const StreamConfiguration &inputCfg, const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs, [[maybe_unused]] bool ccmEnabled) { + Rectangle window; + if (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0) return -EINVAL; @@ -165,21 +167,21 @@ int SoftwareIspPipelineGpu::configure(const StreamConfiguration &inputCfg, outputPixelFormat_ = outputCfg.pixelFormat; outputSize_ = outputCfg.size; - window_.x = ((inputCfg.size.width - outputCfg.size.width) / 2) & + window.x = ((inputCfg.size.width - outputCfg.size.width) / 2) & ~(inputConfig_.patternSize.width - 1); - window_.y = ((inputCfg.size.height - outputCfg.size.height) / 2) & + window.y = ((inputCfg.size.height - outputCfg.size.height) / 2) & ~(inputConfig_.patternSize.height - 1); - window_.width = outputCfg.size.width; - window_.height = outputCfg.size.height; + window.width = outputCfg.size.width; + window.height = outputCfg.size.height; /* - * Don't pass x,y from window_ since process() already adjusts for it. + * Don't pass x,y from window since process() already adjusts for it. * But crop the window to 2/3 of its width and height for speedup. */ - stats_->setWindow(Rectangle(window_.size())); + stats_->setWindow(Rectangle(window.size())); /* Configure for one pass */ - PassConfig rawSensorIn = { inputCfg.size, inputConfig_.stride, inputPixelFormat_, window_ }; + PassConfig rawSensorIn = { inputCfg.size, inputConfig_.stride, inputPixelFormat_, window }; PassConfig rgbaOut = { outputCfg.size, outputConfig_.stride, outputPixelFormat_, Rectangle(outputSize_) }; gpuIspShaderPassDemosiac_.configure(rawSensorIn, rgbaOut); diff --git a/src/libcamera/software_isp/software_isp_pipeline_gpu.h b/src/libcamera/software_isp/software_isp_pipeline_gpu.h index 6bd8adc8f..1b77bc71d 100644 --- a/src/libcamera/software_isp/software_isp_pipeline_gpu.h +++ b/src/libcamera/software_isp/software_isp_pipeline_gpu.h @@ -67,7 +67,6 @@ private: std::unique_ptr<eGLImage> eglImageBayerIn_; std::unique_ptr<eGLImage> eglImageRGBAOut_; - Rectangle window_; std::unique_ptr<SwStatsCpu> stats_; eGL egl_; uint32_t width_;
Class member window_ is only used in one method now so make it a local to that method instead. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- .../software_isp/software_isp_pipeline_gpu.cpp | 16 +++++++++------- .../software_isp/software_isp_pipeline_gpu.h | 1 - 2 files changed, 9 insertions(+), 8 deletions(-)