Skip to contentSkip to conversation

gst1-plugins-imx: add package

PATCH New Gary Bisson 4 participants 11 messages Oct 5, 2014 – Oct 28, 2014 Arm i.MX and Layerscape

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Open-source GStreamer 1.0 plugins for i.MX platforms. More info at https://github.com/Freescale/gstreamer-imx

---

This patch has been tested using an i.MX6Q SabreLite (nitrogen6x config) along with the usual Tears of Steel movie in 1080p:
http://media.xiph.org/mango/tears_of_steel_1080p.webm

Below are the commands used to test the different sinks:

$ gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webm
$ gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
matroskademux ! imxvpudec ! imxipusink
$ gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
matroskademux ! imxvpudec ! imxeglvivsink

The toolchain used was the Sourcery CodeBench 2014.05. The video above also requires the following extra configuration in order to demux the content:
BR2_PACKAGE_GST1_PLUGINS_GOOD=y BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y

I'm not fond of all the dependencies of this package but I couldn't seem to find a way to do it differently. A try has been made to select the Vivante package automatically but it requires doing a select of BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which doesn't work. Let me know if you'd like another mechanism to be able to select this plugin.

Thanks,
Gary

 package/gstreamer1/Config.in                       |  1 +
 package/gstreamer1/gst1-plugins-imx/Config.in      | 35 +++++++++++++
 .../gst1-plugins-imx/gst1-plugins-imx.mk           | 57 ++++++++++++++++++++++
 3 files changed, 93 insertions(+)
 create mode 100644 package/gstreamer1/gst1-plugins-imx/Config.in
 create mode 100644 package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk
package/gstreamer1/Config.in +1 -0
index fe0ad48..d43e4a6 100644
@@ -6,6 +6,7 @@ source "package/gstreamer1/gst1-plugins-base/Config.in"
 source "package/gstreamer1/gst1-plugins-good/Config.in"
 source "package/gstreamer1/gst1-plugins-bad/Config.in"
 source "package/gstreamer1/gst1-plugins-ugly/Config.in"
+source "package/gstreamer1/gst1-plugins-imx/Config.in"
 source "package/gstreamer1/gst1-libav/Config.in"
 source "package/gstreamer1/gst-omx/Config.in"
 endif
package/gstreamer1/gst1-plugins-imx/Config.in new file +35 -0
new file mode 100644
index 0000000..7c8a467
@@ -0,0 +1,35 @@
+comment "gst1-plugins-imx needs an imx-specific Linux kernel to be built"
+	depends on BR2_arm && !BR2_LINUX_KERNEL
+
+comment "gst1-plugins-imx needs an (e)glibc toolchain"
+	depends on BR2_arm
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
+
+comment "gst1-plugins-imx requires Freescale VPU wrapper libraries"
+	depends on BR2_arm
+	depends on !BR2_PACKAGE_LIBFSLVPUWRAP
+
+comment "gst1-plugins-imx requires Freescale GPU libraries for i.MX6"
+	depends on BR2_arm
+	depends on BR2_PACKAGE_LIBFSLVPUWRAP
+	depends on !BR2_PACKAGE_GPU_VIV_BIN_MX6Q
+
+config BR2_PACKAGE_GST1_PLUGINS_IMX
+	bool "gst1-plugins-imx"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_arm # Only relevant for i.MX
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_PACKAGE_GPU_VIV_BIN_MX6Q
+	depends on BR2_PACKAGE_LIBFSLVPUWRAP
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	help
+	  This is a set of GStreamer 1.0 plugins for plugins for Freescale's
+	  i.MX platform, with emphasis on video en/decoding using the i.MX
+	  VPU engine.
+
+	  Currently, this software has been tested only with the i.MX6 SoC
+	  family.
+
+	  The software as a whole is currently in beta stage.
+
+	  More info at https://github.com/Freescale/gstreamer-imx
package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file +57 -0

57 lines not on this page · raw message

Signature · 1 line
2.1.1
#1 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Dear Gary, Peter,

Peter Seiderer submitted a different patch to add the same package back in March. Arnout and I compared them, see below our findings.

