* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
@ 2016-09-16 13:10 Gary Bisson
2016-09-20 19:04 ` Thomas Petazzoni
0 siblings, 1 reply; 12+ messages in thread
From: Gary Bisson @ 2016-09-16 13:10 UTC (permalink / raw)
To: buildroot
Also making each plugin dependencies clearer with comments.
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
package/gstreamer1/gst1-imx/Config.in | 89 ++++++++++++++++++++++++++++-----
package/gstreamer1/gst1-imx/gst1-imx.mk | 32 ++++++++++++
2 files changed, 108 insertions(+), 13 deletions(-)
diff --git a/package/gstreamer1/gst1-imx/Config.in b/package/gstreamer1/gst1-imx/Config.in
index efd5086..9f792d1 100644
--- a/package/gstreamer1/gst1-imx/Config.in
+++ b/package/gstreamer1/gst1-imx/Config.in
@@ -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
diff --git a/package/gstreamer1/gst1-imx/gst1-imx.mk b/package/gstreamer1/gst1-imx/gst1-imx.mk
index 3c6b1b6..330ddc4 100644
--- a/package/gstreamer1/gst1-imx/gst1-imx.mk
+++ b/package/gstreamer1/gst1-imx/gst1-imx.mk
@@ -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
--
2.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-16 13:10 [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually Gary Bisson
@ 2016-09-20 19:04 ` Thomas Petazzoni
2016-09-20 22:43 ` Gary Bisson
0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2016-09-20 19:04 UTC (permalink / raw)
To: buildroot
Hello Gary,
On Fri, 16 Sep 2016 15:10:38 +0200, Gary Bisson wrote:
> Also making each plugin dependencies clearer with comments.
>
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> ---
> 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.
> +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 ?
> +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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-20 19:04 ` Thomas Petazzoni
@ 2016-09-20 22:43 ` Gary Bisson
2016-09-21 4:02 ` Thomas Petazzoni
2016-09-22 21:51 ` Arnout Vandecappelle
0 siblings, 2 replies; 12+ messages in thread
From: Gary Bisson @ 2016-09-20 22:43 UTC (permalink / raw)
To: buildroot
Hi Thomas, all,
On Tue, Sep 20, 2016 at 09:04:25PM +0200, Thomas Petazzoni wrote:
> Hello Gary,
>
> On Fri, 16 Sep 2016 15:10:38 +0200, Gary Bisson wrote:
> > Also making each plugin dependencies clearer with comments.
> >
> > Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> > ---
> > 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.
>
>
> > +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.
> > +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
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.
> 2/ Group the --enable/--disable passing with the addition of the
> dependency
Ok.
Thanks for your feedback.
Regards,
Gary
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-20 22:43 ` Gary Bisson
@ 2016-09-21 4:02 ` Thomas Petazzoni
2016-09-21 8:32 ` Gary Bisson
2016-09-22 21:51 ` Arnout Vandecappelle
1 sibling, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2016-09-21 4:02 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 21 Sep 2016 00:43:55 +0200, Gary Bisson wrote:
> 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.
> 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.
> > 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.
> 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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-21 4:02 ` Thomas Petazzoni
@ 2016-09-21 8:32 ` Gary Bisson
2016-09-21 9:03 ` Thomas Petazzoni
0 siblings, 1 reply; 12+ messages in thread
From: Gary Bisson @ 2016-09-21 8:32 UTC (permalink / raw)
To: buildroot
Hi Thomas, all,
On Wed, Sep 21, 2016 at 06:02:13AM +0200, Thomas Petazzoni wrote:
> Hello,
>
> On Wed, 21 Sep 2016 00:43:55 +0200, Gary Bisson wrote:
>
> > 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.
>
> > 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.
> > > 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.
>
> > 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".
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
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-21 8:32 ` Gary Bisson
@ 2016-09-21 9:03 ` Thomas Petazzoni
0 siblings, 0 replies; 12+ messages in thread
From: Thomas Petazzoni @ 2016-09-21 9:03 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 21 Sep 2016 10:32:58 +0200, Gary Bisson wrote:
> 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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-20 22:43 ` Gary Bisson
2016-09-21 4:02 ` Thomas Petazzoni
@ 2016-09-22 21:51 ` Arnout Vandecappelle
2016-09-23 12:58 ` Gary Bisson
1 sibling, 1 reply; 12+ messages in thread
From: Arnout Vandecappelle @ 2016-09-22 21:51 UTC (permalink / raw)
To: buildroot
On 21-09-16 00:43, Gary Bisson wrote:
> Hi Thomas, all,
>
> On Tue, Sep 20, 2016 at 09:04:25PM +0200, Thomas Petazzoni wrote:
>> > Hello Gary,
>> >
>> > On Fri, 16 Sep 2016 15:10:38 +0200, Gary Bisson wrote:
>>> > > Also making each plugin dependencies clearer with comments.
>>> > >
>>> > > Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
>>> > > ---
>>> > > 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.
>> >
>> >
>>> > > +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)
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.
>
> 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
--
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
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-22 21:51 ` Arnout Vandecappelle
@ 2016-09-23 12:58 ` Gary Bisson
2016-09-23 13:13 ` Thomas Petazzoni
0 siblings, 1 reply; 12+ messages in thread
From: Gary Bisson @ 2016-09-23 12:58 UTC (permalink / raw)
To: buildroot
Hi Arnout, All,
On Thu, Sep 22, 2016 at 11:51:00PM +0200, Arnout Vandecappelle wrote:
> <snip>
> >> > 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)
>
> 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.
> > 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
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-23 12:58 ` Gary Bisson
@ 2016-09-23 13:13 ` Thomas Petazzoni
2016-09-23 13:40 ` Gary Bisson
0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2016-09-23 13:13 UTC (permalink / raw)
To: buildroot
Hello,
On Fri, 23 Sep 2016 14:58:35 +0200, Gary Bisson wrote:
> What about we stick with the depends for now?
It's fine for me.
> 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.
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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-23 13:13 ` Thomas Petazzoni
@ 2016-09-23 13:40 ` Gary Bisson
2016-09-23 14:25 ` Thomas Petazzoni
0 siblings, 1 reply; 12+ messages in thread
From: Gary Bisson @ 2016-09-23 13:40 UTC (permalink / raw)
To: buildroot
Hi Thomas,
On Fri, Sep 23, 2016 at 03:13:06PM +0200, Thomas Petazzoni wrote:
> Hello,
>
> On Fri, 23 Sep 2016 14:58:35 +0200, Gary Bisson wrote:
>
> > What about we stick with the depends for now?
>
> It's fine for me.
>
> > 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.
>
> 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
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-23 13:40 ` Gary Bisson
@ 2016-09-23 14:25 ` Thomas Petazzoni
2016-09-23 14:29 ` Gary Bisson
0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2016-09-23 14:25 UTC (permalink / raw)
To: buildroot
Hello,
On Fri, 23 Sep 2016 15:40:47 +0200, Gary Bisson wrote:
> > 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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually
2016-09-23 14:25 ` Thomas Petazzoni
@ 2016-09-23 14:29 ` Gary Bisson
0 siblings, 0 replies; 12+ messages in thread
From: Gary Bisson @ 2016-09-23 14:29 UTC (permalink / raw)
To: buildroot
Hi Thomas,
On Fri, Sep 23, 2016 at 04:25:42PM +0200, Thomas Petazzoni wrote:
> Hello,
>
> On Fri, 23 Sep 2016 15:40:47 +0200, Gary Bisson wrote:
>
> > > 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 :/
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
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2016-09-23 14:29 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-16 13:10 [Buildroot] [PATCH] gst1-imx: add menuconfig to select each plugin individually Gary Bisson
2016-09-20 19:04 ` Thomas Petazzoni
2016-09-20 22:43 ` Gary Bisson
2016-09-21 4:02 ` Thomas Petazzoni
2016-09-21 8:32 ` Gary Bisson
2016-09-21 9:03 ` Thomas Petazzoni
2016-09-22 21:51 ` Arnout Vandecappelle
2016-09-23 12:58 ` Gary Bisson
2016-09-23 13:13 ` Thomas Petazzoni
2016-09-23 13:40 ` Gary Bisson
2016-09-23 14:25 ` Thomas Petazzoni
2016-09-23 14:29 ` Gary Bisson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.