I tried picking a pixel format from the Vector of available pixel formats. I rewrote the code this way:
...and the output indicated that it chose a pixel format offered by libcamera, but libcamera did not accept the choice. So I think it's a bug.
Code:
std::vector<PixelFormat> formats = streamConfig.formats().pixelformats();for (int i = 0; i < formats.size(); i++) { PixelFormat format = formats[i]; std::cout << "Found pixel format: " << format.toString() << std::endl; if (format.toString().compare("YUV420") == 0) { std::cout << "Found YUV420, trying to choose it from the list." << std::endl; streamConfig.pixelFormat = format; }}
[1:45:24.313986690] [1461] INFO Camera camera_manager.cpp:284 libcamera v0.2.0+120-eb00c13d
[1:45:24.388248378] [1464] WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[1:45:24.393774729] [1464] WARN RPI vc4.cpp:392 Mismatch between Unicam and CamHelper for embedded data usage!
[1:45:24.395379939] [1464] INFO RPI vc4.cpp:446 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
- 'imx219' (/base/soc/i2c0mux/i2c@1/imx219@10)
Default viewfinder configuration is: 800x600-XRGB8888
Found pixel format: NV21
Found pixel format: YUV420
Found YUV420, trying to choose it from the list.
Found pixel format: NV12
Found pixel format: YVU420
Found pixel format: XBGR8888
Found pixel format: BGR888
Found pixel format: RGB888
Found pixel format: XRGB8888
Found pixel format: RGB565
Found pixel format: YVYU
Found pixel format: YUYV
Found pixel format: VYUY
Found pixel format: UYVY
[1:45:24.398094544] [1461] ERROR Camera camera.cpp:1171 Can't configure camera with invalid configuration
Statistics: Posted by diastrikos — Sun May 05, 2024 11:18 am