All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled
@ 2016-03-30 19:36 Gustavo Zacarias
  2016-03-30 19:36 ` [Buildroot] [PATCH 2/2] gst1-libav: add license info Gustavo Zacarias
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Gustavo Zacarias @ 2016-03-30 19:36 UTC (permalink / raw)
  To: buildroot

It avoids the crazy in handling all of the ffmpeg options here as well,
and potentially avoids target code duplication, hence resulting in a
size reduction.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/gstreamer1/gst1-libav/Config.in     |  2 +
 package/gstreamer1/gst1-libav/gst1-libav.mk | 79 ++---------------------------
 2 files changed, 7 insertions(+), 74 deletions(-)

diff --git a/package/gstreamer1/gst1-libav/Config.in b/package/gstreamer1/gst1-libav/Config.in
index 4f9c2b8..8ef3e89 100644
--- a/package/gstreamer1/gst1-libav/Config.in
+++ b/package/gstreamer1/gst1-libav/Config.in
@@ -1,5 +1,7 @@
 config BR2_PACKAGE_GST1_LIBAV
 	bool "gst1-libav"
+	select BR2_PACKAGE_FFMPEG
+	select BR2_PACKAGE_FFMPEG_SWSCALE
 	select BR2_PACKAGE_GST1_PLUGINS_BASE
 	help
 	  GStreamer plugin (formerly gst-ffmpeg).
diff --git a/package/gstreamer1/gst1-libav/gst1-libav.mk b/package/gstreamer1/gst1-libav/gst1-libav.mk
index 8f892d0..02ac394 100644
--- a/package/gstreamer1/gst1-libav/gst1-libav.mk
+++ b/package/gstreamer1/gst1-libav/gst1-libav.mk
@@ -7,79 +7,10 @@
 GST1_LIBAV_VERSION = 1.8.0
 GST1_LIBAV_SOURCE = gst-libav-$(GST1_LIBAV_VERSION).tar.xz
 GST1_LIBAV_SITE = http://gstreamer.freedesktop.org/src/gst-libav
-GST1_LIBAV_DEPENDENCIES = host-pkgconf gstreamer1 gst1-plugins-base
-GST1_LIBAV_CONF_EXTRA_OPTS = --cross-prefix=$(TARGET_CROSS) --target-os=linux
-
-ifeq ($(BR2_PACKAGE_ZLIB),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-zlib
-GST1_LIBAV_DEPENDENCIES += zlib
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-zlib
-endif
-
-ifeq ($(BR2_PACKAGE_BZIP2),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-bzlib
-GST1_LIBAV_DEPENDENCIES += bzip2
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-bzlib
-endif
-
-# Generic CPU setup for bundled ffmpeg
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
-GST1_LIBAV_CONF_EXTRA_OPTS += --cpu=$(BR2_GCC_TARGET_CPU)
-else ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
-GST1_LIBAV_CONF_EXTRA_OPTS += --cpu=$(BR2_GCC_TARGET_ARCH)
-endif
-
-ifeq ($(BR2_X86_CPU_HAS_MMX),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-yasm
-GST1_LIBAV_DEPENDENCIES += host-yasm
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-yasm
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-mmx
-endif
-
-ifeq ($(BR2_X86_CPU_HAS_SSE),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-sse
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-sse
-endif
-
-ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-ssse3
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-ssse3
-endif
-
-# Explicitly disable everything that doesn't match for ARM
-# FFMPEG "autodetects" by compiling an extended instruction via AS
-# This works on compilers that aren't built for generic by default
-ifeq ($(BR2_ARM_CPU_ARMV4),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv5te
-endif
-ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-armv6
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
-endif
-ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-neon
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-neon
-endif
-ifeq ($(BR2_ARM_CPU_HAS_VFPV2),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-vfp
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-vfp
-endif
-
-ifeq ($(BR2_POWERPC_CPU_HASH_ALTIVEC),y)
-GST1_LIBAV_CONF_EXTRA_OPTS += --enable-altivec
-else
-GST1_LIBAV_CONF_EXTRA_OPTS += --disable-altivec
-endif
-
-GST1_LIBAV_CONF_OPTS = \
-	--with-libav-extra-configure="$(GST1_LIBAV_CONF_EXTRA_OPTS)"
+GST1_LIBAV_CONF_OPTS = --with-system-libav
+GST1_LIBAV_DEPENDENCIES = \
+	host-pkgconf ffmpeg gstreamer1 gst1-plugins-base \
+	$(if $(BR2_PACKAGE_BZIP2),bzip2) \
+	$(if $(BR2_PACKAGE_XZ),xz)
 
 $(eval $(autotools-package))
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 2/2] gst1-libav: add license info
  2016-03-30 19:36 [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Gustavo Zacarias
@ 2016-03-30 19:36 ` Gustavo Zacarias
  2016-03-30 20:17   ` Arnout Vandecappelle
  2016-03-31  1:46   ` Thomas Petazzoni
  2016-03-30 20:15 ` [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Arnout Vandecappelle
  2016-03-31  1:45 ` Thomas Petazzoni
  2 siblings, 2 replies; 7+ messages in thread
