On 2016-04-06 10:10, Gary Bisson wrote:
Carlos, All,

On Wed, Apr 6, 2016 at 9:36 AM, Carlos Rafael Giani
<[email protected]> wrote:
The recipe now uses PACKAGECONFIG to allow for enabling/disabling plugins.
Also, mx7 support has been added, and the libfslcodec->imx_codec renaming
has been included.

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 <[email protected]>
---
  ....12.0.bb => gstreamer1.0-plugins-imx_0.12.1.bb} | 34 +++++++++++++++++-----
  1 file changed, 26 insertions(+), 8 deletions(-)
  rename recipes-multimedia/gstreamer/{gstreamer1.0-plugins-imx_0.12.0.bb => 
gstreamer1.0-plugins-imx_0.12.1.bb} (61%)

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 61%
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..852388d 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"
Shouldn't plugins-bad be a dependency for v4l2src only?

The configuration switches only switch on/off the actual plugins (and their immediate dependencies, like GLES libraries, or libimxvpuapi). And, gstphotography is a dependency-less component of -bad. In the -bad tree, gstphotography can be found in gst-libs/ , while stuff that has external dependencies is in ext/. What this means is that gstphotography is *not* enabled/disabled by the v4l2src switch in the build script. This is intentional - dependency-less GStreamer *libraries* might be used by more than one gstreamer-imx plugin in the future, which is why they are autoconfigured in the root build script. (For example, gstreamer-video-1.0 is used by the vpu plugins as well as the ipu and pxp ones.) If I put -bad as a v4l2src dependency, then the build script would still scan for gstphotography if you turn off the v4l2src plugin. bitbake would then print a warning that -bad is a dependency but is not part of the DEPENDS list.


  # 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
Same for the RDEPENDS, I think they should be runtime dependencies of
uniaudiodec and vpu.

True. I will fix this in a v2 recipe.


@@ -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,27 @@ 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_mx6 = "g2d pxp ipu vpu eglvivsink v4l2src uniaudiodec mp3encoder"
Wouldn't it be better to split things here for each version of the
mx6, mx6sx doesn't need vpu nor ipu for instance, mx6sl doesn't need
eglvivsink either.

+PACKAGECONFIG_mx7 = "g2d pxp ipu v4l2src uniaudiodec mp3encoder"
i.MX7 doesn't have an IPU nor a 2D GPU.



Hm yes, I do not have a full overview over all these variants. If you have a list handy that I can directly use, it would help, otherwise I'll get it from the reference manual and the individual SoC specs.
--
_______________________________________________
meta-freescale mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-freescale

Reply via email to