[RFC PATCH 0/1] Enable raw streams with software ISP
Milan Zamazal
mzamazal at redhat.com
Mon Nov 25 11:02:50 CET 2024
Hi Robert,
Robert Mader <robert.mader at collabora.com> writes:
> Hi, thanks for the patch!
>
> I gave this a quick try with Millipixels (https://source.puri.sm/Librem5/millipixels) which uses raw streams. It looks like the app will need manual
> adjustments to work with this patch - but that's kinda expected IIUC
> (Millipixels apparently doesn't request raw streams explicitly yet).
Thanks for testing.
> It looks like other API changes on master / in 0.4 will require manual
> changes to the app anyway, so that shouldn't be a big deal.
>
> Do I understand correctly that exposure and gain were never supported
> for raw streams yet?
I think so, I guess they were meant to be set externally, but I'm not
sure.
> Because in that case the patch here *is* already useful for
> Millipixels at it would allow it to co-exist with apps requiring swISP
> without requiring hacks like this:
> https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/temp/libcamera/0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch
>
> In other words: even without gain/exposure I'd be happy to have this in 0.4, especially if that allows us to enable the swISP on all platforms by
> default.
OK, let's see what we can reasonably do for 0.4.
> On 22.11.24 21:13, Milan Zamazal wrote:
>> This makes raw streams working again in ‘simple’ pipeline when software
>> ISP is enabled for the given device. For now, only a single raw stream
>> is supported and there are no immediate plans to change that unless
>> there is a request for more.
>>
>> An example ‘cam’ invocation requesting a raw stream rather than a debayered stream:
>>
>> cam -c1 -C8 -s role=raw,width=1920,height=1080 -Ffile#.raw
>>
>> See the commit message for more information about the patch.
>>
>> The patch is RFC because I’m not sure where it is placed on the scale
>> between a hack/PoC and a proper solution and because it’s not that
>> useful until a control for exposure/gain adjustments is implemented.
>>
>> In the meantime, fixed exposure+gain can be hardwired in
>> src/ipa/simple/soft_simple.cpp by changing the lines
>>
>> ctrls.set(V4L2_CID_EXPOSURE, …);
>> ctrls.set(V4L2_CID_ANALOGUE_GAIN, …);
>>
>> to set the desired values (values used under the given conditions can be
>> obtained from normal software ISP debayered output debug log).
>>
>> Milan Zamazal (1):
>> libcamera: simple: Fix raw output
>>
>> src/libcamera/pipeline/simple/simple.cpp | 66 +++++++++++++++++++-----
>> 1 file changed, 54 insertions(+), 12 deletions(-)
>>
More information about the libcamera-devel
mailing list