Skip to contentSkip to conversation

gst1-imx: add menuconfig to select each plugin individually

PATCH New Gary Bisson 3 participants 12 messages Sep 16, 2016 – Sep 23, 2016 Arm i.MX and Layerscape

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Also making each plugin dependencies clearer with comments.

---
 package/gstreamer1/gst1-imx/Config.in   | 89 ++++++++++++++++++++++++++++-----
 package/gstreamer1/gst1-imx/gst1-imx.mk | 32 ++++++++++++
 2 files changed, 108 insertions(+), 13 deletions(-)
package/gstreamer1/gst1-imx/Config.in +76 -13
index efd5086..9f792d1 100644
@@ -1,4 +1,8 @@
-config BR2_PACKAGE_GST1_IMX
+comment "gst1-imx needs a toolchain w/ dynamic library"
+	depends on BR2_arm
+	depends on BR2_STATIC_LIBS
+
+menuconfig BR2_PACKAGE_GST1_IMX
 	bool "gst1-imx"
 	depends on BR2_arm # Only relevant for i.MX
 	depends on !BR2_STATIC_LIBS
@@ -7,18 +11,77 @@ config BR2_PACKAGE_GST1_IMX
 	  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.
 
-	  This software supports only the i.MX6 SoC family.
+	  https://github.com/Freescale/gstreamer-imx
 
-	  The IPU and PXP plugins are built when an imx-specific kernel is
-	  enabled.
-	  The V4L2 plugin is built when BR2_PACKAGE_GST1_PLUGINS_BAD is enabled.
-	  The VPU plugin is built when BR2_PACKAGE_LIBIMXVPUAPI is enabled.
-	  The EGL plugin is built when BR2_PACKAGE_IMX_GPU_VIV is enabled.
-	  The G2D plugin is built when BR2_PACKAGE_IMX_GPU_VIV_G2D is enabled.
-	  The MP3 plugin is built when BR2_PACKAGE_IMX_CODEC is enabled.
+if BR2_PACKAGE_GST1_IMX
 
-	  https://github.com/Freescale/gstreamer-imx
+config BR2_PACKAGE_GST1_IMX_EGLVISINK
+	bool "imxeglvivsink"
+	depends on BR2_PACKAGE_IMX_GPU_VIV
+	help
+	  Elements leveraging the 3D GPU
 
-comment "gst1-imx needs a toolchain w/ dynamic library"
-	depends on BR2_arm
-	depends on BR2_STATIC_LIBS
+comment "imxeglvivsink needs the Vivante 3D libraries"
+	depends on !BR2_PACKAGE_IMX_GPU_VIV
+
+config BR2_PACKAGE_GST1_IMX_G2D
+	bool "imxg2d"
+	depends on BR2_PACKAGE_IMX_GPU_VIV_G2D
+	help
+	  Elements leveraging the 2D GPU
+
+comment "imxg2d needs the Vivante 2D libraries"
+	depends on !BR2_PACKAGE_IMX_GPU_VIV_G2D
+
+config BR2_PACKAGE_GST1_IMX_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_IMX_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_IMX_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_IMX_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_IMX_VPU
+	bool "imxvpu"
+	depends on BR2_PACKAGE_LIBIMXVPUAPI
+	help
+	  Elements leveraging the VPU
+
+comment "imxvpu needs the VPU imxvpuapi library"
+	depends on !BR2_PACKAGE_LIBIMXVPUAPI
+
+config BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC
+	bool "imxv4l2videosrc"
+	select BR2_PACKAGE_GST1_PLUGINS_BAD
+	help
+	  Elements for V4L2 capture
+
+endif
package/gstreamer1/gst1-imx/gst1-imx.mk +32 -0
index 3c6b1b6..330ddc4 100644
@@ -26,6 +26,38 @@ GST1_IMX_DEPENDENCIES += linux
 GST1_IMX_CONF_OPTS += --kernel-headers="$(LINUX_DIR)/include"
 endif
 
