diff mbox series

[2/4] package/tvheadend: bump version, add optional dependencies to opus & x265

Message ID 20170906204908.30036-2-bernd.kuhls@t-online.de
State Accepted
Headers show
Series [1/4] package/tvheadend: add option to en-/disable transcoding support | expand

Commit Message

Bernd Kuhls Sept. 6, 2017, 8:49 p.m. UTC
This bump
https://github.com/tvheadend/tvheadend/compare/54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732...303f418e1ac2bb3078f7a974b69f04ab6a56c636
updated the transcoding support already present:
https://github.com/tvheadend/tvheadend/commit/014bb9505e1d7eb6e37e10931dd89ab3b1a0dc01

To avoid these build errors

src/transcoding/codec/codecs/libs/libx26x.c:105:18: fatal error: x264.h: No such file or directory
 #include <x264.h>

src/transcoding/codec/codecs/libs/libx26x.c:213:18: fatal error: x265.h: No such file or directory
 #include <x265.h>

src/transcoding/codec/codecs/libs/libopus.c:23:31: fatal error: opus/opus_defines.h: No such file or directory
 #include <opus/opus_defines.h>

we need to add dependency handling already with this patch and keep the
hard dependency x264 as minimum codec for transcoding but we now need
to enable BR2_PACKAGE_FFMPEG_GPL to enable x264-support also in ffmpeg.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/tvheadend/Config.in      |  1 +
 package/tvheadend/tvheadend.hash |  2 +-
 package/tvheadend/tvheadend.mk   | 24 ++++++++++++++++++++----
 3 files changed, 22 insertions(+), 5 deletions(-)

Comments

Yann E. MORIN Sept. 7, 2017, 4:15 p.m. UTC | #1
Bernd, All,

On 2017-09-06 22:49 +0200, Bernd Kuhls spake thusly:
> This bump
> https://github.com/tvheadend/tvheadend/compare/54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732...303f418e1ac2bb3078f7a974b69f04ab6a56c636
> updated the transcoding support already present:
> https://github.com/tvheadend/tvheadend/commit/014bb9505e1d7eb6e37e10931dd89ab3b1a0dc01
> 
> To avoid these build errors
> 
> src/transcoding/codec/codecs/libs/libx26x.c:105:18: fatal error: x264.h: No such file or directory
>  #include <x264.h>
> 
> src/transcoding/codec/codecs/libs/libx26x.c:213:18: fatal error: x265.h: No such file or directory
>  #include <x265.h>
> 
> src/transcoding/codec/codecs/libs/libopus.c:23:31: fatal error: opus/opus_defines.h: No such file or directory
>  #include <opus/opus_defines.h>
> 
> we need to add dependency handling already with this patch and keep the
> hard dependency x264 as minimum codec for transcoding but we now need
> to enable BR2_PACKAGE_FFMPEG_GPL to enable x264-support also in ffmpeg.
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/tvheadend/Config.in      |  1 +
>  package/tvheadend/tvheadend.hash |  2 +-
>  package/tvheadend/tvheadend.mk   | 24 ++++++++++++++++++++----
>  3 files changed, 22 insertions(+), 5 deletions(-)
> 
> diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
> index 191593eab..56a3b385d 100644
> --- a/package/tvheadend/Config.in
> +++ b/package/tvheadend/Config.in
> @@ -31,6 +31,7 @@ config BR2_PACKAGE_TVHEADEND_TRANSCODING
>  	bool "transcoding support"
>  	select BR2_PACKAGE_FFMPEG
>  	select BR2_PACKAGE_FFMPEG_AVRESAMPLE
> +	select BR2_PACKAGE_FFMPEG_GPL # needed for x264 support

NAK. If we have an option to enable/disable GPL-licensed codecs, it is
to leave the option to the user to enable/disable them.

We do not want to automatically force that option. Such an option must
only be available as a user-selected option.

However, we've started to remove similar options, like the recently
dropped Qt license.

Instead, I would try to simply remove that option altogether. Instead,
add the GPL license to the license list in the .mk, when such-licensed
codecs are enabled.

After all, ffmpeg is not the only package whose licening terms change
depending on the set of options enabled for that package.

Regards,
Yann E. MORIN.

