Patchwork [meta-fsl-demos,v2] packagegroup-imx-gstreamer1.0: Add new package groups for GStreamer 1.0

login
register
mail settings
Submitter Carlos Rafael Giani
Date June 3, 2014, 9:57 p.m.
Message ID <1401832645-14830-1-git-send-email-dv@pseudoterminal.org>
Download mbox | patch
Permalink /patch/73169/
State Changes Requested
Delegated to: Otavio Salvador
Headers show

Comments

Carlos Rafael Giani - June 3, 2014, 9:57 p.m.
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
---
 .../packagegroup-imx-gstreamer1.0-commercial.bb    |  20 ++++
 .../packagegroup-imx-gstreamer1.0-full.bb          |  16 +++
 .../packagegroups/packagegroup-imx-gstreamer1.0.bb | 118 +++++++++++++++++++++
 3 files changed, 154 insertions(+)
 create mode 100644 recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb
 create mode 100644 recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb
 create mode 100644 recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb
Otavio Salvador - June 3, 2014, 10:10 p.m.
Hello Carlos,

Thank you for reworking it, some comments below...

On Tue, Jun 3, 2014 at 6:57 PM, Carlos Rafael Giani
<dv@pseudoterminal.org> wrote:

I think a commitlog explaining the three different package group and
the intended use for them would easy users' life and also our life
when documenting it.

Daiane, this is your turn to pester Carlos for RN updates on this :P

> Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
> ---
>  .../packagegroup-imx-gstreamer1.0-commercial.bb    |  20 ++++
>  .../packagegroup-imx-gstreamer1.0-full.bb          |  16 +++
>  .../packagegroups/packagegroup-imx-gstreamer1.0.bb | 118 +++++++++++++++++++++
>  3 files changed, 154 insertions(+)
>  create mode 100644 recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb
>  create mode 100644 recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb
>  create mode 100644 recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb
>
> diff --git a/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb
> new file mode 100644
> index 0000000..4a31e88
> --- /dev/null
> +++ b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb
> @@ -0,0 +1,20 @@
> +DESCRIPTION = "Freescale package group - gstreamer"
> +LICENSE = "MIT"
> +LICENSE_FLAGS = "commercial"
> +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
> +                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> +
> +inherit packagegroup
> +
> +# only one package is produced: ${PN}
> +# so, nothing is added to PACKAGES

Drop the above comments as they are not important for people reading the recipe.

> +RDEPENDS_${PN} = " \
> +    packagegroup-imx-gstreamer1.0 \
> +"
> +
> +# Plugins from the -ugly collection which require the "commercial" flag in LICENSE_FLAGS_WHITELIST to be set
> +RDEPENDS_${PN} = " \
> +    gstreamer1.0-plugins-ugly-mpg123 \
> +    gstreamer1.0-plugins-ugly-asfdemux \
> +"
> diff --git a/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb
> new file mode 100644
> index 0000000..de797a6
> --- /dev/null
> +++ b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb
> @@ -0,0 +1,16 @@
> +DESCRIPTION = "Freescale package group - gstreamer full"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
> +                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> +
> +inherit packagegroup
> +
> +RDEPENDS_${PN} = " \
> +    packagegroup-imx-gstreamer1.0 \
> +    ${@base_contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'packagegroup-imx-gstreamer1.0-commercial', '', d)} \
> +    gstreamer1.0-plugins-base-meta \
> +    gstreamer1.0-plugins-good-meta \
> +    gstreamer1.0-plugins-bad-meta \
> +    ${@base_contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'gstreamer1.0-plugins-ugly-meta', '', d)} \
> +    ${@base_contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'gstreamer1.0-libav', '', d)} \
> +"
> diff --git a/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb
> new file mode 100644
> index 0000000..3949bb0
> --- /dev/null
> +++ b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb
> @@ -0,0 +1,118 @@
> +DESCRIPTION = "Freescale package group - gstreamer"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
> +                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> +
> +inherit packagegroup
> +
> +PACKAGES += " \
> +    ${PN}-base \
> +    ${PN}-x11-base \
> +    ${PN}-wayland-base \

I think the x11 and wayland specific package groups can be squashed
into the base one. You can rely in the distro features and add the
packages if needed.