+ifneq ($(BR2_PACKAGE_GST1_IMX_EGLVISINK),y)
+GST1_IMX_CONF_OPTS += --disable-eglvivsink
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_G2D),y)
+GST1_IMX_CONF_OPTS += --disable-g2d
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_IPU),y)
+GST1_IMX_CONF_OPTS += --disable-ipu
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_MP3ENCODER),y)
+GST1_IMX_CONF_OPTS += --disable-mp3encoder
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_PXP),y)
+GST1_IMX_CONF_OPTS += --disable-pxp
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_UNIAUDIODEC),y)
+GST1_IMX_CONF_OPTS += --disable-uniaudiodec
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_VPU),y)
+GST1_IMX_CONF_OPTS += --disable-vpu
+endif
+
+ifneq ($(BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC),y)
+GST1_IMX_CONF_OPTS += --disable-v4l2src
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD),y)
 GST1_IMX_DEPENDENCIES += gst1-plugins-bad
 endif
Signature · 1 line
2.9.3
#1 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hello Gary,

Quoted 7 lines · Gary Bisson

Also making each plugin dependencies clearer with comments.

---
 package/gstreamer1/gst1-imx/Config.in   | 89 ++++++++++++++++++++++++++++-----
 package/gstreamer1/gst1-imx/gst1-imx.mk | 32 ++++++++++++
 2 files changed, 108 insertions(+), 13 deletions(-)

Thanks for the patch. I have a few questions/comments, see below.

package/gstreamer1/gst1-imx/Config.in config BR2_PACKAGE_GST1_IMX · line 22

Quoted 5 lines
package/gstreamer1/gst1-imx/Config.in +5 -0
+config BR2_PACKAGE_GST1_IMX_EGLVISINK
+	bool "imxeglvivsink"
+	depends on BR2_PACKAGE_IMX_GPU_VIV
+	help
+	  Elements leveraging the 3D GPU

Instead of doing "depends on" everywhere, can we use "select" in the cases where the dependencies of the package to select are not too crazy ?

package/gstreamer1/gst1-imx/gst1-imx.mk GST1_IMX_DEPENDENCIES += linux · line 31

Quoted 3 lines
package/gstreamer1/gst1-imx/gst1-imx.mk +3 -0
+ifneq ($(BR2_PACKAGE_GST1_IMX_EGLVISINK),y)
+GST1_IMX_CONF_OPTS += --disable-eglvivsink
+endif

For all those options, please use the standard Buildroot way of expressing dependencies:

ifeq ($(BR2_PACKAGE_FOO),y)
BAZ_CONF_OPTS += --enable-foo
BAZ_DEPENDENCIES += foo
else
BAZ_CONF_OPTS += --disable-foo
endif

i.e:

1/ Add an explicit --enable-<foo> for each option

2/ Group the --enable/--disable passing with the addition of the
dependency

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hi Thomas, all,

Quoted 14 lines · Thomas Petazzoni

Hello Gary,

Quoted 7 lines · Gary Bisson

Also making each plugin dependencies clearer with comments.

---
 package/gstreamer1/gst1-imx/Config.in   | 89 ++++++++++++++++++++++++++++-----
 package/gstreamer1/gst1-imx/gst1-imx.mk | 32 ++++++++++++
 2 files changed, 108 insertions(+), 13 deletions(-)

Thanks for the patch. I have a few questions/comments, see below.

Quoted 9 lines

package/gstreamer1/gst1-imx/Config.in config BR2_PACKAGE_GST1_IMX · line 22

Quoted 5 lines
package/gstreamer1/gst1-imx/Config.in +5 -0
+config BR2_PACKAGE_GST1_IMX_EGLVISINK
+	bool "imxeglvivsink"
+	depends on BR2_PACKAGE_IMX_GPU_VIV
+	help
+	  Elements leveraging the 3D GPU

Instead of doing "depends on" everywhere, can we use "select" in the cases where the dependencies of the package to select are not too crazy ?

Well in most cases it isn't possible, here are some details:
- BR2_PACKAGE_IMX_GPU_VIV and BR2_PACKAGE_IMX_GPU_VIV_G2D depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which isn't selectable.
- We can't select BR2_LINUX_KERNEL since it needs to be a i.MX kernel.
- BR2_PACKAGE_LIBIMXVPUAPI depends on the i.MX SoC being used which cannot be selectable (MX5 or MX6)

I guess I can select IMX_CODEC though, I'll add that to the V2.

Quoted 14 lines

package/gstreamer1/gst1-imx/gst1-imx.mk GST1_IMX_DEPENDENCIES += linux · line 31

