[libcamera-devel,00/10] libcamera: Use DRM_FORMAT_* fourcc codes
mbox series

Message ID 20191027234312.35284-1-jacopo@jmondi.org
Headers show
Series
  • libcamera: Use DRM_FORMAT_* fourcc codes
Related show

Message

Jacopo Mondi Oct. 27, 2019, 11:43 p.m. UTC
Hello,
   this series moves libcamera to use the DRM/KMS defined DRM_FORMAT_*
fourcc codes towards applications.

The series starts by updating the kernel headers to v5.2 and importing the
DRM/KMS required headers.

It then introduces a PixelFormat type that aliases an uint32_t, which is used in
all application facing types. The numerical fourcc codes used for PixelFormat
are the DRM/KMS defined DRM_FORMAT_* fourcc codes.

Helpers for conversion to/from PixelFormat and V4L2_PIX_FMT_* are provided in
the V4L2 video device and used in all pipeline handlers. Finally the test
application and QCam are ported to use te DRM/KMS defined pixel codes.

Thanks Laurent for having looked at the series and fixed the nasty DRM/V4L2 RBG
format conversion issues.

Thanks
   j

Jacopo Mondi (9):
  include: linux: Update headers to Linux v5.2
  include: linux: Import DRM/KMS headers from Linux v5.2
  include: drm_fourcc: Add Motion-JPEG fourcc code
  libcamera: Define PixelFormat type
  libcamera: stream: Use the newly defined PixelFormat
  libcamera: v4l2_videodevice: Add PixelFormat conversion
  libcamera: pipeline: Use PixelFormat for application formats
  qcam: Convert to use DRM formats
  test: camera: buffer_import: Use DRM/KMS format

Laurent Pinchart (1):
  libcamera: formats: Write libcamera in lowercase

 include/libcamera/meson.build            |    1 +
 include/libcamera/pixelformats.h         |   18 +
 include/libcamera/stream.h               |   13 +-
 include/linux/drm.h                      | 1042 ++++++++++++++++++++++
 include/linux/drm_fourcc.h               |  765 ++++++++++++++++
 include/linux/drm_mode.h                 | 1032 +++++++++++++++++++++
 include/linux/media-bus-format.h         |    4 +-
 include/linux/media.h                    |   27 +-
 include/linux/v4l2-controls.h            |   29 +
 include/linux/videodev2.h                |   31 +-
 src/libcamera/formats.cpp                |    2 +-
 src/libcamera/include/formats.h          |    2 +-
 src/libcamera/include/v4l2_videodevice.h |    5 +
 src/libcamera/meson.build                |    1 +
 src/libcamera/pipeline/ipu3/ipu3.cpp     |    7 +-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp |   25 +-
 src/libcamera/pipeline/uvcvideo.cpp      |    4 +-
 src/libcamera/pipeline/vimc.cpp          |   15 +-
 src/libcamera/pixelformats.cpp           |   28 +
 src/libcamera/stream.cpp                 |   17 +-
 src/libcamera/v4l2_videodevice.cpp       |  141 +++
 src/qcam/format_converter.cpp            |   30 +-
 test/camera/buffer_import.cpp            |    4 +-
 23 files changed, 3170 insertions(+), 73 deletions(-)
 create mode 100644 include/libcamera/pixelformats.h
 create mode 100644 include/linux/drm.h
 create mode 100644 include/linux/drm_fourcc.h
 create mode 100644 include/linux/drm_mode.h
 create mode 100644 src/libcamera/pixelformats.cpp

--
2.23.0

Comments

Laurent Pinchart Oct. 27, 2019, 11:50 p.m. UTC | #1
Hi Jacopo,

Thank you for the patches.

On Mon, Oct 28, 2019 at 12:43:02AM +0100, Jacopo Mondi wrote:
> Hello,
>    this series moves libcamera to use the DRM/KMS defined DRM_FORMAT_*
> fourcc codes towards applications.
> 
> The series starts by updating the kernel headers to v5.2 and importing the
> DRM/KMS required headers.
> 
> It then introduces a PixelFormat type that aliases an uint32_t, which is used in
> all application facing types. The numerical fourcc codes used for PixelFormat
> are the DRM/KMS defined DRM_FORMAT_* fourcc codes.
> 
> Helpers for conversion to/from PixelFormat and V4L2_PIX_FMT_* are provided in
> the V4L2 video device and used in all pipeline handlers. Finally the test
> application and QCam are ported to use te DRM/KMS defined pixel codes.
> 
> Thanks Laurent for having looked at the series and fixed the nasty DRM/V4L2 RBG
> format conversion issues.

You're welcome.

For the whole series,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Jacopo Mondi (9):
>   include: linux: Update headers to Linux v5.2
>   include: linux: Import DRM/KMS headers from Linux v5.2
>   include: drm_fourcc: Add Motion-JPEG fourcc code
>   libcamera: Define PixelFormat type
>   libcamera: stream: Use the newly defined PixelFormat
>   libcamera: v4l2_videodevice: Add PixelFormat conversion
>   libcamera: pipeline: Use PixelFormat for application formats
>   qcam: Convert to use DRM formats
>   test: camera: buffer_import: Use DRM/KMS format
> 
> Laurent Pinchart (1):
>   libcamera: formats: Write libcamera in lowercase
> 
>  include/libcamera/meson.build            |    1 +
>  include/libcamera/pixelformats.h         |   18 +
>  include/libcamera/stream.h               |   13 +-
>  include/linux/drm.h                      | 1042 ++++++++++++++++++++++
>  include/linux/drm_fourcc.h               |  765 ++++++++++++++++
>  include/linux/drm_mode.h                 | 1032 +++++++++++++++++++++
>  include/linux/media-bus-format.h         |    4 +-
>  include/linux/media.h                    |   27 +-
>  include/linux/v4l2-controls.h            |   29 +
>  include/linux/videodev2.h                |   31 +-
>  src/libcamera/formats.cpp                |    2 +-
>  src/libcamera/include/formats.h          |    2 +-
>  src/libcamera/include/v4l2_videodevice.h |    5 +
>  src/libcamera/meson.build                |    1 +
>  src/libcamera/pipeline/ipu3/ipu3.cpp     |    7 +-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp |   25 +-
>  src/libcamera/pipeline/uvcvideo.cpp      |    4 +-
>  src/libcamera/pipeline/vimc.cpp          |   15 +-
>  src/libcamera/pixelformats.cpp           |   28 +
>  src/libcamera/stream.cpp                 |   17 +-
>  src/libcamera/v4l2_videodevice.cpp       |  141 +++
>  src/qcam/format_converter.cpp            |   30 +-
>  test/camera/buffer_import.cpp            |    4 +-
>  23 files changed, 3170 insertions(+), 73 deletions(-)
>  create mode 100644 include/libcamera/pixelformats.h
>  create mode 100644 include/linux/drm.h
>  create mode 100644 include/linux/drm_fourcc.h
>  create mode 100644 include/linux/drm_mode.h
>  create mode 100644 src/libcamera/pixelformats.cpp
>