Message ID | 20200709084128.5316-6-jacopo@jmondi.org |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Hi Jacopo, Thank you for the patch. On Thu, Jul 09, 2020 at 10:41:13AM +0200, Jacopo Mondi wrote: > The validate function overwrites the generated StreamConfiguration with > the one reported by the CIO2 unit when inspecting the RAW stream > configuration. > > As we prepare to add StreamFormats to the IPU3 StreamConfiguration, > assigning to the CIO2 generated configuration would delete the > StreamFormats. > > Fix this by updating relevant fields only in order to keep the > assigned StreamFormats. > > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> The fact that it's too easy to make this mistake calls for a better API, but that's not for this patch series. > --- > src/libcamera/pipeline/ipu3/ipu3.cpp | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > index e62a5d5b3517..978a6e58c72f 100644 > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > @@ -269,7 +269,9 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() > const Stream *stream = streams_[i]; > > if (stream == &data_->rawStream_) { > - cfg = cio2Configuration_; > + cfg.size = cio2Configuration_.size; > + cfg.pixelFormat = cio2Configuration_.pixelFormat; > + cfg.bufferCount = cio2Configuration_.bufferCount; > } else { > bool scale = stream == &data_->vfStream_; > adjustStream(config_[i], scale);
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index e62a5d5b3517..978a6e58c72f 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -269,7 +269,9 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() const Stream *stream = streams_[i]; if (stream == &data_->rawStream_) { - cfg = cio2Configuration_; + cfg.size = cio2Configuration_.size; + cfg.pixelFormat = cio2Configuration_.pixelFormat; + cfg.bufferCount = cio2Configuration_.bufferCount; } else { bool scale = stream == &data_->vfStream_; adjustStream(config_[i], scale);