[meta-freescale] [meta-fsl-arm][PATCH v2 1/2] gstreamer1.0-plugins-imx: Update to version 0.12.1

Gary Bisson gary.bisson at boundarydevices.com
Wed Apr 6 08:18:41 PDT 2016


Carlos, All,

On Wed, Apr 6, 2016 at 4:10 PM, Carlos Rafael Giani <dv at pseudoterminal.org>
wrote:

> The recipe now uses PACKAGECONFIG to allow for enabling/disabling plugins.
> Also, mx7 support has been added.
>
> Changes:
>
> * compositor: Rename ImxCompositor(Pad) to ImxVideoCompositor(Pad)
>   This prevents conflicts if both the NXP plugins and the gstreamer-imx
>   are installed in the same rootfs
>
> * Add switches to wscript configuration to enable/disable plugins
>   Until now, all plugins were built (unless their dependencies were
>   missing). On some i.MX machines, some features are missing. For
>   example, the i.MX7 has no VPU. To ensure deterministic builds, it is
>   useful to selectively disable plugins in the build.
>
> * ipu+pxp: : Fix deadlocks and incorrect logging in case of init error
>   This was causing a freeze if for example one tries to use PxP elements
>   on an i.MX6 Dual/Quad
>
> * imxv4l2videosrc fixes and enhancements:
>   * fixes to interlacing support (incl. workarounds for analog TV input)
>   * remove format restriction in get_caps function
>     this removes the limitation on I420 formats
>   * simplified determination of fps (necessary due to driver limitations)
>
> * eglvivsink: wayland: Do not commit before buffers are swapped
>   This fixes eglSwapBuffer swaps with damaged frames
>
> * Documentation additions
>   Adds GPU memory leak notess to the FAQ
>
> * vpu: encoder: Expose motion estimation range as property
>
> * vpu: decoder: Drop output frame if its buffer cannot be allocated
>
> Signed-off-by: Carlos Rafael Giani <dv at pseudoterminal.org>
> ---
>  ....12.0.bb => gstreamer1.0-plugins-imx_0.12.1.bb} | 37
> +++++++++++++++++-----
>  1 file changed, 29 insertions(+), 8 deletions(-)
>  rename recipes-multimedia/gstreamer/{gstreamer1.0-plugins-imx_0.12.0.bb
> => gstreamer1.0-plugins-imx_0.12.1.bb} (57%)
>
> diff --git a/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-imx_0.12.0.bb b/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-imx_0.12.1.bb
> similarity index 57%
> rename from recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-imx_0.12.0.bb
> rename to recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.1.bb
> index eaccb29..f968dbc 100644
> --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
> +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.1.bb
> @@ -2,11 +2,9 @@ DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms"
>  LICENSE = "LGPLv2+"
>  LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605"
>  SECTION = "multimedia"
> -# gstreamer1.0-plugins-bad is in DEPENDS because imxv4l2videosrc requires
> -# the GstPhotography headers and libraries
> -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base
> gstreamer1.0-plugins-bad imx-gpu-viv \
> -           libfslcodec libimxvpuapi virtual/kernel virtual/egl
> virtual/libgles2 \
> -           ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11',
> '', d)}"
> +# gstreamer1.0-plugins-bad is in DEPENDS because the build script scans
> for the
> +# GstPhotography headers and libraries
> +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base
> gstreamer1.0-plugins-bad virtual/kernel"
>  # add the audioparsers and the videoparsersbad plugins as RDEPENDS ;
> audioparsers
>  # for the uniaudio decoder, videoparsersbad for the VPU video decoder
>  # the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good
> recipe is
> @@ -16,7 +14,7 @@ RDEPENDS_gstreamer1.0-plugins-imx-imxaudio =
> "gstreamer1.0-plugins-good-audiopar
>  RDEPENDS_gstreamer1.0-plugins-imx-imxvpu =
> "gstreamer1.0-plugins-bad-videoparsersbad"
>
>  SRCBRANCH ?= "master"
> -SRCREV = "f8ad953c458be6a89f474a948b6401664a6a1745"
> +SRCREV = "11a7b366f211e54e0ec67c692287603a02640ff6"
>  SRC_URI = "git://
> github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}"
>
>  S = "${WORKDIR}/git"
> @@ -33,7 +31,30 @@ EGLVIVSINK_PLATFORM =
> "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', \
>                            base_contains('DISTRO_FEATURES', 'wayland',
> 'wayland', \
>                            'fb', d),d)}"
>
> -EXTRA_OECONF = "--egl-platform=${EGLVIVSINK_PLATFORM}
> --kernel-headers=${STAGING_KERNEL_DIR}/include"
> +EGL_PLATFORM_CONF = "--egl-platform=${EGLVIVSINK_PLATFORM}"
> +EXTRA_OECONF = "--kernel-headers=${STAGING_KERNEL_DIR}/include"
> +
> +EGLVIVSINK_DEPENDS = " \
> +    virtual/egl virtual/libgles2 \
> +    ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', \
> +       base_contains('DISTRO_FEATURES', 'wayland', 'wayland', \
> +       '', d),d)}"
> +
> +PACKAGECONFIG ?= ""
> +PACKAGECONFIG_mx6q = "uniaudiodec mp3encoder v4l2src g2d eglvivsink ipu
> vpu"
> +PACKAGECONFIG_mx6dl = "uniaudiodec mp3encoder v4l2src pxp g2d eglvivsink
> ipu vpu"
> +PACKAGECONFIG_mx6sx = "uniaudiodec mp3encoder v4l2src pxp g2d eglvivsink"
> +PACKAGECONFIG_mx6sl = "uniaudiodec mp3encoder v4l2src pxp g2d"
> +PACKAGECONFIG_mx7 = "uniaudiodec mp3encoder v4l2src pxp"
> +
> +PACKAGECONFIG[g2d] = ",--disable-g2d,imx-gpu-viv"
> +PACKAGECONFIG[pxp] = ",--disable-pxp,"
> +PACKAGECONFIG[ipu] = ",--disable-ipu,"
> +PACKAGECONFIG[vpu] = ",--disable-vpu,libimxvpuapi"
> +PACKAGECONFIG[eglvivsink] =
> "${EGL_PLATFORM_CONF},--disable-eglvivsink,${EGLVIVSINK_DEPENDS}"
> +PACKAGECONFIG[v4l2src] = ",--disable-v4l2src,"
> +PACKAGECONFIG[uniaudiodec] = ",--disable-uniaudiodec,libfslcodec"
> +PACKAGECONFIG[mp3encoder] = ",--disable-mp3encoder,libfslcodec"
>
>  # LIBV is used by gst-plugins-package.inc to specify the GStreamer
> version (0.10 vs 1.0)
>  LIBV = "1.0"
> @@ -42,7 +63,7 @@ require
> recipes-multimedia/gstreamer/gst-plugins-package.inc
>  # the following line is required to produce one package for each plugin
>  PACKAGES_DYNAMIC = "^${PN}-.*"
>
> -COMPATIBLE_MACHINE = "(mx6)"
> +COMPATIBLE_MACHINE = "(mx6|mx7)"
>
>  # disable the false alarm (the "it isn't a build dependency" QA warning)
>  INSANE_SKIP_gstreamer1.0-plugins-imx-imxaudio = "build-deps"
> --
> 2.5.0
>
> --
> _______________________________________________
> meta-freescale mailing list
> meta-freescale at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale
>

