[libcamera-devel] [PATCH 1/6] ipa: raspberrypi: Non-functional formatting fixes to md_parser.hpp
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Jun 15 04:35:40 CEST 2021
On Mon, Jun 14, 2021 at 10:53:35AM +0100, Naushir Patuck wrote:
> Adjust source formatting to closer match libcamera guidelines:
>
> - Remove unused header files.
> - Switch to C style comments.
> - Add whitespace for readability.
>
> There are no functional changes in this commit.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/ipa/raspberrypi/md_parser.hpp | 144 ++++++++++++++++++------------
> 1 file changed, 85 insertions(+), 59 deletions(-)
>
> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp
> index 8e22b1d7ca43..86e0577614e0 100644
> --- a/src/ipa/raspberrypi/md_parser.hpp
> +++ b/src/ipa/raspberrypi/md_parser.hpp
> @@ -6,75 +6,94 @@
> */
> #pragma once
>
> -#include <stdint.h>
> -
> #include <libcamera/span.h>
>
> /* Camera metadata parser class. Usage as shown below.
This should be
/*
* Camera metadata parser class. Usage as shown below.
I'll fix when applying.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> -
> -Setup:
> -
> -Usually the metadata parser will be made as part of the CamHelper class so
> -application code doesn't have to worry which to kind to instantiate. But for
> -the sake of example let's suppose we're parsing imx219 metadata.
> -
> -MdParser *parser = new MdParserImx219(); // for example
> -parser->SetBitsPerPixel(bpp);
> -parser->SetLineLengthBytes(pitch);
> -parser->SetNumLines(2);
> -
> -Note 1: if you don't know how many lines there are, the size of the input
> -buffer is used as a limit instead.
> -
> -Note 2: if you don't know the line length, you can leave the line length unset
> -(or set to zero) and the parser will hunt for the line start instead.
> -
> -Then on every frame:
> -
> -if (parser->Parse(buffer) != MdParser::OK)
> - much badness;
> -unsigned int exposure_lines, gain_code
> -if (parser->GetExposureLines(exposure_lines) != MdParser::OK)
> - exposure was not found;
> -if (parser->GetGainCode(parser, gain_code) != MdParser::OK)
> - gain code was not found;
> -
> -(Note that the CamHelper class converts to/from exposure lines and time,
> -and gain_code / actual gain.)
> -
> -If you suspect your embedded data may have changed its layout, change any line
> -lengths, number of lines, bits per pixel etc. that are different, and
> -then:
> -
> -parser->Reset();
> -
> -before calling Parse again. */
> + *
> + * Setup:
> + *
> + * Usually the metadata parser will be made as part of the CamHelper class so
> + * application code doesn't have to worry which to kind to instantiate. But for
> + * the sake of example let's suppose we're parsing imx219 metadata.
> + *
> + * MdParser *parser = new MdParserImx219(); // for example
> + * parser->SetBitsPerPixel(bpp);
> + * parser->SetLineLengthBytes(pitch);
> + * parser->SetNumLines(2);
> + *
> + * Note 1: if you don't know how many lines there are, the size of the input
> + * buffer is used as a limit instead.
> + *
> + * Note 2: if you don't know the line length, you can leave the line length unset
> + * (or set to zero) and the parser will hunt for the line start instead.
> + *
> + * Then on every frame:
> + *
> + * if (parser->Parse(buffer) != MdParser::OK)
> + * much badness;
> + * unsigned int exposure_lines, gain_code
> + * if (parser->GetExposureLines(exposure_lines) != MdParser::OK)
> + * exposure was not found;
> + * if (parser->GetGainCode(parser, gain_code) != MdParser::OK)
> + * gain code was not found;
> + *
> + * (Note that the CamHelper class converts to/from exposure lines and time,
> + * and gain_code / actual gain.)
> + *
> + * If you suspect your embedded data may have changed its layout, change any line
> + * lengths, number of lines, bits per pixel etc. that are different, and
> + * then:
> + *
> + * parser->Reset();
> + *
> + * before calling Parse again.
> + */
>
> namespace RPiController {
>
> -// Abstract base class from which other metadata parsers are derived.
> +/* Abstract base class from which other metadata parsers are derived. */
>
> class MdParser
> {
> public:
> - // Parser status codes:
> - // OK - success
> - // NOTFOUND - value such as exposure or gain was not found
> - // ERROR - all other errors
> + /*
> + * Parser status codes:
> + * OK - success
> + * NOTFOUND - value such as exposure or gain was not found
> + * ERROR - all other errors
> + */
> enum Status {
> OK = 0,
> NOTFOUND = 1,
> ERROR = 2
> };
> - MdParser() : reset_(true) {}
> +
> + MdParser() : reset_(true)
> + {
> + }
> +
> virtual ~MdParser() = default;
> - void Reset() { reset_ = true; }
> - void SetBitsPerPixel(int bpp) { bits_per_pixel_ = bpp; }
> - void SetNumLines(unsigned int num_lines) { num_lines_ = num_lines; }
> +
> + void Reset()
> + {
> + reset_ = true;
> + }
> +
> + void SetBitsPerPixel(int bpp)
> + {
> + bits_per_pixel_ = bpp;
> + }
> +
> + void SetNumLines(unsigned int num_lines)
> + {
> + num_lines_ = num_lines;
> + }
> +
> void SetLineLengthBytes(unsigned int num_bytes)
> {
> line_length_bytes_ = num_bytes;
> }
> +
> virtual Status Parse(libcamera::Span<const uint8_t> buffer) = 0;
> virtual Status GetExposureLines(unsigned int &lines) = 0;
> virtual Status GetGainCode(unsigned int &gain_code) = 0;
> @@ -87,22 +106,28 @@ protected:
> unsigned int buffer_size_bytes_;
> };
>
> -// This isn't a full implementation of a metadata parser for SMIA sensors,
> -// however, it does provide the findRegs method which will prove useful and make
> -// it easier to implement parsers for other SMIA-like sensors (see
> -// md_parser_imx219.cpp for an example).
> +/*
> + * This isn't a full implementation of a metadata parser for SMIA sensors,
> + * however, it does provide the findRegs method which will prove useful and make
> + * it easier to implement parsers for other SMIA-like sensors (see
> + * md_parser_imx219.cpp for an example).
> + */
>
> class MdParserSmia : public MdParser
> {
> public:
> - MdParserSmia() : MdParser() {}
> + MdParserSmia() : MdParser()
> + {
> + }
>
> protected:
> - // Note that error codes > 0 are regarded as non-fatal; codes < 0
> - // indicate a bad data buffer. Status codes are:
> - // PARSE_OK - found all registers, much happiness
> - // MISSING_REGS - some registers found; should this be a hard error?
> - // The remaining codes are all hard errors.
> + /*
> + * Note that error codes > 0 are regarded as non-fatal; codes < 0
> + * indicate a bad data buffer. Status codes are:
> + * PARSE_OK - found all registers, much happiness
> + * MISSING_REGS - some registers found; should this be a hard error?
> + * The remaining codes are all hard errors.
> + */
> enum ParseStatus {
> PARSE_OK = 0,
> MISSING_REGS = 1,
> @@ -112,6 +137,7 @@ protected:
> BAD_LINE_END = -4,
> BAD_PADDING = -5
> };
> +
> ParseStatus findRegs(libcamera::Span<const uint8_t> buffer, uint32_t regs[],
> int offsets[], unsigned int num_regs);
> };
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list