diff mbox series

[[oe,meta-oe] 1/1] libcamera: Allow overwriting default pipelines and IPA

Message ID 20230517082759.1289294-1-alexander.stein@ew.tq-group.com
State Under Review
Headers show
Series [[oe,meta-oe] 1/1] libcamera: Allow overwriting default pipelines and IPA | expand

Commit Message

Alexander Stein May 17, 2023, 8:27 a.m. UTC
By default only uvcvideo, simple and vimc pipelines as well as vimc IPA
are built. Add new variables for enabling a custom set of enabled
pipelines and IPAs.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
An example is the 'rkips1' pipeline and IPA.

 .../recipes-multimedia/libcamera/libcamera_0.0.5.bb        | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Kieran Bingham May 17, 2023, 12:07 p.m. UTC | #1
Hi Alex,

Quoting Alexander Stein (2023-05-17 09:27:59)
> By default only uvcvideo, simple and vimc pipelines as well as vimc IPA
> are built. Add new variables for enabling a custom set of enabled
> pipelines and IPAs.
> 
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> ---
> An example is the 'rkips1' pipeline and IPA.
> 
>  .../recipes-multimedia/libcamera/libcamera_0.0.5.bb        | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> index 14a20b431..47da0ec61 100644
> --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> @@ -26,9 +26,12 @@ PACKAGES =+ "${PN}-gst"
>  PACKAGECONFIG ??= ""
>  PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
>  
> +LIBCAMERA_PIPELINES ??= "uvcvideo,simple,vimc"
> +LIBCAMERA_IPAS ??= "vimc"

Could you test with LIBCAMERA_PIPELINES ??= "auto" please? That should
give an appropriate selection based on the architecture. But it may
depend on the correct architecture being conveyed through the meson
cross files.


> +
>  EXTRA_OEMESON = " \
> -    -Dpipelines=uvcvideo,simple,vimc \
> -    -Dipas=vimc \
> +    -Dpipelines=${LIBCAMERA_PIPELINES} \
> +    -Dipas=${LIBCAMERA_IPAS} \

I think you should probably remove the -Dipas option too and let that be
selected automatically by the pipelines choice.

--
Kieran


>      -Dv4l2=true \
>      -Dcam=enabled \
>      -Dlc-compliance=disabled \
> -- 
> 2.34.1
> 
>
Alexander Stein May 23, 2023, 1:15 p.m. UTC | #2
Hi Kieran,

Am Mittwoch, 17. Mai 2023, 14:07:35 CEST schrieb Kieran Bingham:
> Hi Alex,
> 
> Quoting Alexander Stein (2023-05-17 09:27:59)
> 
> > By default only uvcvideo, simple and vimc pipelines as well as vimc IPA
> > are built. Add new variables for enabling a custom set of enabled
> > pipelines and IPAs.
> > 
> > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> > ---
> > An example is the 'rkips1' pipeline and IPA.
> > 
> >  .../recipes-multimedia/libcamera/libcamera_0.0.5.bb        | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git
> > a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> > b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb index
> > 14a20b431..47da0ec61 100644
> > --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> > +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> > @@ -26,9 +26,12 @@ PACKAGES =+ "${PN}-gst"
> > 
> >  PACKAGECONFIG ??= ""
> >  PACKAGECONFIG[gst] =
> >  "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0
> >  gstreamer1.0-plugins-base"> 
> > +LIBCAMERA_PIPELINES ??= "uvcvideo,simple,vimc"
> > +LIBCAMERA_IPAS ??= "vimc"
> 
> Could you test with LIBCAMERA_PIPELINES ??= "auto" please? That should
> give an appropriate selection based on the architecture. But it may
> depend on the correct architecture being conveyed through the meson
> cross files.

That seems to work as well. Using "-Dpipelines=auto" and "Dipas" removed, I 
get the following lines in log.do_configure:

>   Configuration
>   
>     IPA modules signed with  : gnutls
>     Enabled pipelines        : imx8-isi
>     
>                                rkisp1
>                                rpi/vc4
>                                simple
>                                uvcvideo
>     
>     Enabled IPA modules      : rkisp1
>     
>                                rpi/vc4

This seems a good default for an aarch64 platform.

