Patchwork [meta-fsl-arm,v5] gstreamer1.0-imx: Add GStreamer 1.0 plugins

login
register
mail settings
Submitter dv
Date Feb. 6, 2014, 4:04 p.m.
Message ID <1391702655-4979-1-git-send-email-dv@pseudoterminal.org>
Download mbox | patch
Permalink /patch/66411/
State Accepted
Delegated to: Otavio Salvador
Headers show

Comments

dv - Feb. 6, 2014, 4:04 p.m.
gstreamer-imx is an ongoing project to write GStreamer 1.0 plugins for
using the i.MX VPU,IPU, and GPU. With the plugins, the VPU en- and decoding
features can be used, the IPU can transform images (deinterlacing,
colorspace conversion etc.), and the GPU can display frames using
OpenGL ES and the Vivante direct textures. Currently, the plugins have
only been tested with the i.MX6 SoC series.

All plugins are based on appropriate GStreamer base classes. Physical
memory metadata structures make it possible to avoid costly frame copies,
making it possible to use transcoding chains that do not involve
CPU copies for example.

This recipe is sent to meta-fsl-arm to make these plugins more visible
and available to others.

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
---
 .../gstreamer/gstreamer1.0-imx_0.9.2.bb            | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-imx_0.9.2.bb
Otavio Salvador - Feb. 6, 2014, 8:22 p.m.
On Thu, Feb 6, 2014 at 2:04 PM, Carlos Rafael Giani
<dv@pseudoterminal.org> wrote:
> gstreamer-imx is an ongoing project to write GStreamer 1.0 plugins for
> using the i.MX VPU,IPU, and GPU. With the plugins, the VPU en- and decoding
> features can be used, the IPU can transform images (deinterlacing,
> colorspace conversion etc.), and the GPU can display frames using
> OpenGL ES and the Vivante direct textures. Currently, the plugins have
> only been tested with the i.MX6 SoC series.
>
> All plugins are based on appropriate GStreamer base classes. Physical
> memory metadata structures make it possible to avoid costly frame copies,
> making it possible to use transcoding chains that do not involve
> CPU copies for example.
>
> This recipe is sent to meta-fsl-arm to make these plugins more visible
> and available to others.
>
> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>

I applied this so we start getting more people testing this in their
system. Carlos, thanks for doing this work :-)
Rogerio Nunes - Feb. 13, 2014, 5:43 p.m.
Hi Carlos,

I'd like to rename the recipe to gstreamer1.0-plugins-imx, but wanted
to check first if you had any particular reason to avoid using
"plugins" in the name of the recipe.
Since the recipe requires gst-plugins-package.inc, I think the name
I'm suggesting will make it clear that the package is a set of plugin
packages actually, following what I'm assuming to be the standard in
poky.

Do you agree?

Thanks,
Rogerio.

On Thu, Feb 6, 2014 at 3:22 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
> On Thu, Feb 6, 2014 at 2:04 PM, Carlos Rafael Giani
> <dv@pseudoterminal.org> wrote:
>> gstreamer-imx is an ongoing project to write GStreamer 1.0 plugins for
>> using the i.MX VPU,IPU, and GPU. With the plugins, the VPU en- and decoding
>> features can be used, the IPU can transform images (deinterlacing,
>> colorspace conversion etc.), and the GPU can display frames using
>> OpenGL ES and the Vivante direct textures. Currently, the plugins have
>> only been tested with the i.MX6 SoC series.
>>
>> All plugins are based on appropriate GStreamer base classes. Physical
>> memory metadata structures make it possible to avoid costly frame copies,
>> making it possible to use transcoding chains that do not involve
>> CPU copies for example.
>>
>> This recipe is sent to meta-fsl-arm to make these plugins more visible
>> and available to others.
>>
>> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
>
> I applied this so we start getting more people testing this in their
> system. Carlos, thanks for doing this work :-)
>
> --
> 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
> _______________________________________________
> meta-freescale mailing list
> meta-freescale@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale
dv - Feb. 13, 2014, 7:54 p.m.
Hi Rogeiro,

sure, no problem. I just chose it based on the github repository's name. 
I agree with your suggestion.

regards,
Carlos

On 2014-02-13 18:43, Rogerio Nunes wrote:
> Hi Carlos,
>
> I'd like to rename the recipe to gstreamer1.0-plugins-imx, but wanted
> to check first if you had any particular reason to avoid using
> "plugins" in the name of the recipe.
> Since the recipe requires gst-plugins-package.inc, I think the name
> I'm suggesting will make it clear that the package is a set of plugin
> packages actually, following what I'm assuming to be the standard in
> poky.
>
> Do you agree?
>
> Thanks,
> Rogerio.
>
> On Thu, Feb 6, 2014 at 3:22 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
>> On Thu, Feb 6, 2014 at 2:04 PM, Carlos Rafael Giani
>> <dv@pseudoterminal.org> wrote:
>>> gstreamer-imx is an ongoing project to write GStreamer 1.0 plugins for
>>> using the i.MX VPU,IPU, and GPU. With the plugins, the VPU en- and decoding
>>> features can be used, the IPU can transform images (deinterlacing,
>>> colorspace conversion etc.), and the GPU can display frames using
>>> OpenGL ES and the Vivante direct textures. Currently, the plugins have
>>> only been tested with the i.MX6 SoC series.
>>>
>>> All plugins are based on appropriate GStreamer base classes. Physical
>>> memory metadata structures make it possible to avoid costly frame copies,
>>> making it possible to use transcoding chains that do not involve
>>> CPU copies for example.
>>>
>>> This recipe is sent to meta-fsl-arm to make these plugins more visible
>>> and available to others.
>>>
>>> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
>> I applied this so we start getting more people testing this in their
>> system. Carlos, thanks for doing this work :-)
>>
>> --
>> 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
>> _______________________________________________
>> meta-freescale mailing list
>> meta-freescale@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/meta-freescale
Rogerio Nunes - Feb. 14, 2014, 3:10 a.m.
Done renaming. :-)

