| Message ID | 20260506111552.2782-2-jose.quaresma@foundries.io |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [meta-oe,1/6] libyuv: add recipe | expand |
Hi Jose, Quoting Jose Quaresma (2026-05-06 12:15:48) > vimc: > Is a driver that emulates complex video hardware, and is > useful for testing libcamera without needing access to a physical > camera. We would like to add support to the libcamera vimc > pipeline handler for multiple simultaneous streams, to ease > testing of such mechanism. This also requires adding multistream > support to the vimc driver in the Linux kernel. > > virtual: > Is a specialized handler designed to create software-based, > virtual camera devices. It allows for testing, debugging, and > simulating camera pipelines without needing physical hardware, > often producing test patterns (e.g., all green frames) via qcam. > This enables developers to emulate camera sensors and > Image Signal Processors (ISPs) within the libcamera > > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> > --- > .../recipes-multimedia/libcamera/libcamera_0.6.0.bb | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb > index 4dce26a5d0..1f9e21e45b 100644 > --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb > +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb > @@ -28,12 +28,16 @@ PACKAGECONFIG[dng] = ",,tiff" > PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" > PACKAGECONFIG[pycamera] = "-Dpycamera=enabled,-Dpycamera=disabled,python3 python3-pybind11" > PACKAGECONFIG[raspberrypi] = ",,libpisp" > +PACKAGECONFIG[vimc] = ",," > +PACKAGECONFIG[virtual] = ",,libyuv libjpeg-turbo" > > +ARM_PIPELINES = "imx8-isi,mali-c55,simple,uvcvideo" > # Raspberry Pi requires the meta-raspberrypi layer > # These values are coming from the project's meson.build file, > # which lists the supported values by arch. > -ARM_PIPELINES = "${@bb.utils.contains('PACKAGECONFIG', 'raspberrypi', 'rpi/pisp,rpi/vc4,', '', d)}" > -ARM_PIPELINES .= "imx8-isi,mali-c55,simple,uvcvideo" > +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'raspberrypi', ',rpi/pisp,rpi/vc4', '', d)}" > +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'vimc', ',vimc', '', d)}" > +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'virtual', ',virtual', '', d)}" These are not 'ARM' pipelines. Maybe they should be categorised separately as test platforms ? -- Kieran > > LIBCAMERA_PIPELINES ??= "auto" > LIBCAMERA_PIPELINES:arm ??= "${ARM_PIPELINES}" > -- > 2.54.0 > >
Hi Kieran, Kieran Bingham <kieran.bingham@ideasonboard.com> escreveu (quarta, 6/05/2026 à(s) 13:10): > Hi Jose, > > Quoting Jose Quaresma (2026-05-06 12:15:48) > > vimc: > > Is a driver that emulates complex video hardware, and is > > useful for testing libcamera without needing access to a physical > > camera. We would like to add support to the libcamera vimc > > pipeline handler for multiple simultaneous streams, to ease > > testing of such mechanism. This also requires adding multistream > > support to the vimc driver in the Linux kernel. > > > > virtual: > > Is a specialized handler designed to create software-based, > > virtual camera devices. It allows for testing, debugging, and > > simulating camera pipelines without needing physical hardware, > > often producing test patterns (e.g., all green frames) via qcam. > > This enables developers to emulate camera sensors and > > Image Signal Processors (ISPs) within the libcamera > > > > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> > > --- > > .../recipes-multimedia/libcamera/libcamera_0.6.0.bb | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/meta-multimedia/recipes-multimedia/libcamera/ > libcamera_0.6.0.bb b/meta-multimedia/recipes-multimedia/libcamera/ > libcamera_0.6.0.bb > > index 4dce26a5d0..1f9e21e45b 100644 > > --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb > > +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb > > @@ -28,12 +28,16 @@ PACKAGECONFIG[dng] = ",,tiff" > > PACKAGECONFIG[gst] = > "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 > gstreamer1.0-plugins-base" > > PACKAGECONFIG[pycamera] = > "-Dpycamera=enabled,-Dpycamera=disabled,python3 python3-pybind11" > > PACKAGECONFIG[raspberrypi] = ",,libpisp" > > +PACKAGECONFIG[vimc] = ",," > > +PACKAGECONFIG[virtual] = ",,libyuv libjpeg-turbo" > > > > +ARM_PIPELINES = "imx8-isi,mali-c55,simple,uvcvideo" > > # Raspberry Pi requires the meta-raspberrypi layer > > # These values are coming from the project's meson.build file, > > # which lists the supported values by arch. > > -ARM_PIPELINES = "${@bb.utils.contains('PACKAGECONFIG', 'raspberrypi', > 'rpi/pisp,rpi/vc4,', '', d)}" > > -ARM_PIPELINES .= "imx8-isi,mali-c55,simple,uvcvideo" > > +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'raspberrypi', > ',rpi/pisp,rpi/vc4', '', d)}" > > > > +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'vimc', > ',vimc', '', d)}" > > +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'virtual', > ',virtual', '', d)}" > > These are not 'ARM' pipelines. Maybe they should be categorised > separately as test platforms ? > I thought about that, but pipelines are only chosen in arm/aarch64, and for all other architectures we have 'auto' which is not deterministic and will enable everything possible. LIBCAMERA_PIPELINES ??= "auto" LIBCAMERA_PIPELINES:arm ??= "${ARM_PIPELINES}" LIBCAMERA_PIPELINES:aarch64 ??= "${ARM_PIPELINES}" Therefore, this change will work the same way in ARM and the others. The 'vimc' is already part of 'auto' because it has no dependencies and 'virtual' will also be enabled in 'auto' when chosen in PACKAGECONFIG, given that the dependencies will be in the sysroot. That's if I understood correctly; correct me if I'm wrong. I could add a TEST_PIPELINES but I think that would complicate things too much because I don't see how I would use it together with the 'auto'. Jose > > -- > Kieran > > > > > > > LIBCAMERA_PIPELINES ??= "auto" > > LIBCAMERA_PIPELINES:arm ??= "${ARM_PIPELINES}" > > -- > > 2.54.0 > > > > >
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb index 4dce26a5d0..1f9e21e45b 100644 --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb @@ -28,12 +28,16 @@ PACKAGECONFIG[dng] = ",,tiff" PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" PACKAGECONFIG[pycamera] = "-Dpycamera=enabled,-Dpycamera=disabled,python3 python3-pybind11" PACKAGECONFIG[raspberrypi] = ",,libpisp" +PACKAGECONFIG[vimc] = ",," +PACKAGECONFIG[virtual] = ",,libyuv libjpeg-turbo" +ARM_PIPELINES = "imx8-isi,mali-c55,simple,uvcvideo" # Raspberry Pi requires the meta-raspberrypi layer # These values are coming from the project's meson.build file, # which lists the supported values by arch. -ARM_PIPELINES = "${@bb.utils.contains('PACKAGECONFIG', 'raspberrypi', 'rpi/pisp,rpi/vc4,', '', d)}" -ARM_PIPELINES .= "imx8-isi,mali-c55,simple,uvcvideo" +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'raspberrypi', ',rpi/pisp,rpi/vc4', '', d)}" +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'vimc', ',vimc', '', d)}" +ARM_PIPELINES .= "${@bb.utils.contains('PACKAGECONFIG', 'virtual', ',virtual', '', d)}" LIBCAMERA_PIPELINES ??= "auto" LIBCAMERA_PIPELINES:arm ??= "${ARM_PIPELINES}"
vimc: Is a driver that emulates complex video hardware, and is useful for testing libcamera without needing access to a physical camera. We would like to add support to the libcamera vimc pipeline handler for multiple simultaneous streams, to ease testing of such mechanism. This also requires adding multistream support to the vimc driver in the Linux kernel. virtual: Is a specialized handler designed to create software-based, virtual camera devices. It allows for testing, debugging, and simulating camera pipelines without needing physical hardware, often producing test patterns (e.g., all green frames) via qcam. This enables developers to emulate camera sensors and Image Signal Processors (ISPs) within the libcamera Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> --- .../recipes-multimedia/libcamera/libcamera_0.6.0.bb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)