[libcamera-devel] [PATCH v2 05/27] libcamera: formats: Move plane info structure to PixelFormatInfo

Hirokazu Honda hiroh at chromium.org
Mon Sep 6 14:39:28 CEST 2021


Hi Laurent,

On Mon, Sep 6, 2021 at 2:45 PM Jean-Michel Hautbois
<jeanmichel.hautbois at ideasonboard.com> wrote:
>
> Hi Laurent,
>
> On 06/09/2021 04:00, Laurent Pinchart wrote:
> > Move the PixelFormatPlaneInfo structure within the PixelFormatInfo class
> > definition and rename it to Plane, to align the naming scheme with other
> > parts of libcamera, such as FrameBuffer::Plane or FrameMetadata::Plane.
> >
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>

Reviewed-by: Hirokazu Honda <hiroh at chromium.org>

> > ---
> >  include/libcamera/internal/formats.h | 13 ++++++-------
> >  src/libcamera/formats.cpp            | 12 ++++++------
> >  2 files changed, 12 insertions(+), 13 deletions(-)
> >
> > diff --git a/include/libcamera/internal/formats.h b/include/libcamera/internal/formats.h
> > index 51a8a6b8b0ae..a07de6bc6020 100644
> > --- a/include/libcamera/internal/formats.h
> > +++ b/include/libcamera/internal/formats.h
> > @@ -19,12 +19,6 @@
> >
> >  namespace libcamera {
> >
> > -struct PixelFormatPlaneInfo
> > -{
> > -     unsigned int bytesPerGroup;
> > -     unsigned int verticalSubSampling;
> > -};
> > -
> >  class PixelFormatInfo
> >  {
> >  public:
> > @@ -34,6 +28,11 @@ public:
> >               ColourEncodingRAW,
> >       };
> >
> > +     struct Plane {
> > +             unsigned int bytesPerGroup;
> > +             unsigned int verticalSubSampling;
> > +     };
> > +
> >       bool isValid() const { return format.isValid(); }
> >
> >       static const PixelFormatInfo &info(const PixelFormat &format);
> > @@ -58,7 +57,7 @@ public:
> >
> >       unsigned int pixelsPerGroup;
> >
> > -     std::array<PixelFormatPlaneInfo, 3> planes;
> > +     std::array<Plane, 3> planes;
> >  };
> >
> >  } /* namespace libcamera */
> > diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
> > index 603d88619fe0..c993960eb982 100644
> > --- a/src/libcamera/formats.cpp
> > +++ b/src/libcamera/formats.cpp
> > @@ -24,15 +24,15 @@ namespace libcamera {
> >  LOG_DEFINE_CATEGORY(Formats)
> >
> >  /**
> > - * \class PixelFormatPlaneInfo
> > + * \class PixelFormatInfo::Plane
> >   * \brief Information about a single plane of a pixel format
> >   *
> > - * \var PixelFormatPlaneInfo::bytesPerGroup
> > + * \var PixelFormatInfo::Plane::bytesPerGroup
> >   * \brief The number of bytes that a pixel group consumes
> >   *
> >   * \sa PixelFormatInfo::pixelsPerGroup
> >   *
> > - * \var PixelFormatPlaneInfo::verticalSubSampling
> > + * \var PixelFormatInfo::Plane::verticalSubSampling
> >   * \brief Vertical subsampling multiplier
> >   *
> >   * This value is the ratio between the number of rows of pixels in the frame
> > @@ -87,7 +87,7 @@ LOG_DEFINE_CATEGORY(Formats)
> >   *
> >   * A pixel group is defined as the minimum number of pixels (including padding)
> >   * necessary in a row when the image has only one column of effective pixels.
> > - * pixelsPerGroup refers to this value. PixelFormatPlaneInfo::bytesPerGroup,
> > + * pixelsPerGroup refers to this value. PixelFormatInfo::Plane::bytesPerGroup,
> >   * then, refers to the number of bytes that a pixel group consumes. This
> >   * definition of a pixel group allows simple calculation of stride, as
> >   * ceil(width / pixelsPerGroup) * bytesPerGroup. These values are determined
> > @@ -122,7 +122,7 @@ LOG_DEFINE_CATEGORY(Formats)
> >   * \var PixelFormatInfo::planes
> >   * \brief Information about pixels for each plane
> >   *
> > - * \sa PixelFormatPlaneInfo
> > + * \sa PixelFormatInfo::Plane
> >   */
> >
> >  /**
> > @@ -869,7 +869,7 @@ unsigned int PixelFormatInfo::numPlanes() const
> >  {
> >       unsigned int count = 0;
> >
> > -     for (const PixelFormatPlaneInfo &p : planes) {
> > +     for (const Plane &p : planes) {
> >               if (p.bytesPerGroup == 0)
> >                       break;
> >
> >


More information about the libcamera-devel mailing list