@@ -208,8 +208,8 @@ CameraConfiguration::Status VirtualCameraConfiguration::validate()
adjusted = true;
}
- if (cfg.colorSpace != ColorSpace::Rec709) {
- cfg.colorSpace = ColorSpace::Rec709;
+ if (cfg.colorSpace != ColorSpace::Smpte170m) {
+ cfg.colorSpace = ColorSpace::Smpte170m;
status = Adjusted;
adjusted = true;
}
@@ -283,7 +283,7 @@ PipelineHandlerVirtual::generateConfiguration(Camera *camera,
cfg.pixelFormat = pixelFormat;
cfg.size = data->config_.maxResolutionSize;
cfg.bufferCount = VirtualCameraConfiguration::kBufferCount;
- cfg.colorSpace = ColorSpace::Rec709;
+ cfg.colorSpace = ColorSpace::Smpte170m;
config->addConfiguration(cfg);
}
ColorSpace::Smpte170m notably has YcbcrEncoding::Rec601, which is what libyuv::ARGBToNV12() - used in TestPatternGenerator - uses internally. Newer/upcoming versions of libyuv will have ARGBToNV12Matrix(), allowing us to explicitly request the corresponding matrix for ColorSpace::Rec709, however for now let's honor to the implicit value in order to allow color space aware clients to render as correctly as possible. Note that I'm not fully sure if the same applies to libyuv::MJPGToNV12() in ImageFrameGenerator, however I *think* so. Signed-off-by: Robert Mader <robert.mader@collabora.com> --- src/libcamera/pipeline/virtual/virtual.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)