Quoted 18 lines · Gary Bisson

Open-source GStreamer 1.0 plugins for i.MX platforms. More info at https://github.com/Freescale/gstreamer-imx

---

This patch has been tested using an i.MX6Q SabreLite (nitrogen6x config) along with the usual Tears of Steel movie in 1080p:
http://media.xiph.org/mango/tears_of_steel_1080p.webm

Below are the commands used to test the different sinks:

$ gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webm
$ gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
matroskademux ! imxvpudec ! imxipusink
$ gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
matroskademux ! imxvpudec ! imxeglvivsink
Quoted 4 lines

The toolchain used was the Sourcery CodeBench 2014.05. The video above also requires the following extra configuration in order to demux the content:
BR2_PACKAGE_GST1_PLUGINS_GOOD=y BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y

Thanks for providing details on how to test this.

Except that I'm in D?sseldorf for the Buildroot Developers Days right now and have no board with me for testing...

Quoted 22 lines

I'm not fond of all the dependencies of this package but I couldn't seem to find a way to do it differently. A try has been made to select the Vivante package automatically but it requires doing a select of BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q which doesn't work. Let me know if you'd like another mechanism to be able to select this plugin.

Thanks,
Gary

  package/gstreamer1/Config.in                       |  1 +
  package/gstreamer1/gst1-plugins-imx/Config.in      | 35 +++++++++++++
  .../gst1-plugins-imx/gst1-plugins-imx.mk           | 57 ++++++++++++++++++++++
  3 files changed, 93 insertions(+)

create mode 100644 package/gstreamer1/gst1-plugins-imx/Config.in create mode 100644 package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk

package/gstreamer1/Config.in +0 -0
index fe0ad48..d43e4a6 100644

package/gstreamer1/Config.in source "package/gstreamer1/gst1-plugins-base/Config.in" · line 9

Quoted 4 lines
package/gstreamer1/Config.in +1 -0
@@ -6,6 +6,7 @@ source "package/gstreamer1/gst1-plugins-base/Config.in"
  source "package/gstreamer1/gst1-plugins-good/Config.in"
  source "package/gstreamer1/gst1-plugins-bad/Config.in"
  source "package/gstreamer1/gst1-plugins-ugly/Config.in"
+source "package/gstreamer1/gst1-plugins-imx/Config.in"

The package name is consistent with the other gst1 plugins. To me, This is better than the name chosen by Peter Seiderer (gstreamer1-imx).

Quoted 14 lines
package/gstreamer1/Config.in +0 -0
  source "package/gstreamer1/gst1-libav/Config.in"
  source "package/gstreamer1/gst-omx/Config.in"
  endif
package/gstreamer1/gst1-plugins-imx/Config.in new file +5 -0
new file mode 100644
index 0000000..7c8a467
@@ -0,0 +1,35 @@
+comment "gst1-plugins-imx needs an imx-specific Linux kernel to be built"
+	depends on BR2_arm && !BR2_LINUX_KERNEL
+
+comment "gst1-plugins-imx needs an (e)glibc toolchain"
+	depends on BR2_arm

package/gstreamer1/gst1-plugins-imx/Config.in line 15

Quoted 10 lines
package/gstreamer1/gst1-plugins-imx/Config.in new file +10 -0
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
+
+comment "gst1-plugins-imx requires Freescale VPU wrapper libraries"
+	depends on BR2_arm
+	depends on !BR2_PACKAGE_LIBFSLVPUWRAP
+
+comment "gst1-plugins-imx requires Freescale GPU libraries for i.MX6"
+	depends on BR2_arm
+	depends on BR2_PACKAGE_LIBFSLVPUWRAP
+	depends on !BR2_PACKAGE_GPU_VIV_BIN_MX6Q

It would be better to have only one comment showing all the dependencies at once to avoid cluttering the menuconfig screen when the dependencies are not met. Also, please format it according to the guidelines in
http://nightly.buildroot.org/manual.html#dependencies-target-toolchain-options

BTW, the last warning should be shown regardless of the value of BR2_PACKAGE_LIBFSLVPUWRAP, nope?

