ffmpeg: Update to 3.2.10. 5765/head
authorTed Hess <thess@kitschensync.net>
Wed, 7 Mar 2018 22:07:02 +0000 (17:07 -0500)
committerTed Hess <thess@kitschensync.net>
Thu, 22 Mar 2018 17:54:43 +0000 (13:54 -0400)
Re-organize configuration options to allow non-patented/un-licensed builds.
Include AAC and WMA codecs without BUILD_PATENTED

Signed-off-by: Ted Hess <thess@kitschensync.net>
multimedia/ffmpeg/Config.in
multimedia/ffmpeg/Makefile

index 333b53ba1e8866c991c823d6024555f828d78f72..ebe6e29342632be226b499de2a256b538f4746e6 100644 (file)
@@ -43,12 +43,11 @@ config FFMPEG_CUSTOM_FFSERVER_SUPPORT
 
 config FFMPEG_CUSTOM_MINIDLNA_SUPPORT
        bool "Include support for minidlna"
-       depends on FFMPEG_CUSTOM_PATENTED
        select FFMPEG_CUSTOM_DECODER_aac
        select FFMPEG_CUSTOM_DECODER_ac3
        select FFMPEG_CUSTOM_DECODER_flac
-       select FFMPEG_CUSTOM_DECODER_h264
-       select FFMPEG_CUSTOM_DECODER_hevc
+       select FFMPEG_CUSTOM_DECODER_h264 if (BUILD_PATENTED)
+       select FFMPEG_CUSTOM_DECODER_hevc if (BUILD_PATENTED)
        select FFMPEG_CUSTOM_DECODER_jpegls
        select FFMPEG_CUSTOM_DECODER_mp2
        select FFMPEG_CUSTOM_DECODER_mp3
@@ -58,7 +57,7 @@ config FFMPEG_CUSTOM_MINIDLNA_SUPPORT
        select FFMPEG_CUSTOM_DECODER_mpegvideo
        select FFMPEG_CUSTOM_DECODER_png
        select FFMPEG_CUSTOM_DECODER_opus
-       select FFMPEG_CUSTOM_DECODER_vc1
+       select FFMPEG_CUSTOM_DECODER_vc1 if (BUILD_PATENTED)
        select FFMPEG_CUSTOM_DECODER_vorbis
        select FFMPEG_CUSTOM_DECODER_wmav1
        select FFMPEG_CUSTOM_DECODER_wmav2
@@ -75,7 +74,6 @@ config FFMPEG_CUSTOM_MINIDLNA_SUPPORT
 
 config FFMPEG_CUSTOM_AUDIO_DEC_SUPPORT
        bool "Include support for most audio decoding requirements"
-       depends on FFMPEG_CUSTOM_PATENTED
        select FFMPEG_CUSTOM_DECODER_aac
        select FFMPEG_CUSTOM_DECODER_aac_latm
        select FFMPEG_CUSTOM_DECODER_ac3
@@ -84,7 +82,7 @@ config FFMPEG_CUSTOM_AUDIO_DEC_SUPPORT
        select FFMPEG_CUSTOM_DECODER_amrnb
        select FFMPEG_CUSTOM_DECODER_amrwb
        select FFMPEG_CUSTOM_DECODER_ape
-       select FFMPEG_CUSTOM_DECODER_atrac3
+       select FFMPEG_CUSTOM_DECODER_atrac3 if (BUILD_PATENTED)
        select FFMPEG_CUSTOM_DECODER_flac
        select FFMPEG_CUSTOM_DECODER_mp2
        select FFMPEG_CUSTOM_DECODER_mp3
@@ -173,7 +171,6 @@ config FFMPEG_CUSTOM_ENCODER_mpeg2video
 
 config FFMPEG_CUSTOM_ENCODER_mpeg4
        bool "MPEG-4"
-       depends on FFMPEG_CUSTOM_PATENTED
 
 config FFMPEG_CUSTOM_ENCODER_pcm_s16be
        bool "PCM signed 16-bit big-endian"
@@ -195,7 +192,6 @@ comment "Decoders"
 
 config FFMPEG_CUSTOM_DECODER_aac
        bool "AAC (Advanced Audio Coding)"