One more question:

When I bake both versions of gstreamer in the same environment, I get
a bunch of WARNINGS:

WARNING: gstreamer-0.10.36 was registered as shlib provider for
libgstcoreelements.so, changing it to gstreamer1.0-1.2.2 because it
was built later
WARNING: QA Issue: libglade: configure was passed unrecognised
options: --disable-schemas-install
WARNING: gst-plugins-base-adder-0.10.36 was registered as shlib
provider for libgstadder.so, changing it to
gstreamer1.0-plugins-base-adder-1.2.2 because it was built later
WARNING: gst-plugins-base-alsa-0.10.36 was registered as shlib
provider for libgstalsa.so, changing it to
gstreamer1.0-plugins-base-alsa-1.2.2 because it was built later
...
WARNING: gst-plugins-base-ximagesink-0.10.36 was registered as shlib
provider for libgstximagesink.so, changing it to
gstreamer1.0-plugins-base-ximagesink-1.2.2 because it was built later
WARNING: gst-plugins-base-xvimagesink-0.10.36 was registered as shlib
provider for libgstxvimagesink.so, changing it to
gstreamer1.0-plugins-base-xvimagesink-1.2.2 because it was built later

Does anybody know how to solve this issue?

Both versions are supposed to coexist in a Linux system, but maybe the
base recipes do not support this properly?

Thinking out loud... Would it be an option to mark all gstreamer
plugin libraries as PRIVATE_LIBS?

Thanks,
Rogerio.

On Thu, Feb 13, 2014 at 2:54 PM, Carlos Rafael Giani
<dv@pseudoterminal.org> wrote:
> Hi Rogeiro,
>
> sure, no problem. I just chose it based on the github repository's name. I
> agree with your suggestion.
>
> regards,
> Carlos
>
>
> On 2014-02-13 18:43, Rogerio Nunes wrote:
>>
>> Hi Carlos,
>>
>> I'd like to rename the recipe to gstreamer1.0-plugins-imx, but wanted
>> to check first if you had any particular reason to avoid using
>> "plugins" in the name of the recipe.
>> Since the recipe requires gst-plugins-package.inc, I think the name
>> I'm suggesting will make it clear that the package is a set of plugin
>> packages actually, following what I'm assuming to be the standard in
>> poky.
>>
>> Do you agree?
>>
>> Thanks,
>> Rogerio.
>>
>> On Thu, Feb 6, 2014 at 3:22 PM, Otavio Salvador <otavio@ossystems.com.br>
>> wrote:
>>>
>>> On Thu, Feb 6, 2014 at 2:04 PM, Carlos Rafael Giani
>>> <dv@pseudoterminal.org> wrote:
>>>>
>>>> gstreamer-imx is an ongoing project to write GStreamer 1.0 plugins for
>>>> using the i.MX VPU,IPU, and GPU. With the plugins, the VPU en- and
>>>> decoding
>>>> features can be used, the IPU can transform images (deinterlacing,
>>>> colorspace conversion etc.), and the GPU can display frames using
>>>> OpenGL ES and the Vivante direct textures. Currently, the plugins have
>>>> only been tested with the i.MX6 SoC series.
>>>>
>>>> All plugins are based on appropriate GStreamer base classes. Physical
>>>> memory metadata structures make it possible to avoid costly frame
>>>> copies,
>>>> making it possible to use transcoding chains that do not involve
>>>> CPU copies for example.
>>>>
>>>> This recipe is sent to meta-fsl-arm to make these plugins more visible
>>>> and available to others.
>>>>
>>>> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
>>>
>>> I applied this so we start getting more people testing this in their
>>> system. Carlos, thanks for doing this work :-)
>>>
>>> --
>>> 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
>>> _______________________________________________
>>> meta-freescale mailing list
>>> meta-freescale@yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/meta-freescale
>
>

Patch

diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-imx_0.9.2.bb b/recipes-multimedia/gstreamer/gstreamer1.0-imx_0.9.2.bb
new file mode 100644
index 0000000..2bbd3f9
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-imx_0.9.2.bb
@@ -0,0 +1,29 @@ 
+DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605"
+SECTION = "multimedia"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base libfslvpuwrap virtual/kernel virtual/egl \
+           virtual/libgles2 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+
+SRCBRANCH ?= "master"
+SRCREV = "331f268b3bc282351b82c3548e703ea04be72b2c"
+SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}"
+
+S = "${WORKDIR}/git"
+
+inherit waf
+
+CFLAGS += "-I${STAGING_KERNEL_DIR}/include"
+
+# configure the eglvivsink element to use the appropiate EGL platform code
+EGLVIVSINK_PLATFORM = "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', 'fb', d)}"
+EXTRA_OECONF = "--egl-platform=${EGLVIVSINK_PLATFORM}"
+
+# LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0)
+LIBV = "1.0"
+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)"