* [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
@ 2016-04-02 15:58 Gary Bisson
2016-04-04 11:04 ` Otavio Salvador
0 siblings, 1 reply; 8+ messages in thread
From: Gary Bisson @ 2016-04-02 15:58 UTC (permalink / raw)
To: meta-freescale
Modify the dependencies to match the platform features. By default
the build will generate the following plugins for all the mx6/mx7
platforms:
- imxpxpvideosink
- imxpxpvideotransform
- imxipuvideotransform
- imxipuvideosink
- imxipucompositor
- imxv4l2videosrc
- imxuniaudiodec
- imxmp3audioenc
Then all the platforms with GPU support (6QDL, 6SL, 6SX) will also have:
- imxeglvivsink
- imxg2dvideosink
- imxg2dvideotransform
- imxg2dcompositor
Note that only the G2D plugins can work on 6SL.
Finally, platforms with VPU support (6QDL) will also have:
- imxvpudec
- imxvpuenc_h263
- imxvpuenc_h264
- imxvpuenc_mpeg4
- imxvpuenc_mjpeg
The pxp and v4l2 plugins have been tested on an i.MX7 Nitrogen7
platform from Boundary Devices.
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
Hi all,
Tested on Boundary Device i.MX7 Nitrogen7 platform with the following
pipeline:
gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxpxpvideosink
(Nitrogen7 MACHINE configuration to be submitted soon)
Also made sure this didn't break the compatibilty for 6Q and 6SX
platforms.
If the libfslcodec upgrade to v4.0.9 gets in first, all the dependencies
will need to be updated to use imx-codec instead.
Regards,
Gary
---
.../gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb | 27 ++++++++++++++++++----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
index 391c141..d9e7a51 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.12.0.bb
@@ -4,9 +4,25 @@ 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)}"
+DEPENDS_mx6q = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+ virtual/kernel libfslcodec \
+ imx-gpu-viv virtual/egl virtual/libgles2 libimxvpuapi \
+ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx6dl = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+ virtual/kernel libfslcodec \
+ imx-gpu-viv virtual/egl virtual/libgles2 libimxvpuapi \
+ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx6sx = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+ virtual/kernel libfslcodec \
+ imx-gpu-viv virtual/egl virtual/libgles2 \
+ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx6sl = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+ virtual/kernel libfslcodec \
+ imx-gpu-viv virtual/egl virtual/libgles2 \
+ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_mx7 = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad \
+ virtual/kernel libfslcodec \
+ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
# 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
@@ -33,7 +49,8 @@ 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"
+EXTRA_OECONF_mx6 = "--egl-platform=${EGLVIVSINK_PLATFORM} --kernel-headers=${STAGING_KERNEL_DIR}/include"
+EXTRA_OECONF_mx7 = "--kernel-headers=${STAGING_KERNEL_DIR}/include"
# LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0)
LIBV = "1.0"
@@ -42,7 +59,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.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
2016-04-02 15:58 Gary Bisson
@ 2016-04-04 11:04 ` Otavio Salvador
0 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2016-04-04 11:04 UTC (permalink / raw)
To: Gary Bisson, Carlos Rafael Giani; +Cc: meta-freescale@yoctoproject.org
On Sat, Apr 2, 2016 at 12:58 PM, Gary Bisson
<gary.bisson@boundarydevices.com> wrote:
> Modify the dependencies to match the platform features. By default
> the build will generate the following plugins for all the mx6/mx7
> platforms:
> - imxpxpvideosink
> - imxpxpvideotransform
> - imxipuvideotransform
> - imxipuvideosink
> - imxipucompositor
> - imxv4l2videosrc
> - imxuniaudiodec
> - imxmp3audioenc
>
> Then all the platforms with GPU support (6QDL, 6SL, 6SX) will also have:
> - imxeglvivsink
> - imxg2dvideosink
> - imxg2dvideotransform
> - imxg2dcompositor
> Note that only the G2D plugins can work on 6SL.
>
> Finally, platforms with VPU support (6QDL) will also have:
> - imxvpudec
> - imxvpuenc_h263
> - imxvpuenc_h264
> - imxvpuenc_mpeg4
> - imxvpuenc_mjpeg
>
> The pxp and v4l2 plugins have been tested on an i.MX7 Nitrogen7
> platform from Boundary Devices.
>
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
I do support this change, however it needs to use PACKAGECONFIG flags
and also include 'configure' options which enable/disable the
features. The features cannot be enabled depending on library
detection as it can result in non-deterministic builds.
Carlos, what do you think?
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
@ 2016-04-04 13:04 Gary Bisson
2016-04-04 13:11 ` Carlos Rafael Giani
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Gary Bisson @ 2016-04-04 13:04 UTC (permalink / raw)
To: Otavio Salvador; +Cc: meta-freescale@yoctoproject.org
Otavio, All,
On Mon, Apr 4, 2016 at 1:04 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Sat, Apr 2, 2016 at 12:58 PM, Gary Bisson
> <gary.bisson@boundarydevices.com> wrote:
>> Modify the dependencies to match the platform features. By default
>> the build will generate the following plugins for all the mx6/mx7
>> platforms:
>> - imxpxpvideosink
>> - imxpxpvideotransform
>> - imxipuvideotransform
>> - imxipuvideosink
>> - imxipucompositor
>> - imxv4l2videosrc
>> - imxuniaudiodec
>> - imxmp3audioenc
>>
>> Then all the platforms with GPU support (6QDL, 6SL, 6SX) will also have:
>> - imxeglvivsink
>> - imxg2dvideosink
>> - imxg2dvideotransform
>> - imxg2dcompositor
>> Note that only the G2D plugins can work on 6SL.
>>
>> Finally, platforms with VPU support (6QDL) will also have:
>> - imxvpudec
>> - imxvpuenc_h263
>> - imxvpuenc_h264
>> - imxvpuenc_mpeg4
>> - imxvpuenc_mjpeg
>>
>> The pxp and v4l2 plugins have been tested on an i.MX7 Nitrogen7
>> platform from Boundary Devices.
>>
>> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
>
> I do support this change, however it needs to use PACKAGECONFIG flags
> and also include 'configure' options which enable/disable the
> features. The features cannot be enabled depending on library
> detection as it can result in non-deterministic builds.
I agree this would be the best solution. I think gstreamer-imx doesn't
offer this kind of configuration options. Not sure how complicated it
is to implement, I'll let Carlos give his feedback as I'm not familiar
with waf.
However, if it takes time to implement, I think this patch could still
be useful as-is for now. Especially since the current recipe already
relies on on library detection to enable features. Also, this patch
fixes the dependencies of platforms without VPU such as the i.MX6SX
and i.MX6SL. How does the build behaves right now if
gstreamer1.0-plugins-imx is selected for an i.MX6SX platform? I'm not
sure why it would result in non-deterministic builds, would it be any
different than the current recipe to that regard?
Regards,
Gary
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
2016-04-04 13:04 [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support Gary Bisson
@ 2016-04-04 13:11 ` Carlos Rafael Giani
2016-04-04 13:25 ` Otavio Salvador
2016-04-05 13:23 ` Carlos Rafael Giani
2 siblings, 0 replies; 8+ messages in thread
From: Carlos Rafael Giani @ 2016-04-04 13:11 UTC (permalink / raw)
To: Gary Bisson, Otavio Salvador; +Cc: meta-freescale@yoctoproject.org
Actually, I have started to modify the build scripts to be able to
enable/disable individual components by using packageconfigs, so the
timing is nice :)
Also because some people might not need/want the uniaudio decoders for
example.
I'll see if this can be added quickly. If so, then I'll do a 0.12.1
release with the updated recipe. I'll let you know.
On 04/04/2016 03:04 PM, Gary Bisson wrote:
> Otavio, All,
>
> On Mon, Apr 4, 2016 at 1:04 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Sat, Apr 2, 2016 at 12:58 PM, Gary Bisson
>> <gary.bisson@boundarydevices.com> wrote:
>>> Modify the dependencies to match the platform features. By default
>>> the build will generate the following plugins for all the mx6/mx7
>>> platforms:
>>> - imxpxpvideosink
>>> - imxpxpvideotransform
>>> - imxipuvideotransform
>>> - imxipuvideosink
>>> - imxipucompositor
>>> - imxv4l2videosrc
>>> - imxuniaudiodec
>>> - imxmp3audioenc
>>>
>>> Then all the platforms with GPU support (6QDL, 6SL, 6SX) will also have:
>>> - imxeglvivsink
>>> - imxg2dvideosink
>>> - imxg2dvideotransform
>>> - imxg2dcompositor
>>> Note that only the G2D plugins can work on 6SL.
>>>
>>> Finally, platforms with VPU support (6QDL) will also have:
>>> - imxvpudec
>>> - imxvpuenc_h263
>>> - imxvpuenc_h264
>>> - imxvpuenc_mpeg4
>>> - imxvpuenc_mjpeg
>>>
>>> The pxp and v4l2 plugins have been tested on an i.MX7 Nitrogen7
>>> platform from Boundary Devices.
>>>
>>> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
>> I do support this change, however it needs to use PACKAGECONFIG flags
>> and also include 'configure' options which enable/disable the
>> features. The features cannot be enabled depending on library
>> detection as it can result in non-deterministic builds.
> I agree this would be the best solution. I think gstreamer-imx doesn't
> offer this kind of configuration options. Not sure how complicated it
> is to implement, I'll let Carlos give his feedback as I'm not familiar
> with waf.
>
> However, if it takes time to implement, I think this patch could still
> be useful as-is for now. Especially since the current recipe already
> relies on on library detection to enable features. Also, this patch
> fixes the dependencies of platforms without VPU such as the i.MX6SX
> and i.MX6SL. How does the build behaves right now if
> gstreamer1.0-plugins-imx is selected for an i.MX6SX platform? I'm not
> sure why it would result in non-deterministic builds, would it be any
> different than the current recipe to that regard?
>
> Regards,
> Gary
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
2016-04-04 13:04 [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support Gary Bisson
2016-04-04 13:11 ` Carlos Rafael Giani
@ 2016-04-04 13:25 ` Otavio Salvador
2016-04-04 13:34 ` Gary Bisson
2016-04-05 13:23 ` Carlos Rafael Giani
2 siblings, 1 reply; 8+ messages in thread
From: Otavio Salvador @ 2016-04-04 13:25 UTC (permalink / raw)
To: Gary Bisson; +Cc: meta-freescale@yoctoproject.org
On Mon, Apr 4, 2016 at 10:04 AM, Gary Bisson
<gary.bisson@boundarydevices.com> wrote:
...
> I'm not
> sure why it would result in non-deterministic builds, would it be any
> different than the current recipe to that regard?
Consider if one of VPU libraries were build (by hand or being a
dependency of any other recipe) and you later build the gstreamer-imx
one. It will detect and use it. So depending on the build order you
may have it with or without VPU support. So this is what we call a
non-deterministic build.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
2016-04-04 13:25 ` Otavio Salvador
@ 2016-04-04 13:34 ` Gary Bisson
2016-04-04 13:43 ` Otavio Salvador
0 siblings, 1 reply; 8+ messages in thread
From: Gary Bisson @ 2016-04-04 13:34 UTC (permalink / raw)
To: Otavio Salvador; +Cc: meta-freescale@yoctoproject.org
Otavio, All,
On Mon, Apr 4, 2016 at 3:25 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Mon, Apr 4, 2016 at 10:04 AM, Gary Bisson
> <gary.bisson@boundarydevices.com> wrote:
> ...
>> I'm not
>> sure why it would result in non-deterministic builds, would it be any
>> different than the current recipe to that regard?
>
> Consider if one of VPU libraries were build (by hand or being a
> dependency of any other recipe) and you later build the gstreamer-imx
> one. It will detect and use it. So depending on the build order you
> may have it with or without VPU support. So this is what we call a
> non-deterministic build.
But in this case we are talking about a platform which doesn't support
VPU right? Because the one supporting it (6QDL) have VPU libs in
DEPENDS, hence always generating the VPU plugins.
For other platforms, the VPU package won't build since the soc is not
compatible:
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-multimedia/libimxvpuapi/libimxvpuapi_0.10.1.bb#L16
The same goes for a platform which doesn't support GPU. I'm just
curious and want to understand in which case this can really happen.
Anyway, considering Carlos answer I think it makes sense to wait for
the new configuration options.
Regards,
Gary
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
2016-04-04 13:34 ` Gary Bisson
@ 2016-04-04 13:43 ` Otavio Salvador
0 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2016-04-04 13:43 UTC (permalink / raw)
To: Gary Bisson; +Cc: meta-freescale@yoctoproject.org
On Mon, Apr 4, 2016 at 10:34 AM, Gary Bisson
<gary.bisson@boundarydevices.com> wrote:
> On Mon, Apr 4, 2016 at 3:25 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Mon, Apr 4, 2016 at 10:04 AM, Gary Bisson
>> <gary.bisson@boundarydevices.com> wrote:
>> ...
>>> I'm not
>>> sure why it would result in non-deterministic builds, would it be any
>>> different than the current recipe to that regard?
>>
>> Consider if one of VPU libraries were build (by hand or being a
>> dependency of any other recipe) and you later build the gstreamer-imx
>> one. It will detect and use it. So depending on the build order you
>> may have it with or without VPU support. So this is what we call a
>> non-deterministic build.
>
> But in this case we are talking about a platform which doesn't support
> VPU right? Because the one supporting it (6QDL) have VPU libs in
> DEPENDS, hence always generating the VPU plugins.
> For other platforms, the VPU package won't build since the soc is not
> compatible:
> https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-multimedia/libimxvpuapi/libimxvpuapi_0.10.1.bb#L16
>
> The same goes for a platform which doesn't support GPU. I'm just
> curious and want to understand in which case this can really happen.
>
> Anyway, considering Carlos answer I think it makes sense to wait for
> the new configuration options.
Does not matter. It has the potential of break and as such we ought to
not let it happen.
Nothing forces someone to not have a broken local recipe that brings
VPU libraries on a VPU-less platform, and gstramer-imx will than use
those. As I said, it is non-deterministic and a serial problem for
reproducible builds.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support
2016-04-04 13:04 [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support Gary Bisson
2016-04-04 13:11 ` Carlos Rafael Giani
2016-04-04 13:25 ` Otavio Salvador
@ 2016-04-05 13:23 ` Carlos Rafael Giani
2 siblings, 0 replies; 8+ messages in thread
From: Carlos Rafael Giani @ 2016-04-05 13:23 UTC (permalink / raw)
To: Gary Bisson, Otavio Salvador; +Cc: meta-freescale@yoctoproject.org
On 04/04/2016 03:04 PM, Gary Bisson wrote:
> Otavio, All,
>
> On Mon, Apr 4, 2016 at 1:04 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Sat, Apr 2, 2016 at 12:58 PM, Gary Bisson
>> <gary.bisson@boundarydevices.com> wrote:
>>> Modify the dependencies to match the platform features. By default
>>> the build will generate the following plugins for all the mx6/mx7
>>> platforms:
>>> - imxpxpvideosink
>>> - imxpxpvideotransform
>>> - imxipuvideotransform
>>> - imxipuvideosink
>>> - imxipucompositor
>>> - imxv4l2videosrc
>>> - imxuniaudiodec
>>> - imxmp3audioenc
>>>
>>> Then all the platforms with GPU support (6QDL, 6SL, 6SX) will also have:
>>> - imxeglvivsink
>>> - imxg2dvideosink
>>> - imxg2dvideotransform
>>> - imxg2dcompositor
>>> Note that only the G2D plugins can work on 6SL.
>>>
>>> Finally, platforms with VPU support (6QDL) will also have:
>>> - imxvpudec
>>> - imxvpuenc_h263
>>> - imxvpuenc_h264
>>> - imxvpuenc_mpeg4
>>> - imxvpuenc_mjpeg
>>>
>>> The pxp and v4l2 plugins have been tested on an i.MX7 Nitrogen7
>>> platform from Boundary Devices.
>>>
>>> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
>> I do support this change, however it needs to use PACKAGECONFIG flags
>> and also include 'configure' options which enable/disable the
>> features. The features cannot be enabled depending on library
>> detection as it can result in non-deterministic builds.
> I agree this would be the best solution. I think gstreamer-imx doesn't
> offer this kind of configuration options. Not sure how complicated it
> is to implement, I'll let Carlos give his feedback as I'm not familiar
> with waf.
>
> However, if it takes time to implement, I think this patch could still
> be useful as-is for now. Especially since the current recipe already
> relies on on library detection to enable features. Also, this patch
> fixes the dependencies of platforms without VPU such as the i.MX6SX
> and i.MX6SL. How does the build behaves right now if
> gstreamer1.0-plugins-imx is selected for an i.MX6SX platform? I'm not
> sure why it would result in non-deterministic builds, would it be any
> different than the current recipe to that regard?
>
> Regards,
> Gary
Latest git master has now configuration switches for turning on/off the
various plugins. I'll make a release shortly, then a new 0.12.1 recipe
can be included into meta-fsl-arm with proper packageconfigs.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-04-05 13:23 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-04 13:04 [meta-fsl-arm][PATCH] gstreamer1.0-plugins-imx: add i.MX7 support Gary Bisson
2016-04-04 13:11 ` Carlos Rafael Giani
2016-04-04 13:25 ` Otavio Salvador
2016-04-04 13:34 ` Gary Bisson
2016-04-04 13:43 ` Otavio Salvador
2016-04-05 13:23 ` Carlos Rafael Giani
-- strict thread matches above, loose matches on Subject: below --
2016-04-02 15:58 Gary Bisson
2016-04-04 11:04 ` Otavio Salvador
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.