[PATCH 10/19] libcamera: software_isp: Call Algorithm::process
Milan Zamazal
mzamazal at redhat.com
Wed Jul 3 19:05:16 CEST 2024
Hi Umang,
thank you for review.
Umang Jain <umang.jain at ideasonboard.com> writes:
> Hi Milan
>
> On 26/06/24 12:50 pm, Milan Zamazal wrote:
>> This patch adds Algorithm::process call for the defined algorithms.
>> This is preparation only since there are currently no Algorithm based
>> algorithms defined.
>>
>> As software ISP currently doesn't produce any metadata, a dummy and
>> unused metadata instance is created to satisfy Algorithm::process API.
>> This should be changed in future.
>>
>> Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
>> ---
>> src/ipa/simple/soft_simple.cpp | 13 ++++++++++++-
>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp
>> index 6ddb4004..c0cb6769 100644
>> --- a/src/ipa/simple/soft_simple.cpp
>> +++ b/src/ipa/simple/soft_simple.cpp
>> @@ -265,10 +265,21 @@ void IPASoftSimple::stop()
>> }
>> void IPASoftSimple::processStats(
>> - [[maybe_unused]] const uint32_t frame,
>> + const uint32_t frame,
>> [[maybe_unused]] const uint32_t bufferId,
>> const ControlList &sensorControls)
>> {
>> + IPAFrameContext &frameContext = context_.frameContexts.get(frame);
>
> I was trying to infer from the previous patches where the frameContexts were
> allocated per frame.. only to find out it is done in later patch 12/19.
>
> the Algorithms::* patches ideally would be arranged in the order of their logical
> calling sequencing ... but it's not the end of the world. :)
I thought arranging them from simpler to more complicated might be
easier but since it's actually more confusing, I'll change the order.
> So far looks good to me.
>
>> + /*
>> + * \todo Software ISP currently doesn't produce any metadata so it is
>> + * possible to use a dummy metadata instance here. But metadata should be
>> + * properly handled in future.
>> + */
>> + ControlList metadata(controls::controls);
>> + for (auto const &algo : algorithms()) {
>> + algo->process(context_, frame, frameContext, stats_, metadata);
>> + }
>> +
>> SwIspStats::Histogram histogram = stats_->yHistogram;
>> if (ignoreUpdates_ > 0)
>> blackLevel_.update(histogram);
More information about the libcamera-devel
mailing list