> +    ${PN}-audio \
> +    ${PN}-video \
> +    ${PN}-video-bad \
> +    ${PN}-debug \
> +    ${PN}-network-base \
> +    ${PN}-network \
> +"
> +
> +MACHINE_GSTREAMER_1_0_PLUGIN ?= ""
> +
> +RDEPENDS_${PN} = " \
> +    ${PN}-audio \
> +    ${PN}-video \
> +    ${PN}-network-base \
> +    ${PN}-debug \
> +    ${MACHINE_GSTREAMER_1_0_PLUGIN} \
> +"
> +
> +# basic plugins required in virtually every pipeline
> +RDEPENDS_${PN}-base = " \
> +    ${@base_contains('DISTRO_FEATURES', 'x11', '${PN}-x11-base', '', d)} \
> +    ${@base_contains('DISTRO_FEATURES', 'wayland', '${PN}-wayland-base', '', d)} \
> +    gstreamer1.0 \
> +    gstreamer1.0-plugins-base-playback \
> +    gstreamer1.0-plugins-base-alsa \
> +    gstreamer1.0-plugins-base-audioconvert \
> +    gstreamer1.0-plugins-base-audioresample \
> +    gstreamer1.0-plugins-base-gio \
> +    gstreamer1.0-plugins-base-typefindfunctions \
> +    gstreamer1.0-plugins-base-videoconvert \
> +    gstreamer1.0-plugins-base-videoscale \
> +    gstreamer1.0-plugins-base-volume \
> +    gstreamer1.0-plugins-good-autodetect \
> +"
> +
> +# X11 specific plugins
> +RDEPENDS_${PN}-x11-base = " \
> +    gstreamer1.0-plugins-base-ximagesink \
> +    gstreamer1.0-plugins-base-xvimagesink \
> +"
> +
> +# Wayland specific plugins
> +RDEPENDS_${PN}-wayland-base = " \
> +    gstreamer1.0-plugins-bad-waylandsink \
> +"

Please see the above comment. Another reason to avoid splitting it is
because they'll end being generated independently of being used or not
and this is bad as people will see a 'x11' package in their feed if
building for framebuffer for example.

> +# Basic audio plugins: parsers, demuxers, decoders
> +RDEPENDS_${PN}-audio = " \
> +    ${PN}-base \
> +    gstreamer1.0-plugins-base-ivorbisdec \
> +    gstreamer1.0-plugins-base-ogg \
> +    gstreamer1.0-plugins-good-audioparsers \
> +    gstreamer1.0-plugins-good-flac \
> +    gstreamer1.0-plugins-good-icydemux \
> +    gstreamer1.0-plugins-good-id3demux \
> +    gstreamer1.0-plugins-good-speex \
> +    gstreamer1.0-plugins-good-wavparse \
> +"
> +
> +# Basic video plugins: parsers, demuxers
> +RDEPENDS_${PN}-video = " \
> +    ${PN}-base \
> +    gstreamer1.0-plugins-base-subparse \
> +    gstreamer1.0-plugins-base-theora \
> +    gstreamer1.0-plugins-good-avi \
> +    gstreamer1.0-plugins-good-flv \
> +    gstreamer1.0-plugins-good-isomp4 \
> +    gstreamer1.0-plugins-good-matroska \
> +"
> +
> +RRECOMMENDS_${PN}-video = " \
> +    ${PN}-audio \
> +"
> +
> +# Additional video plugins from the -bad collection
> +RDEPENDS_${PN}-video-bad = " \
> +    ${PN}-video \
> +    gstreamer1.0-plugins-bad-mpegpsdemux \
> +    gstreamer1.0-plugins-bad-mpegtsdemux \
> +    gstreamer1.0-plugins-bad-videoparsersbad \
> +"
> +
> +# Plugins used for diagnostics and debugging of pipelines
> +RDEPENDS_${PN}-debug = " \
> +    ${PN}-base \
> +    gstreamer1.0-plugins-base-audiotestsrc \
> +    gstreamer1.0-plugins-base-videotestsrc \
> +    gstreamer1.0-plugins-good-debug \
> +    gstreamer1.0-plugins-good-navigationtest \
> +"
> +
> +# Basic networking plugins required by most pipelines that receive and/or send data
> +RDEPENDS_${PN}-network-base = " \
> +    gstreamer1.0-plugins-base-tcp \
> +    gstreamer1.0-plugins-good-souphttpsrc \
> +    gstreamer1.0-plugins-good-udp \
> +"
> +
> +# Additional networking plugins
> +RDEPENDS_${PN}-network = " \
> +    ${PN}-network-base \
> +    gstreamer1.0-plugins-good-rtp \
> +    gstreamer1.0-plugins-good-rtpmanager \
> +    gstreamer1.0-plugins-good-rtsp \
> +"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"