From: Gustavo Zacarias @ 2016-03-30 19:36 UTC (permalink / raw)
  To: buildroot

Now that we use unbundled ffmpeg the licensing becomes much easier.
Relevant code is under ext/*, which according to COPYING and comments is
GPLv2+, except for ext/libswscale/gstffmpegscale.c which is LGPLv2+ -
however that's not built/used when using system ffmpeg.

The code under gst-libs/ is the bundled ffmpeg itself.

Tests are under LGPLv2+ as well but we don't build them since we
disabled gst-check support in the gstreamer1 package.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/gstreamer1/gst1-libav/gst1-libav.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/gstreamer1/gst1-libav/gst1-libav.mk b/package/gstreamer1/gst1-libav/gst1-libav.mk
index 02ac394..d878ec8 100644
--- a/package/gstreamer1/gst1-libav/gst1-libav.mk
+++ b/package/gstreamer1/gst1-libav/gst1-libav.mk
@@ -12,5 +12,7 @@ GST1_LIBAV_DEPENDENCIES = \
 	host-pkgconf ffmpeg gstreamer1 gst1-plugins-base \
 	$(if $(BR2_PACKAGE_BZIP2),bzip2) \
 	$(if $(BR2_PACKAGE_XZ),xz)
+GST1_LIBAV_LICENSE = GPLv2+
+GST1_LIBAV_LICENSE_FILES = COPYING
 
 $(eval $(autotools-package))
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled
  2016-03-30 19:36 [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Gustavo Zacarias
  2016-03-30 19:36 ` [Buildroot] [PATCH 2/2] gst1-libav: add license info Gustavo Zacarias
@ 2016-03-30 20:15 ` Arnout Vandecappelle
  2016-03-30 20:31   ` Bernd Kuhls
  2016-03-31  1:45 ` Thomas Petazzoni
  2 siblings, 1 reply; 7+ messages in thread
From: Arnout Vandecappelle @ 2016-03-30 20:15 UTC (permalink / raw)
  To: buildroot

On 03/30/16 21:36, Gustavo Zacarias wrote:
> It avoids the crazy in handling all of the ffmpeg options here as well,
> and potentially avoids target code duplication, hence resulting in a
> size reduction.
>
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>   package/gstreamer1/gst1-libav/Config.in     |  2 +
>   package/gstreamer1/gst1-libav/gst1-libav.mk | 79 ++---------------------------
>   2 files changed, 7 insertions(+), 74 deletions(-)
>
> diff --git a/package/gstreamer1/gst1-libav/Config.in b/package/gstreamer1/gst1-libav/Config.in
> index 4f9c2b8..8ef3e89 100644
> --- a/package/gstreamer1/gst1-libav/Config.in
> +++ b/package/gstreamer1/gst1-libav/Config.in
> @@ -1,5 +1,7 @@
>   config BR2_PACKAGE_GST1_LIBAV
>   	bool "gst1-libav"
> +	select BR2_PACKAGE_FFMPEG
> +	select BR2_PACKAGE_FFMPEG_SWSCALE
>   	select BR2_PACKAGE_GST1_PLUGINS_BASE
>   	help
>   	  GStreamer plugin (formerly gst-ffmpeg).

  It would be good to extend the help text with something like:

	  The codecs, muxers, bitstreams and filters to build can be
	  selected in the ffmpeg package.


  Also, it's a bit unfortunate that if ffmpeg is selected automatically, 
BR2_PACKAGE_FFMPEG_FFMPEG will be enabled by default. Well, the binary is pretty 
small compared to all the codecs so it doesn't matter much.

> diff --git a/package/gstreamer1/gst1-libav/gst1-libav.mk b/package/gstreamer1/gst1-libav/gst1-libav.mk
> index 8f892d0..02ac394 100644
> --- a/package/gstreamer1/gst1-libav/gst1-libav.mk
> +++ b/package/gstreamer1/gst1-libav/gst1-libav.mk
> @@ -7,79 +7,10 @@
>   GST1_LIBAV_VERSION = 1.8.0
>   GST1_LIBAV_SOURCE = gst-libav-$(GST1_LIBAV_VERSION).tar.xz
>   GST1_LIBAV_SITE = http://gstreamer.freedesktop.org/src/gst-libav
> -GST1_LIBAV_DEPENDENCIES = host-pkgconf gstreamer1 gst1-plugins-base
> -GST1_LIBAV_CONF_EXTRA_OPTS = --cross-prefix=$(TARGET_CROSS) --target-os=linux
> -
> -ifeq ($(BR2_PACKAGE_ZLIB),y)
> -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-zlib
> -GST1_LIBAV_DEPENDENCIES += zlib
> -else
> -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-zlib
> -endif
> -
> -ifeq ($(BR2_PACKAGE_BZIP2),y)
> -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-bzlib
> -GST1_LIBAV_DEPENDENCIES += bzip2
> -else
> -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-bzlib
> -endif

  ext/libav/Makefile.am contains a condition on HAVE_BZ2, so I think this should 
be kept.

  And while you're at it: there is an optional dependency on xz (HAVE_LZMA) so 
it would be nice to add that too (separate patch).


[Huge snip, yeah!]

> +GST1_LIBAV_CONF_OPTS = --with-system-libav
> +GST1_LIBAV_DEPENDENCIES = \
> +	host-pkgconf ffmpeg gstreamer1 gst1-plugins-base \
> +	$(if $(BR2_PACKAGE_BZIP2),bzip2) \
> +	$(if $(BR2_PACKAGE_XZ),xz)

  Oops, here it is!

  Small nit: I prefer a single dependency per line, it's a bit more verbose but 
easier to read IMHO.


  Since all my comments are actually addressed already:

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

  Regards,
  Arnout

>
>   $(eval $(autotools-package))
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 2/2] gst1-libav: add license info
  2016-03-30 19:36 ` [Buildroot] [PATCH 2/2] gst1-libav: add license info Gustavo Zacarias
@ 2016-03-30 20:17   ` Arnout Vandecappelle
  2016-03-31  1:46   ` Thomas Petazzoni
  1 sibling, 0 replies; 7+ messages in thread
From: Arnout Vandecappelle @ 2016-03-30 20:17 UTC (permalink / raw)
  To: buildroot

On 03/30/16 21:36, Gustavo Zacarias wrote:
> Now that we use unbundled ffmpeg the licensing becomes much easier.
> Relevant code is under ext/*, which according to COPYING and comments is
> GPLv2+, except for ext/libswscale/gstffmpegscale.c which is LGPLv2+ -
> however that's not built/used when using system ffmpeg.

  AFAICS it's also not built with the bundled ffmpeg.


> The code under gst-libs/ is the bundled ffmpeg itself.
>
> Tests are under LGPLv2+ as well but we don't build them since we
> disabled gst-check support in the gstreamer1 package.
>
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

  Regards,
  Arnout

> ---
>   package/gstreamer1/gst1-libav/gst1-libav.mk | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/package/gstreamer1/gst1-libav/gst1-libav.mk b/package/gstreamer1/gst1-libav/gst1-libav.mk
> index 02ac394..d878ec8 100644
> --- a/package/gstreamer1/gst1-libav/gst1-libav.mk
> +++ b/package/gstreamer1/gst1-libav/gst1-libav.mk
> @@ -12,5 +12,7 @@ GST1_LIBAV_DEPENDENCIES = \
>   	host-pkgconf ffmpeg gstreamer1 gst1-plugins-base \
>   	$(if $(BR2_PACKAGE_BZIP2),bzip2) \
>   	$(if $(BR2_PACKAGE_XZ),xz)
> +GST1_LIBAV_LICENSE = GPLv2+
> +GST1_LIBAV_LICENSE_FILES = COPYING
>
>   $(eval $(autotools-package))
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled
  2016-03-30 20:15 ` [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Arnout Vandecappelle
@ 2016-03-30 20:31   ` Bernd Kuhls
  0 siblings, 0 replies; 7+ messages in thread
From: Bernd Kuhls @ 2016-03-30 20:31 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle <arnout@mind.be> wrote in
news:56FC33CA.1010502 at mind.be: 

> Also, it's a bit unfortunate that if ffmpeg is selected automatically,
> BR2_PACKAGE_FFMPEG_FFMPEG will be enabled by default. Well, the binary
> is pretty  small compared to all the codecs so it doesn't matter much.

Hi,

what about not enabling BR2_PACKAGE_FFMPEG_FFMPEG by default?

Regards, Bernd

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled
  2016-03-30 19:36 [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Gustavo Zacarias
  2016-03-30 19:36 ` [Buildroot] [PATCH 2/2] gst1-libav: add license info Gustavo Zacarias
  2016-03-30 20:15 ` [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Arnout Vandecappelle
@ 2016-03-31  1:45 ` Thomas Petazzoni
  2 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2016-03-31  1:45 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 30 Mar 2016 16:36:39 -0300, Gustavo Zacarias wrote:
> It avoids the crazy in handling all of the ffmpeg options here as well,
> and potentially avoids target code duplication, hence resulting in a
> size reduction.
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  package/gstreamer1/gst1-libav/Config.in     |  2 +
>  package/gstreamer1/gst1-libav/gst1-libav.mk | 79 ++---------------------------
>  2 files changed, 7 insertions(+), 74 deletions(-)

Applied to master, after tweaking the help text as suggested by Arnout.
Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 2/2] gst1-libav: add license info
  2016-03-30 19:36 ` [Buildroot] [PATCH 2/2] gst1-libav: add license info Gustavo Zacarias
  2016-03-30 20:17   ` Arnout Vandecappelle
@ 2016-03-31  1:46   ` Thomas Petazzoni
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2016-03-31  1:46 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 30 Mar 2016 16:36:40 -0300, Gustavo Zacarias wrote:
> Now that we use unbundled ffmpeg the licensing becomes much easier.
> Relevant code is under ext/*, which according to COPYING and comments is
> GPLv2+, except for ext/libswscale/gstffmpegscale.c which is LGPLv2+ -
> however that's not built/used when using system ffmpeg.
> 
> The code under gst-libs/ is the bundled ffmpeg itself.
> 
> Tests are under LGPLv2+ as well but we don't build them since we
> disabled gst-check support in the gstreamer1 package.
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  package/gstreamer1/gst1-libav/gst1-libav.mk | 2 ++
>  1 file changed, 2 insertions(+)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-03-31  1:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-30 19:36 [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Gustavo Zacarias
2016-03-30 19:36 ` [Buildroot] [PATCH 2/2] gst1-libav: add license info Gustavo Zacarias
2016-03-30 20:17   ` Arnout Vandecappelle
2016-03-31  1:46   ` Thomas Petazzoni
2016-03-30 20:15 ` [Buildroot] [PATCH 1/2] gst1-libav: switch to unbundled Arnout Vandecappelle
2016-03-30 20:31   ` Bernd Kuhls
2016-03-31  1:45 ` Thomas Petazzoni

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.