Reviewed-by: Gary Bisson <gary.bisson at boundarydevices.com>
Tested-by: Gary Bisson <gary.bisson at boundarydevices.com>

Tested on Jethro branch on Nitrogen6x and Nitrogen7, making all the plugins
are available and working.

Here are the plugins available on Nitrogen6x (i.MX6Q):
root at nitrogen6x:~# gst-inspect-1.0 | grep imx
imxeglvivsink:  imxeglvivsink: Freescale EGL video sink
imxg2d:  imxg2dvideosink: Freescale G2D video sink
imxg2d:  imxg2dvideotransform: Freescale G2D video transform
imxg2d:  imxg2dcompositor: Freescale G2D video compositor
imxvpu:  imxvpudec: Freescale VPU video decoder
imxvpu:  imxvpuenc_h263: Freescale VPU h.263 video encoder
imxvpu:  imxvpuenc_h264: Freescale VPU h.264 video encoder
imxvpu:  imxvpuenc_mpeg4: Freescale VPU MPEG-4 video encoder
imxvpu:  imxvpuenc_mjpeg: Freescale VPU motion JPEG video encoder
imxipu:  imxipuvideotransform: Freescale IPU video transform
imxipu:  imxipuvideosink: Freescale IPU video sink
imxipu:  imxipucompositor: Freescale IPU video compositor
imxv4l2videosrc:  imxv4l2videosrc: V4L2 CSI Video Source
imxaudio:  imxuniaudiodec: Freescale i.MX uniaudio decoder
imxaudio:  imxmp3audioenc: Freescale i.MX MP3 encoder

Here are the plugins available on Nitrogen7 (i.MX7):
root at nitrogen7:~# gst-inspect-1.0 | grep imx
imxpxp:  imxpxpvideotransform: Freescale PxP video transform
imxpxp:  imxpxpvideosink: Freescale PxP video sink
imxv4l2videosrc:  imxv4l2videosrc: V4L2 CSI Video Source
imxaudio:  imxmp3audioenc: Freescale i.MX MP3 encoder
imxaudio:  imxuniaudiodec: Freescale i.MX uniaudio decoder

Regards,
Gary
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20160406/b0c1202c/attachment.html>


More information about the meta-freescale mailing list