All of lore.kernel.org
 help / color / mirror / Atom feed
From: Carlos Rafael Giani <dv@pseudoterminal.org>
To: Gary Bisson <gary.bisson@boundarydevices.com>
Cc: meta-freescale@yoctoproject.org
Subject: Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: Update to version 0.12.1
Date: Wed, 6 Apr 2016 10:29:02 +0200	[thread overview]
Message-ID: <5704C8CE.2090908@pseudoterminal.org> (raw)
In-Reply-To: <CAAMH-yu8p_DeXHehHVydKQZNdAuU9C7NxKGCv+miKOpvKRfJxQ@mail.gmail.com>



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


  reply	other threads:[~2016-04-06  8:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-06  7:36 [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: Update to version 0.12.1 Carlos Rafael Giani
2016-04-06  8:10 ` Gary Bisson
2016-04-06  8:29   ` Carlos Rafael Giani [this message]
2016-04-06  8:43     ` Gary Bisson
2016-04-06  8:48       ` Carlos Rafael Giani
2016-04-06  9:21   ` Carlos Rafael Giani
2016-04-06 10:36     ` Otavio Salvador
2016-04-06 10:41       ` Carlos Rafael Giani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5704C8CE.2090908@pseudoterminal.org \
    --to=dv@pseudoterminal.org \
    --cc=gary.bisson@boundarydevices.com \
    --cc=meta-freescale@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.