[PATCH v3 06/16] libcamera: software_isp: Add SwStatsCpu class

Barnabás Pőcze pobrn at protonmail.com
Tue Feb 27 17:23:46 CET 2024


Hi


2024. február 27., kedd 14:07 keltezéssel, Hans de Goede <hdegoede at redhat.com> írta:

> [...]
> >> +/**
> >> + * \brief Configure the statistics object for the passed in input format.
> >> + * \param[in] inputCfg The input format
> >> + *
> >> + * \return 0 on success, a negative errno value on failure
> >> + */
> >> +int SwStatsCpu::configure(const StreamConfiguration &inputCfg)
> >> +{
> >> +	BayerFormat bayerFormat =
> >> +		BayerFormat::fromPixelFormat(inputCfg.pixelFormat);
> >> +
> >> +	if (bayerFormat.bitDepth == 10 &&
> >> +	    bayerFormat.packing == BayerFormat::Packing::CSI2) {
> >> +		patternSize_.height = 2;
> >> +		patternSize_.width = 4; /* 5 bytes per *4* pixels */
> >> +		/* Skip every 3th and 4th line, sample every other 2x2 block */
> >> +		ySkipMask_ = 0x02;
> >> +		xShift_ = 0;
> >> +
> >> +		switch (bayerFormat.order) {
> >> +		case BayerFormat::BGGR:
> >> +		case BayerFormat::GRBG:
> >> +			stats0_ = (SwStatsCpu::statsProcessFn)&SwStatsCpu::statsBGGR10PLine0;
> >                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > Isn't the type cast superfluous?  (The same below.)
> 
> You would think so but gcc enforces this for c++ when assigning
> function pointers. I tried removing the cast when reworking
> Andrey's original code and gcc gave an error without the cast.
> [...]

Is the code in this patchset different from what's on gitlab? Because I tested
the SoftwareISP-v06{,-ynk,-pdm} branches from https://gitlab.freedesktop.org/camera/libcamera-softisp
and they all seemed to compile without the cast.

I think the reason why it was needed is because in the previous version inheritance
was used (SwStatsCpu -> SwStats), i.e. you cast a "pointer-to-member-function of derived"
to "pointer-to-member-function of base". But now there is no inheritance, so the
implicit conversion should work.


Regards,
Barnabás Pőcze


More information about the libcamera-devel mailing list