Carlos, All, On Wed, Apr 6, 2016 at 4:10 PM, Carlos Rafael Giani <d...@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 <d...@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@yoctoproject.org > https://lists.yoctoproject.org/listinfo/meta-freescale > Reviewed-by: Gary Bisson <gary.bis...@boundarydevices.com> Tested-by: Gary Bisson <gary.bis...@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@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@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
-- _______________________________________________ meta-freescale mailing list meta-freescale@yoctoproject.org https://lists.yoctoproject.org/listinfo/meta-freescale