[libcamera-devel] [PATCH 4/6] ipa: raspberrypi: Non-functional formatting fixes to md_parser_smia.cpp
David Plowman
david.plowman at raspberrypi.com
Mon Jun 14 18:55:20 CEST 2021
Hi Naush
Thanks for this patch.
On Mon, 14 Jun 2021 at 10:53, Naushir Patuck <naush at raspberrypi.com> wrote:
>
> Adjust source formatting to closer match libcamera guidelines:
>
> - Switch to C style comments.
> - Adjust whitespace for readability.
> - Remove retcode local variable usage.
>
> There are no functional changes in this commit.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
All looks good to me! If we did decide to get rid of the whole line
length thing, I think that would be a separate commit anyway.
Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
Thanks
David
> ---
> src/ipa/raspberrypi/md_parser_smia.cpp | 70 ++++++++++++++------------
> 1 file changed, 38 insertions(+), 32 deletions(-)
>
> diff --git a/src/ipa/raspberrypi/md_parser_smia.cpp b/src/ipa/raspberrypi/md_parser_smia.cpp
> index 852a1d347d11..65ffbe00c76e 100644
> --- a/src/ipa/raspberrypi/md_parser_smia.cpp
> +++ b/src/ipa/raspberrypi/md_parser_smia.cpp
> @@ -1,31 +1,32 @@
> /* SPDX-License-Identifier: BSD-2-Clause */
> /*
> - * Copyright (C) 2019, Raspberry Pi (Trading) Limited
> + * Copyright (C) 2019-2021, Raspberry Pi (Trading) Limited
> *
> - * md_parser.cpp - image sensor metadata parsers
> + * md_parser_smia.cpp - SMIA specification based embedded data parser
> */
> -
> #include <assert.h>
> #include <map>
> -#include <string.h>
> +#include <string>
>
> #include "md_parser.hpp"
>
> using namespace RPiController;
>
> -// This function goes through the embedded data to find the offsets (not
> -// values!), in the data block, where the values of the given registers can
> -// subsequently be found.
> -
> -// Embedded data tag bytes, from Sony IMX219 datasheet but general to all SMIA
> -// sensors, I think.
> +/*
> + * This function goes through the embedded data to find the offsets (not
> + * values!), in the data block, where the values of the given registers can
> + * subsequently be found.
> + *
> + * Embedded data tag bytes, from Sony IMX219 datasheet but general to all SMIA
> + * sensors, I think.
> + */
>
> -#define LINE_START 0x0a
> -#define LINE_END_TAG 0x07
> -#define REG_HI_BITS 0xaa
> -#define REG_LOW_BITS 0xa5
> -#define REG_VALUE 0x5a
> -#define REG_SKIP 0x55
> +constexpr unsigned int LINE_START = 0x0a;
> +constexpr unsigned int LINE_END_TAG = 0x07;
> +constexpr unsigned int REG_HI_BITS = 0xaa;
> +constexpr unsigned int REG_LOW_BITS = 0xa5;
> +constexpr unsigned int REG_VALUE = 0x5a;
> +constexpr unsigned int REG_SKIP = 0x55;
>
> MdParserSmia::ParseStatus MdParserSmia::findRegs(libcamera::Span<const uint8_t> buffer,
> uint32_t regs[], int offsets[],
> @@ -36,12 +37,13 @@ MdParserSmia::ParseStatus MdParserSmia::findRegs(libcamera::Span<const uint8_t>
> if (buffer[0] != LINE_START)
> return NO_LINE_START;
>
> - unsigned int current_offset = 1; // after the LINE_START
> + unsigned int current_offset = 1; /* after the LINE_START */
> unsigned int current_line_start = 0, current_line = 0;
> unsigned int reg_num = 0, first_reg = 0;
> - ParseStatus retcode = PARSE_OK;
> +
> while (1) {
> int tag = buffer[current_offset++];
> +
> if ((bits_per_pixel_ == 10 &&
> (current_offset + 1 - current_line_start) % 5 == 0) ||
> (bits_per_pixel_ == 12 &&
> @@ -49,34 +51,38 @@ MdParserSmia::ParseStatus MdParserSmia::findRegs(libcamera::Span<const uint8_t>
> if (buffer[current_offset++] != REG_SKIP)
> return BAD_DUMMY;
> }
> +
> int data_byte = buffer[current_offset++];
> - //printf("Offset %u, tag 0x%02x data_byte 0x%02x\n", current_offset-1, tag, data_byte);
> +
> if (tag == LINE_END_TAG) {
> if (data_byte != LINE_END_TAG)
> return BAD_LINE_END;
> +
> if (num_lines_ && ++current_line == num_lines_)
> return MISSING_REGS;
> +
> if (line_length_bytes_) {
> - current_offset =
> - current_line_start + line_length_bytes_;
> - // Require whole line to be in the buffer (if buffer size set).
> + current_offset = current_line_start + line_length_bytes_;
> +
> + /* Require whole line to be in the buffer (if buffer size set). */
> if (buffer.size() &&
> - current_offset + line_length_bytes_ >
> - buffer.size())
> + current_offset + line_length_bytes_ > buffer.size())
> return MISSING_REGS;
> +
> if (buffer[current_offset] != LINE_START)
> return NO_LINE_START;
> } else {
> - // allow a zero line length to mean "hunt for the next line"
> + /* allow a zero line length to mean "hunt for the next line" */
> while (buffer[current_offset] != LINE_START &&
> current_offset < buffer.size())
> current_offset++;
> +
> if (current_offset == buffer.size())
> return NO_LINE_START;
> }
> - // inc current_offset to after LINE_START
> - current_line_start =
> - current_offset++;
> +
> + /* inc current_offset to after LINE_START */
> + current_line_start = current_offset++;
> } else {
> if (tag == REG_HI_BITS)
> reg_num = (reg_num & 0xff) | (data_byte << 8);
> @@ -86,13 +92,13 @@ MdParserSmia::ParseStatus MdParserSmia::findRegs(libcamera::Span<const uint8_t>
> reg_num++;
> else if (tag == REG_VALUE) {
> while (reg_num >=
> - // assumes registers are in order...
> + /* assumes registers are in order... */
> regs[first_reg]) {
> if (reg_num == regs[first_reg])
> - offsets[first_reg] =
> - current_offset - 1;
> + offsets[first_reg] = current_offset - 1;
> +
> if (++first_reg == num_regs)
> - return retcode;
> + return PARSE_OK;
> }
> reg_num++;
> } else
> --
> 2.25.1
>
More information about the libcamera-devel
mailing list