> > +
> > 
> >  EXTRA_OEMESON = " \
> > 
> > -    -Dpipelines=uvcvideo,simple,vimc \
> > -    -Dipas=vimc \
> > +    -Dpipelines=${LIBCAMERA_PIPELINES} \
> > +    -Dipas=${LIBCAMERA_IPAS} \
> 
> I think you should probably remove the -Dipas option too and let that be
> selected automatically by the pipelines choice.

That's true as well (see above), but I still would like to disable unneeded, 
unwanted IPAs or pipelines. If I read the meson code correctly an IPA is only 
enabled if a corresponding pipeline is enabled as well, right?

Thanks
Alexander

> --
> Kieran
> 
> >      -Dv4l2=true \
> >      -Dcam=enabled \
> >      -Dlc-compliance=disabled \
Kieran Bingham May 23, 2023, 2:43 p.m. UTC | #3
Hi Alexander,

Quoting Alexander Stein (2023-05-23 14:15:55)
> Hi Kieran,
> 
> Am Mittwoch, 17. Mai 2023, 14:07:35 CEST schrieb Kieran Bingham:
> > Hi Alex,
> > 
> > Quoting Alexander Stein (2023-05-17 09:27:59)
> > 
> > > By default only uvcvideo, simple and vimc pipelines as well as vimc IPA
> > > are built. Add new variables for enabling a custom set of enabled
> > > pipelines and IPAs.
> > > 
> > > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> > > ---
> > > An example is the 'rkips1' pipeline and IPA.
> > > 
> > >  .../recipes-multimedia/libcamera/libcamera_0.0.5.bb        | 7 +++++--
> > >  1 file changed, 5 insertions(+), 2 deletions(-)
> > > 
> > > diff --git
> > > a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> > > b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb index
> > > 14a20b431..47da0ec61 100644
> > > --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> > > +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
> > > @@ -26,9 +26,12 @@ PACKAGES =+ "${PN}-gst"
> > > 
> > >  PACKAGECONFIG ??= ""
> > >  PACKAGECONFIG[gst] =
> > >  "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0
> > >  gstreamer1.0-plugins-base"> 
> > > +LIBCAMERA_PIPELINES ??= "uvcvideo,simple,vimc"
> > > +LIBCAMERA_IPAS ??= "vimc"
> > 
> > Could you test with LIBCAMERA_PIPELINES ??= "auto" please? That should
> > give an appropriate selection based on the architecture. But it may
> > depend on the correct architecture being conveyed through the meson
> > cross files.
> 
> That seems to work as well. Using "-Dpipelines=auto" and "Dipas" removed, I 
> get the following lines in log.do_configure:
> 
> >   Configuration
> >   
> >     IPA modules signed with  : gnutls
> >     Enabled pipelines        : imx8-isi
> >     
> >                                rkisp1
> >                                rpi/vc4
> >                                simple
> >                                uvcvideo
> >     
> >     Enabled IPA modules      : rkisp1
> >     
> >                                rpi/vc4
> 
> This seems a good default for an aarch64 platform.
> 
> > > +
> > > 
> > >  EXTRA_OEMESON = " \
> > > 
> > > -    -Dpipelines=uvcvideo,simple,vimc \
> > > -    -Dipas=vimc \
> > > +    -Dpipelines=${LIBCAMERA_PIPELINES} \
> > > +    -Dipas=${LIBCAMERA_IPAS} \
> > 
> > I think you should probably remove the -Dipas option too and let that be
> > selected automatically by the pipelines choice.
> 
> That's true as well (see above), but I still would like to disable unneeded, 
> unwanted IPAs or pipelines. If I read the meson code correctly an IPA is only 
> enabled if a corresponding pipeline is enabled as well, right?

Correct. Only IPA's with a corresponding Pipeline handler enabled will be built.
And with auto - that will match the target architecture + UVC.

--
Kieran
diff mbox series

Patch

diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
index 14a20b431..47da0ec61 100644
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
@@ -26,9 +26,12 @@  PACKAGES =+ "${PN}-gst"
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
 
+LIBCAMERA_PIPELINES ??= "uvcvideo,simple,vimc"
+LIBCAMERA_IPAS ??= "vimc"
+
 EXTRA_OEMESON = " \
-    -Dpipelines=uvcvideo,simple,vimc \
-    -Dipas=vimc \
+    -Dpipelines=${LIBCAMERA_PIPELINES} \
+    -Dipas=${LIBCAMERA_IPAS} \
     -Dv4l2=true \
     -Dcam=enabled \
     -Dlc-compliance=disabled \