package/gstreamer1/gst1-plugins-imx/Config.in line 24

Quoted 9 lines
package/gstreamer1/gst1-plugins-imx/Config.in new file +9 -0
+
+config BR2_PACKAGE_GST1_PLUGINS_IMX
+	bool "gst1-plugins-imx"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_arm # Only relevant for i.MX
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_PACKAGE_GPU_VIV_BIN_MX6Q
+	depends on BR2_PACKAGE_LIBFSLVPUWRAP
+	select BR2_PACKAGE_GST1_PLUGINS_BASE

Your depends + selects and Peter's ones are pretty different. Here are Peter's:

package/gstreamer1/gst1-plugins-imx/Config.in line 31

Quoted 7 lines
package/gstreamer1/gst1-plugins-imx/Config.in new file +7 -0
+	depends on BR2_LINUX_KERNEL # imx-lib
+	depends on BR2_arm # Only relevant for i.MX
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_LIBFSLVPUWRAP
+	select BR2_PACKAGE_IMX_LIB
+	select BR2_PACKAGE_LIBFSLPARSER
+	select BR2_PACKAGE_LIBFSLCODEC

According to Gary, (e)glibc is needed. Peter, did you build-test with uClibc (or musl)?

How about imx-lib, libfslparser and libfslcodec?

It would be great if you could have a list that really matches the package. It's probably going to be a mix of the two, but I don't know exactly which pieces should be picked.

package/gstreamer1/gst1-plugins-imx/Config.in line 33

Quoted 9 lines
package/gstreamer1/gst1-plugins-imx/Config.in new file +9 -0
+	help
+	  This is a set of GStreamer 1.0 plugins for plugins for Freescale's
+	  i.MX platform, with emphasis on video en/decoding using the i.MX
+	  VPU engine.
+
+	  Currently, this software has been tested only with the i.MX6 SoC
+	  family.
+
+	  The software as a whole is currently in beta stage.

Some of Peter's comments are really informative, such as:

package/gstreamer1/gst1-plugins-imx/Config.in

Quoted 6 lines
package/gstreamer1/gst1-plugins-imx/Config.in new file +6 -0
+	  [...] It requires a kernel that
+	  includes the i.MX6 specific headers to be built.
+
+	  To use the VPU, its firmware blob must be installed as well. This
+	  can be found in the firmware-imx package in the "Hardware handling"
+	  menu.

Can you merge the two statements?

Quoted 8 lines
package/gstreamer1/gst1-plugins-imx/Config.in new file +2 -0
+
+	  More info at https://github.com/Freescale/gstreamer-imx
package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file +0 -0
new file mode 100644
index 0000000..64a1b5b

package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk line 9

Quoted 9 lines
package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file +9 -0
@@ -0,0 +1,57 @@
+################################################################################
+#
+# gst1-plugins-imx
+#
+################################################################################
+
+GST1_PLUGINS_IMX_VERSION = 0.9.9
+GST1_PLUGINS_IMX_SITE = https://github.com/Freescale/gstreamer-imx.git
+GST1_PLUGINS_IMX_SITE_METHOD = git

Use the github helper macro:
http://nightly.buildroot.org/manual.html#github-download-url

package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk line 17

Quoted 8 lines
package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file +8 -0
+
+GST1_PLUGINS_IMX_LICENSE = LGPLv2+
+GST1_PLUGINS_IMX_LICENSE_FILES = LICENSE
+
+GST1_PLUGINS_IMX_INSTALL_STAGING = YES
+
+GST1_PLUGINS_IMX_DEPENDENCIES += host-pkgconf host-python \
+	gpu-viv-bin-mx6q gstreamer1 gst1-plugins-base libfslvpuwrap

Peter's version does not depend on host-python, yours does.

Actually that dependency is needed becase waf does not work with recent python3 interpreters. That's why all Buildroot packages that use waf (jack2, midori, samba4) depend on it.

Quoted 7 lines
package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file +7 -0
+
+# needs access to imx-specific kernel headers
+GST1_PLUGINS_IMX_DEPENDENCIES += linux
+GST1_PLUGINS_IMX_CONF_OPTS += --prefix="/usr" \
+	--kernel-headers="$(LINUX_DIR)/include"
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)