-       depends on FFMPEG_CUSTOM_PATENTED
 
 config FFMPEG_CUSTOM_SELECT_adpcm
        bool "ADPCM (multiple types)"
@@ -255,7 +251,6 @@ config FFMPEG_CUSTOM_DECODER_mpeg2video
 
 config FFMPEG_CUSTOM_DECODER_mpeg4
        bool "MPEG-4"
-       depends on FFMPEG_CUSTOM_PATENTED
 
 config FFMPEG_CUSTOM_DECODER_mpc7
        bool "Musepack 7"
@@ -291,11 +286,9 @@ config FFMPEG_CUSTOM_DECODER_wavpack
 
 config FFMPEG_CUSTOM_DECODER_wmav1
        bool "WMAv1"
-       depends on FFMPEG_CUSTOM_PATENTED
 
 config FFMPEG_CUSTOM_DECODER_wmav2
        bool "WMAv2"
-       depends on FFMPEG_CUSTOM_PATENTED
 
 config FFMPEG_CUSTOM_DECODER_zlib
        bool "Zlib"
@@ -429,7 +422,6 @@ comment "Parsers"
 
 config FFMPEG_CUSTOM_PARSER_aac
        bool "AAC (Advanced Audio Coding)"
-       depends on FFMPEG_CUSTOM_PATENTED
 
 config FFMPEG_CUSTOM_PARSER_ac3
        bool "AC3"
index d499b17694a1cdfe6493de97377db294e4107cd6..023144a576edac795ee16836b1d0f7fccc1fc1c2 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2006-2017 OpenWrt.org
 # Copyright (C) 2017 Ian Leonard <antonlacon@gmail.com>
+# Copyright (C) 2018 Ted Hess <thess@kitschensync.net>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ffmpeg
-PKG_VERSION:=3.2.9
+PKG_VERSION:=3.2.10
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://ffmpeg.org/releases/
-PKG_HASH:=1131d37890ed3dcbc3970452b200a56ceb36b73eaa51d1c23c770c90f928537f
+PKG_HASH:=3c1626220c7b68ff6be7312559f77f3c65ff6809daf645d4470ac0189926bdbc
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
                Ian Leonard <antonlacon@gmail.com>
 
@@ -120,11 +120,8 @@ FFMPEG_CUSTOM_PROTOCOLS:= \
        file http icecast pipe rtp tcp udp
 
 FFMPEG_MINI_DECODERS:= \
-       aac \
        ac3 \
        flac \
-       h264 \
-       hevc \
        jpegls \
        mp2 \
        mp3 \
@@ -134,10 +131,12 @@ FFMPEG_MINI_DECODERS:= \
        mpegvideo \
        opus \
        png \
-       vc1 \
        vorbis \
-       wmav1 \
-       wmav2 \
+
+FFMPEG_PATENTED_MINI_DECODERS:= \
+       h264 \
+       hevc \
+       vc1 \
 
 FFMPEG_MINI_DEMUXERS:= \
        avi \
@@ -154,8 +153,6 @@ FFMPEG_MINI_PROTOCOLS:= \
        file
 
 FFMPEG_AUDIO_DECODERS:= \
-       aac \
-       aac_latm \
        ac3 \
        adpcm_* \
        alac \
@@ -172,14 +169,9 @@ FFMPEG_AUDIO_DECODERS:= \
        pcm_* \
        vorbis \
        wavpack \
-       wmav1 \
-       wmav2 \
-       wmalossless \
-       wmapro \
        zlib \
 
 FFMPEG_AUDIO_DEMUXERS:= \
-       aac \
        ac3 \
        aiff \
        amr \
@@ -204,13 +196,27 @@ FFMPEG_AUDIO_DEMUXERS:= \
 FFMPEG_AUDIO_PROTOCOLS:= \
        file http icecast rtp tcp udp
 