The rest if alright in my point of view. Please when you have some
time please work in v3 ;)
Daiane Angolini - June 4, 2014, 1:09 p.m.
> I think a commitlog explaining the three different package group and
> the intended use for them would easy users' life and also our life
> when documenting it.
>
> Daiane, this is your turn to pester Carlos for RN updates on this :P

We don´t have *today* a #RN section for packageconfigs, but you are
absolutely right, we must have it!

Carlos, the important information to be added to #RN is the
what/why/when stuff. A description of what your packagegroup is
supposed to be used for. What is the content, why someone would use it
and if some describe common usecases (it would be the when)


If you prefer, we can talk pvt about this


Daiane
Otavio Salvador - June 4, 2014, 1:38 p.m.
On Wed, Jun 4, 2014 at 10:09 AM, Daiane Angolini <daiane.list@gmail.com> wrote:
>> I think a commitlog explaining the three different package group and
>> the intended use for them would easy users' life and also our life
>> when documenting it.
>>
>> Daiane, this is your turn to pester Carlos for RN updates on this :P
>
> We don´t have *today* a #RN section for packageconfigs, but you are
> absolutely right, we must have it!
>
> Carlos, the important information to be added to #RN is the
> what/why/when stuff. A description of what your packagegroup is
> supposed to be used for. What is the content, why someone would use it
> and if some describe common usecases (it would be the when)

Ideally we could use the DESCRIPTION as we did for kernel.
Daiane Angolini - June 4, 2014, 1:46 p.m.
>>> I think a commitlog explaining the three different package group and
>>> the intended use for them would easy users' life and also our life
>>> when documenting it.
>>>
>>> Daiane, this is your turn to pester Carlos for RN updates on this :P
>>
>> We don´t have *today* a #RN section for packageconfigs, but you are
>> absolutely right, we must have it!
>>
>> Carlos, the important information to be added to #RN is the
>> what/why/when stuff. A description of what your packagegroup is
>> supposed to be used for. What is the content, why someone would use it
>> and if some describe common usecases (it would be the when)
>
> Ideally we could use the DESCRIPTION as we did for kernel.

+1
but, please, remove the *ideally* it´s absolutely real and practical

Daiane

Patch