>  	select BR2_PACKAGE_FFMPEG_SWSCALE
>  	select BR2_PACKAGE_LIBVPX if !BR2_bfin # libvpx
>  	select BR2_PACKAGE_X264
> diff --git a/package/tvheadend/tvheadend.hash b/package/tvheadend/tvheadend.hash
> index 3154b3276..a33b0a5e5 100644
> --- a/package/tvheadend/tvheadend.hash
> +++ b/package/tvheadend/tvheadend.hash
> @@ -1,2 +1,2 @@
>  # Locally computed
> -sha256 1994e379c798b118243e70f7fa38064a9b288d6e38b9ced0e8ad465f5d2e8fd9  tvheadend-54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732.tar.gz
> +sha256 00f67fbf9d8cfea7da90f469b36a8205fb9a38727c4cc5022f4ee5fd322459d3  tvheadend-303f418e1ac2bb3078f7a974b69f04ab6a56c636.tar.gz
> diff --git a/package/tvheadend/tvheadend.mk b/package/tvheadend/tvheadend.mk
> index b1c1fcaf7..4722cb006 100644
> --- a/package/tvheadend/tvheadend.mk
> +++ b/package/tvheadend/tvheadend.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -TVHEADEND_VERSION = 54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732
> +TVHEADEND_VERSION = 303f418e1ac2bb3078f7a974b69f04ab6a56c636
>  TVHEADEND_SITE = $(call github,tvheadend,tvheadend,$(TVHEADEND_VERSION))
>  TVHEADEND_LICENSE = GPL-3.0+
>  TVHEADEND_LICENSE_FILES = LICENSE.md
> @@ -27,10 +27,26 @@ TVHEADEND_CONF_OPTS += --disable-dbus-1
>  endif
>  
>  ifeq ($(BR2_PACKAGE_TVHEADEND_TRANSCODING),y)
> -TVHEADEND_DEPENDENCIES += ffmpeg
> -TVHEADEND_CONF_OPTS += --enable-libav
> +TVHEADEND_CONF_OPTS += --enable-libav --enable-libx264
> +TVHEADEND_DEPENDENCIES += ffmpeg x264
> +ifeq ($(BR2_PACKAGE_OPUS),y)
> +TVHEADEND_CONF_OPTS += --enable-libopus
> +TVHEADEND_DEPENDENCIES += opus
>  else
> -TVHEADEND_CONF_OPTS += --disable-libav
> +TVHEADEND_CONF_OPTS += --disable-libopus
> +endif
> +ifeq ($(BR2_PACKAGE_X265),y)
> +TVHEADEND_CONF_OPTS += --enable-libx265
> +TVHEADEND_DEPENDENCIES += x265
> +else
> +TVHEADEND_CONF_OPTS += --disable-libx265
> +endif
> +else
> +TVHEADEND_CONF_OPTS += \
> +	--disable-libav \
> +	--disable-libopus \
> +	--disable-libx264 \
> +	--disable-libx265
>  endif
>  
>  ifeq ($(BR2_PACKAGE_LIBDVBCSA),y)
> -- 
> 2.11.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Arnout Vandecappelle Sept. 19, 2017, 8:32 p.m. UTC | #2
On 07-09-17 18:15, Yann E. MORIN wrote:
> Bernd, All,
> 
> On 2017-09-06 22:49 +0200, Bernd Kuhls spake thusly:
[snip]
>> @@ -31,6 +31,7 @@ config BR2_PACKAGE_TVHEADEND_TRANSCODING
>>  	bool "transcoding support"
>>  	select BR2_PACKAGE_FFMPEG
>>  	select BR2_PACKAGE_FFMPEG_AVRESAMPLE
>> +	select BR2_PACKAGE_FFMPEG_GPL # needed for x264 support
> 
> NAK. If we have an option to enable/disable GPL-licensed codecs, it is
> to leave the option to the user to enable/disable them.
> 
> We do not want to automatically force that option. Such an option must
> only be available as a user-selected option.

 The situation is quite different here. The option BR2_PACKAGE_FFMPEG_GPL exists
because we don't have suboptions for every possible codec in ffmpeg, and because
ffmpeg's configure script has a corresponding option.

 However, in this case the user has an explicit option
