Skip to contentSkip to conversation

gst1-libav: switch to unbundled

PATCH New Gustavo Zacarias 4 participants 7 messages Mar 30, 2016 – Mar 31, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 gst1-libav: switch to unbundled

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.

---
 package/gstreamer1/gst1-libav/Config.in     |  2 +
 package/gstreamer1/gst1-libav/gst1-libav.mk | 79 ++---------------------------
 2 files changed, 7 insertions(+), 74 deletions(-)
package/gstreamer1/gst1-libav/Config.in +2 -0
index 4f9c2b8..8ef3e89 100644
@@ -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).
package/gstreamer1/gst1-libav/gst1-libav.mk +5 -74

84 lines not on this page · raw message

Signature · 1 line
2.7.3
#1 lore raw

PATCH 2/2 gst1-libav: add license info

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.

---
 package/gstreamer1/gst1-libav/gst1-libav.mk | 2 ++
 1 file changed, 2 insertions(+)
package/gstreamer1/gst1-libav/gst1-libav.mk +2 -0
index 02ac394..d878ec8 100644
@@ -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))
Signature · 1 line
2.7.3
#2 lore raw

PATCH 2/2 gst1-libav: add license info

Quoted 4 lines · Gustavo Zacarias

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.

Quoted 6 lines

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.

Regards,
Arnout

Quoted 17 lines
---
  package/gstreamer1/gst1-libav/gst1-libav.mk | 2 ++
  1 file changed, 2 insertions(+)
package/gstreamer1/gst1-libav/gst1-libav.mk +2 -0
index 02ac394..d878ec8 100644
@@ -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))
Signature · 6 lines
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
#3 lore raw

PATCH 2/2 gst1-libav: add license info

In reply to Gustavo Zacarias

Hello,

Quoted 7 lines · Gustavo Zacarias

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.

Quoted 7 lines

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

---
 package/gstreamer1/gst1-libav/gst1-libav.mk | 2 ++
 1 file changed, 2 insertions(+)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/2 gst1-libav: switch to unbundled

In reply to Gustavo Zacarias
Quoted 15 lines · Gustavo Zacarias

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.

---
  package/gstreamer1/gst1-libav/Config.in     |  2 +
  package/gstreamer1/gst1-libav/gst1-libav.mk | 79 ++---------------------------
  2 files changed, 7 insertions(+), 74 deletions(-)
package/gstreamer1/gst1-libav/Config.in +0 -0
index 4f9c2b8..8ef3e89 100644

package/gstreamer1/gst1-libav/Config.in line 7

Quoted 7 lines
package/gstreamer1/gst1-libav/Config.in +2 -0
@@ -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.

Quoted 14 lines
package/gstreamer1/gst1-libav/gst1-libav.mk +0 -6
index 8f892d0..02ac394 100644
@@ -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

package/gstreamer1/gst1-libav/gst1-libav.mk line 25

Quoted 10 lines
package/gstreamer1/gst1-libav/gst1-libav.mk +0 -10
-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!]

package/gstreamer1/gst1-libav/gst1-libav.mk line 14

Quoted 5 lines
package/gstreamer1/gst1-libav/gst1-libav.mk +5 -0
+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:

Regards,
Arnout

Quoted 3 lines
package/gstreamer1/gst1-libav/gst1-libav.mk +0 -0
  $(eval $(autotools-package))
 
Signature · 6 lines
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
#5 lore raw

PATCH 1/2 gst1-libav: switch to unbundled

Arnout Vandecappelle <[email protected]> wrote in
news:56FC33CA.1010502 at mind.be:

Quoted 3 lines

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

#6 lore raw

PATCH 1/2 gst1-libav: switch to unbundled

In reply to Gustavo Zacarias

Hello,

Quoted 9 lines · Gustavo Zacarias

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.

---
 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

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