[libcamera-devel] [PATCH 1/2] utils: gen-formats: Support big-endian DRM formats

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Jan 31 19:43:51 CET 2021


DRM 4CCs are defined in little-endian, and can be declined in a
big-endian version by setting bit 31 (DRM_FORMAT_BIG_ENDIAN) in the 4CC
value.

Add support for such formats in the gen-formats.py script.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 utils/gen-formats.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/utils/gen-formats.py b/utils/gen-formats.py
index 60dcecc345d5..da79a8bbba3a 100755
--- a/utils/gen-formats.py
+++ b/utils/gen-formats.py
@@ -59,10 +59,13 @@ def generate_h(formats, drm_fourcc):
 
     for format in formats:
         name, format = format.popitem()
+        fourcc = drm_fourcc.fourcc(format['fourcc'])
+        if format.get('big-endian'):
+            fourcc += '| DRM_FORMAT_BIG_ENDIAN'
 
         data = {
             'name': name,
-            'fourcc': drm_fourcc.fourcc(format['fourcc']),
+            'fourcc': fourcc,
             'mod': '0, 0',
         }
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list