diff options
-rw-r--r-- | include/libcamera/internal/formats.h | 13 | ||||
-rw-r--r-- | src/libcamera/formats.cpp | 38 |
2 files changed, 25 insertions, 26 deletions
diff --git a/include/libcamera/internal/formats.h b/include/libcamera/internal/formats.h index 51a8a6b8..a07de6bc 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 603d8861..1e5c8a0c 100644 --- a/src/libcamera/formats.cpp +++ b/src/libcamera/formats.cpp @@ -24,22 +24,6 @@ namespace libcamera { LOG_DEFINE_CATEGORY(Formats) /** - * \class PixelFormatPlaneInfo - * \brief Information about a single plane of a pixel format - * - * \var PixelFormatPlaneInfo::bytesPerGroup - * \brief The number of bytes that a pixel group consumes - * - * \sa PixelFormatInfo::pixelsPerGroup - * - * \var PixelFormatPlaneInfo::verticalSubSampling - * \brief Vertical subsampling multiplier - * - * This value is the ratio between the number of rows of pixels in the frame - * to the number of rows of pixels in the plane. - */ - -/** * \class PixelFormatInfo * \brief Information about pixel formats * @@ -87,7 +71,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 +106,7 @@ LOG_DEFINE_CATEGORY(Formats) * \var PixelFormatInfo::planes * \brief Information about pixels for each plane * - * \sa PixelFormatPlaneInfo + * \sa PixelFormatInfo::Plane */ /** @@ -139,6 +123,22 @@ LOG_DEFINE_CATEGORY(Formats) * \brief RAW colour encoding */ +/** + * \struct PixelFormatInfo::Plane + * \brief Information about a single plane of a pixel format + * + * \var PixelFormatInfo::Plane::bytesPerGroup + * \brief The number of bytes that a pixel group consumes + * + * \sa PixelFormatInfo::pixelsPerGroup + * + * \var PixelFormatInfo::Plane::verticalSubSampling + * \brief Vertical subsampling multiplier + * + * This value is the ratio between the number of rows of pixels in the frame + * to the number of rows of pixels in the plane. + */ + namespace { const PixelFormatInfo pixelFormatInfoInvalid{}; @@ -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; |