package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk line 34

Quoted 10 lines
package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file +10 -0
+GST1_PLUGINS_IMX_DEPENDENCIES += xlib_libX11
+GST1_PLUGINS_IMX_CONF_OPTS += --egl-platform=x11
+else
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+GST1_PLUGINS_IMX_DEPENDENCIES += wayland
+GST1_PLUGINS_IMX_CONF_OPTS += --egl-platform=wayland
+else
+GST1_PLUGINS_IMX_CONF_OPTS += --egl-platform=fb
+endif
+endif

...and you support X11 and Wayland, which is good.

Overall your patch looks better, except Peter lists more mandatory dependencies (perhaps some or all are actually neede), has a more informative package description and uses the github helper. Merging the two patches to get the best of each would be good, and it would be great if you could cooperate to do that!

I'm afraid I haven't much experience on i.MX to help, but I'll be glad to test your work (but please keep me in Cc:).

Signature · 1 line
Luca
#2 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Hi Luca,

Thanks for your feedback, below are my comments.
Sorry Peter I didn't see your patch from March.

Quoted 1 line · Luca Ceresoli

Dear Gary, Peter,

[...]

Quoted 5 lines

It would be better to have only one comment showing all the dependencies at once to avoid cluttering the menuconfig screen when the dependencies are not met. Also, please format it according to the guidelines in
http://nightly.buildroot.org/manual.html#dependencies-target-toolchain-options

Ok I can rework those comments.

Quoted 3 lines

BTW, the last warning should be shown regardless of the value of BR2_PACKAGE_LIBFSLVPUWRAP, nope?

The goal here was to show only one comment at a time. Both comments will be merged in one.

Quoted 3 lines

[...]
According to Gary, (e)glibc is needed. Peter, did you build-test with uClibc (or musl)?

Actually this dependency is not required as it is implicit, the real eglibc dependency comes from the GPU_VIV package.

Quoted 2 lines

How about imx-lib, libfslparser and libfslcodec?

No, Peter's dependencies seem to have some legacy from the old gstreamer plugin, see package/gstreamer/gst-fsl-plugins/Config.in. Moreover it is missing the GPU_VIV package dependency required to have the imxg2d and imxegl plugins and also narrows this plugin to iMX6 platforms only.

Quoted 4 lines

It would be great if you could have a list that really matches the package. It's probably going to be a mix of the two, but I don't know exactly which pieces should be picked.

The best is to compare the dependencies from the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.9.9.bb
This is what I've based my package on.

Quoted 2 lines

[...]
Can you merge the two statements?

I can add the Kernel header comment but regarding the VPU I've offered a patch for the firmware to be selected when imx-vpu package is enabled:
http://lists.busybox.net/pipermail/buildroot/2014-October/107894.html

Quoted 3 lines

[...]
Use the github helper macro:
http://nightly.buildroot.org/manual.html#github-download-url

Ok.

Quoted 6 lines

[...]
Peter's version does not depend on host-python, yours does.

Actually that dependency is needed becase waf does not work with recent python3 interpreters. That's why all Buildroot packages that use waf (jack2, midori, samba4) depend on it.

Yes host-python is required.

Quoted 12 lines

[...]
...and you support X11 and Wayland, which is good.

Overall your patch looks better, except Peter lists more mandatory dependencies (perhaps some or all are actually neede), has a more informative package description and uses the github helper. Merging the two patches to get the best of each would be good, and it would be great if you could cooperate to do that!

I'm afraid I haven't much experience on i.MX to help, but I'll be glad to test your work (but please keep me in Cc:).

No problem I'll keep you in cc. But what is the plan now? Should I offer a v2 or let Peter integrate the remarks above in his patch?

Thanks,
Gary

#3 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Dear Gary,

Quoted 17 lines · Gary Bisson

Hi Luca,

Thanks for your feedback, below are my comments.
Sorry Peter I didn't see your patch from March.

Quoted 1 line · Luca Ceresoli

