[Buildroot] [PATCH v3] gst1-imx: add package

Luca Ceresoli luca at lucaceresoli.net
Mon Nov 10 17:31:03 UTC 2014


Dear Gary,

Gary Bisson wrote:
> Open-source GStreamer 1.0 plugins for i.MX6 platforms.
> More info at https://github.com/Freescale/gstreamer-imx
>
> Signed-off-by: Gary Bisson <bisson.gary at gmail.com>
> ---
> Modifications v2->v3:
> - Change package name from gst1-plugins-imx to gst1-imx
> - Remove commands unnecessary parentheses
> - Modify package comment to clarify it is only working on i.MX6
>
> Modifications v1->v2:
> - Use of github helper macro
> - Modify package comment with Peter S. original patch
> - Add comment for eglibc dependency (due to GPU libs)
> - Remove comments on package dependencies
>
> 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

I tested it on i.MX6DL SABRESD (not Quad), based on
freescale_imx6dlsabresd_defconfig, but with libc changed to glibc.
All the three pipelines you provided work, with the first one eating up
~30% of CPU time, while the other two ones take only 2~3% CPU only (but
play no audio of course).

A couple of comments below.

> diff --git a/package/gstreamer1/gst1-imx/Config.in b/package/gstreamer1/gst1-imx/Config.in
> new file mode 100644
> index 0000000..6bdbb6c
> --- /dev/null
> +++ b/package/gstreamer1/gst1-imx/Config.in
> @@ -0,0 +1,25 @@
> +comment "gst1-imx needs an imx-specific Linux kernel to be built"
> +	depends on BR2_arm && !BR2_LINUX_KERNEL
> +
> +# Required by gpu-viv-bin-mx6q
> +comment "gst1-imx needs an (e)glibc toolchain"
> +	depends on BR2_arm
> +	depends on !BR2_TOOLCHAIN_USES_GLIBC

Sorry for coming back on the comments issue, but...

I simulated a newbie wanting to use gst1-imx:
  - make freescale_imx6dlsabresd_defconfig
  - make menuconfig
  - go to target packages -> audio/video, look for gst1
    -> "gstreamer 1.x needs a toolchain w/ wchar, threads" is shown
  - change toolchain settings to enable wchar
  - go to target packages -> audio/video, enable gst1
    -> "gst1-imx needs an (e)glibc toolchain" is shown
  - change toolchain settings to use glibc
  - go back to target packages -> audio/video
    -> gst1-imx disappeared, no comments shown
       -> user panic!

Well, I don't remember exactly how we came to the conclusion that some
of the comments should be removed, but I think they should have not.

The BR2_PACKAGE_LIBFSLVPUWRAP and BR2_PACKAGE_GPU_VIV_BIN_MX6Q
dependencies are software packages, not architecture features, so they
are user-selectable and thus should show a comment when not satisfied.

However, to me this patch is an improvement and could be merged as-is,
and the comments re-added later if discussions on this point does not
settle quickly. Gary seems very responsive and willing to have a good
support for this package, so I guess he will keep on.

> +
> +config BR2_PACKAGE_GST1_IMX
> +	bool "gst1-imx"
> +	depends on BR2_LINUX_KERNEL

As per Arnout's suggestion on v2, there should be a # libfslvpuwrap
here.

With that fixed:
Reviewed-by: Luca Ceresoli <luca at lucaceresoli.net>
Tested-by: Luca Ceresoli <luca at lucaceresoli.net>

-- 
Luca



More information about the buildroot mailing list