Message ID | 20250407085639.16180-1-mzamazal@redhat.com |
---|---|
Headers | show |
Series |
|
Related | show |
Quoting Milan Zamazal (2025-04-07 09:56:26) > This makes raw streams working again in ‘simple’ pipeline when software > ISP is enabled for the given device. At most one raw stream and one > processed stream (possibly both at once) are supported. > > 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 > > Or for both raw and processed streams: > > cam -c1 -C8 -Ffile# \ > -s role=viewfinder,width=1920,height=1080,pixelformat=RGB888 \ > -s role=raw,width=3280,height=2464,pixelformat=SRGGB8 \ > > When only a raw stream is requested, there are no exposure/gain > adjustments applied. This could be improved in future, once software > ISP gets a mechanism to gather image statistics without processing and > using them to make the adjustments, or once manual exposure controls are > added to software ISP. In the meantime, exposure must be changed > externally. Ack. Moving to libipa AGC would help here too to maintain common paths for manual control handling which is on my radar if I get sufficient free time ... But meanwhile, I've successfully used tonights free time to test this, and it's working as far as I can tell so far! Regressions from before are resovled, and I've fixed up camshark [0] to be able to support displaying CSI2 packed data so the raw streams render there now. [0] https://gitlab.freedesktop.org/camera/camshark/-/merge_requests/5 Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > Changes in v4: > - Broken range pruning due to passing a value rather than a reference > fixed. > - New common function isFormatRaw introduced. > - The patch assigning colour spaces in the simple pipeline, previously > posted separately, included in this series, as the first patch. It > can still be handled separately; in any case the rest sort of depends > on it. > - Setting metadataRequired to false where needed to prevent freezes and > assertion errors; related to metadata reporting support merged to > master since v3. > > Changes in v3: > - Significantly reworked, with both functional and clarity improvements. > The level of guesswork and confusion is hopefully reduced enough now > to drop the RFC prefix. > - The number of streams is set to 2 only with software ISP. > - SimpleCameraData::pipeConfig_ nullptr check patch dropped. > - PPM/raw file output patch dropped from this series. Let’s handle this > separately as the patch series is already complex enough. > > Changes in v2: > - Completely reworked. > - Extended to be able to produce a raw stream together with a processed > stream. > > Milan Zamazal (11): > libcamera: software_isp: Assign colour spaces in configurations > libcamera: simple: Set the number of software ISP streams to 2 > libcamera: formats: Add a helper to check for a raw pixel format > libcamera: simple: Don't use raw output formats with conversions > libcamera: simple: Add plain output configurations > libcamera: simple: Identify requested stream roles > libcamera: simple: Consider raw output configurations > libcamera: simple: Validate raw stream configurations > libcamera: simple: Don't enforce conversion with an added raw stream > libcamera: simple: Require metadata only when software ISP is used > libcamera: simple: Make raw streams working > > include/libcamera/internal/formats.h | 2 + > src/libcamera/formats.cpp | 11 + > src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 4 +- > src/libcamera/pipeline/mali-c55/mali-c55.cpp | 10 - > src/libcamera/pipeline/rkisp1/rkisp1.cpp | 7 +- > src/libcamera/pipeline/simple/simple.cpp | 255 ++++++++++++++----- > 6 files changed, 212 insertions(+), 77 deletions(-) > > -- > 2.49.0 >