Dear Gary, Peter,

[...]

Quoted 5 lines

It would be better to have only one comment showing all the dependencies at once to avoid cluttering the menuconfig screen when the dependencies are not met. Also, please format it according to the guidelines in
http://nightly.buildroot.org/manual.html#dependencies-target-toolchain-options

Ok I can rework those comments.

Quoted 3 lines

BTW, the last warning should be shown regardless of the value of BR2_PACKAGE_LIBFSLVPUWRAP, nope?

Quoted 7 lines

The goal here was to show only one comment at a time. Both comments will be merged in one.

Quoted 3 lines

[...]
According to Gary, (e)glibc is needed. Peter, did you build-test with uClibc (or musl)?

Actually this dependency is not required as it is implicit, the real eglibc dependency comes from the GPU_VIV package.

I see. A brief comment would be helpful, as it is for all inherited dependencies. Example:

# Required by gpu-viv-bin-mx6q
comment "gst1-plugins-imx needs an (e)glibc toolchain"
depends on BR2_arm
depends on !BR2_TOOLCHAIN_USES_GLIBC

Quoted 7 lines
Quoted 2 lines

How about imx-lib, libfslparser and libfslcodec?

No, Peter's dependencies seem to have some legacy from the old gstreamer plugin, see package/gstreamer/gst-fsl-plugins/Config.in. Moreover it is missing the GPU_VIV package dependency required to have the imxg2d and imxegl plugins and also narrows this plugin to iMX6 platforms only.

Quoted 1 line
Quoted 5 lines
Quoted 3 lines

It would be great if you could have a list that really matches the package. It's probably going to be a mix of the two, but I don't know exactly which pieces should be picked.

The best is to compare the dependencies from the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.9.9.bb

Ok.

Quoted 7 lines

This is what I've based my package on.

Quoted 2 lines

[...]
Can you merge the two statements?

I can add the Kernel header comment but regarding the VPU I've offered a patch for the firmware to be selected when imx-vpu package is enabled:
http://lists.busybox.net/pipermail/buildroot/2014-October/107894.html

Ouch, I almost forgot that patch. I just added my Reviewed-by:.

Quoted 20 lines
Quoted 3 lines

[...]
Use the github helper macro:
http://nightly.buildroot.org/manual.html#github-download-url

Ok.

Quoted 6 lines

[...]
Peter's version does not depend on host-python, yours does.

Actually that dependency is needed becase waf does not work with recent python3 interpreters. That's why all Buildroot packages that use waf (jack2, midori, samba4) depend on it.

Yes host-python is required.

Quoted 9 lines

[...]
...and you support X11 and Wayland, which is good.

Overall your patch looks better, except Peter lists more mandatory dependencies (perhaps some or all are actually neede), has a more informative package description and uses the github helper. Merging the two patches to get the best of each would be good, and it would be great if you could cooperate to do that!

Quoted 5 lines
Quoted 3 lines

I'm afraid I haven't much experience on i.MX to help, but I'll be glad to test your work (but please keep me in Cc:).

No problem I'll keep you in cc. But what is the plan now? Should I offer a v2 or let Peter integrate the remarks above in his patch?

Well, you can send your own patch, or if Peter wants to cooperate then he may be helpful. But he's not been active in the latest months, so unless he gets in touch I'd go on anyway if I were you.

Signature · 1 line
Luca
#4 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Quoted 9 lines · Luca Ceresoli

Dear Gary,

Quoted 6 lines · Gary Bisson

Hi Luca,

Thanks for your feedback, below are my comments.
Sorry Peter I didn't see your patch from March.

On 10/12/2014 07:43 AM, Luca Ceresoli wrote:

[snip]

Quoted 5 lines
Quoted 4 lines
Quoted 2 lines

According to Gary, (e)glibc is needed. Peter, did you build-test with uClibc (or musl)?

Actually this dependency is not required as it is implicit, the real eglibc dependency comes from the GPU_VIV package.

Quoted 7 lines

I see. A brief comment would be helpful, as it is for all inherited dependencies. Example:

