[meta-freescale] [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support

Gary Bisson gary.bisson at boundarydevices.com
Sat Apr 2 08:58:11 PDT 2016


Modify the dependencies to match the platform features. By default
the build will generate the following plugins for all the mx6/mx7
platforms:
- imxpxpvideosink
- imxpxpvideotransform
- imxipuvideotransform
- imxipuvideosink
- imxipucompositor
- imxv4l2videosrc
- imxuniaudiodec
- imxmp3audioenc

Then all the platforms with GPU support (6QDL, 6SL, 6SX) will also have:
- imxeglvivsink
- imxg2dvideosink
- imxg2dvideotransform
- imxg2dcompositor
Note that only the G2D plugins can work on 6SL.

Finally, platforms with VPU support (6QDL) will also have:
- imxvpudec
- imxvpuenc_h263
- imxvpuenc_h264
- imxvpuenc_mpeg4
- imxvpuenc_mjpeg

The pxp and v4l2 plugins have been tested on an i.MX7 Nitrogen7
platform from Boundary Devices.

Signed-off-by: Gary Bisson <gary.bisson at boundarydevices.com>
---
Hi all,

Tested on Boundary Device i.MX7 Nitrogen7 platform with the following
pipeline:
gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxpxpvideosink

(Nitrogen7 MACHINE configuration to be submitted soon)

Also made sure this didn't break the compatibilty for 6Q and 6SX
platforms.

If the libfslcodec upgrade to v4.0.9 gets in first, all the dependencies
will need to be updated to use imx-codec instead.

Regards,
Gary
---
 .../gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb   | 27 ++++++++++++++++++----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
index 391c141..d9e7a51 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
@@ -4,9 +4,25 @@ 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)}"
+DEPENDS_mx6q  = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+                 virtual/kernel libfslcodec \
+                 imx-gpu-viv virtual/egl virtual/libgles2 libimxvpuapi \
+                 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx6dl = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+                 virtual/kernel libfslcodec \
+                 imx-gpu-viv virtual/egl virtual/libgles2 libimxvpuapi \
+                 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx6sx = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+                 virtual/kernel libfslcodec \
+                 imx-gpu-viv virtual/egl virtual/libgles2 \
+                 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx6sl = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+                 virtual/kernel libfslcodec \
+                 imx-gpu-viv virtual/egl virtual/libgles2 \
+                 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx7   = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+                 virtual/kernel libfslcodec \
+                 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
 # 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
@@ -33,7 +49,8 @@ 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"
+EXTRA_OECONF_mx6 = "--egl-platform=${EGLVIVSINK_PLATFORM} --kernel-headers=${STAGING_KERNEL_DIR}/include"
+EXTRA_OECONF_mx7 = "--kernel-headers=${STAGING_KERNEL_DIR}/include"
 
 # LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0)
 LIBV = "1.0"
@@ -42,7 +59,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.7.0



More information about the meta-freescale mailing list