[libcamera-devel] [PATCH v2 08/13] py: cam_kms: support multiplanar formats
Kieran Bingham
kieran.bingham at ideasonboard.com
Tue May 17 18:53:42 CEST 2022
Quoting Tomi Valkeinen (2022-05-17 15:33:20)
> Support multiplanar formats in the kms renderer. Tested with RPi and
> NV12.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> src/py/cam/cam_kms.py | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/src/py/cam/cam_kms.py b/src/py/cam/cam_kms.py
> index ae6be277..f1844717 100644
> --- a/src/py/cam/cam_kms.py
> +++ b/src/py/cam/cam_kms.py
> @@ -10,6 +10,7 @@ FMT_MAP = {
> 'YUYV': pykms.PixelFormat.YUYV,
> 'ARGB8888': pykms.PixelFormat.ARGB8888,
> 'XRGB8888': pykms.PixelFormat.XRGB8888,
> + 'NV12': pykms.PixelFormat.NV12,
> }
>
>
> @@ -133,10 +134,16 @@ class KMSRenderer:
>
> for fb in ctx['allocator'].buffers(stream):
> w, h = cfg.size
> - stride = cfg.stride
> - fd = fb.fd(0)
> + fds = []
> + strides = []
> + offsets = []
> + for i in range(fb.num_planes):
> + fds.append(fb.fd(i))
> + strides.append(cfg.stride)
> + offsets.append(fb.offset(i))
> +
> drmfb = pykms.DmabufFramebuffer(self.card, w, h, fmt,
> - [fd], [stride], [0])
> + fds, strides, offsets)
> self.cam_2_drm[fb] = drmfb
>
> idx += 1
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list