Quoted 3 lines
package/gstreamer1/gst1-imx/gst1-imx.mk +3 -0
+ifneq ($(BR2_PACKAGE_GST1_IMX_EGLVISINK),y)
+GST1_IMX_CONF_OPTS += --disable-eglvivsink
+endif

For all those options, please use the standard Buildroot way of expressing dependencies:

ifeq ($(BR2_PACKAGE_FOO),y)
BAZ_CONF_OPTS += --enable-foo
BAZ_DEPENDENCIES += foo
else
BAZ_CONF_OPTS += --disable-foo
endif

Quoted 3 lines

i.e:

1/ Add an explicit --enable-<foo> for each option

This was on purpose since the package only look for --disable-foo options. All the plugins are enabled by default, see patch in package:
https://github.com/Freescale/gstreamer-imx/commit/989ab048

I can still do:
ifeq ($(BR2_PACKAGE_FOO),y)
else
BAZ_CONF_OPTS += --disable-foo
endif

But my opinion is that --enable-foo is misleading.

Quoted 2 lines

2/ Group the --enable/--disable passing with the addition of the
dependency

Ok.

Thanks for your feedback.

Regards,
Gary

#3 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hello,

Quoted 6 lines · Gary Bisson

Well in most cases it isn't possible, here are some details:
- BR2_PACKAGE_IMX_GPU_VIV and BR2_PACKAGE_IMX_GPU_VIV_G2D depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which isn't selectable.
- We can't select BR2_LINUX_KERNEL since it needs to be a i.MX kernel.
- BR2_PACKAGE_LIBIMXVPUAPI depends on the i.MX SoC being used which cannot be selectable (MX5 or MX6)

OK, indeed many of the sub-options cannot "select" their dependencies.

Quoted 1 line

I guess I can select IMX_CODEC though, I'll add that to the V2.

OK. Another possibility is to say that all sub-options should use "depends on", for consistency. I don't have a strong feeling about this either way.

Quoted 8 lines
Quoted 1 line

1/ Add an explicit --enable-<foo> for each option

This was on purpose since the package only look for --disable-foo options. All the plugins are enabled by default, see patch in package:
https://github.com/Freescale/gstreamer-imx/commit/989ab048

I can still do:
ifeq ($(BR2_PACKAGE_FOO),y)

Here add the dependency addition.

Quoted 5 lines

else
BAZ_CONF_OPTS += --disable-foo
endif

But my opinion is that --enable-foo is misleading.

Why? There are two options here:

1/ --enable-<foo> doesn't exist and would cause a failure if passed.
In this case indeed, don't pass it. And add a quick comment above, like "# There's no --enable-<foo> option".

2/ --enable-<foo> exists. In this case, you should pass it even if the
default is to have the feature enabled. We indeed want to be explicit in Buildroot when enabling/disabling features.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hi Thomas, all,

Quoted 11 lines · Thomas Petazzoni

Hello,

Quoted 6 lines · Gary Bisson

Well in most cases it isn't possible, here are some details:
- BR2_PACKAGE_IMX_GPU_VIV and BR2_PACKAGE_IMX_GPU_VIV_G2D depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which isn't selectable.
- We can't select BR2_LINUX_KERNEL since it needs to be a i.MX kernel.
- BR2_PACKAGE_LIBIMXVPUAPI depends on the i.MX SoC being used which cannot be selectable (MX5 or MX6)

Quoted 7 lines

OK, indeed many of the sub-options cannot "select" their dependencies.

Quoted 1 line

I guess I can select IMX_CODEC though, I'll add that to the V2.

OK. Another possibility is to say that all sub-options should use "depends on", for consistency. I don't have a strong feeling about this either way.

I'm ok with a few select, it sounds more user-friendly than depends-only but I don't have a strong opinion on it either.

Quoted 15 lines
Quoted 8 lines
Quoted 1 line

1/ Add an explicit --enable-<foo> for each option

This was on purpose since the package only look for --disable-foo options. All the plugins are enabled by default, see patch in package:
https://github.com/Freescale/gstreamer-imx/commit/989ab048

I can still do:
ifeq ($(BR2_PACKAGE_FOO),y)

Here add the dependency addition.

Quoted 4 lines

else
BAZ_CONF_OPTS += --disable-foo
endif

Quoted 7 lines
Quoted 1 line

