[libcamera-devel,v4,12/21] libcamera: pipeline: raspberrypi: Filter out unsupported formats

Message ID 20200708134417.67747-13-paul.elder@ideasonboard.com
State Superseded
Headers show
Series
  • Clean up formats in v4l2-compat and pipeline handlers
Related show

Commit Message

Paul Elder July 8, 2020, 1:44 p.m. UTC
Unsupported formats should not be added to the configuration when
generating the configuration. Filter them out.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

---
Cosmetic change in v4

No change in v3
---
 src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

Patch

diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index cbb6f1c..1822ac9 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -569,13 +569,11 @@  CameraConfiguration *PipelineHandlerRPi::generateConfiguration(Camera *camera,
 
 		/* Translate the V4L2PixelFormat to PixelFormat. */
 		std::map<PixelFormat, std::vector<SizeRange>> deviceFormats;
-		std::transform(fmts.begin(), fmts.end(), std::inserter(deviceFormats, deviceFormats.end()),
-			       [&](const decltype(fmts)::value_type &format) {
-					return decltype(deviceFormats)::value_type{
-						format.first.toPixelFormat(),
-						format.second
-					};
-			       });
+		for (const auto &format : fmts) {
+			PixelFormat pixelFormat = format.first.toPixelFormat();
+			if (pixelFormat.isValid())
+				deviceFormats[pixelFormat] = format.second;
+		}
 
 		/* Add the stream format based on the device node used for the use case. */
 		StreamFormats formats(deviceFormats);