| Message ID | 20260121090705.274081-4-uajain@igalia.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi 2026. 01. 21. 10:07 keltezéssel, Umang Jain írta: > Now that each frame generator class supports the colorspace > information using the colorspace() getter, use that to validate > (or set) the colorspace of a particular stream configuration instead > of a incorrect hard-coded one. > > Fixes: 5d2d005306ad ("pipeline: virtual: Provide and validate colorspace") > Signed-off-by: Umang Jain <uajain@igalia.com> > --- Looks ok to me. Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > src/libcamera/pipeline/virtual/virtual.cpp | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp > index 40c35264..3d205a6c 100644 > --- a/src/libcamera/pipeline/virtual/virtual.cpp > +++ b/src/libcamera/pipeline/virtual/virtual.cpp > @@ -185,7 +185,7 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate() > status = Adjusted; > } > > - for (StreamConfiguration &cfg : config_) { > + for (auto [i, cfg] : utils::enumerate(config_)) { > bool adjusted = false; > bool found = false; > for (const auto &resolution : data_->config_.resolutions) { > @@ -214,8 +214,9 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate() > adjusted = true; > } > > - if (cfg.colorSpace != ColorSpace::Rec709) { > - cfg.colorSpace = ColorSpace::Rec709; > + const ColorSpace colorspace = data_->streamConfigs_[i].frameGenerator->colorspace(); > + if (cfg.colorSpace != colorspace) { > + cfg.colorSpace = colorspace; > status = Adjusted; > adjusted = true; > } > @@ -289,7 +290,6 @@ PipelineHandlerVirtual::generateConfiguration(Camera *camera, > cfg.pixelFormat = pixelFormat; > cfg.size = data->config_.maxResolutionSize; > cfg.bufferCount = VirtualCameraConfiguration::kBufferCount; > - cfg.colorSpace = ColorSpace::Rec709; > > config->addConfiguration(cfg); > }
diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp index 40c35264..3d205a6c 100644 --- a/src/libcamera/pipeline/virtual/virtual.cpp +++ b/src/libcamera/pipeline/virtual/virtual.cpp @@ -185,7 +185,7 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate() status = Adjusted; } - for (StreamConfiguration &cfg : config_) { + for (auto [i, cfg] : utils::enumerate(config_)) { bool adjusted = false; bool found = false; for (const auto &resolution : data_->config_.resolutions) { @@ -214,8 +214,9 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate() adjusted = true; } - if (cfg.colorSpace != ColorSpace::Rec709) { - cfg.colorSpace = ColorSpace::Rec709; + const ColorSpace colorspace = data_->streamConfigs_[i].frameGenerator->colorspace(); + if (cfg.colorSpace != colorspace) { + cfg.colorSpace = colorspace; status = Adjusted; adjusted = true; } @@ -289,7 +290,6 @@ PipelineHandlerVirtual::generateConfiguration(Camera *camera, cfg.pixelFormat = pixelFormat; cfg.size = data->config_.maxResolutionSize; cfg.bufferCount = VirtualCameraConfiguration::kBufferCount; - cfg.colorSpace = ColorSpace::Rec709; config->addConfiguration(cfg); }
Now that each frame generator class supports the colorspace information using the colorspace() getter, use that to validate (or set) the colorspace of a particular stream configuration instead of a incorrect hard-coded one. Fixes: 5d2d005306ad ("pipeline: virtual: Provide and validate colorspace") Signed-off-by: Umang Jain <uajain@igalia.com> --- src/libcamera/pipeline/virtual/virtual.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)