+FFMPEG_PATENTED_DECODERS:= \
+       atrac3 \
+       h264 \
+       hevc \
+       vc1 \
+
+FFMPEG_PATENTED_MUXERS:= \
+       h264 \
+       hevc \
+
+FFMPEG_PATENTED_PARSERS:= \
+       h264 \
+       hevc \
+       vc1 \
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 PKG_CONFIG_DEPENDS:= \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_ENCODER_%,$(FFMPEG_CUSTOM_ENCODERS)) \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_DECODER_%,$(FFMPEG_CUSTOM_DECODERS)) \
-       $(patsubst %,CONFIG_FFMPEG_CUSTOM_MUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \
+       $(patsubst %,CONFIG_FFMPEG_CUSTOM_MUXER_%,$(FFMPEG_CUSTOM_MUXERS)) \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_DEMUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_PARSER_%,$(FFMPEG_CUSTOM_PARSERS)) \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_PROTOCOL_%,$(FFMPEG_CUSTOM_PROTOCOLS))
@@ -226,6 +232,10 @@ endef
 define Package/ffmpeg/Default/description
  FFmpeg is a a software package that can record, convert and stream digital
  audio and video in numerous formats.
+
+ FFmpeg licensing / patent issues are complex. It is the reponsibility of the
+ user to understand any requirements in this regard with its usage. See:
+ https://ffmpeg.org/legal.html for further information.
 endef
 
 
@@ -313,7 +323,6 @@ endef
 define Package/libffmpeg-audio-dec
 $(call Package/libffmpeg/Default)
  TITLE+= (audio)
- DEPENDS+= @BUILD_PATENTED
  VARIANT:=audio-dec
 endef
 
@@ -327,7 +336,7 @@ endef
 define Package/libffmpeg-full
 $(call Package/libffmpeg/Default)
  TITLE+= (full)
- DEPENDS+= @BUILD_PATENTED +alsa-lib +PACKAGE_libopus:libopus
+ DEPENDS+= +alsa-lib +PACKAGE_libopus:libopus
  ifeq ($(CONFIG_SOFT_FLOAT),y)
        DEPENDS+= +PACKAGE_shine:shine
  else
@@ -347,7 +356,6 @@ endef
 define Package/libffmpeg-mini
 $(call Package/libffmpeg/Default)
  TITLE+= (mini)
- DEPENDS+= @BUILD_PATENTED
  VARIANT:=mini
 endef
 
@@ -434,8 +442,18 @@ FFMPEG_CONFIGURE+= --disable-yasm
 endif
 
 ifeq ($(BUILD_VARIANT),full)
+
+  FFMPEG_DISABLE= \
+       $(foreach c, $(2), \
+               --disable-$(1)="$(c)" \
+       )
+
        FFMPEG_CONFIGURE+= \
                --enable-avresample \
+               $(if $(CONFIG_BUILD_PATENTED),, \
+                       $(call FFMPEG_DISABLE,decoder,$(FFMPEG_PATENTED_DECODERS)) \
+                       $(call FFMPEG_DISABLE,muxer,$(FFMPEG_PATENTED_MUXERS)) \
+                       $(call FFMPEG_DISABLE,parser,$(FFMPEG_PATENTED_PARSERS))) \
                $(if $(CONFIG_PACKAGE_libopus),--enable-libopus)
   ifeq ($(CONFIG_SOFT_FLOAT),y)
        FFMPEG_CONFIGURE+= \
@@ -450,9 +468,8 @@ ifeq ($(BUILD_VARIANT),full)
        endif
        FFMPEG_CONFIGURE+= \
                --enable-gpl \
-               \
                $(if $(CONFIG_PACKAGE_lame-lib),--enable-libmp3lame) \
-               $(if $(CONFIG_PACKAGE_libx264),--enable-libx264)
+               $(if $(CONFIG_PACKAGE_libx264),--enable-libx264 --enable-nonfree)
   endif
 endif
 
@@ -573,7 +590,9 @@ ifeq ($(BUILD_VARIANT),mini)
        --disable-everything \
        $(call FFMPEG_ENABLE,decoder,$(FFMPEG_MINI_DECODERS)) \
        $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_MINI_DEMUXERS)) \
-       $(call FFMPEG_ENABLE,protocol,$(FFMPEG_MINI_PROTOCOLS))
+       $(call FFMPEG_ENABLE,protocol,$(FFMPEG_MINI_PROTOCOLS)) \
+       $(if $(CONFIG_BUILD_PATENTED), \
+               $(call FFMPEG_ENABLE,decoder,$(FFMPEG_PATENTED_MINI_DECODERS)))
 endif
 
 ifneq ($(CONFIG_TARGET_x86),)