diff --git a/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb
new file mode 100644
index 0000000..4a31e88
--- /dev/null
+++ b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-commercial.bb
@@ -0,0 +1,20 @@ 
+DESCRIPTION = "Freescale package group - gstreamer"
+LICENSE = "MIT"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit packagegroup
+
+# only one package is produced: ${PN}
+# so, nothing is added to PACKAGES
+
+RDEPENDS_${PN} = " \
+    packagegroup-imx-gstreamer1.0 \
+"
+
+# Plugins from the -ugly collection which require the "commercial" flag in LICENSE_FLAGS_WHITELIST to be set
+RDEPENDS_${PN} = " \
+    gstreamer1.0-plugins-ugly-mpg123 \
+    gstreamer1.0-plugins-ugly-asfdemux \
+"
diff --git a/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb
new file mode 100644
index 0000000..de797a6
--- /dev/null
+++ b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0-full.bb
@@ -0,0 +1,16 @@ 
+DESCRIPTION = "Freescale package group - gstreamer full"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = " \
+    packagegroup-imx-gstreamer1.0 \
+    ${@base_contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'packagegroup-imx-gstreamer1.0-commercial', '', d)} \
+    gstreamer1.0-plugins-base-meta \
+    gstreamer1.0-plugins-good-meta \
+    gstreamer1.0-plugins-bad-meta \
+    ${@base_contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'gstreamer1.0-plugins-ugly-meta', '', d)} \
+    ${@base_contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'gstreamer1.0-libav', '', d)} \
+"
diff --git a/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb
new file mode 100644
index 0000000..3949bb0
--- /dev/null
+++ b/recipes-multimedia/packagegroups/packagegroup-imx-gstreamer1.0.bb
@@ -0,0 +1,118 @@ 
+DESCRIPTION = "Freescale package group - gstreamer"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit packagegroup
+
+PACKAGES += " \
+    ${PN}-base \
+    ${PN}-x11-base \
+    ${PN}-wayland-base \
+    ${PN}-audio \
+    ${PN}-video \
+    ${PN}-video-bad \
+    ${PN}-debug \
+    ${PN}-network-base \
+    ${PN}-network \
+"
+
+MACHINE_GSTREAMER_1_0_PLUGIN ?= ""
+
+RDEPENDS_${PN} = " \
+    ${PN}-audio \
+    ${PN}-video \
+    ${PN}-network-base \
+    ${PN}-debug \
+    ${MACHINE_GSTREAMER_1_0_PLUGIN} \
+"
+
+# basic plugins required in virtually every pipeline
+RDEPENDS_${PN}-base = " \
+    ${@base_contains('DISTRO_FEATURES', 'x11', '${PN}-x11-base', '', d)} \
+    ${@base_contains('DISTRO_FEATURES', 'wayland', '${PN}-wayland-base', '', d)} \
+    gstreamer1.0 \
+    gstreamer1.0-plugins-base-playback \
+    gstreamer1.0-plugins-base-alsa \
+    gstreamer1.0-plugins-base-audioconvert \
+    gstreamer1.0-plugins-base-audioresample \
+    gstreamer1.0-plugins-base-gio \
+    gstreamer1.0-plugins-base-typefindfunctions \
+    gstreamer1.0-plugins-base-videoconvert \
+    gstreamer1.0-plugins-base-videoscale \
+    gstreamer1.0-plugins-base-volume \
+    gstreamer1.0-plugins-good-autodetect \
+"
+
+# X11 specific plugins
+RDEPENDS_${PN}-x11-base = " \
+    gstreamer1.0-plugins-base-ximagesink \
+    gstreamer1.0-plugins-base-xvimagesink \
+"
+
+# Wayland specific plugins
+RDEPENDS_${PN}-wayland-base = " \
+    gstreamer1.0-plugins-bad-waylandsink \
+"
+
+# Basic audio plugins: parsers, demuxers, decoders
+RDEPENDS_${PN}-audio = " \
+    ${PN}-base \
+    gstreamer1.0-plugins-base-ivorbisdec \
+    gstreamer1.0-plugins-base-ogg \
+    gstreamer1.0-plugins-good-audioparsers \
+    gstreamer1.0-plugins-good-flac \
+    gstreamer1.0-plugins-good-icydemux \
+    gstreamer1.0-plugins-good-id3demux \
+    gstreamer1.0-plugins-good-speex \
+    gstreamer1.0-plugins-good-wavparse \
+"
+
+# Basic video plugins: parsers, demuxers
+RDEPENDS_${PN}-video = " \
+    ${PN}-base \
+    gstreamer1.0-plugins-base-subparse \
+    gstreamer1.0-plugins-base-theora \
+    gstreamer1.0-plugins-good-avi \
+    gstreamer1.0-plugins-good-flv \
+    gstreamer1.0-plugins-good-isomp4 \
+    gstreamer1.0-plugins-good-matroska \
+"
+
+RRECOMMENDS_${PN}-video = " \
+    ${PN}-audio \
+"
+
+# Additional video plugins from the -bad collection
+RDEPENDS_${PN}-video-bad = " \
+    ${PN}-video \
+    gstreamer1.0-plugins-bad-mpegpsdemux \
+    gstreamer1.0-plugins-bad-mpegtsdemux \
+    gstreamer1.0-plugins-bad-videoparsersbad \
+"
+
+# Plugins used for diagnostics and debugging of pipelines
+RDEPENDS_${PN}-debug = " \
+    ${PN}-base \
+    gstreamer1.0-plugins-base-audiotestsrc \
+    gstreamer1.0-plugins-base-videotestsrc \
+    gstreamer1.0-plugins-good-debug \
+    gstreamer1.0-plugins-good-navigationtest \
+"
+
+# Basic networking plugins required by most pipelines that receive and/or send data
+RDEPENDS_${PN}-network-base = " \
+    gstreamer1.0-plugins-base-tcp \
+    gstreamer1.0-plugins-good-souphttpsrc \
+    gstreamer1.0-plugins-good-udp \
+"
+
+# Additional networking plugins
+RDEPENDS_${PN}-network = " \
+    ${PN}-network-base \
+    gstreamer1.0-plugins-good-rtp \
+    gstreamer1.0-plugins-good-rtpmanager \
+    gstreamer1.0-plugins-good-rtsp \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"