But my opinion is that --enable-foo is misleading.

Why? There are two options here:

1/ --enable-<foo> doesn't exist and would cause a failure if passed.
In this case indeed, don't pass it. And add a quick comment above, like "# There's no --enable-<foo> option".

No, as pointed above in the package repo, the --enable-foo doesn't exist and is discarded. It doesn't introduce any error, but it is just that we are passing arguments that we know are discarded, is it really necessary? I might go with the comment although there's no failure if the option is passed, what do you think?

Regards,
Gary

#5 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hello,

Quoted 5 lines · Gary Bisson

No, as pointed above in the package repo, the --enable-foo doesn't exist and is discarded. It doesn't introduce any error, but it is just that we are passing arguments that we know are discarded, is it really necessary? I might go with the comment although there's no failure if the option is passed, what do you think?

OK, in this case, not passing --enable and having a comment sounds good.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#6 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

In reply to Gary Bisson
Quoted 26 lines · Gary Bisson

Hi Thomas, all,

Quoted 14 lines · Thomas Petazzoni
Quoted 14 lines

Hello Gary,

Quoted 7 lines · Gary Bisson
Quoted 7 lines

Also making each plugin dependencies clearer with comments.

---
 package/gstreamer1/gst1-imx/Config.in   | 89 ++++++++++++++++++++++++++++-----
 package/gstreamer1/gst1-imx/gst1-imx.mk | 32 ++++++++++++
 2 files changed, 108 insertions(+), 13 deletions(-)

Thanks for the patch. I have a few questions/comments, see below.

Quoted 9 lines
Quoted 9 lines
Quoted 5 lines

package/gstreamer1/gst1-imx/Config.in config BR2_PACKAGE_GST1_IMX · line 22

Quoted 5 lines
package/gstreamer1/gst1-imx/Config.in +5 -0
+config BR2_PACKAGE_GST1_IMX_EGLVISINK
+	bool "imxeglvivsink"
+	depends on BR2_PACKAGE_IMX_GPU_VIV
+	help
+	  Elements leveraging the 3D GPU

Instead of doing "depends on" everywhere, can we use "select" in the cases where the dependencies of the package to select are not too crazy ?

Quoted 6 lines

Well in most cases it isn't possible, here are some details:
- BR2_PACKAGE_IMX_GPU_VIV and BR2_PACKAGE_IMX_GPU_VIV_G2D depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which isn't selectable.
- We can't select BR2_LINUX_KERNEL since it needs to be a i.MX kernel.
- BR2_PACKAGE_LIBIMXVPUAPI depends on the i.MX SoC being used which cannot be selectable (MX5 or MX6)

The logical thing to do would be to select BR2_PACKAGE_IMX_GPU_VIV and depend
on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q. The kernel you obviously can't select. And for libimxvpuapi you can depend on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU. That way, the dependencies are all gathered in the freescale-imx menu. And looking at it that way, you will see that they are actually architecture dependencies, so no need for comments.

And actually, looking at it that way: it might make sense to let the whole
package depend on BR2_PACKAGE_FREESCALE_IMX (with appropriate comment), so you can add "architecture" dependencies, e.g. mx25 doesn't have an IPU. Though maybe that's going a bit too far.

Quoted 2 lines

I guess I can select IMX_CODEC though, I'll add that to the V2.

IMX_CODEC also depends on BR2_PACKAGE_FREESCALE_IMX, which you can't select
(because otherwise the platform choice would get some random incorrect value).

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#7 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hi Arnout, All,

Quoted 15 lines · Arnout Vandecappelle

<snip>

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

Instead of doing "depends on" everywhere, can we use "select" in the
cases where the dependencies of the package to select are not too
crazy ?

Quoted 8 lines

Well in most cases it isn't possible, here are some details:
- BR2_PACKAGE_IMX_GPU_VIV and BR2_PACKAGE_IMX_GPU_VIV_G2D depends on
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which isn't selectable.
- We can't select BR2_LINUX_KERNEL since it needs to be a i.MX kernel.
- BR2_PACKAGE_LIBIMXVPUAPI depends on the i.MX SoC being used which cannot be selectable (MX5 or MX6)

Quoted 10 lines

