summaryrefslogtreecommitdiff
path: root/src/ipa
AgeCommit message (Expand)Author
2024-04-16libcamera: ipa: Add Soft IPAAndrey Konovalov
2024-03-06ipa: rpi: cam_helper: Extend embedded data parsing to RAW14 modesNick Hollinghurst
2024-02-27libcamera: Use utils::to_underlying()Laurent Pinchart
2024-02-23ipa: rkisp1: Support the i.MX8MP ISP versionPaul Elder
2024-02-23ipa: rkisp1: Fix histogram weights configurationLaurent Pinchart
2024-02-23ipa: rkisp1: Store hardware parameters in IPA contextLaurent Pinchart
2024-02-23ipa: rkisp1: agc: Wrap variable length C arrays in spansLaurent Pinchart
2024-01-12libipa: camera_sensor_helper: Mark createInstance() with overrideLaurent Pinchart
2024-01-09ipa: rpi: vc4: data: Update tuning files for HDRDavid Plowman
2024-01-09ipa: rpi: Implement HDR controlDavid Plowman
2024-01-09ipa: rpi: vc4: Add OV64A40 tuning filesLee Jackson
2024-01-09libipa: camera_sensor_helper: Add OV64A40 helperJacopo Mondi
2024-01-09ipa: rpi: Provide a Camera Helper for the OV64A40Jacopo Mondi
2024-01-09ipa: vc4: Implement the StatsOutputEnable vendor controlNaushir Patuck
2024-01-09ipa: rpi: awb: Add an initialValues methodDavid Plowman
2024-01-09ipa: rpi: black_level: Add an initialValues methodDavid Plowman
2024-01-09ipa: rpi: Allow the mean of an empty histogram intervalNick Hollinghurst
2024-01-05ipa: rpi: Add hardware line rate constraintsNaushir Patuck
2023-12-07meson: Tag all installed filesLaurent Pinchart
2023-11-30ipa: rpi: cac: Minor code improvements and tidyingDavid Plowman
2023-11-30ipa: rpi: agc: Fix bug where AeLocked was never getting setDavid Plowman
2023-11-30libcamera: controls: Use vendor tags for draft controls and propertiesNaushir Patuck
2023-11-22ipa: rpi: alsc: Do not allow zero colour ratio statisticsDavid Plowman
2023-10-24ipa: rpi: agc: Make AGC controls affect all channelsDavid Plowman
2023-10-24ipa: rpi: agc: Fetch AWB status in the prepare methodDavid Plowman
2023-10-24ipa: rpi: vc4: Move denoise control handling into the VC4 derived IPANaushir Patuck
2023-10-24ipa: rpi: agc: Allow AGC channels to avoid using "fast desaturation"David Plowman
2023-10-24ipa: rpi: alsc: Do not re-read the alsc.status metadataDavid Plowman
2023-10-24ipa: rpi: hdr: Add the ability to alter the LSC tableDavid Plowman
2023-10-18ipa: rpi: agc: When AGC channels are changed, start with the 1st channelNaushir Patuck
2023-10-18ipa: rpi: agc: Avoid overwriting caller's statistics pointerDavid Plowman
2023-10-18ipa: rpi: denoise: Support different denoise configurationsDavid Plowman
2023-10-18ipa: rpi: contrast: Allow adaptive contrast enhancement to be disabledDavid Plowman
2023-10-18ipa: rpi: agc: Add an AGC stable regionDavid Plowman
2023-10-18ipa: rpi: Add new algorithms for PiSPNaushir Patuck
2023-10-18ipa: rpi: Prepare AWB for PiSP supportNaushir Patuck
2023-10-18ipa: rpi: Prepare ALSC for PiSP supportNaushir Patuck
2023-10-18ipa: rpi: Add PiSP definitions to the Controller hardware descriptionNaushir Patuck
2023-10-18ipa: rpi: Add statsInline to the Controller hardware descriptionNaushir Patuck
2023-10-18ipa: rpi: Add try_lock() to RPiController::MetadataNaushir Patuck
2023-10-18mojom: pipeline: ipa: rpi: Add fields for PiSP objectsNaushir Patuck
2023-10-18ipa: rpi: Add IpaBase::platformStart() member functionNaushir Patuck
2023-10-05ipa: rpi: Avoid skipping IPAs on the first frame after the drop framesDavid Plowman
2023-09-25pipeline: rpi: Reset the frame lengths queue during configureNaushir Patuck
2023-09-25ipa: rpi: Fix frame count logic when running algorithmsNaushir Patuck
2023-09-16ipa: rpi: Fix segfault when parsing invalid json fileNaushir Patuck
2023-09-16ipa: rpi: agc: Use channel constraints in the AGC algorithmDavid Plowman
2023-09-16ipa: rpi: agc: Add AgcChannelConstraint classDavid Plowman
2023-09-16ipa: rpi: agc: Implementation of multi-channel AGCDavid Plowman
2023-09-16ipa: rpi: agc: Reorganise code for multi-channel AGCDavid Plowman
ned int reg_num = 0, regs_done = 0; while (1) { int tag = buffer[current_offset++]; if ((bits_per_pixel_ == 10 && (current_offset + 1 - current_line_start) % 5 == 0) || (bits_per_pixel_ == 12 && (current_offset + 1 - current_line_start) % 3 == 0)) { if (buffer[current_offset++] != REG_SKIP) return BAD_DUMMY; } int data_byte = buffer[current_offset++]; 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). */ if (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" */ while (current_offset < buffer.size() && buffer[current_offset] != LINE_START) current_offset++; if (current_offset == buffer.size()) return NO_LINE_START; } /* 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); else if (tag == REG_LOW_BITS) reg_num = (reg_num & 0xff00) | data_byte; else if (tag == REG_SKIP) reg_num++; else if (tag == REG_VALUE) { auto reg = offsets_.find(reg_num); if (reg != offsets_.end()) { offsets_[reg_num] = current_offset - 1; if (++regs_done == offsets_.size()) return PARSE_OK; } reg_num++; } else return ILLEGAL_TAG; } } }