All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
@ 2016-04-04 13:04 Gary Bisson
  2016-04-04 13:11 ` Carlos Rafael Giani
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Gary Bisson @ 2016-04-04 13:04 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: meta-freescale@yoctoproject.org

Otavio, All,

On Mon, Apr 4, 2016 at 1:04 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Sat, Apr 2, 2016 at 12:58 PM, Gary Bisson
> <gary.bisson@boundarydevices.com> wrote:
>> 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@boundarydevices.com>
>
> I do support this change, however it needs to use PACKAGECONFIG flags
> and also include 'configure' options which enable/disable the
> features. The features cannot be enabled depending on library
> detection as it can result in non-deterministic builds.

I agree this would be the best solution. I think gstreamer-imx doesn't
offer this kind of configuration options. Not sure how complicated it
is to implement, I'll let Carlos give his feedback as I'm not familiar
with waf.

However, if it takes time to implement, I think this patch could still
be useful as-is for now. Especially since the current recipe already
relies on on library detection to enable features. Also, this patch
fixes the dependencies of platforms without VPU such as the i.MX6SX
and i.MX6SL. How does the build behaves right now if
gstreamer1.0-plugins-imx is selected for an i.MX6SX platform? I'm not
sure why it would result in non-deterministic builds, would it be any
different than the current recipe to that regard?

Regards,
Gary


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
@ 2016-04-02 15:58 Gary Bisson
  2016-04-04 11:04 ` Otavio Salvador
  0 siblings, 1 reply; 8+ messages in thread
From: Gary Bisson @ 2016-04-02 15:58 UTC (permalink / raw)
  To: meta-freescale

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@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



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-04-05 13:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-04 13:04 [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support Gary Bisson
2016-04-04 13:11 ` Carlos Rafael Giani
2016-04-04 13:25 ` Otavio Salvador
2016-04-04 13:34   ` Gary Bisson
2016-04-04 13:43     ` Otavio Salvador
2016-04-05 13:23 ` Carlos Rafael Giani
  -- strict thread matches above, loose matches on Subject: below --
2016-04-02 15:58 Gary Bisson
2016-04-04 11:04 ` Otavio Salvador

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.