Message ID | 20220112094250.27022-3-sebastien.szymanski@armadeus.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/3] package/libimxdmabuffer: new package | expand |
Hi Sébastien, all On Wed, 12 Jan 2022 10:42:50 +0100 Sébastien Szymanski <sebastien.szymanski@armadeus.com> wrote: > This is version 2 of gst1-imx. > > Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> > --- > package/gstreamer1/Config.in | 1 + > package/gstreamer1/gst1-imx2/Config.in | 75 +++++++++++++++++++++ > package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + > package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 +++++++++++++++++++++ > 4 files changed, 154 insertions(+) > create mode 100644 package/gstreamer1/gst1-imx2/Config.in > create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash > create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk > This package seems an update of the existing gst1-imx package. Why add a new package instead of bumping gst1-imx ? Best regards, Hervé
Hi Hervé, On 1/14/22 18:44, Herve Codina wrote: > Hi Sébastien, all > > On Wed, 12 Jan 2022 10:42:50 +0100 > Sébastien Szymanski <sebastien.szymanski@armadeus.com> wrote: > >> This is version 2 of gst1-imx. >> >> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> >> --- >> package/gstreamer1/Config.in | 1 + >> package/gstreamer1/gst1-imx2/Config.in | 75 +++++++++++++++++++++ >> package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + >> package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 +++++++++++++++++++++ >> 4 files changed, 154 insertions(+) >> create mode 100644 package/gstreamer1/gst1-imx2/Config.in >> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash >> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk >> > > This package seems an update of the existing gst1-imx package. > > Why add a new package instead of bumping gst1-imx ? It's a rewrite, as the ChangLog says: * Complete rewrite based on GStreamer 1.14, libimxvpuapi 2.1.2, and the new libimxdmabuffer library. This new rewrite is referred to as "v2" (version 2), while the old code is referred to as "v1" (version 1). v1 is no longer being developed; work is focused on v2. I think we should keep gst1-imx v1 for compatibility. Best regards, > > Best regards, > Hervé >
On 12/01/2022 10:42, Sébastien Szymanski wrote: > This is version 2 of gst1-imx. Please add the following. Although this replaces the gst1-imx package, we want to keep both because version 2 removes some elements that are relevant on i.MX6 without X11 or wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink. > Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> > --- > package/gstreamer1/Config.in | 1 + > package/gstreamer1/gst1-imx2/Config.in | 75 +++++++++++++++++++++ > package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + > package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 +++++++++++++++++++++ > 4 files changed, 154 insertions(+) > create mode 100644 package/gstreamer1/gst1-imx2/Config.in > create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash > create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk > > diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in > index 8fe8a34395..436c76379d 100644 > --- a/package/gstreamer1/Config.in > +++ b/package/gstreamer1/Config.in > @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in" > source "package/gstreamer1/gst1-plugins-ugly/Config.in" > source "package/gstreamer1/gst1-devtools/Config.in" > source "package/gstreamer1/gst1-imx/Config.in" > +source "package/gstreamer1/gst1-imx2/Config.in" Note that this one should *not* move to package/freescale-imx, it's correct to put it here in gstreamer1. > source "package/gstreamer1/gst1-interpipe/Config.in" > source "package/gstreamer1/gst1-libav/Config.in" > source "package/gstreamer1/gst1-python/Config.in" > diff --git a/package/gstreamer1/gst1-imx2/Config.in b/package/gstreamer1/gst1-imx2/Config.in > new file mode 100644 > index 0000000000..b95e6bdb21 > --- /dev/null > +++ b/package/gstreamer1/gst1-imx2/Config.in > @@ -0,0 +1,75 @@ > +menuconfig BR2_PACKAGE_GST1_IMX2 > + bool "gst1-imx2" > + depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX > + depends on BR2_PACKAGE_LIBIMXDMABUFFER This should be a select. On the other hand, it should also have depends on BR2_PACKAGE_FREESCALE_IMX > + select BR2_PACKAGE_GST1_PLUGINS_BASE > + help > + This is a set of GStreamer 1.0 plugins for plugins for > + Freescale's i.MX platforms, which make use of the i.MX > + multimedia capabilities. > + > + https://github.com/Freescale/gstreamer-imx > + > +if BR2_PACKAGE_GST1_IMX2 > + > +config BR2_PACKAGE_GST1_IMX2_G2D > + bool "imxg2d" > + depends on BR2_PACKAGE_IMX_GPU_G2D All these depends on should also be turned in select, and propagate their dependencies. Since the dependencies are all architecture dependencies, I think, there's no need for a comment. You only need a comment for the linux dependency. > + help > + Elements leveraging the 2D GPU > + > +comment "imxg2d needs the G2D libraries" > + depends on !BR2_PACKAGE_IMX_GPU_G2D > + > +config BR2_PACKAGE_GST1_IMX2_IPU > + bool "imxipu" > + depends on BR2_LINUX_KERNEL > + help > + Elements leveraging the IPU > + > +comment "imxipu needs an imx-specific Linux kernel to be built" > + depends on !BR2_LINUX_KERNEL > + > +config BR2_PACKAGE_GST1_IMX2_MP3ENCODER > + bool "mp3encoder" > + depends on BR2_PACKAGE_IMX_CODEC > + help > + Elements for MP3 encoding I'm a bit surprised that there's no SoC dependency here... > + > +comment "mp3encoder needs the i.MX codec binaries" > + depends on !BR2_PACKAGE_IMX_CODEC > + > +config BR2_PACKAGE_GST1_IMX2_PXP > + bool "imxpxp" > + depends on BR2_LINUX_KERNEL > + help > + Elements leveraging the PXP > + > +comment "imxpxp needs an imx-specific Linux kernel to be built" > + depends on !BR2_LINUX_KERNEL > + > +config BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC > + bool "uniaudiodec" > + depends on BR2_PACKAGE_IMX_CODEC > + help > + Elements for audio decoding > + > +comment "uniaudiodec needs the i.MX codec binaries" > + depends on !BR2_PACKAGE_IMX_CODEC > + > +config BR2_PACKAGE_GST1_IMX2_VPU > + bool "imxvpu" > + depends on BR2_PACKAGE_LIBIMXVPUAPI2 > + help > + Elements leveraging the VPU > + > +comment "imxvpu needs the VPU imxvpuapi2 library" > + depends on !BR2_PACKAGE_LIBIMXVPUAPI2 > + > +config BR2_PACKAGE_GST1_IMX2_V4L2 > + bool "imxv4l2" > + select BR2_PACKAGE_GST1_PLUGINS_BAD > + help > + Elements for V4L2 capture and output > + > +endif > diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.hash b/package/gstreamer1/gst1-imx2/gst1-imx2.hash > new file mode 100644 > index 0000000000..cc0734fd52 > --- /dev/null > +++ b/package/gstreamer1/gst1-imx2/gst1-imx2.hash > @@ -0,0 +1,3 @@ > +# locally computed hash > +sha256 57c0e05b3d57f90df8a16760f4373e04ed60c3a7fab7844c00392f67f889d196 gst1-imx2-9a200b1551c4531234f9b6437eac2c42a07334b0.tar.gz > +sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 LICENSE > diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.mk b/package/gstreamer1/gst1-imx2/gst1-imx2.mk > new file mode 100644 > index 0000000000..f71aeae4f6 > --- /dev/null > +++ b/package/gstreamer1/gst1-imx2/gst1-imx2.mk > @@ -0,0 +1,75 @@ > +################################################################################ > +# > +# gst1-imx2 > +# > +################################################################################ > + > +GST1_IMX2_VERSION = 9a200b1551c4531234f9b6437eac2c42a07334b0 > +GST1_IMX2_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX2_VERSION)) > +GST1_IMX2_LICENSE = LGPL-2.0+ > +GST1_IMX2_LICENSE_FILES = LICENSE > +GST1_IMX2_INSTALL_STAGING = YES > + > +GST1_IMX2_DEPENDENCIES = \ > + host-pkgconf \ > + gstreamer1 \ > + gst1-plugins-base \ > + libimxdmabuffer > + > +GST1_IMX2_CONF_OPTS = -Dsysroot=$(STAGING_DIR) > + > +ifeq ($(BR2_LINUX_KERNEL),y) > +# IPU and PXP need access to imx-specific kernel headers Again, you'll probably need to point into the kernel build directory. Regards, Arnout > +GST1_IMX2_DEPENDENCIES += linux > +endif > + > +ifeq ($(BR2_PACKAGE_IMX_CODEC),y) > +GST1_IMX2_DEPENDENCIES += imx-codec > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_G2D),y) > +GST1_IMX2_CONF_OPTS += -Dg2d=enabled > +GST1_IMX2_DEPENDENCIES += imx-gpu-g2d > +else > +GST1_IMX2_CONF_OPTS += -Dg2d=disabled > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_IPU),y) > +GST1_IMX2_CONF_OPTS += -Dipu=enabled > +else > +GST1_IMX2_CONF_OPTS += -Dipu=disabled > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_MP3ENCODER),y) > +GST1_IMX2_CONF_OPTS += -Dmp3encoder=enabled > +else > +GST1_IMX2_CONF_OPTS += -Dmp3encoder=disabled > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_PXP),y) > +GST1_IMX2_CONF_OPTS += -Dpxp=enabled > +else > +GST1_IMX2_CONF_OPTS += -Dpxp=disabled > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC),y) > +GST1_IMX2_CONF_OPTS += -Duniaudiodec=enabled > +else > +GST1_IMX2_CONF_OPTS += -Duniaudiodec=disabled > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_VPU),y) > +GST1_IMX2_DEPENDENCIES += libimxvpuapi2 > +GST1_IMX2_CONF_OPTS += -Dvpu=enabled > +else > +GST1_IMX2_CONF_OPTS += -Dvpu=disabled > +endif > + > +ifeq ($(BR2_PACKAGE_GST1_IMX2_V4L2),y) > +GST1_IMX2_DEPENDENCIES += gst1-plugins-bad > +GST1_IMX2_CONF_OPTS += -Dv4l2=true > +else > +GST1_IMX2_CONF_OPTS += -Dv4l2=false > +endif > + > +$(eval $(meson-package))
Hi Arnout, On 7/28/22 21:51, Arnout Vandecappelle wrote: > > > On 12/01/2022 10:42, Sébastien Szymanski wrote: >> This is version 2 of gst1-imx. > > Please add the following. > > Although this replaces the gst1-imx package, we want to keep both > because version 2 removes some elements that are relevant on i.MX6 > without X11 or wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink. > > >> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> >> --- >> package/gstreamer1/Config.in | 1 + >> package/gstreamer1/gst1-imx2/Config.in | 75 +++++++++++++++++++++ >> package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + >> package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 +++++++++++++++++++++ >> 4 files changed, 154 insertions(+) >> create mode 100644 package/gstreamer1/gst1-imx2/Config.in >> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash >> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk >> >> diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in >> index 8fe8a34395..436c76379d 100644 >> --- a/package/gstreamer1/Config.in >> +++ b/package/gstreamer1/Config.in >> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in" >> source "package/gstreamer1/gst1-plugins-ugly/Config.in" >> source "package/gstreamer1/gst1-devtools/Config.in" >> source "package/gstreamer1/gst1-imx/Config.in" >> +source "package/gstreamer1/gst1-imx2/Config.in" > > Note that this one should *not* move to package/freescale-imx, it's > correct to put it here in gstreamer1. > >> source "package/gstreamer1/gst1-interpipe/Config.in" >> source "package/gstreamer1/gst1-libav/Config.in" >> source "package/gstreamer1/gst1-python/Config.in" >> diff --git a/package/gstreamer1/gst1-imx2/Config.in >> b/package/gstreamer1/gst1-imx2/Config.in >> new file mode 100644 >> index 0000000000..b95e6bdb21 >> --- /dev/null >> +++ b/package/gstreamer1/gst1-imx2/Config.in >> @@ -0,0 +1,75 @@ >> +menuconfig BR2_PACKAGE_GST1_IMX2 >> + bool "gst1-imx2" >> + depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX >> + depends on BR2_PACKAGE_LIBIMXDMABUFFER > > This should be a select. > > On the other hand, it should also have > > depends on BR2_PACKAGE_FREESCALE_IMX > >> + select BR2_PACKAGE_GST1_PLUGINS_BASE >> + help >> + This is a set of GStreamer 1.0 plugins for plugins for >> + Freescale's i.MX platforms, which make use of the i.MX >> + multimedia capabilities. >> + >> + https://github.com/Freescale/gstreamer-imx >> + >> +if BR2_PACKAGE_GST1_IMX2 >> + >> +config BR2_PACKAGE_GST1_IMX2_G2D >> + bool "imxg2d" >> + depends on BR2_PACKAGE_IMX_GPU_G2D > > All these depends on should also be turned in select, and propagate > their dependencies. Since the dependencies are all architecture > dependencies, I think, there's no need for a comment. You only need a > comment for the linux dependency. I have copied the gst1-imx package which uses depends on. When using select the following issue appears: package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected! package/gstreamer1/gstreamer1/Config.in:5: symbol BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA package/webkitgtk/Config.in:94: symbol BR2_PACKAGE_WEBKITGTK_MULTIMEDIA depends on BR2_PACKAGE_WEBKITGTK package/webkitgtk/Config.in:28: symbol BR2_PACKAGE_WEBKITGTK is selected by BR2_PACKAGE_MIDORI package/midori/Config.in:24: symbol BR2_PACKAGE_MIDORI depends on BR2_PACKAGE_LIBGTK3 package/libgtk3/Config.in:15: symbol BR2_PACKAGE_LIBGTK3 is selected by BR2_PACKAGE_VTE package/vte/Config.in:1: symbol BR2_PACKAGE_VTE depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND package/opengl/libegl/Config.in:4: symbol BR2_PACKAGE_HAS_LIBEGL_WAYLAND is selected by BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL package/freescale-imx/imx-gpu-viv/Config.in:64: symbol BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL is part of choice <choice> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains symbol <choice> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains symbol BR2_PACKAGE_IMX_GPU_VIV package/freescale-imx/imx-gpu-viv/Config.in:9: symbol BR2_PACKAGE_IMX_GPU_VIV is selected by BR2_PACKAGE_IMX_GPU_G2D package/freescale-imx/imx-gpu-g2d/Config.in:9: symbol BR2_PACKAGE_IMX_GPU_G2D is selected by BR2_PACKAGE_GST1_IMX2_G2D package/gstreamer1/gst1-imx2/Config.in:21: symbol BR2_PACKAGE_GST1_IMX2_G2D depends on BR2_PACKAGE_GSTREAMER1 For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" There was a similar issue for gst1-imx: https://lore.kernel.org/all/20160920224355.l76a3kggupuiugok@t450s.lan/ So, I will keep depends on here. Regards,
On 08/08/2022 16:14, Sébastien Szymanski wrote: > Hi Arnout, > > On 7/28/22 21:51, Arnout Vandecappelle wrote: >> >> >> On 12/01/2022 10:42, Sébastien Szymanski wrote: >>> This is version 2 of gst1-imx. >> >> Please add the following. >> >> Although this replaces the gst1-imx package, we want to keep both because >> version 2 removes some elements that are relevant on i.MX6 without X11 or >> wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink. >> >> >>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> >>> --- >>> package/gstreamer1/Config.in | 1 + >>> package/gstreamer1/gst1-imx2/Config.in | 75 +++++++++++++++++++++ >>> package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + >>> package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 +++++++++++++++++++++ >>> 4 files changed, 154 insertions(+) >>> create mode 100644 package/gstreamer1/gst1-imx2/Config.in >>> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash >>> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk >>> >>> diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in >>> index 8fe8a34395..436c76379d 100644 >>> --- a/package/gstreamer1/Config.in >>> +++ b/package/gstreamer1/Config.in >>> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in" >>> source "package/gstreamer1/gst1-plugins-ugly/Config.in" >>> source "package/gstreamer1/gst1-devtools/Config.in" >>> source "package/gstreamer1/gst1-imx/Config.in" >>> +source "package/gstreamer1/gst1-imx2/Config.in" >> >> Note that this one should *not* move to package/freescale-imx, it's correct >> to put it here in gstreamer1. >> >>> source "package/gstreamer1/gst1-interpipe/Config.in" >>> source "package/gstreamer1/gst1-libav/Config.in" >>> source "package/gstreamer1/gst1-python/Config.in" >>> diff --git a/package/gstreamer1/gst1-imx2/Config.in >>> b/package/gstreamer1/gst1-imx2/Config.in >>> new file mode 100644 >>> index 0000000000..b95e6bdb21 >>> --- /dev/null >>> +++ b/package/gstreamer1/gst1-imx2/Config.in >>> @@ -0,0 +1,75 @@ >>> +menuconfig BR2_PACKAGE_GST1_IMX2 >>> + bool "gst1-imx2" >>> + depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX >>> + depends on BR2_PACKAGE_LIBIMXDMABUFFER >> >> This should be a select. >> >> On the other hand, it should also have >> >> depends on BR2_PACKAGE_FREESCALE_IMX >> >>> + select BR2_PACKAGE_GST1_PLUGINS_BASE >>> + help >>> + This is a set of GStreamer 1.0 plugins for plugins for >>> + Freescale's i.MX platforms, which make use of the i.MX >>> + multimedia capabilities. >>> + >>> + https://github.com/Freescale/gstreamer-imx >>> + >>> +if BR2_PACKAGE_GST1_IMX2 >>> + >>> +config BR2_PACKAGE_GST1_IMX2_G2D >>> + bool "imxg2d" >>> + depends on BR2_PACKAGE_IMX_GPU_G2D >> >> All these depends on should also be turned in select, and propagate their >> dependencies. Since the dependencies are all architecture dependencies, I >> think, there's no need for a comment. You only need a comment for the linux >> dependency. > > I have copied the gst1-imx package which uses depends on. Well, we're trying to improve the situation :-) > When using select the following issue appears: > > package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected! > package/gstreamer1/gstreamer1/Config.in:5: symbol BR2_PACKAGE_GSTREAMER1 is > selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA > package/webkitgtk/Config.in:94: symbol BR2_PACKAGE_WEBKITGTK_MULTIMEDIA depends > on BR2_PACKAGE_WEBKITGTK > package/webkitgtk/Config.in:28: symbol BR2_PACKAGE_WEBKITGTK is selected by > BR2_PACKAGE_MIDORI > package/midori/Config.in:24: symbol BR2_PACKAGE_MIDORI depends on > BR2_PACKAGE_LIBGTK3 > package/libgtk3/Config.in:15: symbol BR2_PACKAGE_LIBGTK3 is selected by > BR2_PACKAGE_VTE > package/vte/Config.in:1: symbol BR2_PACKAGE_VTE depends on > BR2_PACKAGE_HAS_LIBEGL_WAYLAND > package/opengl/libegl/Config.in:4: symbol BR2_PACKAGE_HAS_LIBEGL_WAYLAND is > selected by BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL > package/freescale-imx/imx-gpu-viv/Config.in:64: symbol > BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL is part of choice <choice> > package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains symbol > <choice> > package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains symbol > BR2_PACKAGE_IMX_GPU_VIV > package/freescale-imx/imx-gpu-viv/Config.in:9: symbol BR2_PACKAGE_IMX_GPU_VIV > is selected by BR2_PACKAGE_IMX_GPU_G2D > package/freescale-imx/imx-gpu-g2d/Config.in:9: symbol BR2_PACKAGE_IMX_GPU_G2D > is selected by BR2_PACKAGE_GST1_IMX2_G2D > package/gstreamer1/gst1-imx2/Config.in:21: symbol BR2_PACKAGE_GST1_IMX2_G2D > depends on BR2_PACKAGE_GSTREAMER1 > For a resolution refer to Documentation/kbuild/kconfig-language.txt > subsection "Kconfig recursive dependency limitations" I'm trying to see the problem with this dependency chain, but I can't find it... Perhaps it's the choice for imx-gpu-viv output that is causing the problem. You did propagate the dependencies, right? depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # imx-gpu-g2d depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-g2d Regards, Arnout > > There was a similar issue for gst1-imx: > > https://lore.kernel.org/all/20160920224355.l76a3kggupuiugok@t450s.lan/ > > So, I will keep depends on here. > > Regards, > >
On 8/8/22 22:36, Arnout Vandecappelle wrote: > > > On 08/08/2022 16:14, Sébastien Szymanski wrote: >> Hi Arnout, >> >> On 7/28/22 21:51, Arnout Vandecappelle wrote: >>> >>> >>> On 12/01/2022 10:42, Sébastien Szymanski wrote: >>>> This is version 2 of gst1-imx. >>> >>> Please add the following. >>> >>> Although this replaces the gst1-imx package, we want to keep both >>> because version 2 removes some elements that are relevant on i.MX6 >>> without X11 or wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink. >>> >>> >>>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> >>>> --- >>>> package/gstreamer1/Config.in | 1 + >>>> package/gstreamer1/gst1-imx2/Config.in | 75 >>>> +++++++++++++++++++++ >>>> package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + >>>> package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 >>>> +++++++++++++++++++++ >>>> 4 files changed, 154 insertions(+) >>>> create mode 100644 package/gstreamer1/gst1-imx2/Config.in >>>> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash >>>> create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk >>>> >>>> diff --git a/package/gstreamer1/Config.in >>>> b/package/gstreamer1/Config.in >>>> index 8fe8a34395..436c76379d 100644 >>>> --- a/package/gstreamer1/Config.in >>>> +++ b/package/gstreamer1/Config.in >>>> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in" >>>> source "package/gstreamer1/gst1-plugins-ugly/Config.in" >>>> source "package/gstreamer1/gst1-devtools/Config.in" >>>> source "package/gstreamer1/gst1-imx/Config.in" >>>> +source "package/gstreamer1/gst1-imx2/Config.in" >>> >>> Note that this one should *not* move to package/freescale-imx, it's >>> correct to put it here in gstreamer1. >>> >>>> source "package/gstreamer1/gst1-interpipe/Config.in" >>>> source "package/gstreamer1/gst1-libav/Config.in" >>>> source "package/gstreamer1/gst1-python/Config.in" >>>> diff --git a/package/gstreamer1/gst1-imx2/Config.in >>>> b/package/gstreamer1/gst1-imx2/Config.in >>>> new file mode 100644 >>>> index 0000000000..b95e6bdb21 >>>> --- /dev/null >>>> +++ b/package/gstreamer1/gst1-imx2/Config.in >>>> @@ -0,0 +1,75 @@ >>>> +menuconfig BR2_PACKAGE_GST1_IMX2 >>>> + bool "gst1-imx2" >>>> + depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX >>>> + depends on BR2_PACKAGE_LIBIMXDMABUFFER >>> >>> This should be a select. >>> >>> On the other hand, it should also have >>> >>> depends on BR2_PACKAGE_FREESCALE_IMX >>> >>>> + select BR2_PACKAGE_GST1_PLUGINS_BASE >>>> + help >>>> + This is a set of GStreamer 1.0 plugins for plugins for >>>> + Freescale's i.MX platforms, which make use of the i.MX >>>> + multimedia capabilities. >>>> + >>>> + https://github.com/Freescale/gstreamer-imx >>>> + >>>> +if BR2_PACKAGE_GST1_IMX2 >>>> + >>>> +config BR2_PACKAGE_GST1_IMX2_G2D >>>> + bool "imxg2d" >>>> + depends on BR2_PACKAGE_IMX_GPU_G2D >>> >>> All these depends on should also be turned in select, and propagate >>> their dependencies. Since the dependencies are all architecture >>> dependencies, I think, there's no need for a comment. You only need a >>> comment for the linux dependency. >> >> I have copied the gst1-imx package which uses depends on. > > Well, we're trying to improve the situation :-) > >> When using select the following issue appears: >> >> package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency >> detected! >> package/gstreamer1/gstreamer1/Config.in:5: symbol >> BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA >> package/webkitgtk/Config.in:94: symbol >> BR2_PACKAGE_WEBKITGTK_MULTIMEDIA depends on BR2_PACKAGE_WEBKITGTK >> package/webkitgtk/Config.in:28: symbol BR2_PACKAGE_WEBKITGTK is >> selected by BR2_PACKAGE_MIDORI >> package/midori/Config.in:24: symbol BR2_PACKAGE_MIDORI depends on >> BR2_PACKAGE_LIBGTK3 >> package/libgtk3/Config.in:15: symbol BR2_PACKAGE_LIBGTK3 is selected >> by BR2_PACKAGE_VTE >> package/vte/Config.in:1: symbol BR2_PACKAGE_VTE depends on >> BR2_PACKAGE_HAS_LIBEGL_WAYLAND >> package/opengl/libegl/Config.in:4: symbol >> BR2_PACKAGE_HAS_LIBEGL_WAYLAND is selected by >> BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL >> package/freescale-imx/imx-gpu-viv/Config.in:64: symbol >> BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL is part of choice <choice> >> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> >> contains symbol <choice> >> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> >> contains symbol BR2_PACKAGE_IMX_GPU_VIV >> package/freescale-imx/imx-gpu-viv/Config.in:9: symbol >> BR2_PACKAGE_IMX_GPU_VIV is selected by BR2_PACKAGE_IMX_GPU_G2D >> package/freescale-imx/imx-gpu-g2d/Config.in:9: symbol >> BR2_PACKAGE_IMX_GPU_G2D is selected by BR2_PACKAGE_GST1_IMX2_G2D >> package/gstreamer1/gst1-imx2/Config.in:21: symbol >> BR2_PACKAGE_GST1_IMX2_G2D depends on BR2_PACKAGE_GSTREAMER1 >> For a resolution refer to Documentation/kbuild/kconfig-language.txt >> subsection "Kconfig recursive dependency limitations" > > I'm trying to see the problem with this dependency chain, but I can't > find it... Perhaps it's the choice for imx-gpu-viv output that is > causing the problem. > > You did propagate the dependencies, right? Yes, I did. Regards, > > depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # > imx-gpu-g2d > depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-g2d > > > Regards, > Arnout > >> >> There was a similar issue for gst1-imx: >> >> https://lore.kernel.org/all/20160920224355.l76a3kggupuiugok@t450s.lan/ >> >> So, I will keep depends on here. >> >> Regards, >> >>
diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in index 8fe8a34395..436c76379d 100644 --- a/package/gstreamer1/Config.in +++ b/package/gstreamer1/Config.in @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in" source "package/gstreamer1/gst1-plugins-ugly/Config.in" source "package/gstreamer1/gst1-devtools/Config.in" source "package/gstreamer1/gst1-imx/Config.in" +source "package/gstreamer1/gst1-imx2/Config.in" source "package/gstreamer1/gst1-interpipe/Config.in" source "package/gstreamer1/gst1-libav/Config.in" source "package/gstreamer1/gst1-python/Config.in" diff --git a/package/gstreamer1/gst1-imx2/Config.in b/package/gstreamer1/gst1-imx2/Config.in new file mode 100644 index 0000000000..b95e6bdb21 --- /dev/null +++ b/package/gstreamer1/gst1-imx2/Config.in @@ -0,0 +1,75 @@ +menuconfig BR2_PACKAGE_GST1_IMX2 + bool "gst1-imx2" + depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX + depends on BR2_PACKAGE_LIBIMXDMABUFFER + select BR2_PACKAGE_GST1_PLUGINS_BASE + help + This is a set of GStreamer 1.0 plugins for plugins for + Freescale's i.MX platforms, which make use of the i.MX + multimedia capabilities. + + https://github.com/Freescale/gstreamer-imx + +if BR2_PACKAGE_GST1_IMX2 + +config BR2_PACKAGE_GST1_IMX2_G2D + bool "imxg2d" + depends on BR2_PACKAGE_IMX_GPU_G2D + help + Elements leveraging the 2D GPU + +comment "imxg2d needs the G2D libraries" + depends on !BR2_PACKAGE_IMX_GPU_G2D + +config BR2_PACKAGE_GST1_IMX2_IPU + bool "imxipu" + depends on BR2_LINUX_KERNEL + help + Elements leveraging the IPU + +comment "imxipu needs an imx-specific Linux kernel to be built" + depends on !BR2_LINUX_KERNEL + +config BR2_PACKAGE_GST1_IMX2_MP3ENCODER + bool "mp3encoder" + depends on BR2_PACKAGE_IMX_CODEC + help + Elements for MP3 encoding + +comment "mp3encoder needs the i.MX codec binaries" + depends on !BR2_PACKAGE_IMX_CODEC + +config BR2_PACKAGE_GST1_IMX2_PXP + bool "imxpxp" + depends on BR2_LINUX_KERNEL + help + Elements leveraging the PXP + +comment "imxpxp needs an imx-specific Linux kernel to be built" + depends on !BR2_LINUX_KERNEL + +config BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC + bool "uniaudiodec" + depends on BR2_PACKAGE_IMX_CODEC + help + Elements for audio decoding + +comment "uniaudiodec needs the i.MX codec binaries" + depends on !BR2_PACKAGE_IMX_CODEC + +config BR2_PACKAGE_GST1_IMX2_VPU + bool "imxvpu" + depends on BR2_PACKAGE_LIBIMXVPUAPI2 + help + Elements leveraging the VPU + +comment "imxvpu needs the VPU imxvpuapi2 library" + depends on !BR2_PACKAGE_LIBIMXVPUAPI2 + +config BR2_PACKAGE_GST1_IMX2_V4L2 + bool "imxv4l2" + select BR2_PACKAGE_GST1_PLUGINS_BAD + help + Elements for V4L2 capture and output + +endif diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.hash b/package/gstreamer1/gst1-imx2/gst1-imx2.hash new file mode 100644 index 0000000000..cc0734fd52 --- /dev/null +++ b/package/gstreamer1/gst1-imx2/gst1-imx2.hash @@ -0,0 +1,3 @@ +# locally computed hash +sha256 57c0e05b3d57f90df8a16760f4373e04ed60c3a7fab7844c00392f67f889d196 gst1-imx2-9a200b1551c4531234f9b6437eac2c42a07334b0.tar.gz +sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 LICENSE diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.mk b/package/gstreamer1/gst1-imx2/gst1-imx2.mk new file mode 100644 index 0000000000..f71aeae4f6 --- /dev/null +++ b/package/gstreamer1/gst1-imx2/gst1-imx2.mk @@ -0,0 +1,75 @@ +################################################################################ +# +# gst1-imx2 +# +################################################################################ + +GST1_IMX2_VERSION = 9a200b1551c4531234f9b6437eac2c42a07334b0 +GST1_IMX2_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX2_VERSION)) +GST1_IMX2_LICENSE = LGPL-2.0+ +GST1_IMX2_LICENSE_FILES = LICENSE +GST1_IMX2_INSTALL_STAGING = YES + +GST1_IMX2_DEPENDENCIES = \ + host-pkgconf \ + gstreamer1 \ + gst1-plugins-base \ + libimxdmabuffer + +GST1_IMX2_CONF_OPTS = -Dsysroot=$(STAGING_DIR) + +ifeq ($(BR2_LINUX_KERNEL),y) +# IPU and PXP need access to imx-specific kernel headers +GST1_IMX2_DEPENDENCIES += linux +endif + +ifeq ($(BR2_PACKAGE_IMX_CODEC),y) +GST1_IMX2_DEPENDENCIES += imx-codec +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_G2D),y) +GST1_IMX2_CONF_OPTS += -Dg2d=enabled +GST1_IMX2_DEPENDENCIES += imx-gpu-g2d +else +GST1_IMX2_CONF_OPTS += -Dg2d=disabled +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_IPU),y) +GST1_IMX2_CONF_OPTS += -Dipu=enabled +else +GST1_IMX2_CONF_OPTS += -Dipu=disabled +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_MP3ENCODER),y) +GST1_IMX2_CONF_OPTS += -Dmp3encoder=enabled +else +GST1_IMX2_CONF_OPTS += -Dmp3encoder=disabled +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_PXP),y) +GST1_IMX2_CONF_OPTS += -Dpxp=enabled +else +GST1_IMX2_CONF_OPTS += -Dpxp=disabled +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC),y) +GST1_IMX2_CONF_OPTS += -Duniaudiodec=enabled +else +GST1_IMX2_CONF_OPTS += -Duniaudiodec=disabled +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_VPU),y) +GST1_IMX2_DEPENDENCIES += libimxvpuapi2 +GST1_IMX2_CONF_OPTS += -Dvpu=enabled +else +GST1_IMX2_CONF_OPTS += -Dvpu=disabled +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX2_V4L2),y) +GST1_IMX2_DEPENDENCIES += gst1-plugins-bad +GST1_IMX2_CONF_OPTS += -Dv4l2=true +else +GST1_IMX2_CONF_OPTS += -Dv4l2=false +endif + +$(eval $(meson-package))
This is version 2 of gst1-imx. Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> --- package/gstreamer1/Config.in | 1 + package/gstreamer1/gst1-imx2/Config.in | 75 +++++++++++++++++++++ package/gstreamer1/gst1-imx2/gst1-imx2.hash | 3 + package/gstreamer1/gst1-imx2/gst1-imx2.mk | 75 +++++++++++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 package/gstreamer1/gst1-imx2/Config.in create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk