Raspberry Pi OS Bullseye camera stack change: how long will MMAL compatibility be supported?
0 reputation · 30 Dec 2023, 07:06 UTC
Raspberry Pi OS Bullseye (released 2021-11-08) switched the default camera subsystem from the legacy MMAL API to the libcamera stack. The MMAL API still works through a compatibility layer, but newer capabilities such as HDR, RAW capture, and improved frame rates are only exposed through libcamera.
My constraint is a codebase that initializes and controls the camera exclusively through MMAL. I need to decide whether to keep it on the compatibility layer or invest in porting the initialization and control flow to libcamera. The uncertainty is that no definitive end-of-life date for MMAL or its compatibility layer has been announced, so I cannot judge the maintenance risk of staying put. Benchmarks I have seen suggest basic preview frame rates are comparable between the two stacks, so performance alone does not settle the decision.
Is there any documented commitment or roadmap regarding how long the MMAL compatibility layer will be maintained on Bullseye and later releases?
For applications that only need basic preview and still capture, are there known functional gaps when running MMAL through the compatibility layer versus native libcamera?
Should new camera-dependent projects targeting Bullseye be started on libcamera only, or is a dual-stack approach considered reasonable?