The logical thing to do would be to select BR2_PACKAGE_IMX_GPU_VIV and depend
on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q. The kernel you obviously can't
select. And for libimxvpuapi you can depend on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU. That way, the dependencies are all gathered
in the freescale-imx menu. And looking at it that way, you will see that they
are actually architecture dependencies, so no need for comments.

I think we can't, here is what I've tried for the EGL/G2D plugins:

config BR2_PACKAGE_GST1_IMX_EGLVISINK
bool "imxeglvivsink"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q select BR2_PACKAGE_IMX_GPU_VIV
help
Elements leveraging the 3D GPU

comment "imxeglvivsink only works with i.MX6 3D GPU"
depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q

config BR2_PACKAGE_GST1_IMX_G2D
bool "imxg2d"
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q select BR2_PACKAGE_IMX_GPU_VIV
select BR2_PACKAGE_IMX_GPU_VIV_G2D
help
Elements leveraging the 2D GPU

comment "imxg2d only works with i.MX6 2D GPU"
depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q

The above gives:
package/mesa3d/Config.in:173:error: recursive dependency detected!
package/mesa3d/Config.in:173: symbol BR2_PACKAGE_MESA3D_OPENGL_EGL is
selected by BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL
package/mesa3d/Config.in:92: symbol
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL depends on BR2_PACKAGE_MESA3D
package/mesa3d/Config.in:1: symbol BR2_PACKAGE_MESA3D is selected by
BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV
package/x11r7/xdriver_xf86-video-imx-viv/Config.in:1: symbol
BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV depends on BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11
package/freescale-imx/imx-gpu-viv/Config.in:34: symbol
BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 is part of choice <choice>
package/freescale-imx/imx-gpu-viv/Config.in:27: choice <choice> contains
symbol <choice>
package/freescale-imx/imx-gpu-viv/Config.in:27: choice <choice> contains
symbol BR2_PACKAGE_IMX_GPU_VIV
package/freescale-imx/imx-gpu-viv/Config.in:5: symbol
BR2_PACKAGE_IMX_GPU_VIV is selected by BR2_PACKAGE_GST1_IMX_EGLVISINK
package/gstreamer1/gst1-imx/Config.in:18: symbol
BR2_PACKAGE_GST1_IMX_EGLVISINK depends on BR2_PACKAGE_GSTREAMER1
package/gstreamer1/gstreamer1/Config.in:5: symbol
BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
package/webkitgtk/Config.in:57: symbol BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
depends on BR2_PACKAGE_WEBKITGTK
package/webkitgtk/Config.in:20: symbol BR2_PACKAGE_WEBKITGTK is selected
by BR2_PACKAGE_MIDORI
package/midori/Config.in:6: symbol BR2_PACKAGE_MIDORI depends on
BR2_PACKAGE_LIBGTK3
package/libgtk3/Config.in:13: symbol BR2_PACKAGE_LIBGTK3 depends on
BR2_PACKAGE_HAS_LIBEGL_WAYLAND
package/opengl/libegl/Config.in:4: symbol
BR2_PACKAGE_HAS_LIBEGL_WAYLAND is selected by BR2_PACKAGE_MESA3D_OPENGL_EGL

Any thoughts? I think the issue comes with the graphics backend selection (X11 or FB). Since I'm no Kconfig expert, I'd rather stick to the depends option.

Quoted 6 lines
Quoted 1 line

I guess I can select IMX_CODEC though, I'll add that to the V2.

IMX_CODEC also depends on BR2_PACKAGE_FREESCALE_IMX, which you can't select
(because otherwise the platform choice would get some random incorrect value).

Same, we actually can't select BR2_PACKAGE_FREESCALE_IMX, we get the same recursive dependency issue.

What about we stick with the depends for now?

My V2 will take care of the dependencies inside the 'ifeq' statements in gst1-imx.mk. BTW, doing it as suggested kind of makes the code redundant since several plugins might have the same dependency, like:

ifeq ($(BR2_PACKAGE_GST1_IMX_MP3ENCODER),y)
# There's no --enable-mp3encoder option
GST1_IMX_DEPENDENCIES += imx-codec
else
GST1_IMX_CONF_OPTS += --disable-mp3encoder
endif

ifeq ($(BR2_PACKAGE_GST1_IMX_UNIAUDIODEC),y)
# There's no --enable-uniaudiodec option
GST1_IMX_DEPENDENCIES += imx-codec
else
GST1_IMX_CONF_OPTS += --disable-uniaudiodec
endif

