pipeline: rpi: vc4: Use an unpacked format if no packed one is available
When validating a stream, and no valid packed pixel format can be found, see if an unpacked format can be used instead. This is particularly helpful for 8 (and 16) bit raw formats, where asking for a packed format would previously have failed. Now the configuration will be adjusted to give you a format (in fact, the only format) that will work. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
committed by
Laurent Pinchart
parent
5e4dc46a0c
commit
366077c4db
@@ -434,6 +434,17 @@ CameraConfiguration::Status Vc4CameraData::platformValidate(RPi::RPiCameraConfig
|
||||
rawBayer.packing = BayerFormat::Packing::CSI2;
|
||||
|
||||
PixelFormat rawFormat = rawBayer.toPixelFormat();
|
||||
|
||||
/*
|
||||
* Try for an unpacked format if a packed one wasn't available.
|
||||
* This catches 8 (and 16) bit formats which would otherwise
|
||||
* fail.
|
||||
*/
|
||||
if (!rawFormat.isValid() && rawBayer.packing != BayerFormat::Packing::None) {
|
||||
rawBayer.packing = BayerFormat::Packing::None;
|
||||
rawFormat = rawBayer.toPixelFormat();
|
||||
}
|
||||
|
||||
if (rawStream->pixelFormat != rawFormat ||
|
||||
rawStream->size != rpiConfig->sensorFormat_.size) {
|
||||
rawStream->pixelFormat = rawFormat;
|
||||
|
||||
Reference in New Issue
Block a user