initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,43 @@
From bf8eae2d30a205bb76ac625e04c0351106981b9e Mon Sep 17 00:00:00 2001
From: Parker Ernest <@>
Date: Sun, 23 Feb 2020 13:22:42 +0100
Subject: [PATCH] swscale/x86/yuv2rgb: Fix build without SSSE3
commit fc6a5883d6af8cae0e96af84dda0ad74b360a084 breaks build on
x86_64 CPUs which do not have SSSE3, e.g. AMD Phenom-II
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
[bernd.kuhls@t-online.de:
- retrieved from upstream patchwork:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200223122256.23402-1-michael@niedermayer.cc/
]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[yann.morin.1998@free.fr: fix reference top patchwork and SoB order]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
libswscale/x86/yuv2rgb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libswscale/x86/yuv2rgb.c b/libswscale/x86/yuv2rgb.c
index c12e88cbb5..4791e5b93a 100644
--- a/libswscale/x86/yuv2rgb.c
+++ b/libswscale/x86/yuv2rgb.c
@@ -83,6 +83,7 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c)
#if HAVE_X86ASM
int cpu_flags = av_get_cpu_flags();
+#if HAVE_SSSE3
if (EXTERNAL_SSSE3(cpu_flags)) {
switch (c->dstFormat) {
case AV_PIX_FMT_RGB32:
@@ -111,6 +112,7 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c)
return yuv420_rgb15_ssse3;
}
}
+#endif
if (EXTERNAL_MMXEXT(cpu_flags)) {
switch (c->dstFormat) {
--
2.26.2
@@ -0,0 +1,36 @@
From 2c6b3f357331e203ad87214984661c40704aceb7 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Sat, 26 Jan 2019 19:48:35 +0100
Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
It was hit frequently when watching h264 channels received via DVB-X.
Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
Downloaded from Kodi ffmpeg repo:
https://github.com/xbmc/FFmpeg/commit/2c6b3f357331e203ad87214984661c40704aceb7
Patch was sent upstream:
http://ffmpeg.org/pipermail/ffmpeg-devel/2019-March/240863.html
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
libavcodec/vaapi_h264.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
index dd2a6571604..e521a05c4ff 100644
--- a/libavcodec/vaapi_h264.c
+++ b/libavcodec/vaapi_h264.c
@@ -314,6 +314,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
H264SliceContext *sl = &h->slice_ctx[0];
int ret;
+ if (pic->nb_slices == 0) {
+ ret = AVERROR_INVALIDDATA;
+ goto finish;
+ }
+
ret = ff_vaapi_decode_issue(avctx, pic);
if (ret < 0)
goto finish;
@@ -0,0 +1,72 @@
From 6e8daf0d502a2a822f1f08f42368d7d676dc1a9e Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Sun, 6 Jun 2021 08:54:53 +0200
Subject: [PATCH] libavutil: Fix mips build
Check for sys/auxv.h because not all toolchains contain this header.
Fixes https://trac.ffmpeg.org/ticket/9138
Patch sent upstream:
http://ffmpeg.org/pipermail/ffmpeg-devel/2021-June/281272.html
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
configure | 2 ++
libavutil/mips/cpu.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index 6bfd98b384..773a7d516c 100755
--- a/configure
+++ b/configure
@@ -2161,6 +2161,7 @@ HEADERS_LIST="
opencv2_core_core_c_h
OpenGL_gl3_h
poll_h
+ sys_auxv_h
sys_param_h
sys_resource_h
sys_select_h
@@ -6218,6 +6219,7 @@ check_func_headers VideoToolbox/VTCompressionSession.h VTCompressionSessionPrepa
check_headers windows.h
check_headers X11/extensions/XvMClib.h
check_headers asm/types.h
+check_headers sys/auxv.h
# it seems there are versions of clang in some distros that try to use the
# gcc headers, which explodes for stdatomic
diff --git a/libavutil/mips/cpu.c b/libavutil/mips/cpu.c
index 59619d54de..19196de50b 100644
--- a/libavutil/mips/cpu.c
+++ b/libavutil/mips/cpu.c
@@ -19,7 +19,7 @@
#include "libavutil/cpu.h"
#include "libavutil/cpu_internal.h"
#include "config.h"
-#if defined __linux__ || defined __ANDROID__
+#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H
#include <stdint.h>
#include <stdio.h>
#include <string.h>
@@ -28,7 +28,7 @@
#include "libavutil/avstring.h"
#endif
-#if defined __linux__ || defined __ANDROID__
+#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H
#define HWCAP_LOONGSON_CPUCFG (1 << 14)
@@ -105,7 +105,7 @@ static int cpu_flags_cpuinfo(void)
int ff_get_cpu_flags_mips(void)
{
-#if defined __linux__ || defined __ANDROID__
+#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H
if (cpucfg_available())
return cpu_flags_cpucfg();
else
--
2.29.2
@@ -0,0 +1,47 @@
From 0c288853630b7b4e004774c39945d4a804afcfa8 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Fri, 6 Aug 2021 09:17:20 +0200
Subject: [PATCH] configure: add extralibs to extralibs_xxx
Add extralibs to extralibs_xxx (e.g. extralibs_avformat) to allow
applications such as motion to retrieve ffmpeg dependencies such as
-latomic through pkg-config
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: not upstreamable]
---
configure | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/configure b/configure
index 0bb3a7cf2b..3bda99e415 100755
--- a/configure
+++ b/configure
@@ -7602,15 +7602,15 @@ rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}")
source_path=${source_path}
LIBPREF=${LIBPREF}
LIBSUF=${LIBSUF}
-extralibs_avutil="$avutil_extralibs"
-extralibs_avcodec="$avcodec_extralibs"
-extralibs_avformat="$avformat_extralibs"
-extralibs_avdevice="$avdevice_extralibs"
-extralibs_avfilter="$avfilter_extralibs"
-extralibs_avresample="$avresample_extralibs"
-extralibs_postproc="$postproc_extralibs"
-extralibs_swscale="$swscale_extralibs"
-extralibs_swresample="$swresample_extralibs"
+extralibs_avutil="$avutil_extralibs $extralibs"
+extralibs_avcodec="$avcodec_extralibs $extralibs"
+extralibs_avformat="$avformat_extralibs $extralibs"
+extralibs_avdevice="$avdevice_extralibs $extralibs"
+extralibs_avfilter="$avfilter_extralibs $extralibs"
+extralibs_avresample="$avresample_extralibs $extralibs"
+extralibs_postproc="$postproc_extralibs $extralibs"
+extralibs_swscale="$swscale_extralibs $extralibs"
+extralibs_swresample="$swresample_extralibs $extralibs"
EOF
for lib in $LIBRARY_LIST; do
--
2.30.2
+188
View File
@@ -0,0 +1,188 @@
config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
bool
default y
# fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2
depends on !BR2_nios2
# No support for ARMv7-M in the ARM assembly logic
depends on !BR2_ARM_CPU_ARMV7M
# m68k coldfire causes a build failure, because the check for
# atomics (atomic_store) succeeds, which causes ffmpeg to
# think atomic intrinsics are available, while they are
# not. See https://patchwork.ozlabs.org/patch/756664/ and
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467 for more
# details.
depends on !BR2_m68k_cf
# assertion fail in binutils
depends on !(BR2_or1k && !BR2_TOOLCHAIN_GCC_AT_LEAST_9)
menuconfig BR2_PACKAGE_FFMPEG
bool "ffmpeg"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
help
FFmpeg is a complete, cross-platform solution to record,
convert and stream audio and video.
http://www.ffmpeg.org
if BR2_PACKAGE_FFMPEG
config BR2_PACKAGE_FFMPEG_GPL
bool "Enable GPL code"
help
allow use of GPL code, the resulting libs and binaries will
be under GPL
config BR2_PACKAGE_FFMPEG_NONFREE
bool "Enable nonfree code"
help
allow use of nonfree code, the resulting libs and binaries
will be unredistributable
config BR2_PACKAGE_FFMPEG_FFMPEG
bool "Build ffmpeg (the command line application)"
default y
help
FFmpeg is a very fast video and audio converter.
It can also grab from a live audio/video source.
It is not needed if you want to link the FFmpeg libraries
to your application.
config BR2_PACKAGE_FFMPEG_FFPLAY
bool "Build ffplay"
depends on !BR2_STATIC_LIBS # sdl2
select BR2_PACKAGE_FFMPEG_SWSCALE
select BR2_PACKAGE_SDL2
help
FFplay is a very simple and portable media player using the
FFmpeg libraries and the SDL library.
It is mostly used as a testbed for the various FFmpeg APIs.
comment "ffplay needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_FFMPEG_FFPROBE
bool "Build ffprobe"
help
FFprobe is a utility to determine the audio and video
characteristics of a container file.
config BR2_PACKAGE_FFMPEG_XCBGRAB
bool "Build X11 screen grabbing"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB
help
X11 screen grabbing using libxcb.
config BR2_PACKAGE_FFMPEG_AVRESAMPLE
bool "Build libavresample"
help
Avresample is a audio conversion library for compatibility.
config BR2_PACKAGE_FFMPEG_POSTPROC
bool "Build libpostproc"
depends on BR2_PACKAGE_FFMPEG_GPL
help
Postproc is a library of video postprocessing routines.
config BR2_PACKAGE_FFMPEG_SWSCALE
bool "Build libswscale"
help
Swscale is a library of video scaling routines.
config BR2_PACKAGE_FFMPEG_ENCODERS
string "Enabled encoders"
default "all"
help
Space-separated list of encoders to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-encoders in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_DECODERS
string "Enabled decoders"
default "all"
help
Space-separated list of decoders to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-decoders in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_MUXERS
string "Enabled muxers"
default "all"
help
Space-separated list of muxers to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-muxers in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_DEMUXERS
string "Enabled demuxers"
default "all"
help
Space-separated list of demuxers to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-demuxers in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_PARSERS
string "Enabled parsers"
default "all"
help
Space-separated list of parsers to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-parsers in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_BSFS
string "Enabled bitstreams"
default "all"
help
Space-separated list of bitstream filters to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-bsfs in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_PROTOCOLS
string "Enabled protocols"
default "all"
help
Space-separated list of protocols to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-protocols in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_FILTERS
string "Enabled filters"
default "all"
help
Space-separated list of filters to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-filters in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_INDEVS
bool "Enable input devices"
default y
config BR2_PACKAGE_FFMPEG_OUTDEVS
bool "Enable output devices"
default y
config BR2_PACKAGE_FFMPEG_EXTRACONF
string "Additional parameters for ./configure"
default ""
help
Extra parameters that will be appended to FFmpeg's
./configure commandline.
endif
+5
View File
@@ -0,0 +1,5 @@
# Locally calculated
sha256 eadbad9e9ab30b25f5520fbfde99fae4a92a1ae3c0257a8d68569a4651e30e02 ffmpeg-4.4.1.tar.xz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPLv2
sha256 b634ab5640e258563c536e658cad87080553df6f34f62269a21d554844e58bfe COPYING.LGPLv2.1
sha256 cb48bf09a11f5fb576cddb0431c8f5ed0a60157a9ec942adffc13907cbe083f2 LICENSE.md
+576
View File
@@ -0,0 +1,576 @@
################################################################################
#
# ffmpeg
#
################################################################################
FFMPEG_VERSION = 4.4.1
FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz
FFMPEG_SITE = http://ffmpeg.org/releases
FFMPEG_INSTALL_STAGING = YES
FFMPEG_LICENSE = LGPL-2.1+, libjpeg license
FFMPEG_LICENSE_FILES = LICENSE.md COPYING.LGPLv2.1
ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
FFMPEG_LICENSE += and GPL-2.0+
FFMPEG_LICENSE_FILES += COPYING.GPLv2
endif
FFMPEG_CPE_ID_VENDOR = ffmpeg
FFMPEG_CONF_OPTS = \
--prefix=/usr \
--enable-avfilter \
--disable-version3 \
--enable-logging \
--enable-optimizations \
--disable-extra-warnings \
--enable-avdevice \
--enable-avcodec \
--enable-avformat \
--enable-network \
--disable-gray \
--enable-swscale-alpha \
--disable-small \
--enable-dct \
--enable-fft \
--enable-mdct \
--enable-rdft \
--disable-crystalhd \
--disable-dxva2 \
--enable-runtime-cpudetect \
--disable-hardcoded-tables \
--disable-mipsdsp \
--disable-mipsdspr2 \
--disable-msa \
--enable-hwaccels \
--disable-cuda \
--disable-cuvid \
--disable-nvenc \
--disable-avisynth \
--disable-frei0r \
--disable-libopencore-amrnb \
--disable-libopencore-amrwb \
--disable-libdc1394 \
--disable-libgsm \
--disable-libilbc \
--disable-libvo-amrwbenc \
--disable-symver \
--disable-doc
FFMPEG_DEPENDENCIES += host-pkgconf
ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
FFMPEG_CONF_OPTS += --enable-gpl
else
FFMPEG_CONF_OPTS += --disable-gpl
endif
ifeq ($(BR2_PACKAGE_FFMPEG_NONFREE),y)
FFMPEG_CONF_OPTS += --enable-nonfree
else
FFMPEG_CONF_OPTS += --disable-nonfree
endif
ifeq ($(BR2_PACKAGE_FFMPEG_FFMPEG),y)
FFMPEG_CONF_OPTS += --enable-ffmpeg
else
FFMPEG_CONF_OPTS += --disable-ffmpeg
endif
ifeq ($(BR2_PACKAGE_FFMPEG_FFPLAY),y)
FFMPEG_DEPENDENCIES += sdl2
FFMPEG_CONF_OPTS += --enable-ffplay
FFMPEG_CONF_ENV += SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl2-config
else
FFMPEG_CONF_OPTS += --disable-ffplay
endif
ifeq ($(BR2_PACKAGE_LIBV4L),y)
FFMPEG_DEPENDENCIES += libv4l
FFMPEG_CONF_OPTS += --enable-libv4l2
else
FFMPEG_CONF_OPTS += --disable-libv4l2
endif
ifeq ($(BR2_PACKAGE_FFMPEG_AVRESAMPLE),y)
FFMPEG_CONF_OPTS += --enable-avresample
else
FFMPEG_CONF_OPTS += --disable-avresample
endif
ifeq ($(BR2_PACKAGE_FFMPEG_FFPROBE),y)
FFMPEG_CONF_OPTS += --enable-ffprobe
else
FFMPEG_CONF_OPTS += --disable-ffprobe
endif
ifeq ($(BR2_PACKAGE_FFMPEG_XCBGRAB),y)
FFMPEG_CONF_OPTS += \
--enable-libxcb \
--enable-libxcb-shape \
--enable-libxcb-shm \
--enable-libxcb-xfixes
FFMPEG_DEPENDENCIES += libxcb
else
FFMPEG_CONF_OPTS += --disable-libxcb
endif
ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y)
FFMPEG_CONF_OPTS += --enable-postproc
else
FFMPEG_CONF_OPTS += --disable-postproc
endif
ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y)
FFMPEG_CONF_OPTS += --enable-swscale
else
FFMPEG_CONF_OPTS += --disable-swscale
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),all)
FFMPEG_CONF_OPTS += --disable-encoders \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),--enable-encoder=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),all)
FFMPEG_CONF_OPTS += --disable-decoders \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),--enable-decoder=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),all)
FFMPEG_CONF_OPTS += --disable-muxers \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),--enable-muxer=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),all)
FFMPEG_CONF_OPTS += --disable-demuxers \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),--enable-demuxer=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),all)
FFMPEG_CONF_OPTS += --disable-parsers \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),--enable-parser=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),all)
FFMPEG_CONF_OPTS += --disable-bsfs \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),--enable-bsf=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),all)
FFMPEG_CONF_OPTS += --disable-protocols \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),--enable-protocol=$(x))
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),all)
FFMPEG_CONF_OPTS += --disable-filters \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),--enable-filter=$(x))
endif
ifeq ($(BR2_PACKAGE_FFMPEG_INDEVS),y)
FFMPEG_CONF_OPTS += --enable-indevs
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
FFMPEG_CONF_OPTS += --enable-alsa
FFMPEG_DEPENDENCIES += alsa-lib
else
FFMPEG_CONF_OPTS += --disable-alsa
endif
else
FFMPEG_CONF_OPTS += --disable-indevs
endif
ifeq ($(BR2_PACKAGE_FFMPEG_OUTDEVS),y)
FFMPEG_CONF_OPTS += --enable-outdevs
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
FFMPEG_DEPENDENCIES += alsa-lib
endif
else
FFMPEG_CONF_OPTS += --disable-outdevs
endif
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
FFMPEG_CONF_OPTS += --enable-pthreads
else
FFMPEG_CONF_OPTS += --disable-pthreads
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
FFMPEG_CONF_OPTS += --enable-zlib
FFMPEG_DEPENDENCIES += zlib
else
FFMPEG_CONF_OPTS += --disable-zlib
endif
ifeq ($(BR2_PACKAGE_BZIP2),y)
FFMPEG_CONF_OPTS += --enable-bzlib
FFMPEG_DEPENDENCIES += bzip2
else
FFMPEG_CONF_OPTS += --disable-bzlib
endif
ifeq ($(BR2_PACKAGE_FDK_AAC)$(BR2_PACKAGE_FFMPEG_NONFREE),yy)
FFMPEG_CONF_OPTS += --enable-libfdk-aac
FFMPEG_DEPENDENCIES += fdk-aac
else
FFMPEG_CONF_OPTS += --disable-libfdk-aac
endif
ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBCDIO_PARANOIA),yy)
FFMPEG_CONF_OPTS += --enable-libcdio
FFMPEG_DEPENDENCIES += libcdio-paranoia
else
FFMPEG_CONF_OPTS += --disable-libcdio
endif
ifeq ($(BR2_PACKAGE_GNUTLS),y)
FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl
FFMPEG_DEPENDENCIES += gnutls
else
FFMPEG_CONF_OPTS += --disable-gnutls
ifeq ($(BR2_PACKAGE_OPENSSL),y)
# openssl isn't license compatible with GPL
ifeq ($(BR2_PACKAGE_FFMPEG_GPL)x$(BR2_PACKAGE_FFMPEG_NONFREE),yx)
FFMPEG_CONF_OPTS += --disable-openssl
else
FFMPEG_CONF_OPTS += --enable-openssl
FFMPEG_DEPENDENCIES += openssl
endif
else
FFMPEG_CONF_OPTS += --disable-openssl
endif
endif
ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBEBUR128),yy)
FFMPEG_DEPENDENCIES += libebur128
endif
ifeq ($(BR2_PACKAGE_LIBDRM),y)
FFMPEG_CONF_OPTS += --enable-libdrm
FFMPEG_DEPENDENCIES += libdrm
else
FFMPEG_CONF_OPTS += --disable-libdrm
endif
ifeq ($(BR2_PACKAGE_LIBOPENH264),y)
FFMPEG_CONF_OPTS += --enable-libopenh264
FFMPEG_DEPENDENCIES += libopenh264
else
FFMPEG_CONF_OPTS += --disable-libopenh264
endif
ifeq ($(BR2_PACKAGE_LIBVORBIS),y)
FFMPEG_DEPENDENCIES += libvorbis
FFMPEG_CONF_OPTS += \
--enable-libvorbis \
--enable-muxer=ogg \
--enable-encoder=libvorbis
endif
ifeq ($(BR2_PACKAGE_LIBVA),y)
FFMPEG_CONF_OPTS += --enable-vaapi
FFMPEG_DEPENDENCIES += libva
else
FFMPEG_CONF_OPTS += --disable-vaapi
endif
ifeq ($(BR2_PACKAGE_LIBVDPAU),y)
FFMPEG_CONF_OPTS += --enable-vdpau
FFMPEG_DEPENDENCIES += libvdpau
else
FFMPEG_CONF_OPTS += --disable-vdpau
endif
ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
FFMPEG_CONF_OPTS += --enable-mmal --enable-omx --enable-omx-rpi \
--extra-cflags=-I$(STAGING_DIR)/usr/include/IL
FFMPEG_DEPENDENCIES += rpi-userland
else
FFMPEG_CONF_OPTS += --disable-mmal --disable-omx --disable-omx-rpi
endif
# To avoid a circular dependency only use opencv if opencv itself does
# not depend on ffmpeg.
ifeq ($(BR2_PACKAGE_OPENCV3_LIB_IMGPROC)x$(BR2_PACKAGE_OPENCV3_WITH_FFMPEG),yx)
FFMPEG_CONF_OPTS += --enable-libopencv
FFMPEG_DEPENDENCIES += opencv3
else
FFMPEG_CONF_OPTS += --disable-libopencv
endif
ifeq ($(BR2_PACKAGE_OPUS),y)
FFMPEG_CONF_OPTS += --enable-libopus
FFMPEG_DEPENDENCIES += opus
else
FFMPEG_CONF_OPTS += --disable-libopus
endif
ifeq ($(BR2_PACKAGE_LIBVPX),y)
FFMPEG_CONF_OPTS += --enable-libvpx
FFMPEG_DEPENDENCIES += libvpx
else
FFMPEG_CONF_OPTS += --disable-libvpx
endif
ifeq ($(BR2_PACKAGE_LIBASS),y)
FFMPEG_CONF_OPTS += --enable-libass
FFMPEG_DEPENDENCIES += libass
else
FFMPEG_CONF_OPTS += --disable-libass
endif
ifeq ($(BR2_PACKAGE_LIBBLURAY),y)
FFMPEG_CONF_OPTS += --enable-libbluray
FFMPEG_DEPENDENCIES += libbluray
else
FFMPEG_CONF_OPTS += --disable-libbluray
endif
ifeq ($(BR2_PACKAGE_INTEL_MEDIASDK),y)
FFMPEG_CONF_OPTS += --enable-libmfx
FFMPEG_DEPENDENCIES += intel-mediasdk
else
FFMPEG_CONF_OPTS += --disable-libmfx
endif
ifeq ($(BR2_PACKAGE_RTMPDUMP),y)
FFMPEG_CONF_OPTS += --enable-librtmp
FFMPEG_DEPENDENCIES += rtmpdump
else
FFMPEG_CONF_OPTS += --disable-librtmp
endif
ifeq ($(BR2_PACKAGE_LAME),y)
FFMPEG_CONF_OPTS += --enable-libmp3lame
FFMPEG_DEPENDENCIES += lame
else
FFMPEG_CONF_OPTS += --disable-libmp3lame
endif
ifeq ($(BR2_PACKAGE_LIBMODPLUG),y)
FFMPEG_CONF_OPTS += --enable-libmodplug
FFMPEG_DEPENDENCIES += libmodplug
else
FFMPEG_CONF_OPTS += --disable-libmodplug
endif
ifeq ($(BR2_PACKAGE_SPEEX),y)
FFMPEG_CONF_OPTS += --enable-libspeex
FFMPEG_DEPENDENCIES += speex
else
FFMPEG_CONF_OPTS += --disable-libspeex
endif
ifeq ($(BR2_PACKAGE_LIBTHEORA),y)
FFMPEG_CONF_OPTS += --enable-libtheora
FFMPEG_DEPENDENCIES += libtheora
else
FFMPEG_CONF_OPTS += --disable-libtheora
endif
ifeq ($(BR2_PACKAGE_LIBICONV),y)
FFMPEG_CONF_OPTS += --enable-iconv
FFMPEG_DEPENDENCIES += libiconv
else
FFMPEG_CONF_OPTS += --disable-iconv
endif
# ffmpeg freetype support require fenv.h which is only
# available/working on glibc.
# The microblaze variant doesn't provide the needed exceptions
ifeq ($(BR2_PACKAGE_FREETYPE)$(BR2_TOOLCHAIN_USES_GLIBC)x$(BR2_microblaze),yyx)
FFMPEG_CONF_OPTS += --enable-libfreetype
FFMPEG_DEPENDENCIES += freetype
else
FFMPEG_CONF_OPTS += --disable-libfreetype
endif
ifeq ($(BR2_PACKAGE_FONTCONFIG),y)
FFMPEG_CONF_OPTS += --enable-fontconfig
FFMPEG_DEPENDENCIES += fontconfig
else
FFMPEG_CONF_OPTS += --disable-fontconfig
endif
ifeq ($(BR2_PACKAGE_OPENJPEG),y)
FFMPEG_CONF_OPTS += --enable-libopenjpeg
FFMPEG_DEPENDENCIES += openjpeg
else
FFMPEG_CONF_OPTS += --disable-libopenjpeg
endif
ifeq ($(BR2_PACKAGE_X264)$(BR2_PACKAGE_FFMPEG_GPL),yy)
FFMPEG_CONF_OPTS += --enable-libx264
FFMPEG_DEPENDENCIES += x264
else
FFMPEG_CONF_OPTS += --disable-libx264
endif
ifeq ($(BR2_PACKAGE_X265)$(BR2_PACKAGE_FFMPEG_GPL),yy)
FFMPEG_CONF_OPTS += --enable-libx265
FFMPEG_DEPENDENCIES += x265
else
FFMPEG_CONF_OPTS += --disable-libx265
endif
ifeq ($(BR2_PACKAGE_DAV1D),y)
FFMPEG_CONF_OPTS += --enable-libdav1d
FFMPEG_DEPENDENCIES += dav1d
else
FFMPEG_CONF_OPTS += --disable-libdav1d
endif
ifeq ($(BR2_X86_CPU_HAS_MMX),y)
FFMPEG_CONF_OPTS += --enable-x86asm
FFMPEG_DEPENDENCIES += host-nasm
else
FFMPEG_CONF_OPTS += --disable-x86asm
FFMPEG_CONF_OPTS += --disable-mmx
endif
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
FFMPEG_CONF_OPTS += --enable-sse
else
FFMPEG_CONF_OPTS += --disable-sse
endif
ifeq ($(BR2_X86_CPU_HAS_SSE2),y)
FFMPEG_CONF_OPTS += --enable-sse2
else
FFMPEG_CONF_OPTS += --disable-sse2
endif
ifeq ($(BR2_X86_CPU_HAS_SSE3),y)
FFMPEG_CONF_OPTS += --enable-sse3
else
FFMPEG_CONF_OPTS += --disable-sse3
endif
ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
FFMPEG_CONF_OPTS += --enable-ssse3
else
FFMPEG_CONF_OPTS += --disable-ssse3
endif
ifeq ($(BR2_X86_CPU_HAS_SSE4),y)
FFMPEG_CONF_OPTS += --enable-sse4
else
FFMPEG_CONF_OPTS += --disable-sse4
endif
ifeq ($(BR2_X86_CPU_HAS_SSE42),y)
FFMPEG_CONF_OPTS += --enable-sse42
else
FFMPEG_CONF_OPTS += --disable-sse42
endif
ifeq ($(BR2_X86_CPU_HAS_AVX),y)
FFMPEG_CONF_OPTS += --enable-avx
else
FFMPEG_CONF_OPTS += --disable-avx
endif
ifeq ($(BR2_X86_CPU_HAS_AVX2),y)
FFMPEG_CONF_OPTS += --enable-avx2
else
FFMPEG_CONF_OPTS += --disable-avx2
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)
FFMPEG_CONF_OPTS += --disable-armv5te
endif
ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y)
FFMPEG_CONF_OPTS += --enable-armv6
else
FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2
endif
ifeq ($(BR2_ARM_CPU_HAS_VFPV2),y)
FFMPEG_CONF_OPTS += --enable-vfp
else
FFMPEG_CONF_OPTS += --disable-vfp
endif
ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
FFMPEG_CONF_OPTS += --enable-neon
else ifeq ($(BR2_aarch64),y)
FFMPEG_CONF_OPTS += --enable-neon
else
FFMPEG_CONF_OPTS += --disable-neon
endif
ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
ifeq ($(BR2_MIPS_SOFT_FLOAT),y)
FFMPEG_CONF_OPTS += --disable-mipsfpu
else
FFMPEG_CONF_OPTS += --enable-mipsfpu
endif
# Fix build failure on several missing assembly instructions
FFMPEG_CONF_OPTS += --disable-asm
endif # MIPS
ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
FFMPEG_CONF_OPTS += --enable-altivec
else
FFMPEG_CONF_OPTS += --disable-altivec
endif
# Uses __atomic_fetch_add_4
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
FFMPEG_CONF_OPTS += --extra-libs=-latomic
endif
ifeq ($(BR2_STATIC_LIBS),)
FFMPEG_CONF_OPTS += --enable-pic
else
FFMPEG_CONF_OPTS += --disable-pic
endif
# Default to --cpu=generic for MIPS architecture, in order to avoid a
# warning from ffmpeg's configure script.
ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
FFMPEG_CONF_OPTS += --cpu=generic
else ifneq ($(GCC_TARGET_CPU),)
FFMPEG_CONF_OPTS += --cpu="$(GCC_TARGET_CPU)"
else ifneq ($(GCC_TARGET_ARCH),)
FFMPEG_CONF_OPTS += --cpu="$(GCC_TARGET_ARCH)"
endif
FFMPEG_CFLAGS = $(TARGET_CFLAGS)
ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
FFMPEG_CONF_OPTS += --disable-optimizations
FFMPEG_CFLAGS += -O0
endif
FFMPEG_CONF_ENV += CFLAGS="$(FFMPEG_CFLAGS)"
FFMPEG_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF))
# Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others
define FFMPEG_CONFIGURE_CMDS
(cd $(FFMPEG_SRCDIR) && rm -rf config.cache && \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
$(FFMPEG_CONF_ENV) \
./configure \
--enable-cross-compile \
--cross-prefix=$(TARGET_CROSS) \
--sysroot=$(STAGING_DIR) \
--host-cc="$(HOSTCC)" \
--arch=$(BR2_ARCH) \
--target-os="linux" \
--disable-stripping \
--pkg-config="$(PKG_CONFIG_HOST_BINARY)" \
$(SHARED_STATIC_LIBS_OPTS) \
$(FFMPEG_CONF_OPTS) \
)
endef
define FFMPEG_REMOVE_EXAMPLE_SRC_FILES
rm -rf $(TARGET_DIR)/usr/share/ffmpeg/examples
endef
FFMPEG_POST_INSTALL_TARGET_HOOKS += FFMPEG_REMOVE_EXAMPLE_SRC_FILES
$(eval $(autotools-package))