Is that ok? I know it doesn't bring any issue, just look a little redundant.

Regards,
Gary

#8 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hello,

Quoted 1 line · Gary Bisson

What about we stick with the depends for now?

It's fine for me.

Quoted 18 lines

My V2 will take care of the dependencies inside the 'ifeq' statements in gst1-imx.mk. BTW, doing it as suggested kind of makes the code redundant since several plugins might have the same dependency, like:

ifeq ($(BR2_PACKAGE_GST1_IMX_MP3ENCODER),y)
# There's no --enable-mp3encoder option
GST1_IMX_DEPENDENCIES += imx-codec
else
GST1_IMX_CONF_OPTS += --disable-mp3encoder
endif

ifeq ($(BR2_PACKAGE_GST1_IMX_UNIAUDIODEC),y)
# There's no --enable-uniaudiodec option
GST1_IMX_DEPENDENCIES += imx-codec
else
GST1_IMX_CONF_OPTS += --disable-uniaudiodec
endif

Quoted 2 lines

Is that ok? I know it doesn't bring any issue, just look a little redundant.

If only a single dependency is needed for those codecs, is it really necessary to have different options to enable/disable them? How much space do they take each?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#9 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hi Thomas,

Quoted 26 lines · Thomas Petazzoni

Hello,

Quoted 1 line · Gary Bisson

What about we stick with the depends for now?

It's fine for me.

Quoted 18 lines

My V2 will take care of the dependencies inside the 'ifeq' statements in gst1-imx.mk. BTW, doing it as suggested kind of makes the code redundant since several plugins might have the same dependency, like:

ifeq ($(BR2_PACKAGE_GST1_IMX_MP3ENCODER),y)
# There's no --enable-mp3encoder option
GST1_IMX_DEPENDENCIES += imx-codec
else
GST1_IMX_CONF_OPTS += --disable-mp3encoder
endif

ifeq ($(BR2_PACKAGE_GST1_IMX_UNIAUDIODEC),y)
# There's no --enable-uniaudiodec option
GST1_IMX_DEPENDENCIES += imx-codec
else
GST1_IMX_CONF_OPTS += --disable-uniaudiodec
endif

Quoted 6 lines
Quoted 2 lines

Is that ok? I know it doesn't bring any issue, just look a little redundant.

If only a single dependency is needed for those codecs, is it really necessary to have different options to enable/disable them? How much space do they take each?

They actually end up in the same libgstimxaudio.so file. But the problem of redundancy remains for the other plugins as well:
- Both eglvivsink and g2d depend on imx-gpu-viv
- Both PXP and IPU depend on the kernel headers

Regards,
Gary

#10 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hello,

Quoted 8 lines · Gary Bisson
Quoted 3 lines

If only a single dependency is needed for those codecs, is it really necessary to have different options to enable/disable them? How much space do they take each?

They actually end up in the same libgstimxaudio.so file. But the problem of redundancy remains for the other plugins as well:
- Both eglvivsink and g2d depend on imx-gpu-viv
- Both PXP and IPU depend on the kernel headers

Right. OK, then maybe we need to keep your original proposal in the end. Sorry for changing my mind so often :/

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#11 lore raw

PATCH 1/1 gst1-imx: add menuconfig to select each plugin individually

Hi Thomas,

Quoted 8 lines · Thomas Petazzoni

Hello,

Quoted 4 lines · Gary Bisson
Quoted 3 lines

If only a single dependency is needed for those codecs, is it really necessary to have different options to enable/disable them? How much space do they take each?

Quoted 7 lines
Quoted 4 lines

They actually end up in the same libgstimxaudio.so file. But the problem of redundancy remains for the other plugins as well:
- Both eglvivsink and g2d depend on imx-gpu-viv
- Both PXP and IPU depend on the kernel headers

Right. OK, then maybe we need to keep your original proposal in the end. Sorry for changing my mind so often :/

No problem. So, just to be sure we are on the same page, I need to make a V2 with 'ifeq' + --enable-foo comment.

I can add the gst1-plugins-bad dependency to the V4L2 plugin though, that is the only dependency that is not shared.

Let me know if there's anything I should do.

Regards,
Gary