# Required by gpu-viv-bin-mx6q
comment "gst1-plugins-imx needs an (e)glibc toolchain"
depends on BR2_arm
depends on !BR2_TOOLCHAIN_USES_GLIBC

That's not the right place for pointing to gpu-viv-bin-mx6q. It should be
something like:

config BR2_PACKAGE_GST1_PLUGINS_IMX
bool "gst1-plugins-imx"
depends on BR2_LINUX_KERNEL
depends on BR2_arm # Only relevant for i.MX
depends on BR2_TOOLCHAIN_USES_GLIBC # gpu-viv-bin-mx6q select BR2_PACKAGE_GPU_VIV_BIN_MX6Q
# Cannot select libfslvpuwrap because user must select the CPU depends on BR2_PACKAGE_LIBFSLVPUWRAP

(I added that thing about libfslvpuwrap but I'm not sure of it...)

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:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Arnout, all,

Quoted 18 lines · Arnout Vandecappelle

[snip]

Quoted 4 lines

# Required by gpu-viv-bin-mx6q
comment "gst1-plugins-imx needs an (e)glibc toolchain"
depends on BR2_arm
depends on !BR2_TOOLCHAIN_USES_GLIBC

That's not the right place for pointing to gpu-viv-bin-mx6q. It should be
something like:

config BR2_PACKAGE_GST1_PLUGINS_IMX
bool "gst1-plugins-imx"
depends on BR2_LINUX_KERNEL
depends on BR2_arm # Only relevant for i.MX
depends on BR2_TOOLCHAIN_USES_GLIBC # gpu-viv-bin-mx6q select BR2_PACKAGE_GPU_VIV_BIN_MX6Q
# Cannot select libfslvpuwrap because user must select the CPU depends on BR2_PACKAGE_LIBFSLVPUWRAP

Quoted 3 lines

(I added that thing about libfslvpuwrap but I'm not sure of it...)

That is actually what I said in the first e-mail, I am not proud of all those dependencies but I couldn't find a way to select GPU_VIV_MX6Q as it is only selectable if FREESCALE_IMX_PLATFORM is set
to FREESCALE_IMX_PLATFORM_IMX6Q. A select like above would give an error but I'm open to any other solution.

Thanks,
Gary
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20141014/98b98695/attachment.html>

#6 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Quoted 23 lines · Gary Bisson

Arnout, all,

On Tue, Oct 14, 2014 at 7:31 AM, Arnout Vandecappelle <[email protected] <mailto:[email protected]>> wrote:

[snip]
> # Required by gpu-viv-bin-mx6q
> comment "gst1-plugins-imx needs an (e)glibc toolchain"
> depends on BR2_arm
> depends on !BR2_TOOLCHAIN_USES_GLIBC

That's not the right place for pointing to gpu-viv-bin-mx6q. It should be
something like:

config BR2_PACKAGE_GST1_PLUGINS_IMX
bool "gst1-plugins-imx"
depends on BR2_LINUX_KERNEL
depends on BR2_arm # Only relevant for i.MX depends on BR2_TOOLCHAIN_USES_GLIBC # gpu-viv-bin-mx6q select BR2_PACKAGE_GPU_VIV_BIN_MX6Q
# Cannot select libfslvpuwrap because user must select the CPU depends on BR2_PACKAGE_LIBFSLVPUWRAP

Quoted 7 lines

(I added that thing about libfslvpuwrap but I'm not sure of it...)

That is actually what I said in the first e-mail, I am not proud of all those dependencies but I couldn't find a way to select GPU_VIV_MX6Q as it is only selectable if FREESCALE_IMX_PLATFORM is set to FREESCALE_IMX_PLATFORM_IMX6Q. A select like above would give an error but I'm open to any other solution.

Actually, you can do
select BR2_PACKAGE_FREESCALE_IMX select BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q

I'm not entirely sure if that's good though, because if the user has selected
one of the other i.MX platforms and he thinks that he can use GStreamer with it, he'll get something completely different from what he expected...

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:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#7 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Arnout, All,

On 2014-10-14 23:05 +0200, Arnout Vandecappelle spake thusly:

Quoted 25 lines · Gary Bisson
Quoted 24 lines

On Tue, Oct 14, 2014 at 7:31 AM, Arnout Vandecappelle <[email protected] <mailto:[email protected]>> wrote:

[snip]
> # Required by gpu-viv-bin-mx6q
> comment "gst1-plugins-imx needs an (e)glibc toolchain"
> depends on BR2_arm
> depends on !BR2_TOOLCHAIN_USES_GLIBC

That's not the right place for pointing to gpu-viv-bin-mx6q. It should be
something like:

config BR2_PACKAGE_GST1_PLUGINS_IMX
bool "gst1-plugins-imx"
depends on BR2_LINUX_KERNEL
depends on BR2_arm # Only relevant for i.MX depends on BR2_TOOLCHAIN_USES_GLIBC # gpu-viv-bin-mx6q select BR2_PACKAGE_GPU_VIV_BIN_MX6Q
# Cannot select libfslvpuwrap because user must select the CPU depends on BR2_PACKAGE_LIBFSLVPUWRAP

(I added that thing about libfslvpuwrap but I'm not sure of it...)

Quoted 8 lines
Quoted 4 lines

That is actually what I said in the first e-mail, I am not proud of all those dependencies but I couldn't find a way to select GPU_VIV_MX6Q as it is only selectable if FREESCALE_IMX_PLATFORM is set to FREESCALE_IMX_PLATFORM_IMX6Q. A select like above would give an error but I'm open to any other solution.

Actually, you can do
select BR2_PACKAGE_FREESCALE_IMX select BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q

No you can't do that, because BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q is part of a choice, and you can not select a choice entry.

So a 'depends on' it must be in this case.

Not sure what to do about the comment, though. We currently have no such case documented in the manual; only comments about toolchain deps are described...

I'm not against adding comments about dependencies on other packages, but I think we should keep them to a minimal level, like dependencies on biggish stuff (like X.org), or non-obvious stuff.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Yann, All,

Quoted 10 lines · Yann E. MORIN

[snip]
No you can't do that, because BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q is part of a choice, and you can not select a choice entry.

So a 'depends on' it must be in this case.

Not sure what to do about the comment, though. We currently have no such case documented in the manual; only comments about toolchain deps are described...

Quoted 6 lines

I'm not against adding comments about dependencies on other packages, but I think we should keep them to a minimal level, like dependencies on biggish stuff (like X.org), or non-obvious stuff.

Regards,
Yann E. MORIN.

I agree that a dependency seemed like the only option. Regarding the comment it was more about showing the package exists. Although doing a search will tell you about it and its dependencies I'm afraid people would think the package is missing.
As a comparison the Gstreamer 0.10 fsl plugin always shows up as it does not depend on iMX6 GPU libs.

Anyway, would it make sense for me to offer a patch v2 or should we wait to agree first on modifications?

So far I have listed those modifications to be made on the current version:
- Use of github helper macro
- Modify package comment with Peter S. original patch
- Remove eglibc dependency (already from GPU libs)

But I am still unclear on two items:
- Package naming: although Peter K. did prefer gstreamer1-imx over gstreamer-imx [1], gst1-plugins-imx still looks closer to BR plugin naming. Also consider the Yocto recipe name [2] which is gstreamer1.0-plugins-imx, pretty close from gst1-plugins-imx.
- Comments: comments on package dependencies could be removed at first and if people find it confusing we could work on it later.

Regards,
Gary

[1] http://lists.busybox.net/pipermail/buildroot/2014-February/090496.html
[2]
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.9.9.bb

#9 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Gary, All,

On 2014-10-17 14:28 -0700, Gary Bisson spake thusly:

Quoted 25 lines · Yann E. MORIN
Quoted 10 lines

[snip]
No you can't do that, because BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q is part of a choice, and you can not select a choice entry.

So a 'depends on' it must be in this case.

Not sure what to do about the comment, though. We currently have no such case documented in the manual; only comments about toolchain deps are described...

Quoted 6 lines

I'm not against adding comments about dependencies on other packages, but I think we should keep them to a minimal level, like dependencies on biggish stuff (like X.org), or non-obvious stuff.

Regards,
Yann E. MORIN.

I agree that a dependency seemed like the only option. Regarding the comment it was more about showing the package exists.
Although doing a search will tell you about it and its dependencies I'm afraid people would think the package is missing.
As a comparison the Gstreamer 0.10 fsl plugin always shows up as it does not depend on iMX6 GPU libs.

Quoted 2 lines

Anyway, would it make sense for me to offer a patch v2 or should we wait to agree first on modifications?

Yup, let people get back home from D?sseldorf and get some rest aftert the heavy use they put their neurons at during LinuxCon/ELCE this past week... ;-)

Quoted 4 lines

So far I have listed those modifications to be made on the current version:
- Use of github helper macro
- Modify package comment with Peter S. original patch
- Remove eglibc dependency (already from GPU libs)

Are we sure gst1-plugins-imx does not itself require glibc? If there are pre-built libraries, check they are not linked with libc.so.6:
readelf -d libgst-imx-something.so

Quoted 5 lines

But I am still unclear on two items:
- Package naming: although Peter K. did prefer gstreamer1-imx over gstreamer-imx [1], gst1-plugins-imx still looks closer to BR plugin naming. Also consider the Yocto recipe name [2] which is gstreamer1.0-plugins-imx, pretty close from gst1-plugins-imx.

Well, gst1-plugins-imx seems quite correctly aligned to existing packages names, so I'd vote for that.

Quoted 2 lines

- Comments: comments on package dependencies could be removed at first and if people find it confusing we could work on it later.

Agreed.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#10 lore raw

PATCH 1/1 gst1-plugins-imx: add package

Dear Gary,

Quoted 45 lines · Yann E. MORIN

Gary, All,

On 2014-10-17 14:28 -0700, Gary Bisson spake thusly:

Quoted 25 lines · Yann E. MORIN
Quoted 10 lines

[snip]
No you can't do that, because BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q is part of a choice, and you can not select a choice entry.

So a 'depends on' it must be in this case.

Not sure what to do about the comment, though. We currently have no such case documented in the manual; only comments about toolchain deps are described...

Quoted 6 lines

I'm not against adding comments about dependencies on other packages, but I think we should keep them to a minimal level, like dependencies on biggish stuff (like X.org), or non-obvious stuff.

Regards,
Yann E. MORIN.

I agree that a dependency seemed like the only option. Regarding the comment it was more about showing the package exists.
Although doing a search will tell you about it and its dependencies I'm afraid people would think the package is missing.
As a comparison the Gstreamer 0.10 fsl plugin always shows up as it does not depend on iMX6 GPU libs.

Quoted 2 lines

Anyway, would it make sense for me to offer a patch v2 or should we wait to agree first on modifications?

Yup, let people get back home from D?sseldorf and get some rest aftert the heavy use they put their neurons at during LinuxCon/ELCE this past week... ;-)

Quoted 4 lines

So far I have listed those modifications to be made on the current version:
- Use of github helper macro
- Modify package comment with Peter S. original patch
- Remove eglibc dependency (already from GPU libs)

Are we sure gst1-plugins-imx does not itself require glibc? If there are pre-built libraries, check they are not linked with libc.so.6:
readelf -d libgst-imx-something.so

Quoted 11 lines
Quoted 5 lines

But I am still unclear on two items:
- Package naming: although Peter K. did prefer gstreamer1-imx over gstreamer-imx [1], gst1-plugins-imx still looks closer to BR plugin naming. Also consider the Yocto recipe name [2] which is gstreamer1.0-plugins-imx, pretty close from gst1-plugins-imx.

Well, gst1-plugins-imx seems quite correctly aligned to existing packages names, so I'd vote for that.

Quoted 2 lines

- Comments: comments on package dependencies could be removed at first and if people find it confusing we could work on it later.

I agree with Yann. You addressed the most relevant issues, so now you may send a v3 with all agreed changes. It might be not yet perfect, but I (and hopefully Yann and others) will review it and I'm pretty sure it's going to be very close to be accepted.

Signature · 1 line
Luca