From 1fa9c1bc5fe5082e17b62a531a710ae021e0474f Mon Sep 17 00:00:00 2001 From: Ted Hess Date: Wed, 7 Mar 2018 17:07:02 -0500 Subject: [PATCH] ffmpeg: Update to 3.2.10. Re-organize configuration options to allow non-patented/un-licensed builds. Include AAC and WMA codecs without BUILD_PATENTED Signed-off-by: Ted Hess --- multimedia/ffmpeg/Config.in | 16 +++------ multimedia/ffmpeg/Makefile | 65 ++++++++++++++++++++++++------------- 2 files changed, 46 insertions(+), 35 deletions(-) diff --git a/multimedia/ffmpeg/Config.in b/multimedia/ffmpeg/Config.in index 333b53ba1e..ebe6e29342 100644 --- a/multimedia/ffmpeg/Config.in +++ b/multimedia/ffmpeg/Config.in @@ -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" diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile index d499b17694..023144a576 100644 --- a/multimedia/ffmpeg/Makefile +++ b/multimedia/ffmpeg/Makefile @@ -1,6 +1,6 @@ # -# Copyright (C) 2006-2017 OpenWrt.org # Copyright (C) 2017 Ian Leonard +# Copyright (C) 2018 Ted Hess # # 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 , \ Ian Leonard @@ -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),)