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

Gary Bisson gary.bisson at boundarydevices.com
Wed Apr 6 01:43:55 PDT 2016


Carlos, All,

On Wed, Apr 6, 2016 at 10:29 AM, Carlos Rafael Giani
<dv at pseudoterminal.org> wrote:
>
>
> On 2016-04-06 10:10, Gary Bisson wrote:
>>
>> Carlos, All,
>>
>> On Wed, Apr 6, 2016 at 9:36 AM, 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, 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 <dv at pseudoterminal.org>
>>> ---
>>>   ....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.

Ok, I didn't know the plugin would throw a warning on that dependency,
we don't want a warning for sure.
What confused me is the comment since it clearly states that
plugins-bad is for imxv4l2videosrc.

>>>   # 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.

Here is what I think it should look like:
PACKAGECONFIG_mx6q = "eglvivsink g2d ipu mp3encoder pxp uniaudiocodec
v4l2src vpu"
PACKAGECONFIG_mx6dl = "eglvivsink g2d ipu mp3encoder pxp uniaudiocodec
v4l2src vpu"
PACKAGECONFIG_mx6sx = "eglvivsink g2d mp3encoder pxp uniaudiocodec v4l2src"
PACKAGECONFIG_mx6sl = "g2d mp3encoder pxp uniaudiocodec v4l2src"
PACKAGECONFIG_mx7 = "mp3encoder pxp uniaudiocodec v4l2src"

I've ordered the flags alphabetically, feel free to change it.

Regards,
Gary


More information about the meta-freescale mailing list