Details
-
Task
-
Resolution: Fixed
-
P2: Important
-
5.9.5, 5.10.1, 5.11.0
-
None
Description
When starting a QCamera with QAbstractVideoSurface as a Viewfinder, the surface always receives frames in RGB32 format, regardless what is requested by ViewfinderSettings.
So even if provided surface supports some other pixel formats (e.g. YUYV or NV12) and camera can provide them, Qt always does the conversion to RGB32, using DirectShow automatic graph connections on Windows (or just fails to start camera, if there is no supported DS filter).
Such behavior also causes significant CPU usage, because DirectShow does YUYV->GRB or Jpeg->RGB conversion on CPU by default.
Client application could get a great (performance) benefit, if QCamera could provide unchanged frames to the surface, e.g. implement its own efficient GPU renderer or a video encoder.