Conversation
DRM XR24 stores bytes as B,G,R,X in memory but was wrongly mapped to the PiSP XRGB8888 format which places the padding byte first. Map XR24 and BGRx to RGBX8888 instead. Add a require_rb_swap() helper so the R/B swap CSC is only programmed for formats whose memory layout stores B,G,R (XR24, RG24 and BGRx), rather than unconditionally for all RGB outputs. Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
The BGR file output existed to match the pispconvert element's unconditionally swapped RGB output, which has now been fixed. This also makes the trailing videoconvert stage a passthrough, so remove it. Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
|
Just to check I have understood everything...
So we require an extra flag to show that an output is R/B swapped, i.e. that R is not the first component. The change seems to be good but leaves two outstanding questions:
|
I assumed the "order swap" bit would do the trick, but it turns out this is wrong. libcamera also has this problem so both will need fixing soon!
RGB inputs have not been tested for the GST component. There is a test for the standalone convert tool, and curiously there's an explicit "skip_gst" flag set on it... |
Ah, that's because the test uses a non-default stride value, which cannot be expressed in the GST pipeline cmd line. |
No description provided.