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 >
Just wanted to quickly confirm again that with this series, coupled with https://gitlab.freedesktop.org/camera/camshark/-/merge_requests/5, camshark works with qcom devices like the OnePlus6 (tested with pmOS) \o/ On the pmOS side a couple of changes are still required (see https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3235#note_475062) but I guess we can just add a new subpackage. Something along the lines of "libcamera-camshark-requirements". Thus: Tested-by: Robert Mader<robert.mader@collabora.com> On 07.04.25 10:56, Milan Zamazal wrote: > 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. > > 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(-) >
Kieran Bingham <kieran.bingham@ideasonboard.com> writes: > 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> Robert Mader <robert.mader@collabora.com> writes: > Just wanted to quickly confirm again that with this series, coupled with > https://gitlab.freedesktop.org/camera/camshark/-/merge_requests/5, camshark works with qcom devices like > the OnePlus6 (tested with pmOS) \o/ > > On the pmOS side a couple of changes are still required (see > https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3235#note_475062) but I guess we can just > add a new subpackage. Something along the lines of "libcamera-camshark-requirements". > > Thus: > > Tested-by: Robert Mader<robert.mader@collabora.com> Hi, thank you both for testing and good news. :-)