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

Carlos Rafael Giani dv at pseudoterminal.org
Wed Apr 6 01:29:02 PDT 2016



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.

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


More information about the meta-freescale mailing list