BR2_PACKAGE_TVHEADEND_TRANSCODING that controls whether or not the GPL codecs of
ffmpeg are included. To top things off, tvheadend already is GPL-3.0+, so the
point is kind of moot.

 Therefore, I've applied the entire series to master.

> However, we've started to remove similar options, like the recently
> dropped Qt license.
> 
> Instead, I would try to simply remove that option altogether. Instead,
> add the GPL license to the license list in the .mk, when such-licensed
> codecs are enabled.
> 
> After all, ffmpeg is not the only package whose licening terms change
> depending on the set of options enabled for that package.

 Since we don't have individual options for every ffmpeg codec, such an approach
wouldn't be possible. In addition, since ffmpeg configure has the --enable-gpl
and --enable-nonfree options, I think it makes sense to keep them.

 Regards,
 Arnout

[snip]
diff mbox series

Patch

diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
index 191593eab..56a3b385d 100644
--- a/package/tvheadend/Config.in
+++ b/package/tvheadend/Config.in
@@ -31,6 +31,7 @@  config BR2_PACKAGE_TVHEADEND_TRANSCODING
 	bool "transcoding support"
 	select BR2_PACKAGE_FFMPEG
 	select BR2_PACKAGE_FFMPEG_AVRESAMPLE
+	select BR2_PACKAGE_FFMPEG_GPL # needed for x264 support
 	select BR2_PACKAGE_FFMPEG_SWSCALE
 	select BR2_PACKAGE_LIBVPX if !BR2_bfin # libvpx
 	select BR2_PACKAGE_X264
diff --git a/package/tvheadend/tvheadend.hash b/package/tvheadend/tvheadend.hash
index 3154b3276..a33b0a5e5 100644
--- a/package/tvheadend/tvheadend.hash
+++ b/package/tvheadend/tvheadend.hash
@@ -1,2 +1,2 @@ 
 # Locally computed
-sha256 1994e379c798b118243e70f7fa38064a9b288d6e38b9ced0e8ad465f5d2e8fd9  tvheadend-54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732.tar.gz
+sha256 00f67fbf9d8cfea7da90f469b36a8205fb9a38727c4cc5022f4ee5fd322459d3  tvheadend-303f418e1ac2bb3078f7a974b69f04ab6a56c636.tar.gz
diff --git a/package/tvheadend/tvheadend.mk b/package/tvheadend/tvheadend.mk
index b1c1fcaf7..4722cb006 100644
--- a/package/tvheadend/tvheadend.mk
+++ b/package/tvheadend/tvheadend.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-TVHEADEND_VERSION = 54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732
+TVHEADEND_VERSION = 303f418e1ac2bb3078f7a974b69f04ab6a56c636
 TVHEADEND_SITE = $(call github,tvheadend,tvheadend,$(TVHEADEND_VERSION))
 TVHEADEND_LICENSE = GPL-3.0+
 TVHEADEND_LICENSE_FILES = LICENSE.md
@@ -27,10 +27,26 @@  TVHEADEND_CONF_OPTS += --disable-dbus-1
 endif
 
 ifeq ($(BR2_PACKAGE_TVHEADEND_TRANSCODING),y)
-TVHEADEND_DEPENDENCIES += ffmpeg
-TVHEADEND_CONF_OPTS += --enable-libav
+TVHEADEND_CONF_OPTS += --enable-libav --enable-libx264
+TVHEADEND_DEPENDENCIES += ffmpeg x264
+ifeq ($(BR2_PACKAGE_OPUS),y)
+TVHEADEND_CONF_OPTS += --enable-libopus
+TVHEADEND_DEPENDENCIES += opus
 else
-TVHEADEND_CONF_OPTS += --disable-libav
+TVHEADEND_CONF_OPTS += --disable-libopus
+endif
+ifeq ($(BR2_PACKAGE_X265),y)
+TVHEADEND_CONF_OPTS += --enable-libx265
+TVHEADEND_DEPENDENCIES += x265
+else
+TVHEADEND_CONF_OPTS += --disable-libx265
+endif
+else
+TVHEADEND_CONF_OPTS += \
+	--disable-libav \
+	--disable-libopus \
+	--disable-libx264 \
+	--disable-libx265
 endif
 
 ifeq ($(BR2_PACKAGE_LIBDVBCSA),y)